New CRT shader from Guest + CRT Guest Advanced updates

New Release Version (2025-10-11-r1):

Notable changes:

  • crt-guest-advanced-pal preset added
  • update: some small tweaks (pal)
  • update: merge fields implemented (pal)
  • update: phase fileds improvements (pal)
  • update: pal phosphors enabled, interlacing enabled (pal preset)
  • update: hires mode default support, nice changes, cleanup (pal)
  • update: QoL changes, better filtering (pal)

Download link:

https://mega.nz/file/kppQEBKb#SCBWECbK8J4iK9wNJUDCoeSdnjZwAcW_RiFu8vqWCoQ

17 Likes

thanks! finally PAL get some love! I did some tests since the 1st update, its even nicer with the new silent updates!

BTW, how hard to make a shader that switch between PAL and NTSC based on the game? I remember some old TVs switch based on the FPS (hz) which will fail in case of PAL-60 (black and white image since it treated as NTSC), newer one get smart and will know if that is a PAL-60

also, I feel like crt-guest-advanced-pal treats everything as it is Normal 50hz PAL, which is what I saw in Famicom/Nes and mega drive/genesis but not the PS1 or PS2 which was PAL-60 most of the time

2 Likes

Thaks, @Jobima for replying. Yeah, it’s being polished atm., currently i’m quite content with the pal shaders added.

Double the shader instructions, double the fun! :wink: I guess it will stay separate for performance reasons and for better clarity. Most probably a “Denial Of Service” won’t be implemented either if “wrong region content” is selected with the shader. :grin:

It’s a decent concern i guess, but the pal shaders can more or less be the same, the only thing that changes and needs to be addressed by the shaders is like a very minor drop in YUV bandwidth.

2 Likes

maybe also the speed of dot crawl and rainbow and others

1 Like

With PAL-60, by some info, you can set the phase to 1.0 or anything that works for you. The 60Hz implementation isn’t as formalized as normal PAL standards, so there were deviations. The phase timings were broken, so best you use a 1-phase setup with “static diagonal effects” for such content.

Or not…shaders can handle the 50Hz vs 60Hz speedup quite well. Generally i’m not adding a frame-skip or something, because it would break the phase flow.

1 Like

New Release Version (2025-10-12-r1):

Notable changes:

  • been improving the pal shaders recently, many nice changes
  • better chroma and luma filtering
  • added s-video and rgb-scart modes
  • note: p-uae hires+single line mode is supported out-of-the box
  • ofc. the pal experience is greatly modifiable with relevant parameters
  • update: functionality update
  • update: think it’s out of “beta” now :smiley:

Download link:

https://mega.nz/file/FooSHZYK#Al0TyaazhytYDuF_ZLsBkW3iVIq64VO5VsdpqOKx_fk

16 Likes

AzMods20251014

Fully updated for crt-guest-advanced-2025-10-12-release1 (rev 3/final), incorporating the last few months of changes into crt-guest-advanced-ntsc-decoupled, as well as crt-guest-advanced-pal-decoupled made using guest.r’s most recent work.

3 Likes

Guest and also jobima +devilsingh, is it possible to implement a extra configuration for both RA and the reshade versions to emulate what Dgvoodoo and DosBOX Staging CRT monitors settings/preset modes does

1 Like

it seems that 480p scanline, which I don’t think CRT Guest Advanced currently can do

They can nicely develop with 1440p, with 1080p displays users can use Reshade’s crt-geom or something similar. I’m probably not adding viewport alternating scanlines soonish, dunno about Reshade.

1 Like

That’s probably just a resolution/scaling factor thing as Guest alluded to, a scaling factor around 2x is too low (or at least I haven’t found a working scanline config) Your screens also have visible scanline artifacts if you insist on using the full 1080p instead of 960 lines (assuming 480p base res which I’m not sure you’re using). Guest won’t fix this.

You can use "no scanlines mode’ however and attach a separate scanline shader, this also works in Reshade. In Reshade, there is also the option of setting a shader’ Y height to full height (in your example 1080), which will generally make CRT shader scanlines disappear. Additional scanline shaders where height can be differently set can be added then.

2 Likes

Users with 1080p displays can also use the internal resolution of 1.5 in interlacing pass for decent results. Works with integer scaling also.

One of the problems of “adapted” scanlines is also, that the most “obvious” implementation simply needs integer scaling enabled, or it looks quite bad. With integer scaling, it looks much nicer.

Without integer scaling:

With integer scaling:

