New CRT shader from Guest + CRT Guest Advanced updates

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).

2 Likes

Hey! I think it’s a nice idea. I’m also correcting the DCI-P3 white point to it’s standard values (from D65).

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

Notable changes:

  • Display P3 gamut support added.
  • DCI-P3 white point correction.

Download link:

https://mega.nz/file/thxU1SxI#xPR8e5jTAtN0BWPbhheh46EAjWemITWmA3F631DWc2Y

16 Likes

While we have interlaced modes 1-4, I don’t think we have an option to only apply VGA Double Scan mode to 480i/p signals without it changing 240p signals too.

This would be desirable. Like as an option for interlaced mode 5, or a setting right next to that so it’s still triggered by the resolution. This would be really helpful for me in games that switch between 480i and 240p. : )

1 Like

Can you be a bit more specific?

Currently there are many situations emulated, including smart scanline mode if you set internal resolution to 1.0.

I would need specific behaviour for 240p and behaviour specified for 480i.

Guess display wise it’s already nicely covered. Like use VGA double scan when emulating a 15kHz PC VGA display and use interlacing for consumer CRT displays.

If you want double scan for 240p and interlacing for 480i, then it can be covered with internal resolution set to 0.5 in next release.

I think “interlaced mode=0” is what you ask for

1 Like

I think I was able to balance these things in my last preset update, and yes “The normal US version” is fine, but as I said it’s not only in this game but also in Rambo III (but it’s w not m) and also in the health bar of Castlevania Bloodline

Ah yes! I hadn’t yet tested that on 4K with a 480i signal and didn’t know it did exactly the same thing! Thank you.

And yes, Sega games use Phase 2 so should blend more. You get a health bar that looks like this:

But to make up for it, you get clouds that look like this: