New CRT shader from Guest + CRT Guest Advanced updates

Regarding 480i video, like interlaced set to 6… I was thinking the flicker would be more realistic at 85hz, or 100hz. Is it possible to program things like that or just not feasible?

The real thing flickers at 50 or 60hz; I guess the effect would be almost invisible at 100…

1 Like

Yes, but I also know I could set my CRT monitors to 72, 75, and 85hz. Gets more complicated with the SonyGDM-FW900, which I ordered once but arrived smashed to bits…

This thing could even pick 120hz refresh in 4x3 mode, 95 and 100hz in 16x9 mode.

1 Like

If “Realistic” is your target, then back in the day, arcade CRTs were set to the 1x source refresh rate, not 2x.

Also, usually you want the monitor refresh rate to be an integer multiple of core one to achieve perfect frame pacing (shaders render at core refresh rate by design and have no control over it).

Shaders can exploit higher target refresh rate through subframes to emulate other CRT “features” like lower motion induced blur or phosphors decay, but the flickering that comes from interlacing effect needs to stay at 1x source refresh to match the original behaviour.

1 Like

Yeah I understand if it’s a technical limit. Realistic isn’t my target in the sense that I don’t notice 480i hooking a Dreamcast up to a CRT like I notice 480i in shaders. And I noticed that when my monitor is set to a higher refresh rate and I’ve got a menu up in Retroarch, the flicker on Mode 6 gets so much more similar to how I see it on this old Panasonic CRT.

60hz used to drive me nuts on my NEC MultiSync monitor back in the 90s, I always had to set it higher to get rid of the flicker.

you need to use Phosphor persistence (Afterglow or Phosphor decay) shader after interlace, since the one that already in guest-crt-guest-advanced is done before interlace, also Jobima crt guest advanced presets

6 Likes

The Sonic Adventure intro looks great now. But the flashing on white screens like the Dreamcast/PSX intro screen is still really bad for me.

On the other hand since I understand Cyber’s Legendary Shader better now, 480p (Interlaced Disabled) looks good enough I probably don’t need interlacing.

3 Likes

with what preset? since it’s fine with my “Jobima CRT Preset TV 480i V8”

1 Like

I appended Phosphor Persistence to one of Cyber’s presets.

2 Likes

This flickering that you’re seeing with CRT-Guest-Advanced-NTSC might be a relatively recent anomaly. I’m almost certain that if you try one of my slightly older preset packs which use CRT-Guest-Advanced-2024-02-29-Release1 for example CyberLab_Megatron_miniLED_Death_To_Pixels_4K_HDR_Shader_Preset_Pack_24-05-25, CyberLab_Megatron_NX_W420M_Death_To_Pixels_4K_Shader_Preset_Pack _18-11-24 or CyberLab_Megatron_NX_Death_To_Pixels_4K_HDR_Shader_Preset_Pack _22-05-24, you’ll see that that phenonemon doesn’t exist.

As a matter of fact, I only recently noticed that flickering with the PSX BIOS screen in my creation of my Legendary preset pack which I decided to use up to date CRT-Guest-Advanced-NTSC which behaves differently from the older ones.

The first time I noticed any changes which introduced flickering was around when the NTSC Phase Mode 5 - PCE was added and subsequently Font Preservation. I found that an intermediate version of the Font Preservation gave better results than the newer version at the time (at least with the PCE’s “m” in the Super CD-RO² BIOS screen). Later I realized that part of the reason for differences in my experience vs what Guest.R had been reporting might have been due to my use of XBR-LVL-2 higher up in the shader pipeline.

Fast forward to now and I’ve only recently begun to wrap my head around the temporal behaviour of the more recent versions of CRT-Guest-Advanced-NTSC.

I read all about Jobima’s experiences and successes with Phosphor Persistence so I was thinking that I could just follow along that path when the time came. I haven’t yet gotten to that though as my primary focus has always been the consoles that I found most nostalgic, which are mostly the pre-PS2 era consoles. At some point though, I will hopefully try to address this highly visible flickering in interlaced content.

2 Likes

From my experience most of the interlacing annoyances, excluding the authentic interlace artifacts etc., come from non-symmetric frame time division.

Here is what works best for me in Windows: desktop refresh rate 60Hz. In retroarch: VSync ON, VSync Swap Interval: 1.0, Freesync/GSync: OFF.

Previous versions had the interlacing part implemented after ntsc-passes and an annoying sync was established between these two, only showing the same phase in 2-phase mode etc. Have tested the new vanilla 2-phase mode on a laced PSX screen, and it seemed regular. So i guess user experiences may vary.

Anyway, i almost suggest that folks use the interpolation unless they’ve got a perfect sync.

2 Likes

indeed

for me I only need “In retroarch: VSync ON and Sync to Exact Content Framerate (G-Sync, FreeSync) ON” and in Windows I use 240hz (max in my monitor) also I enable G-Sync for windowed and full screen in NVIDIA control panel

2 Likes

Yeah, i guess it works nicely for you. With a similar setup i can see nice interlacing through Retroarch opaque menu (F1), but not when returning to game.

Edit: switching to exclusive fullscreen mode fixes the issue (VSync + Freesync ON). It can be an acceptable compromise.

3 Likes

you mean with windowed fullscreen “off”?

it work fine with “on” in my case, maybe you do “Disable Fullscreen Optimizations” and/or didnt “enable G-Sync for windowed and full screen in NVIDIA control panel”?

or maybe you mean retroarch in windowed mode, which I didnt use or test

1 Like

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