New CRT shader from Guest + CRT Guest Advanced updates

Dunno if there is an easy and quick better solution on table soonish, different features are to be emphasized with ntsc shaders (de-dithering, color artifacting, color bleed, rainbowing, temporal effects, phases, different systems, fields merge…), not to mention some enhancers like sharpen, taps management, edge colors and speedups etc.

I believe i could complicate it further for a more realistic “pipeline”, hence simplicity is also valued.

Will see what comes from this direction, cannot say anything certain.

1 Like

Nevertheless, i’m more happy with pal shaders now.

A quick comparison between ntsc svideo default and pal composite default presets:

Edit: notice, how the pal colors are much cleaner.

The pal standard sacrificed a portion of vertical color fidelity - the delay line effect- for a much cleaner horizontal appeal. One has to pay attention with the delay line, like “the line below the other lines” feels a bit odd.

Anyway, current chroma implementations are a bit projected, still room for more authenticity.

4 Likes

isnt this how PAL is better than NTSC in real life? :slight_smile: but anyway the ntsc default is bad in ntsc shader

2 Likes

PAL went a better compromise in some aspects, one of them is color fidelity and stability. NTSC’s nickname is often “Not The Same Color” or “Never Twice the Same Color”. 50Hz vs. 60Hz can be discussed imo.

Regarding the composite connection, the above ntsc image is indeed misrepresented, meaning both “I” and “Q” chroma components are as they would have low bandwidth.

Fact is “I” (more reddish-orange flavour tones) had in fact 3x more bandwidth compared with “Q” (1.5 MHz vs. 0.5 MHz).

I somewhat hesitated to fix this as some well-known examples might suffer (Dracula eyes…).

Lowering the number of TAPS has also the same effect as effectively increasing chroma bandwith (2-phase). But this aspect might get improved nevertheless, i guess a well thought-through solution would be best.

3 Likes

Wow! I would like to be able to get the accurate bandwidth settings even if it’s just a starting point for my custom tweaking.

Perhaps maybe a note on what settings give what result might suffice?

You mentioned lowering the number of taps. How would we know what number of taps provides accurate I:Q bandwidth and ratios?

This is not to say that I wouldn’t tweak my way towards dedithering and blending whatever I see fit but it is nice to have a standard in place to work around and I think settings which match a typical CRT TV would always look good regardless.

Anyway, keep up the great work as usual!

1 Like

isnt almost all consumer tv do this? Were composite video colors that bad, in practice?

you can copy my settings and add it to the CRT-Guest-Advanced-NTSC preset, I think it’s well balanced in all cases

2 Likes

Ah, now i remember this thread, i sparsed it some time ago indeed. Guess it’s another argument to honor decoding over encoding practices on the consumer scale.

But anyway, if folks want to test separatelly handeled I and Q resolutions then the crt/gtuv050 is the way to start.

2 Likes

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