New CRT shader from Guest + CRT Guest Advanced updates

Yes, I was doing some testing and it seems 3x is the factor where the most significant artifacts disappear, but it’s still not quite enough, at least with low resolutions and notable scanlines.

I’m surprised that odd scaling is beneficial, I got the impression that masks work better mostly with even.

1 Like

Odd or even integer vertical scaling factors are mostly notable with 4x vs 5x. If i summarize it a bit:

4x scaling:

1
2
2
1

5x scaling:

1
2
3
2
1

6x scaling:

1
2
3
3
2
1

7x scaling:

1
2
3
4
3
2
1

etc.

With even scaling factors there are two “same scanline strength” pixel rows in the middle of the scanline, making them look more “flat”.

Ofc. more resolution is better in general, but it’s an explanation why a possibly desired scanline shape eludes with even scaling. With 4k this shouldn’t be an important issue, at least not with most low resolution content.

Maybe this is a case for slot and shadow masks, which indeed like flatter, milder scanlines better. Aperture masks should definitelly prefer odd integer scaling, because it’s easier to generate better mask falloff effects (a.k.a. scanline saturation with guest-advanced).

2 Likes

New Release Version (2025-06-20-r1):

Notable changes:

  • Old: Better NTSC core shaders offset handling / centering.
  • Old: Moderate FSharpen - Deblur rework, preserves the original image better now.
  • Old: Further Deblur tweaks for better consistency.
  • Old: “Deblur Extra Sharpen” option added, works only if Deblur > 1.0.
  • Old: Some Deblur issues addressed. Needed to rework it, feedback is welcome.
  • Minor Deblur improvement.
  • GLCore NTSC Phase 4.0 fix (thanks to @DevilSingh)

Download link:

https://mega.nz/file/JpAHVRRK#r2RFwynAx9_kq5Qfa1y26GZSYooDsDtxN_jAuAGdo0o

16 Likes

Hello, I would like to know if there is a detailed tutorial on all the features of the CRT Guest Fast shader settings. It’s so powerful and requires a lot of updates that I’m a little lost. I would like to combine ScaleFX, Deblur, and CRT Guest Advanced Fast for a 1080p PC monitor. My games are in PAL and some NTSC. I use SNES9x, GenesisGX, and FBNEO. Thanks in advance.

1 Like

Hey!

Nice for stopping by! Glad you like the shader. :smiley:

For scalefx you can just prepend the original scalefx preset.

You get vertical scaling enabled if you enable “High Resolution Scanlines” under “Interlacing options”.

With this Deblur is not a necessity, since original scalefx doesn’t produce any blur by design.

I know i’m a bit due with up-to-date documentation, will try to do something about it in the future.

Best Regards!

3 Likes

also, how to get the “Spike Strips” look like composite in this image?

1 Like

I am working on using horizontal gaussian to kinda achieve it

but gaussian_horizontal-sharp.slang and crt-guest-advanced get conflicts since they share parameter names so I will not post the preset now until the fix PR get merge

1 Like

Are you sure this isn’t because crt-guest-advanced might already include gaussian_horizontal-sharp.slangp?

What’s being fixed?

The reason why the spikes are smoother in the CRT TV image compared to your CRT Shader image is because your NTSC Resolution Scale and possibly also your NTSC Chroma/Bleeding might be too high.

If you look at the CRT image you’ll see that you can’t make out the sides of the individual water “droplets” but you can see the gaps in yours.

In the S-Video CRT image, you can see the gaps but the spikes also have that jagged aliased appearance as well that you’re seeing in your Composite CRT Shader image.

In my experience NTSC Resolution Scale and the other horizontal filtering and sharpening tools included in CRT-Guest-Advanced-NTSC are all that might be needed to achieve such looks.

crt-guest-advanced has similar code with gaussian_horizontal-sharp.slangp (gaussian_horizontal-sharp.slang said that it made by guest too) but nether depends on each others

well, even in the default (with only lower NTSC Artifacting/Fring value) CRT-Guest-Advanced-NTSC

despite the default settings of CRT-Guest-Advanced-NTSC kinda so soft also can remove many small details like the “m” letter

Well there are things that you can tweak to fine tune the amount of softness, for example sharpness, the # of taps as well as the Chroma/Bleeding.

Also, is that “m” the way it is because you’re using the same preset or values for Sega Genesis as you are for PSX?

If so, remember both have completely different video output characteristics and hardware so you can tweak each separately.

I know and I did tweaked them already in my preset, I just post the default (with only lower NTSC Artifacting/Fring value) CRT-Guest-Advanced-NTSC for comparison

even in Genesis games the “m” will be a problem, IIRC in Rambo III the “m” will have the same problem

1 Like

well it’s “w” this time

dont know how the real hardware deal with it but when I play this when I was teens almost three decades ago I dont remember it being so soft (especially with the letter “w” or “m”)

Edit: I think I find someone use real hardware composite cable

default (with only lower NTSC Artifacting/Fring value) NTSC-Adaptive

1 Like

In their case, no. Because that part of the game uses Phase 2, and it only switches to Phase 3 once in game. They can fix this by forcing Phase 3 for their fan translation. The normal US version doesn’t use that small ‘m’ there or other Phase 2 scenes.

2 Likes

Mr Guest, I was wondering. When it comes to Chroma Scale/Bleed, we have the ability to both bleed+fade, or, in combination with preserve edge color, just fade.

I was trying to find a way to just bleed the color, without it fading/losing saturation. Especially when it comes to Red, this is always a struggle as I tweak it back and forth trying to find a balance. Might there be some programmer magic you can work so I can control how much saturation I lose when bleeding?

1 Like

Hey there!

The chroma distribution algorithm is quite simple, which can make it fast and somewhat adjustable without loosing performance. I think it’s also honoring the NTSC standard signal processing.

With current/authentic implementation (which isn’t RGB, but in YIQ colorspace) it would be an circumstance to enhance RGB primary/saturated colors.

I guess your proposal would be an interesting enhancement, but would require for the algorithm to work quite differently.

I hope it’s understandable that this would also bring much “lab” work and testing with uncertain results as we talk now. :grin:

1 Like

Why not increase Saturation/NTSC Saturation as you increase Bleeding?

Obvious reasons, but it increases the color saturation of everything else as well. Like in a big way.

They’re not so obvious to me because that’s exactly what I have done in many of my presets from not too long ago.

Doesn’t increasing the amount of bleeding via decreasing the value of the Chroma/Bleeding or even the NTSC Resolution Parameter decrease the Saturation of everything else as well. Like in a big way too?

Concerning the red, phosphor choice can play a big part in determining the amount of saturation.

2 Likes

Mame HLSL Shader for CRT TV Effect

@guest.r I just got a new wide gamut monitor (Dell U2725QE ) that supports both DCI-P3 and Display P3 operation.

I’m getting great results with the DCI-P3 profile set on my monitor and in the shader, especially combined with the Philips CRT profile. I was wondering if adding a Display P3 profile in additon to the DCI-P3 profile would be a useful option? My understanding is the difference between them are the gamma and the slightly different white point (DCI-P3: gamma 2.6, DCI white point; Display P3: gamma 2.2, D65 white point).

So yeah, when I use DCI-P3 in the shader and put my monitor into Display P3 mode, the gamma is off and the white point is slightly shifted from neutral (all expected, of course).

I guess this could be useful for people who only have a Display P3 option on their monitor (although I’m unsure if those exist; maybe all Display P3 capable monitors also support DCI-P3 operation). Could be handy for those too who have both options but prefer Display P3 due to convenience (at least the gamma then is very close to sRGB gamma).

1 Like