New CRT shader from Guest + CRT Guest Advanced updates

Small radius, negative halation has been the way to go for me from day one. I profoundly love what it does with the brightest parts of the scene. Bloomy light cutting through deep scanlines… it’s gorgeous.

I exaggerated it here for dramatic effect, but you get the idea. Even the downscaled mame menu font looks cool!

2 Likes

I’m not sure how to achieve the “radial” look with it, mind posting settings?

1 Like

This might look “as intended” with very low TVL (<200), even with 4k. Just add some halation, use “fine bloom sampling” and keep the mask strength. Visual differences between implementation are very small.

1 Like

That’s a low TVL even for me! :sweat_smile: 300-400 is about as low as I’ll go.

1 Like

@Nesguy why of course!

gamma_out = "2.200000"
h_sharp = "4.500000"
s_sharp = "1.000000"
SIZEHB = "2.000000"
SIGMA_HB = "1.000000"
SIZEVB = "2.000000"
SIGMA_VB = "1.000000"
warpX = "0.040000"
warpY = "0.050000"
c_shape = "0.200000"
csize = "0.020000"
bsize1 = "0.050000"
glow = "-0.200000"
bloom = "-0.200000"
mask_bloom = "-0.200000"
halation = "-0.300000"
hmask1 = "-0.000000"
brightboost = "3.000000"
brightboost1 = "2.500000"
gsl = "2.000000"
scanline1 = "20.000000"
beam_min = "1.500000"
beam_max = "1.100000"
scans = "0.600000"
shadowMask = "9.000000"
maskstr = "0.600000"
maskboost = "3.000000"
mask_layout = "1.000000"
smoothmask = "0.100000"
mclip = "0.150000"
maskmid = "1.000000"

The effect here will be again pretty heavy and a bit too obvious, for demonstration purposes. I suggest starting with the sampling parameter and the effect amount slider (try positive and negative, to see how they affect the image). When you get the idea of what those do, go for radius/sigma/mask amount etc.

Halation and glow are definitely one of the most difficult things to get right, since they interact with absolutely everything else. You get your gamma/brightness/sharpness/etc (and it’s a long etc) right, proceed to change glow/halation and byebye your earlier settings. It’s not a problem with the shader itself, of course. Just physics. I’m also quite sure that it was pretty hard for @guest.r to implement such a thorough, multipass halation/bloom/glow system. But it paid off, there’s nothing quite like it afaik. Amazing stuff.

3 Likes

Well, it didn’t quite help me achieve what I was going for, but looks nice regardless. Thanks for sharing :slight_smile: I think I may need to revisit the kokoko3k method. Maybe some additional vertical/horizontal deconvergence could also help?

This is why I tend to avoid it, and prefer relying on an extra bright display :smiley:

1 Like

Oh and speaking of halation @guest.r, this is something that I’ve been wanting to ask you about for a whlle.

Starting with nearest neighbour Y axis and interpolated/smoother X axis, I want the effect to be quite visible without affecting sharpness too much, so I configure halation with a very small X radius (for mask glow) and a larger Y radius (for glowy light bleeding into adjacent scanlines). The logic here is basically that the halation/glow radius ought to be in line with the fact that the mask is much smaller than the scanlines, and that X axis sharpness is already being attacked by interpolation.

What do think about this approach? I really like the results, but is it sound/realistic?

Yes I understand, but when you use halation the way I do (negative, small radius), overall brightness is not affected by it as much. The effect is supercool, and quite different from mere increases in brightness!

2 Likes

Don’t forget to add a very subtle amount of base black mask.

2 Likes

Even though it leaves something to be desired in extreme close-ups (wish there was a way to make it more “radial”), I’m liking this “Cross Glow” configuration at appropriate viewing distances. This will probably become a standard feature in my HDR1000 Local Dimming presets. Screenshot looks way darker than in-game, as usual.

2 Likes

Follow up to my previous post demonstrating regression in 2025-11-16-r1 vs 2025-11-11-r1.

2025-11-16-r1

2025-11-11-r1

Bonus: 2025-11-11-r1 with -10 Adaptive Sharpness

With 2025-11-16-r1 -Adaptive Sharpness produces a result that looks almost identical to +Adaptive Sharpness when using the new Preserve Fonts Parameter which is supposed to require +Adaptive Sharpness which I find a bit odd.

2 Likes

2005? :slight_smile: when CRTs still alive :smiley:

2 Likes

Latest version uses a totally different implementation compared with “beta” version. Now you can use any type of adaptive sharpen. What has improved is better font detection and significantly reduced numbers of “false positives”. Ofc. it’s still a hack, relaying on contrast properties and general circumstances, since a font-pattern detection would be slow, not neccessarily bullet-proof and could also produce false positives.

The parameter also works differently. Now it’s value means contrast threshold for font detection. Values around 0.35-0.37 should be enough to clear most font situations, stronger values are producing more false-positives with bar dithering.

I will take a look if i can improve a thing or two, but it’s definitelly working differently.

1 Like

In this particular case 0.35 - 0.37 isn’t really having much of an effect. Although my demonstration is static I tested extensively and tried many different combinations of values before deciding to report an issue.

My ultimate goal for Turbo Duo/Grafx16/PC-Engine is to have the “m” and other fine point fonts legible without being blended while at the same time having all checkerboard dithering blended without seeing any temporal artifacts and flickering.