So, dunno, it’s a codepath heavy change…

3 Likes

I use Guest’s shader with 480p content scaled to 1080p quite often and I think it looks great. To avoid Moiré effect I use 1.5 for the Y-res multiplier as Guest explained, but you can also test with using High resolution scanlines and/or VGA double scan set to 1. Even if that’s not their first purpose, these parameter seems to reduce the number of scanlines while keeping the look.

Maybe check a few of my presets here that I got running for a few SVGA games:

1 Like

Greetings @guest.r. It’s been a while since I’ve asked you if it’s possible to add a feature or 2. Lol

I’d really like the ability to independently control the resolution scale for 2 Phase and 3 Phase mode. Maybe have a 3 Phase Offset or just an independent control.

That above scene triggers 3-Phase Mode and you can see how blurry the smaller text is at this NTSC Resolution Scale. This NTSC Resolution Scale is the point where dithering can no longer be seen and new colours appear seamless. However this phase is used throughout many scenes where there is a lot of dithering.

Is it possible to increase the NTSC Chroma Scale / Bleeding (3 - Phase) Range to a higher value like 4.00?

Would it have any effect if I manually increase it beyond 2.25 in its current form?

Also, I’ve been trying to fine tune NTSC Resolution Scale by manually entering values beyond the second decimal. Does that have any effect or are the values just rounded to two decimal places?

NTSC Resolution Scale - 0.95

NTSC Resolution Scale - 1.00

NTSC Resolution Scale - 0.95

NTSC Resolution Scale - 1.00

1 Like

Parameter step (last value) can be altered without much issues, although some parameters are present in more passes and the values muct be identical everywhere, or the shader won’t compile.

3-phase color bleeding is tricky, since chroma values must be “averaged” by the low pass chroma filter afterwards or diagonal “chroma lines” appear. Both resolution scaling and chroma bleeding usually narrow the filter range.

With artifacting above 0.5, safe area of combined sum of resolution scaling and color bleeding is around 3.25. So like resolution scaling of 1.6 and chroma bleeding of 1.6 is max. without artifacts.

It’s to be considered, that resolution scaling base value is already 1.0, so it’s like max. 2.25 for chroma bleeding.

One of possible solutions for a compromise is to max resolution scaling and lower chroma bleeding, so only luma sharpness will get boosted beyond.

This is why I prefer to use my idealized “3D-Comb Filter” presets when playing Turbo-Duo/PC-Engine stuff because for the additional colours created by dithering to look “pure” and virtually indistinguishable from native colours, artifacts and fringing need to be at 0, otherwise we get exactly what you described above.

I think I’ve already tried this to a certain extent but from my experience lower Resolution Scale blends dithering better than lower Chroma Scale values.

Does that method completely blend dithering in the Gate of Thunder or similar examples in your testing?

Thanks a lot.

1 Like

You can use mixed phase to blend dithering. It blends dithering by design. I guess this shouldn’t be an issue, i suggest you minimalize the resolution scaling step to 0.005 or similar for fine-tuning. Some changes don’t show up on UI, but the effect is taking place.

2 Likes

I’m guessing the answer is no, but is there a way to add YIQ control to guest-ntsc? Seems kind of perfect and idealized, as is. I think it’s good for achieving “reference composite” (e.g., composite on a 2005 Sony Wega). Does it actually emulate the asymmetric bandwidth/limited bandwidth thing?

It’s a little too perfect/clean regarding color, doesn’t seem to really seek to emulate the desaturation from the encoding process the way some others do.

1 Like

Okay, I guess I’ll try to revisit this then. I did try it out when it first came out but then felt that leaving things on Auto might have been more accurate especially as I didn’t know if mixed phase was actually a thing.

I knew there might have also been some visual factors as well but again, that was so long ago that I can’t recall exactly what they were.

Overall I’m very satisfied with the state of things. I think the only thing that I think looks wrong with PCE games are the examples of text in Hi-Res scenes looking too blurry at low enough NTSC Resolution Scales to allow for complete blending of all dithering.

Besides in the Super CD-ROM² System screen, there are a couple examples in RPGs where I’ve seen this.

…And of course NTSC Artifacts and Fringing are mutually exclusive with clean additional colours achieved via checkerboard dithering blending.

1 Like

I got myself 2 presets that really became bread and butter for me for 8 til 32 bits.

i’ll see if i can share later, for now here is a comparison with both grile and shadow mask

Composite

S-Video

RGB

1 Like