New CRT shader from Guest + CRT Guest Advanced updates

Here is the preset. Is to be used with the standard adv. version:

bloom = "0.500000"
mask_bloom = "0.250000"
halation = "-0.100000"
brightboost = "1.800000"
scanline1 = "1.000000"
scanline2 = "25.000000"
beam_min = "3.499998"
beam_max = "0.950000"
scans = "1.250000"
scan_falloff = "0.500000"
h_sharp = "3.000001"
s_sharp = "1.000000"
shadowMask = "9.000000"
maskstr = "1.000000"
maskboost = "1.999999"
mask_gamma = "2.500000"
slotmask = "0.500000"
slotmask1 = "0.500000"
slotwidth = "3.000000"
double_slot = "2.000000"
smoothmask = "1.000000"
deconrry = "-1.000000"
decons = "1.000001"
3 Likes

did another tweak off guest’s original reshade release

Wing Commander 3 with the Windows Kilrathi Saga Patch and Dgvoodoo2’s CRT mode, these first are a before and after without the integer aspect radio correction since the game is 640x480

Here it is with aspect ratio correction.

4 Likes

New Release Version (2022-11-27-r1):

Notable changes:

  • filtering range parameter step adjusted (fast, ntsc, HD versions)
  • nitpickying on utility variables in last pass
  • mask bloom overhaul, simpler implementation but more consistent appearance

Download link:

https://mega.nz/file/08oiFbgD#BlaNYBFBTVa4egz-cuA8JWj6JTyYLXQ_b-kpOHVz8bM

16 Likes

I have some things to reconfigure, don’t I?

2 Likes

Maybe it will look better now, eh? You can always add more saturation by the regular way… :grin:

2 Likes

New Release Version (2022-11-28-r1):

Notable changes:

  • filtering range parameter step adjusted (fast, ntsc, HD versions)
  • nitpickying on utility variables in last pass
  • mask bloom overhaul, simpler implementation but more consistent appearance
  • edit: small bugfix

Download link:

https://mega.nz/file/89ZxzBhQ#6nCluUSYX2ogFPUyB382E1tMQNSJg2PLxau9JGfkZy4

14 Likes

Here is a simple (new version specific) ‘mask bloom’ preset example. Looks quite nice imo.

mask_bloom = "0.500000"
gamma_c = "1.150000"
gsl = "-1.000000"
shadowMask = "6.000000"
maskstr = "1.000000"
maskboost = "1.500000"
mask_layout = "1.000000"
slotmask = "1.000000"
slotmask1 = "1.000000"
slotwidth = "3.000000"
double_slot = "2.000000"
smoothmask = "1.000000"
deconrr = "1.000000"
deconrb = "-1.000000"
deconrry = "1.000000"
deconrby = "-1.000000"
13 Likes

It increased saturation? Actually, I was using negative halation as someting of a counterbalance… Ah, I think I DO have some things to reconfigure.

1 Like

Previous mask bloom implementation increased saturation. But you can add more saturation by the saturation parameter in your ‘old’ preset uses mask bloom and you want more.

Other presets shouldn’t be affected in a way they should be reconfigured.

2 Likes

Any suggestions for reducing the spikiness of scanlines when transitioning from a light pixel to a dark pixel? I’ve noticed that there’s very little spikiness on PVMs via composite, and I’m trying to replicate that look.

#reference "shaders_slang/crt/crt-guest-advanced-ntsc.slangp"
WP = "-100.000000"
HSHARP = "0.000000"
glow = "-0.000000"
brightboost = "2.000000"
brightboost1 = "1.750000"
gsl = "2.000000"
scanline1 = "20.000000"
scanline2 = "22.000000"
beam_min = "1.250000"
shadowMask = "-1.000000"

reference:

1 Like

Hi!

I am really loving this shader so far but I’d like to ask if it is supposed to work with actual interlaced input or not. When disabling the interlacing in SwanStation for progressive scan 480p the shader looks great simulating the CRT interlacing. But if the emulator is set for enabled interlaced scan, the shader introduces a rather noticeable ghosting.

1 Like

Sure. NTSC sharpness is to be used, or NTSC resolution scaling. :wink: The “NTSC Sharpness Shape” setting is also very nice if you want a PVM look. Otherwise you can also try the mame ntsc shader pass which @sonkun is using with very good results. It doesn’t do any horizontal pre-scaling and the sharpness can be controlled quite nicely.

Hey there. I tested the effect in swanstation and the ‘ghosting’ is mostly a swanstation setting result. The crt shader interlacing in ‘laced modes’ quite correctly switches odd and even fields, but it works best with progressive input and no prior interlaced effects are needed or it doesn’t work nicely.

3 Likes

Thanks! Good to know. I was hoping to use it with BeetlePSX software rendering, but that one does not support progressive output and has ghosting as well, so I am sticking with SwanStation for now.

1 Like

You can also use my laced-progressive modes (4.0 or 5.0) and see how it goes with Beetle.

1 Like

I’m curious about this, how would I go about doing this?

2 Likes

You can load the shader(s) instead of the stock passes, but it’s a very different setup compared with ntsc-adaptive. The single or 2-pass versions are in the crt/shaders/mame_hlsl subfolders.

2 Likes

If anyone’s interested, I’ve slightly tweaked my WinUAE shader presets based on @guest.r’s earlier incarnation of these shaders, and I’ve also updated the article.

Like I mentioned, these are optimised for 1080p at 3.0x, 3.2x and 3.5x scaling ratios so the physical extents of the image are similar to that of a 14" Commodore monitor (I never liked 320x200 VGA games on 17" or larger CRT monitors either, or 640x480 at 19/21"… I think keeping the image dimensions authentic—or at least close to authentic—is important).

I’m sure improvements could be made for 1440p and 4k, but this is what I gotta work with :slight_smile: I’m starting to think that capturing some desirable characteristics of CRTs is more important than chasing absolute accuracy anyway (not sure that’s even possible), so I’m quite happy with these results.

Btw, the slot mask presets you posted earlier look quite nice @guest.r!

Note: I’ve changed the filename of the preset pack (appended ‘-v2’ at the end), so links to the original pack in earlier posts in this thread are broken.

8 Likes

Hey!

Very cool images and tweaking indeed. I also like to drop it in, that i fixed the A2080 hires shaders, which now work much nicer in hires mode. Looks very nice in games such as Apidya.

2 Likes

Great, there are subtle but important improvements in the “smoothness” of curves with your improved A2080 shader in hi-res modes. Hi-res pixels are also placed more evenly horizontally.

Actually, looking at your shader made me realise that you used output gamma of 1.85 for a reason… Indeed, I foolishly set it to 2.20, but then pixel art drawn in the 80s/90s (presumably on C= monitors) look more correct with your gamma… With 2.20 the dark shades are too lifted, in most artworks there’s a sudden jump from the darkest shades to black. Interestingly, pixel art drawn after 2000 (e.g. by Prowler) look more correct with 2.20 – I’m guessing they drew those pictures on modern LCD monitor, and 2.20 more closely resembles that.

Another round of tweaking will commence… :joy:

2 Likes

Yeah, these shaders are single pass shaders which, due to increased WinUAE output multipliers and beamracing, work much faster if fast input gamma of 2.0 is used.

This means gamma ops. like color = color*color instead of color = pow (color.rgb, gamma.xxx). So 2.0 is like base gamma and output gamma impact is relative to this value.

3 Likes