New CRT shader from Guest + CRT Guest Advanced updates

New Release Version (2022-06-02-r1):

Notable changes:

  • ntsc-pass1 cleanup of parameter, unneeded condition; small speedup
  • ntsc, ntsc-fast and hd version filtering color clamping range optimized

Additional note:

Thanks for the nice and constructive feedback, liking and trying the crt-guest advanced versions, it really helped with the shader development. Currently no observable misfunctioning was found by me, neither reported and the shaders seem to work well. So this version imo deserves to be declared as ‘a stable release’. Later releases and improvements are also possible, but let’s call it a day. :smile:

Download link:


Great work as always!

IMHO I think at some point you might want to release this shader as Guest Advanced 1.0 (or 2022, 1st Gen, etc) and only fix bugs that are worth fixing.

All the future improvement/new features, minor or major, can be added to Guest Advanced 2.0 alpha, for enthusiasts and users who want to try new things. Just my 2 cents :smiley:


If this is the last update for a while I gotta say thanks for this amazing shader. This shader has been nothing but amazing and I’m glad I’ve been around to see this shader evolve and participate in helping make it even better, the last new filter/sharpening settings were nice add-ons and even though I’m sure all of is with presets had to adapt/retweak our presets and get used to the new settings I feel they were welcome additions.

On that note this release seems to be more of a maintenance release so I don’t think I have to go retweak anything. Until the next update eventually comes along I’ll continue using this amazing shader for days to come. Thank you once again @guest.r


The ntsc filtering is wonderful! ! I noticed in the last update that it’s allowing more details, but the blend is still amazing, you’re so talented!

Using ringing seems to increase the feeling of sharpness and detail, but from what I’m testing now, without ringing the result is already awesome!


No dither, no ringing, much sharper!

sat = “0.000000”
contr = “0.200000”
quality = “-1.000000”
ntsc_phase = “2.000000”
cust_artifacting = “1.100000”
ntsc_sharp = “-10.000000”
ntsc_shape = “1.000000”
CCONTR = “0.000000”
GAMMA_INPUT = “2.750000”
interm = “5.000000”
S_SHARP = “2.000000”
HSHARP = “2.000000”
HARNG = “0.000000”
glow = “0.000000”
bloom = “0.400000”
gamma_c = “1.300000”
brightboost = “1.899999”
gsl = “1.000000”
scanline1 = “9.000000”
shadowMask = “6.000000”
maskstr = “0.800000”
masksize = “2.000000”
mask_gamma = “5.000000”
gamma_out = “2.100000”
post_br = “1.300000”


Congratulations on a job well exceptionally done @guest.r!

Thanks for creating and improving this great piece of software and for being there to support those who wished to use it as a vehicle for their creativity.

I hope you have collected a collage of videos and screenshots of what great art people have been able to create and enhance with your masterpiece!

I will leave you with a gift of video game music links as a tribute and testament to your unrelenting diligence and dedication on this journey!


What exactly does a negative mask strength do?


With ‘trinitron control’ masks (5-10,13) negative mask strength determines how big is the portion in the brighter color spectrum which doesn’t get masks applied.


I like the effect. It almost looks like bloom.


Ah, it changes the colors though. Oopsy. Very visible in games with large, flat-shaded areas. No shader:

HD preset with negative mask strength (-0.45, mask 6, stagger 1):

Of course one could say it improves the image too. It’s subjective.

1 Like

Some variables can be set up though so the colors and brightness can look very alike compared with the original image. Automatic brightness correction was on the table couple of years ago, but i rather removed most of this stuff out of the shader for manual tweaking.

1 Like

Since we’re more or less at 1.0 now, any chances for a reshade port? I know DevilSingh already did one last year, but it’s a bit outdated now. It would also be nice to have ports of NTSC and HD versions with all the features.


I feel bad for wanting to be spoonfed like this, but I checked the readme and its pretty out of date. What kinda settings would I use if I wanted to replicate a consumer Trinitron on a 4K OLED?


I’d say CRT Mask 13 at 100% Mask Strength.

You can also try these:

1 Like

Hi, I just wanted to drop in and say THANK YOU for your amazing work. I’m relatively new to RetroArch and its possibilites like shaders etc. I’m owning a Steam Deck and, because it’s a powerhouse and like THE device for (retro) emulation right now, I’ve tried to get a nice crt look on it and settled down with your shader pack after trying out several shaders. It has a 7" screen with a resolution of 1280 x 800, so as you can imagine, it’s really hard (or maybe impossible) to get a decent look. But I think I managed something, well at least for my personal taste. Having no real clue about all the sader stuff (it’s wizardry in my eyes) didn’t make it easier by the way :D. Anyway… as being new, I can’t create new topics (I guess) but when I can, I’ll make one with the preset files etc.


Hey there!

The simplest way to get a trinitron look is to use scanline type 2.0, together with a 5-10 (or 13) mask.

I have no personal experiences with OLED TV’s and especially not with panels which include a white sub-pixel to boost brightness. Therefore i’m not able to say if there are any circumstances which produce some odd looks.

If things are bad with ‘colored’ masks one can still use masks 7 or 8 black-white masks. Mask size of 2.0 might look better with 4k with these.


I’m very glad to hear the ‘advanced’ shader fits a nice purpose even on a display with a lesser resolution. I guess you can get very nice results even if you use non-integer scaling, especially with less pronounced scanlines. Stronger scanlines might also look nice and you can even use the shader-built-in integer scaling, just to mention it. OTOH you should have no issues running higher resolution content in interlaced modes, there are plenty of mask options which should look very nice.

Last but not least, welcome to the forum and feel free to ask a question or two about the shader and thanks again for sharing the experience. :smiley:


Can you repeat this using Mask 6 and Mask 13 please?

1 Like

Sure! I can’t do it now though. I’ll try to get back to you next week.


Mask 13 with size 1 looks great to me. My TV is an LG C9. I use HSM Mega Bezel Reflection Shader with the glass preset – based on guest’s shader.


In fact, I’m not using integer scaling at all in the video settings of RetroArch. With integer scaling, the screen becomes very small and the Steam Deck screen is already not the biggest :D. But that’s okay, games look fine without it in my eyes and the shader is doing awesome work. The best mask i find are 0, 5 or 6 with that low resolution. 6 for an aperture grill dotted Trinitron look and 5 or 0 if you want more prominent horizontal scanlines. Both look good in my eyes and it’s just a matter of taste. Good to have choices. :slight_smile: Interlaced mode btw is bad in my case, it’s messing things up so i deactivated it. :thinking: