New CRT shader from Guest + CRT Guest Advanced updates

I’m curious to see if the new changes will have an effect on the this bloated mess I’ve been making trying to make obese brights. 01blugly 02blugly


@ guest.r

I just wanted to thank you for this awesome shader. After a lot of playing with the settings, I managed to match it very close to my Bang & Olufsen MX4000 CRT. I use the “crt-guest-sm” shader in RetroArch with my LG OLED @ 4K Resolution. Just look a those pictures I attached. The first is without any shader and the second with shader. I’m very happy with the result and I’m now ready to sell the CRT and play everything on my OLED. For retro 3D Games I use standalone emulators and reshade with CRT royale, which also managed to achieve a result similar to my other 480p Arcade CRT, which I also can sell now. Saves me a lot of space at home without much compromises !


These are the values that I changed from the stock values:

WP = “-25.000000” GAMMA_INPUT = “2.199999” bloom = “0.000000” brightboost1 = “5.000000” scanline1 = “20.000000” scanline2 = “20.000000” h_sharp = “1.000000” cubic = “0.800000” mask = “4.000000” maskbright = “0.500000” gamma_out = “2.199999”

It´s hard for me to understand, how people can play without any shaders and say they appreciate pure pixel art. Just compare the pictures and see how bad 2D Retro games look without shaders on a flat HDTV. Also buying an OSSC or similar and play the original consoles on a LCD or OLED is beyond my understanding. For me there are only two options: either playing on original consoles and attach them to a CRT or play with emulators and put a nice shader on the games.


Are foul tricks allowed? :ghost: :stuck_out_tongue_winking_eye:

TATE mode should be working nicely now with the ntsc preset:


How do I go about adding the first two passes from GTU to GDV? Simply adding the passes at the beginning and re-numbering the passes didn’t work :confused:

1 Like

I have a preset builder python script which builds presets from a bunch of smaller presets if anyone is interested

It takes a file with contents like this

#reference "downrez__none.slangp"
#reference "dedithering__0-mdapt.slangp"
#reference "color-correct__grade.slangp"
#reference "tv-processing__gtu.slangp"
#reference "mbz__crt__easymode.slangp"

and builds a final preset out of it

Each of the component slangp files are a standard preset with a shader chain which starting at shader 0

This is how I manage the large number of base Mega Bezel presets that now exist.

I never have to renumber passes in a large preset anymore which makes me happy :grin:. I can also mix and match components to make new presets to test much easier as well.

Ok you can find it here :grin:


Did you manage to add ntsc to crt-guest-advanced?


This was really never a problem, it’s more like the filtering wasn’t complying with the standard version very well. After a trick or two i think it’ll look quite nicely. New release will be today i guess.


Is it possible to have some kind of sharpening after the ntsc passes?

I used sharpen/shaders/fast-sharpen.slang in presets/crt-geom-ntsc-composite-sharp.
(and a trick with warp/shaders/smart-morph to make a fake gamma linearization)

Or Blargg is using another kind that helps fighting the overall blurriness too.


I did a trick to downscale the 2nd ntsc pass to original resolution and then use a “combine pass” where ntsc characteristics are preserved, although vertical filtering is mitigated and becomes a normal subject to crt pass filtering.



It’s a composite phase?

1 phase of the composite signal looks like this with sharpening and everything:

(and with beetle-pce composite palette, good example of a radical difference it makes with the water here)


Your crt-shader and your knowledge are sensational.

Thank you very much for your dedication that helps to raise the level of perfection in emulation.


It’s a different challenge with ‘gdv’, namely to be able to utilize many options in the same way as in the regular version while still retaining the ntsc character, especially coloring and artifacting. It’s nearly finished now. :grinning:


Now we just need to figure out an audio pass that has a parental figure yell “You’re sitting too close to the TV!” or “Turn that thing off and go outside!”


New Release Version (2021-06-15-r1):

Notable changes:

  • New scanline spike removal code, faster and nicer, more fluid scanlines.
  • Scanline type 2 falloff correcture.
  • Very nice downsampling options added.
  • Some spedup.
  • NTSC version overhaul.
  • Improved scanline deconvergence.
  • Better performance with interlacing.
  • Deconvergence adapted for non standard presets.
  • Probably some more stuff.

Download link:

Feedback is welcome as there are many changes, hopefully no regressions.


A post was merged into an existing topic: Mega Preset Assembler

Does this look right? Seems like magenta was stronger in the example screenshot you posted.

scanline deconvergence 1.00

scanline deconvergence -1.00


72fps vs 65fps before same parameters on my HD4000 here.
Yeah my GTX770 just died… :persevere:


RIP your card and now your wallet

1 Like

It’s a new implementation, definitely more consistent on thinner scanlines. The default strength on normal scanlines is sortoff a new deal, should be around the same as before, but not stronger.