In the older iterations, circa 2024, I was able to achieve this with various levels of compromise of blending/bluriness of the “m”.

In 2025-11-11-r1, I seemed to have gotten results that looked better than my previous efforts with the added benefit of NTSC Artifacts and Fringing being on the table.

It was always hard to strike a balance between increased font legibility via increasing the Artifacts value and visible flickering/noise in the blended areas.

I found that to make the flickering less noticeable, I needed to lower artifacts to at least 0.80.

Anything higher and I know that I would have to accept some visible noise/movement in the blended formerly dithered areas.

Thanks for your hard work on this. I have confidence in your abilities but if it isn’t able to be resolved or improved at least the implementation in 2025-11-11-r1 is there for me to fall back to.

1 Like

I guess i fixed it already (the M issue). You can test it here:

https://mega.nz/file/w9QUgSoJ#8AKsA1v5rm4TCEUG8GfOxAcAUlT5VpYeth9UOMNfZfQ

For other situations, i need original image to see what happens…

That’s standard 2-phase behaviour with non-merged fields. Dunno what to do here besides already available fixes.

1 Like

Seems like the same issue is present with that difficult to remove “bridge” between the legs of the “m”. Higher Artifact values start to remove it, exactly like in 2025-11-16-r1, but the cost at least in 2025-11-16-r1 was increased flickering and noise in the blended areas.

I haven’t tested blending in this test version though.

Dither pattern blending seems to be behaving similarly to 2025-11-16-r1

3 Games in 1 - Gate of Thunder + Bonks Adventure + Bonks Revenge (USA) (Rev 1)-251125-145035

Seeing that the implementation in 2025-11-11-r1 worked very well in this scenario, would it be possible going forward to have the ability to toggle between 2025-11-11-r1 and 2025-11-16-r1 implementations if you can’t find a “one size fits all solution”?

Let me share the additional screens I use to test dither pattern blending in Turbo Duo/PC-Engine games.

3 Games in 1 - Gate of Thunder + Bonks Adventure + Bonks Revenge (USA) (Rev 1)-251125-154234

3 Games in 1 - Gate of Thunder + Bonks Adventure + Bonks Revenge (USA) (Rev 1)-251125-154332

3 Games in 1 - Gate of Thunder + Bonks Adventure + Bonks Revenge (USA) (Rev 1)-251125-154354

3 Games in 1 - Gate of Thunder + Bonks Adventure + Bonks Revenge (USA) (Rev 1)-251125-154420

The offset yellow and black square pattern in the bottom-right quadrant of the bay doorway tends to get blended when it really shouldn’t. Not expecting any miracles here though, just pointing it out.

3 Games in 1 - Gate of Thunder + Bonks Adventure + Bonks Revenge (USA) (Rev 1)-251125-154446

3 Games in 1 - Gate of Thunder + Bonks Adventure + Bonks Revenge (USA) (Rev 1)-251125-154512

3 Games in 1 - Gate of Thunder + Bonks Adventure + Bonks Revenge (USA) (Rev 1)-251125-154642

I also use other scenes from other games but I think once these are nailed, everything else should fall into place.

How many years now have we been so laser focused on Sonic The Hedgehog waterfalls and Streets of Rage bar lights, while so many other games and systems haven’t been given enough attention?

if there are some professional images (like the ones twitter CRTpixels did) for other games and systems then I think they will get more attention, Images are probably scattered across the internet, so it would be great to have a thread or wiki for images or videos showing games in CRT, along with connection details and other information such as if cable is original and whether there are any modifications, etc.

I think it worth testing as fast as possible :slight_smile:

1 Like

I actually did, when I was gathering my screenshots for the blending examples. I was updating my comment while you were typing yours.

While useful, in general I’m more interested in what’s possible with shaders and trying to get games to look their best while maintaining certain nostalgic cues, not just for nostalgia but because it makes the games look good.

I have seen decent CRT pics of the PC-Engine CD-ROM startup screen and everything seemed quite sharp and legible but that must be measured against if all of the checkerboard dither patterns that I am trying to blend were also blended by real CRT’s using composite input.

That’s for if we’re going after pure accuracy though. I’m after a more idealistic look if at all possible.

1 Like

Same here, Especially since I was using Sony televisions back then, which gave a clean picture even in composite and RF, but I also interested in accuracy and have it as an option and that why I have TV 480i presets which will not be good with Digital video compression, and also for many people due to flickering even if it still a necessary evil (See here) until we get adaptive deinterlacing

1 Like

@guest.r I don’t know if this was mentioned before, but I just found out about these recent videos from Timothy Lottes about CRT Spatial Scaling. It goes very in-depth into topics related to CRT shaders. The Energy Conserving Scanlines / Spatial Energy Redistribution seems very effective at preserving overall picture brightness with masks without the need for an HDR display.

Mike Chi from RetroTINK is also implementing it for his scaler: https://x.com/retrotink2/status/1992125566137602203

ShaderToy links (Public Domain / MIT No Attribution):

Does crt-guest-advanced have something similar? If not, would it be feaseable to implement?

Thanks!

9 Likes

“Everything” is blended by default, “font preservation” only “de-blends” areas with some contrast properties. And I don’t see any fonts. :grin:

I would like you to understand the situation. This is a hack, which is to be used by games with fonts blended, and not a very slow and complicated advanced heuristic. Some fonts will also not get a 100% treatment they deserve. And there are also false positives.

I can improve it to some degree, but not 100%…

2 Likes