New CRT shader from Guest + CRT Guest Advanced updates

Just a little note. I’ve been playing around with both Phosphor Persistence and the different settings which might be affecting Frame Pacing mentioned here and both seem to have a positive effect on the appearance of sprite flickered shadows. So now I have to change my setup again.

I think the more significant improvement came from changing my refresh rate to 60Hz 10bit from 100Hz 8bit, using Fulscreen Exclusive Mode (aka Disabling Windowed Fullscreen Mode), Disabling Sync To Content Refresh Rate, although I tested it on and it doesn’t seem to make much of a difference to the appearance of the shadow. I do need to test some more but at least one or some of these optimizations is having a positive effect on my experience. 10bit colour also looks noticeably brighter and better vs 8 bit.

I was only forced to drop to 8 bit and limited to 100Hz due to Graphics Card limitations. Anything beyond that will cause Chroma Compression to be enabled.

Guess I have to finally start looking for something better than this old SLI setup (which still works beautifully in many older games which I’m still inclined to pickup from time to time or at least have the intention to do so).

The downside to running at 60Hz refresh rate vs 100Hz is flickery BFI for everything but retro gaming content. It’s even worse now that I’ve gotten used to 100Hz.

1 Like

Yeah, V-Syncing the 60 Hz desktop refresh seems to be the safest method.

OTOH i’m getting nice results with the flycast core - default 120Hz settings.

Recently, i’m also getting a black scree in-menu with snes games - with different cores.

Sometimes RA does strange things on my PC, like resets menu opacity or makes my fps counter dissapear. :grin:

Edit: deleting the main config file and starting from scratch seems to help atm.

Edit2: guess figured out this one too: i got black screen in menu if VSync was enabled. Switching to Freesync only fixed the issue with snes games (vulkan driver).

1 Like

Hello,

I have been following this forum for some time since crt shaders are of great interest to me. I made a preset trying to emulate the clean look of a Playstation one connected to a TV through scart which I fondly remember (trying to at least).

This is the preset for 4k monitors:

#reference "shaders_slang/crt/crt-guest-advanced.slangp"
CS = "3.000000"
TNTC = "4.000000"
bloom = "0.150000"
mask_bloom = "0.200000"
bloom_dist = "1.200000"
halation = "0.150000"
scanline1 = "7.000000"
scanline2 = "11.000000"
shadowMask = "10.000000"
maskstr = "1.000000"
masksize = "2.000000"
mask_zoom = "-3.000000"
mzoom_sh = "0.150000"
slotmask = "1.000000"
slotmask1 = "1.000000"
deconrr = "-0.750000"
deconrb = "0.750000"
deconrry = "0.750000"
deconrby = "-0.750000"

What do you think? Any recommendations to improve?

Thank you for this shader, looking forward to your advice.

2 Likes

Hey there!

Regarding some features i also like to add / change:

  • clip saturated color beams + scanline saturation
  • crt mask boost + mask gamma
  • change default horizontal filtering
  • use magic glow for better contrast
  • setup bloom and halation mask strengths (if bloom and halation are used)
  • you can also use a notch milder scanlines and use the smart-sharpen parameter - works well with slot masks

Anyway, i think you have a good base.

3 Likes

Thanks for the advice, I will certainly give those a try. I would also love to try out presets made by people if anybody wishes to share.

1 Like
2 Likes

Thank you Cyber. I tried your Mega Bezel presets, they were too dark for me; are they designed to be used with HDR enabled?

Edit: They look fine now, don’t know what went wrong before.

2 Likes

You can also take a look at the links in the first post of the thread.

They are pointing to crt-guest-advanced related projects, many of them have nice presets.

1 Like

Is that with the same game, just different shader? Would games ported to PAL (or the way around) contain any changes to get the screen closer to the intended look.

Also a “stupid” question: If you played an NTSC game on a PAL CRT (which of course supported NTSC), would the picture you get be the NTSC one or the PAL one. I.e. was the TV output the same as that of a NTSC, or where there physical differences and the TV was just displaying the NTSC signal within a PAL image?

1 Like

A typical retroarch core completely ignores the color-connection encoding part, all the shader sees is a properly sized framebuffer. So it basically doesn’t matter for which market the game is intended, sometimes the game resolution is different and you can also see the frame rate difference if the core outputs “50” fps instead of “60” fps. Ofc. you want PAL… region games to run at their native framerate, because otherwise you get faster gameplay and sound.

PAL / NTSC TV hybrids would rather honor the NTSC encoding. PAL60 is another thing, the output frequency and “resolutions” follow NTSC, the color encoding and decoding is PAL.

