New CRT shader from Guest + CRT Guest Advanced updates

You really don’t need an AA shader with standard resolution content. It’s also smearing the image in a notable way.

It’s giving best results with 3D games beyond 400p.

If you want sprite AA best use xBR(Z) or ScaleFX…


Thank you very much for your advice, very kind as always


Any recommendations for blending the dithering in 3D Saturn games without resorting to an NTSC shader? Am I doing something stupid by just prepending a dedither shader to crt-guest-advanced?


With dedithering, your best options are mdapt and sgenpt-mix shaders, but i would still check the dedithering shader parameters for example, so you can also have bars dedithered, not only checkboard patterns.

To prepend a preset like you mentioned it is the way to go, as the best dedithering shaders are multipass and hard to integrate otherwise.


Yeah, sgenpt-mix is really great, Hyllian did a bunch of testing on Saturn when developing/refining it


You can also try this and see if it works.

You’ll need to use the Genesis/MD filter presets to perform blending of dithering and transparencies.

Some of these are should already be available in your RetroArch Video Filters folder, while the newer ones are currently exclusive to my Custom Blargg NTSC Video Filter Presets Pack.

1 Like

Hi @guest.r, I was toying around to make an alternate preset to my current all-rounder, I tried a different mask and settings and liked it but the new preset suffer from a green tint (I think coming from the mask). So I tried to remove it without success the only way to polish it was to prepend an image-adjustment shader increasing just a notch the blue and red channel.

Is there a way to do it within your shader? I like to keep the simple-preset file that is easier to manage and update. will in the future be possible to have sliders to play around with the color channels? I also noticed that the contrast slider works in a way that I don’t fully understand…

this is my standard preset and general reference (my go-to all rounder):

This is the alternate version with different mask and settings (hope you can see the green tint from those jpgs…):

This is with image-adjustment prepend with just the color correction +5 to blue & red

This is the same but with some little more adjustment in contrast sat and black level (I like the mood of this quite a bit :grin:):

1 Like

Are you using mask size of 2.0? It doesn’t work as intended with masks: 0, 5, 9…

Instead mask 11 is to be used.

But if the image adjustment shader solves your issues then it’s the best solutions. The first two stock shader passes are explicitly implemented for such cases (replacement with some other shaders).

Mask 10, Size 1, Stagger shift 2.0

1 Like

The mask distribution looks regular…

I only noticed green tinting after some shader presets and after running flycast, which persisted into other cores until RA was restarted.

But, as i mentioned, if the image adjustment shader solves the problem, it’s best to use it. It’s a very nice addition to many situations.

I tried some different core but the tint is always there, not that strong of a tint to be fair, but still something that I cannot “not see” :sweat_smile:

Anyway, I’m happy with the small fixing done with image-adjustment so I guess I’ll keep it like that! Later or tomorrow I’ll post the preset with some screens.

Thanks for the answers!

1 Like

Thanks guys. sgenpt-mix really seems to do the best job. Here’s sgenpt-mix-multipass + crt-guest-advanced.


@guest.r Is there like a mathematical way to determine the exact brightness change from particular scanline/mask brightness settings, as a % of the brightness of the raw image? (E.g., these settings = 33% loss of brightness compared to the raw image) This would be a cool utility, if something like this is even possible.


I have an idea or two, but it would require an extra pass to do the approximation, perhaps some extra code to display the results.


Even if we could get this type of information, what would be an accurate brightness level though? Surely it wouldn’t be 100% of the raw image, because if that raw image is fed to a CRT, the brightness may be lower or at least different due to the obvious factors of the black gaps between every scanline, and the peculiarities of the CRT technology.

Is it that you would use something like this to try to match the raw image brightness to the image after shader effects are applied? If so is that actually something that would be accurate as well as useful?


CRT targets depend on room lighting, it is something close to these

  • 80 nits for editing studio darkness level
  • 100 for dark room
  • 125 for dim room
  • 150 nits for bright room.

Of course varying with personal preferences.

Caveat about measuring real CRT brightness levels, it depends on the white square % size of total screen size what you’ll be measuring, just like with modern (HDR) monitors.

In CRT the measured brightness level really breaks down with increasing white square size. I.e. for single white square < 25% of total screen size CRTs can easily go beyond 200 nits, but when measuring a white square filling the entire screen most real CRTs will probably struggle to get to 100 to 150 nits. I don’t know how above reference levels are measured on CRT, i.e. what % size the measured white square is.

Would it be useful? I think so. Once you know by how much the shader application darkens the image, you know by math how bright you need to set your monitor to achieve target simulated CRT levels from above.

Additionally it would allow to see how much the shader application darkens the image along individual levels of the gray scale, to see if there’s consistency in the darkening or whether you have some shader settings that break this.

Seems like a useful application to me.


I see that this issue of masks is dificult for many of us. A little table would help a lot about what kind of mask to use and their respective adjustments. Information is lost in the posts. Any link to this information? No idea, for example what would be TVL variants… :thinking:


Good idea. If someone doesn’t beat me to it, I can do a write-up.


@guest.r I was testing new masks with deconvergence.slang and I created this color combination that looks good on my screen. What do you think ?


It’s a very nice apreture setup. You could also tell a bit more about new masks. :smiley:

Perhaps you could also try the Smooth Masks in bright scanlines feature.