Please show off what crt shaders can do!

It is something @Nesguy posted just above.


Probably the sorcery is called 4k monitor lol


I can just imagine! ** Cries in broken OLED **

Excellent work by @Nesguy! Great proof of concept demonstration by @Duimon and excellent work to implement HDR by the RetroArch dev team! What an awesome way to close out 2021! Let’s hope that 2022 will be filled with even more hope!!

Feel free to post a copy of these settings and instructions for both 4K as well as 1080p in my shader preset thread @Nesguy. I’m sure they can benefit users who’re looking for the best of the best!!


@MajorPainTheCactus I was wondering, are you still looking at an implementation of HDR in Vulkan?


The pixel grid is the last thing keeping this from passing the Pepsi challenge, I think- anyone have a 21” iMac lying around?

One problem is that as we increase screen size we have to increase resolution to prevent the pixel grid from being noticeable, and then we have to change the mask pattern to maintain the same TVL.


Red, Red, Yellow, Green, Cyan, Blue, Blue

~617 TVL @ 8K ~309 TVL @ 4K


Red, Red, Red, Yellow, Green, Green, Cyan, Blue, Blue, Blue

432 TVL @ 8K


Red, Red, Red, Red, Yellow, Green, Green, Green, Cyan, Blue, Blue, Blue, Blue

~332 TVL @ 8K

You can do even weirder stuff at 5K+ resolutions to create a convincing slot mask pattern, there’s a thread about it somewhere on the forums.


Very good research and work @Nesguy . Keep it up! If you build it they will certainly come!!! I hope you’re enjoying the journey as much as you will the destination!

Maybe someone can document and collate all of your findings. I’m sure you have enough information to create a paper or a book on these things. It would be quite interesting reading/viewing material and an important step along the road to preservation!

I see this as history in the making!

1 Like

I tried running HSM and guest.r under DX 11 and 12 to use HDR but I found it to be very buggy. Don’t know if it’s Direct X or if these slang settings don’t work well with DX. We need either HSM and guest.r to work well with DX or Retroarch HDR to work with vulkan. beggars can’t be choosers, though :stuck_out_tongue:


So I’m trying out something a bit different than usual. After reading several posts in this and other threads extolling the benefits of maxing out mask strength in the shader parameters and eliminating artificial brightness enhancements, I decided to try it out for myself, using primarily CRT-Guest-Dr-Venom on a 1080p IPS monitor. I managed to recreate the images achieved by others, with strong black lines, an accurate aperture grille mask using Mask Type 0, and the resulting dim image, mitigated by maxing out my monitor’s brightness.

After playing around with the settings, though, I found I could entirely eliminate the black lines and get something like a fuzzy bilinear-esque look with an aperture grille mask on top. It’s not a bad image, but I am not sure any CRT has ever displayed 240p quite this way unless they were tiny and very out of focus. But I do know many old consumer-level CRTs, even among the Sony Trinitrons and particularly the smaller 14"-19" sets, had very subtle gaps between the scanlines, and on bright colors were often entirely gone. There are many pictures on the internet that demonstrate this. So I decided to see if I could recreate this look while keeping the strong mask and see what I could do.

This is what I’ve got so far:

For this shot, I decided upon Mask 2, as it more closely resembles the lower TVL of average consumer Trinitron sets rather than the PVM-esque look of Mask 0, and the slot masks are unfortunately too compromised at this resolution in my opinion. I think it fits better with the more subtle scanlines on darker colors, and as you can see, they are gone entirely on bright colors. I also added a bit of deconvergence, as I think it adds a bit of nice “texture” to the scanlines, and no actual monitor or set has perfect convergence anyway. :yum:

That said, I can see some flaws. A few things like the HELP text to the right look a bit off with this mask (it looks fine with Mask 0), so I’d imagine it’s something to do with the subpixels. Also, obviously, it’s dark. And I’m still messing around with the increase bright scanline beam parameter to see what looks best. But I think it’s a nice look for these games. If there’s any suggestions on how best to improve the intended look, I’m all ears.

Here’s the parameters I’ve arrived at thus far:

#reference ":/shaders/shaders_slang/crt/crt-guest-dr-venom.slangp"
AS = "0.070000"
PR = "0.050000"
brightboost = "0.500000"
brightboost1 = "0.500000"
scanline1 = "1.000000"
scanline2 = "5.000000"
beam_min = "1.600001"
beam_max = "1.150000"
beam_size = "0.300000"
s_sharp = "0.000000"
glow = "0.000000"
shadowMask = "2.000000"
vertmask = "0.140000"
maskDark = "0.000000"
maskLight = "2.000000"
CGWG = "1.000000"
gamma_out = "2.250000"
spike = "0.000000"

Since I don’t have the energy right now for long explanations, I’m going to post a puzzle for you. See if you can figure out what this means.

Red, green, blue


Red, green, blue, black


270 TVL is actually probably perfect for what you’re trying to do. @GPDP1

Also, here are some nice reference photos of the look you’re going for. There’s another good one somewhere out there of Metroid on a 9” PVM, sans scanlines, but I gave up trying to find it.


This post should be required reading for anyone playing with CRT masks.


Mask 2 is the one to go for 1080p consumer CRT look. Mask 0 is for PVM/BVM look as I explained some posts above. Dot pitch and TVL are closer with mask 2.


Except we want to avoid subpixel artifacts, which mask 2 causes. See posts. @DariusG

I suppose if all you care about is making nice screenshots then subpixel artifacts aren’t a concern.


Why would it cause subpixel artifacts? It works the same as mask 0. RxxGxxBxx.

Hello crt folk. So good to see that this is still so lively :slight_smile:

Just chiming in to say that I have been busy in ‘real life’ for quite a while, and thus away from the internets and sadly Retroarch. I moved to another city, and got myself a 65" LG C1, and I can’t wait to try the shaders on it.

Splendid job @Nesguy, that Mario Kart shot that @Duimon posted looks incredible!


RGB (Mask 2) looks like this at the subpixel level:


then it repeats so you get:


Etc. Which just winds up looking like magenta/green stripes in a close up photo.

Mask 0 (magenta, green) results in this


Etc. Which winds up looking like RGB stripes in a close up photo.

The above examples by @Duimon and @JHorbach1 use a mask based on the same principle of regular spacing between “active” subpixels.


Here is screenshot comparison RGB vs RGB-Black

and shader with modified mask 2 if anyone cares

1 Like

Good to hear from you! The C1 should look great w/ mask 7.

1 Like

An alternative to RGB-black is the 4K mask (mask 8) which is just red, yellow, cyan, blue. (This is the mask used in shots by Duimon and Jhorbach1 above)


RxxRGxxGBxxBRxxRGxxGBxxB etc.

It’s closer to what an aperture grille actually looks like. It’s also brighter.

The RGB-black pattern can be the basis for a 5K+ slot mask, though.

1 Like

Problem with rgb-black is that black is way too intense, it even makes scanlines almost disappear. should be 1/3or 2/3 of pixel in size IMO.

1 Like

RGB-black or Red, Yellow, Cyan, Blue are intended to be used with 4K scales, otherwise the TVL is very low (270 at 1080p). If what you’re going for is a 13” or less CRT, then it might be suitable at 1080p.


Or else you can just adjust mask 7 to gray every 3rd pixel for 1080p.

1 Like