New CRT shader from Guest + CRT Guest Advanced updates

Yes, this is the setting.

Ah, AMD user here, i can only manage these settings through windows interface, they are enabled, but disabled also doesn’t fix the issue. Curious thing, as i mentioned, is, that interlacing works well through the opaque RA menu, asimmetryc frame pacing when returned to ingame. Using exclusive fullscreen mode is ok for the effect.

1 Like

yes that odd, I think there is something in your system that make it go out of sync ingame without exclusive fullscreen, btw, in your screen you should have setting to show the G-Sync/FreeSync fps that should be something like 50-60 depending on the game, console, or even the core

btw real consoles in real crt can deviate slightly from the standard 60hz and 50hz sync (like the nes, which is 60.0988 which is more than the color fps of 59.94 or even the B/W 60.0 fps!), since there are some tolerance in the analog video since it use Vertical and Horizontal blanking interval to sync

“Sync to Exact Content Framerate” should act closer to how real consoles do sync with the display/tv

1 Like

Isn’t this when the RA menu runs at a higher FPS than the game, so the frozen screen runs at that higher FPS?

1 Like

Maybe there is a different timing algo/codepath involved, dunno. But it can also depend on the core. I get the discrepancies with LRPS2 or Swanstation cores. Also to mention, sub-frames aren’t usable with my setup. So, could be, every person with a specific config has to explore his own situation.

2 Likes

While I’m curious enough to ask technical questions, I was wondering why exactly is it that Phase 3 doesn’t blend checkerboard patterns?

Did it not blend them over composite on an NES? This is how the shader makes it look here in Star Wars, and there’s other examples like the ghost lady’s in Super NES Dracula, and the shadow of your car when you pull into the Pits in Top Gear.

This screenshot is just NTSC Filtering/Resolution at 1.0 and we can see it’s not fully blended, and I have to take it down to 0.75 to get it there and I’ve just been rolling with that limitation, but am ever curious.

Of course finding actual footage of a CRT with this stuff is hard, and I sold all my old consoles apart from the Sega ones.

2 Likes

That’s because the number of phases of a console’s video encoder/output isn’t soley responsible for the blending of dithering. That’s a side effect of the characteristics of the console’s out circuitry as well as the TV’s input circuitry, cable type/input signal type used as well as any filtering circuitry in the TV, for example notch/comb filtering.

It’s the combination of all of these which determine if the dithering looks blended or not.

Even the Mask Type and TVL of the display plays a role. An example of this is how the gradients in the word “METRIOD” blend so much easier when using a Shadow Mask vs other Mask types, while not requiring as much blurring/filtering.

This is why people who think CRT Shaders are only about simulating a TV are missing half the plot because the output of different consoles/systems can vary quite a bit.

https://www.chrismcovell.com/gotRGB/index.html

This is so true and why we need different shaders per console. One size fits all is a sad myth.

This is why I started making Console Specific Presets.

However, shaders like CRT-Guest-Advanced as well as DariusG’s CRT-CONSUMER-1W-NTSC-XL have excellent algorithms to detect various differences in console’s output like proper Phase, Pixel Clock and whether or not frames are merged (averaged) or not making the possibility of a one shader for all systems a reality. Guest-Advanced even detects Interlacing so it can adapt to systems which use Interlaced video modes.

So it’s basically very much there. It’s just up to the user to find the right balance which might cut through all of the other minor differences or optimizations possible which one can apply if tweaking an individual game or style of games based on the characteristics of a particular system.

So to put it another way, I’m confident that I can make a single preset that would look good on possible all systems using CRT Guest advanced including adjustments for things like overscan and ensuring that the Gamma is balanced or average enough to not have any system looking too dark or another too bright.

A few things which aren’t automated in CRT-Guest-Advanced are the Genesis Luma Fix, Genesis Palette Fix and SMS Blue Fix but I think at least the Genesis Luma Fix is switched on Automatically for Genesis cores when using the latest Mega Bezel.

The Scanline Classic Shader is another one which comes to mind which is supposed to be able to replicate differences between different console output signals properly. However, I’ve noticed that the author is taking the approach of providing separate presets for each Console/System, which they themselves are creating for the community.

1 Like

Super accurate ones too. Though some aren’t loading in the latest Nightly’s FWIW. :x

Don’t use the latest nightly then

Phase 3 utilizes a different lowpass luma filter, which is the same as from the originating maister’s ntsc 256px 3-phase shader. The theory behind “why does it not blend” is, that technically horizontal pixel resolution of a console differs from the general standard signal “resolution”.

Ntsc progressive signal bandwidth over let’s say composite connection is the same if the buffer has 256 horizontal pixels or 320 horizontal pixels. In this signal space a “1/320 screen 1-pixel gap” is easier to blend compared with a “1/256 screen 1-pixel gap”. So it blends while 256px horizontal screens get more “ntsc resolution” pex-pixel and it doesn’t blend.

With a console you could try RF instead (lower signal luma “resolution”). With guest-advanced you can still try the mixed-phase setting (4.0) which is here for some reasons, one of them is that 256px content gets the dithering/checkerboards… blended while still looking similar to 3-phase color-artifacts wise.

2 Likes

Confirmed my suspicions about the Phase 4 setting! What I generally do for my presets is leave it at Phase 3 for accuracy and put Fringing at 1.0 and NTSC Filtering at 0.95 or whatever won’t turn Yoshi’s Island Yoshi into a cyclops. The fringing blends in a kind of unique way (compared to Genesis games) that was accurate last time I could test a CRT with Star Wars.

C-3PO in particular, feels like one of those times where the sprite artists intended for those diagonal patterns to be there like in the Ninja Gaiden/Mike Tyson streets.

2 Likes

Some small truths can get forgotten, but time to tend some attention to one of them. Namely, that a pal composite appearance dissolves dithering. :grinning:

So i improved the low-pass algo a bit, added some extra code and now can be quite better:

Old:

Improved:

Improved with de-dithering booster:

6 Likes

New Release Version (2026-07-11-r1):

Notable changes:

  • PAL version low-pass filter improvements; sharper and better at dissolving dithering
  • PAL version De-dither Booster functionality added; values may vary from game to game
  • PAL version various small improvements, better experience overall
  • Edit: smart checkerboard/bar differentiation
  • New: PAL Delay Line parameter value descriptions added
  • New: PAL alternate UV chroma filter changed
  • New: PAL minor tweaks and cleanup
  • New: NTSC “4-phase” chroma now looks like 3-phase
  • New2: PAL Chroma Scaling/Bleeding parameter added
  • New3: PAL Big De-dithering Booster fidelity improvement
  • New4: Various improvements (PAL, NTSC)

Download Link:

https://mega.nz/file/Q1523SLJ#SIApdvqdTHwn-nkCl_uejqtiDsQPb5yzZViAo8QRDhM

11 Likes

These new functions and improvements are looking insane! Would there be any benefit to bringing these over to the NTSC side? It’s always a struggle to have great dedithering without artifacts/collateral damage while keeping everything as sharp as possible.

1 Like

This would require a lot of circumstances to be considered, but is doable i guess. I went for a different approach with PAL shaders, so some options are easier to add without some fallout.

2 Likes

What if there were a new CRT-Guest-Advanced-NTSC shader without some of the “baggage” of the old made from the ground up with consideration of all of the learnings thus far? Seeing that you went for a different approach with the PAL shaders, maybe this could new NTSC shader could be an evolution of that?

1 Like

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