New CRT shader from Guest + CRT Guest Advanced updates

@guest.r

Just an idea: “auto slot mask width” option. When using any of the aperture grille patterns (0, 2, 5-8), slot mask width should be equal to the width of the “phosphor triad”.

0 - 2 pixels
2 - 3 pixels
5 - 2 pixels
6 - 3 pixels
7 - 2 pixels
8 - 4 pixels

and, if CRT mask size = 2, multiply the above by 2.

2 Likes

It crossed my mind, exactly the same thing is calculated with deconvergence pass integer offsets, but there are some reasons for the manual setup. Like slotmask width of 1.0, which is also a viable option. I regularly use this setup, sometimes with size of 1.0, more often 2.0. Second is slotmask width when no ordinary crt mask is selected, it’s more or less user preference. Next are masks like mask 8, where widths like 1.0, 2.0 or 4.0 are viable. Last are slotmask widths at 4k and for example crt mask sizes of 2.0. Here the user has more viable options regarding slotmask width.

An option would be though to include an ‘auto’ option for slotmask width parameter value of 0.0 for example.

4 Likes

The auto = 0 option, would probably be the best middle ground imho.

4 Likes

I like the new deconvergence. It’s replaced Glass for me which usually darkened the image a little bit.

3 Likes

@guest.r

I can’t get the NTSC version to load :confused:

[ERROR] [slang]: Texture name 'SamplerLUT4' not found in semantic map, Probably the texture name or pass alias is not defined in the preset (Non-semantic textures not supported yet)
[ERROR] [slang]: Failed to reflect SPIR-V. Resource usage is inconsistent with expectations.
[ERROR] [GLCore]: Failed to create preset: "C:\RetroArch-Win64\shaders\shaders_slang\crt\crt-guest-dr-venom2-ntsc.slangp".
[ERROR] [GLCore]: Failed to create filter chain: "C:\RetroArch-Win64\shaders\shaders_slang\crt\crt-guest-dr-venom2-ntsc.slangp". Falling back to stock.
2 Likes

The line:

[ERROR] [GLCore]: Failed to create filter chain: "C:\RetroArch-Win64\shaders\shaders_slang\crt\crt-guest-dr-venom2-ntsc.slangp". Falling back to stock.

might refer to an older version posted in this thread or a custom version. In this case i recommend to download the newest 24.05.2021 batch or use the official repo ntsc version from the ‘presets’ folder since there were changes to the LUT system in between.

2 Likes

@guest.r Just started playing around with the latest version.

I think the magenta bleed with scanline deconvergence should be increased a bit, what do you think? I have scanline deconvergence at max, here.

2 Likes

It’s an effect which needs some room to develop as two tints share the same line of input pixels. It looks a notch better with 1440p and can also be combined with vertical deconvergence. If a scale factor of for example 5.0 is used, then the middle (3rd) pixel won’t get any coloring. Current coding also works quite nice with non integer scaling and doesn’t produce odd looking scanlines, which tends to happen very easily with a more aggressive approach.

I can add a notch of strength though, but more will produce unwanted effects.

Current implementation:

With more strength:

It can be tried out with this code replacement (gdv-advanced main pass, line 738, 739):

	float ds1 = min(pow(2.0*f1 + 0.01, 0.5*f2), 1.0);
	float ds2 = min(pow(2.0*f2 + 0.01, 0.5*f1), 1.0);
2 Likes

Took what @guest.r said and decided to change it to 1.0 instead of 0.5. Does this look too much now maybe? Looks really nice in game to me.

2 Likes

Is guest-dr-venom advanced a lot more aggressive when it comes to clipping compared to guest-dr-venom2?

1 Like

It’s basically the same implementation, but different from “gdv 1.0”. The main change from 1.0 is that brightboost is now applied after masks are blended without prior clamping the colors to 0.0-1.0 range. Lottes masks should need the most adjustments with MaksLight lowered or not to great brightboost values used.

3 Likes

I would love an option to disable scanlines and leave only the mask, something like this:

Example:

So far I’m very satisfied with the lottes mask 3, but I think the 4 without scanlines would be closer than what I saw on the TVs I used.

Mask 3:

2 Likes

Hi, if you set the interlace mode to 4 and decrease the interlace trigger resolution enough to trigger the Interlacing you should get no scanlines :slight_smile:

4 Likes

That’s correct. There is one more technique where one can make scanlines non present with the scanline settings, because there is anti clipping mechanism which prevents ‘bulges’ in the middle of the beam.

4 Likes

I will do it, thanks! I was used to dotmask or blendoverlay for something like that. Now it will get better.

3 Likes

Scanlines are still there though, they’re just faint. Probably a 13" screen or something. Once the size of the triad is roughly the size of the scanline beam, scanlines seem to disappear. They’re still there but each beam bleeds into the adjacent beam to the point where the gaps are almost completely obscured.

4 Likes

@guest.r, could you update crt-guest-advanced-ntsc to have RF signal option?

3 Likes

And also add the RGB option from Blargg’s filter, while you’re at it, lol.

4 Likes

Yup, no scanlines on my TV either:

20 inch screen.

3 Likes

Has it been calibrated, though? You probably just have contrast and/or brightness set way too high, as scanlines should definitely be visible, although small, on a 20” screen. If this is the case, aside from making the scanlines disappear, you’ll also get clipped whites/crushed blacks and a washed-out image.

1 Like