1 Like

A PAL CRT that is fully compliant to NTSC would be able to do 60 Hz, so the image doesn’t shrink/get distorted.

The other relevant factor here is however the hardware that is actually used to play the game.

E.g. modded PAL Sega Saturn console with 60 Hz switch = still PAL signal, unless the encoder would be changed as well.

1 Like

we had such a TV, a Blaupunkt 37" bought in early 90s and also Secam compatible and the TV remote also included Ntsc color controls.

1 Like

I’ve gotten that everytime I tried to switch on Threaded Video via the Menu.

I’ve also recently seen some random (at least to me) black screens when trying to set either Estimated or Display Reported Resolution. Can’t remember if it happened when setting both options or if it was ust one and then if so, which one.

Concerning this, I was doing some experimenting with 120Hz 10-bit YCbCr422 recently and while it doesn’t look good at all with Mask 12 aka RRGGBBX, it is extremely viable using Mask 6, Size 2 aka RRGGBB!

On another note, I gave CRT-Beam-Simulator another try at 120Hz and still I can’t get rid of those ugly dark bands no matter what I’ve tried.

I gave @kokoko3k’s Adaptive-Strobe-BFI a try instead and it seemed to work flawlessly even at default settings. It’s so seamless, I wondered if it was actually doing anything. I ran some tests sing the Debug parameter and I think it’s working but I have to read over the documentation just to be sure. Most of my presets in my CyberLab Guest Legendary preset pack use Mask 6, Size 2 so I’m going to be enjoying doing some more experimentation with 120Hz Subframes and Adaptive-Strobe-BFI!

1 Like

Default settings should work ok for most cases; Oleds have no need to flip the strobe oscillator which is mainly to help with image retention issues on some IPS panels and the debug parameter is to be used so that one can tweak other parameters so that strobed colors look like the not strobed ones; it’s a one time setup that is tied to the specific display.

Usually I try it with the 240p test suite scrolling test (the one with the sonic assets) and look at the trees or at the brown squares at the bottom of the screen.

Append should give better results than prepend with complex shaders.

1 Like

Really? Okay, good to know. I think it’s dong it’s thing though since I can see the light and dark frames alternating when I use the K key to advance frame by frame.

I had to give up Sync To Content Refresh Rate though and I think Auto Frame Delay might cause some frame pacing issues as well, won’t it?

Update: Just tried Appending to my shader chain and got a black screen with audio but Prepending worked fine.

Oh that’s unfortunate, if you send me your chain/preset i could try to replicate. Maybe on the main shader thread to not pollute this.

is it possible to have “R. bloom” expand more around brighter horizontal lines? https://youtu.be/G_epGPjOw3w?t=19

1 Like

This should be a doable challenge, but it’s quite hard to grasp all the possible irregularities, caused by aging crt tv parts. Every piece might show some uniquess in how it ages.

For example, current implementation grasps my former old and regularly used crt device quite well, other users might experience something else. Failing equipment does not follow strict rules in the process, that’s how i evaluate the related crt features.

1 Like

I modified the preset and switched to Magic Glow while also increasing mask zoom and gamma. I don’t fully understand what sharpening scanlines is for, that setting seemingly only shrinks brightest pixels and is very subtle.

Here is the new preset:

#reference "shaders_slang/crt/crt-guest-advanced.slangp"
CS = "3.000000"
TNTC = "4.000000"
wp_saturation = "0.900000"
m_glow = "1.000000"
m_glow_cutoff = "0.000000"
m_glow_low = "0.950000"
glow = "0.150000"
bloom = "0.150000"
mask_bloom = "0.200000"
bloom_dist = "1.200000"
halation = "0.150000"
scanline1 = "7.000000"
scanline2 = "11.000000"
scans = "0.900000"
h_sharp = "4.000001"
shadowMask = "10.000000"
maskstr = "1.000000"
masksize = "2.000000"
mask_zoom = "-2.000000"
mzoom_sh = "0.500000"
mask_gamma = "3.699999"
slotmask = "1.000000"
slotmask1 = "1.000000"
deconrr = "-0.750000"
deconrb = "0.750000"
deconrry = "0.750000"
deconrby = "-0.750000"

Let me know what you think. Cheers.

1 Like

Not bad, not bad. It has “playable” certificate on it. :grin:

Some scanline settings produce excess horizontal blur, but are very slotmask-w.curvature friendly. Smart sharpen scanlines support this combo by sharpening vertical blur where needed, so you don’t need to adjust scanlines.

1 Like