New CRT shader from Guest + CRT Guest Advanced updates

New Release Version (2026-06-02-r1):

Notable changes:

  • Bloom Pixel Sampling improvements (smarter application).

Vanilla example:

Download link:

https://mega.nz/file/c4Q3jaYZ#iic91S_0J74zpp4Hk-28XWhTBe-G7-GbFPoG_okJVD4

13 Likes

Thanks for your hard work and dedication @guest.r!

After experimenting with Bloom Pixel Sampling, I ended up changing most of my presets to a value of 2.00. I notice that the range now stops at 1.00 in the shader parameters for that parameter in 2026-06-02-r1.

When I manually switch from 2.00 to 1.00, it seems identical. Do I have to update all of my presets which have a setting of 2.00 to 1.00 or would leaving them at 2.00 provide me with the same Bloom Pixel Sampling as 1.00?

1 Like

Hey! Thanks for the reply. Yes, you can leave parameter values at 2.0 with the new version, it’s the same codepath if parameter is greater than 0.5.

New version is sortoff a good merge of previous 1.0 and 2.0 “codepaths”, personally i like it more compared with each previous individual versions.

1 Like

20260604_165422

Just some observations and comments.

That whitish scanline was the sole reason for me switching from “Bloom Pixel Sampling” mode 1 to 2. The reason being while I liked they way mode 1 blended everything, the whitish scanline was “impossible” to remove. At least with mode 2 I was able to get rid of it by increasing the “Scanline Beam Shape Edges” parameter to 20.

With the newest update, I have to disable “Bloom Pixel Sampling” to get rid of the whitish scanline.

I already started adjusting my presets to account for this but I’m wondering if I was already at the sweetspot with mode 2 in version (2026-05-23-r1)

3 Likes

New Release Version (2026-06-05-r1):

Notable changes:

  • Bloom Pixel Sampling Mode 2.0 re-implemented.

Download Link:

https://mega.nz/file/N0IhlJwC#trQfyCtrrd02QCD2Ffm2S3y4fRq3VAEKzFsxc8-0RJY

11 Likes
6 Likes

Cheers m8! Time flies when you are having fun. Keep up the good work!

2 Likes

setting “Fine Bloom/Halation Sampling” to “5” also help

2 Likes

Thanks, that’s the only setting I’ve used since anything lower is too blurry/“soapy looking” for my tastes.

1 Like

Thanks very much @guest.r! I’ve always felt that this was a legacy we’re creating here and it’s you’re brilliant work and dedication to CRT-Guest-Advanced that made it easier for me to bestow such a prestigious moniker upon this particular set of CRT Shader Presets.

Working and interacting with you these past few years has truly been an honour.

May you continue to be successful in all your endeavours. :beers:

3 Likes

New Release Version (2026-06-06-r1):

Notable changes:

  • Old: Bloom Pixel Sampling Mode 2.0 re-implemented.
  • Nice changes to Bloom Pixel Sampling Mode 1.0.
  • Also commemorating the 20th Anniversary of my ePSXe OGL2 Shader pack 1.0 publishing.
  • (Kudoz to Mr. Bernert)

Download Link:

https://mega.nz/file/ssBT2KgJ#WFL06qtEBv2yXDHOxgFW9u5HyLYamCG1Dp4cRNpJEaQ

15 Likes

Oh my, time flies, congrats!

5 Likes

I was playing a bit with this awesome shader and noticed that while scanlines bend when I use curvature, phosphors from masks do not. Is this the intended behavior, or is there a trick/setting I’m missing to get the phosphor mask to curve along with the rest of the screen? Thanks for the amazing work!

1 Like

Hey! Glad you asked. Standard phosphor mask emulation on modern displays is horizontally linear on purpose, because masks would need to be interpolated with non-integer factors if they are bent into a curved shape.

This is usually visualy acceptable only, if the mask width is quite large, like 4+. Most implementations, which comply to curvature, take a RGB type mask, enlarge it with interpolation an then the results are acceptable. Downside is that this doesn’t work to well for narrow (hight TVL)/sharp edged masks and double implementation would be needed for these.

Another honorable mention is last pass of crt royale, which solves these problems with the last geometry_AA pass, which can be added as the last pass. It can take a flat masked “image”, add 3D curvature and smooth out interpolation irregularities with some advanced AA technique.

If you want to test it, load a preset, increase the number of shader passes by 1 and then add this pass.

5 Likes

New Release Version (2026-06-22-r1):

Notable changes:

  • Slight Bloom Pixel Sampling tweak.
  • HD and NTSC main filtering kernel changes (better consistency), one parameter removed (sharpness definition) due obsoletion.
  • Now the Sigma parameter value also automatically scales with the Filter Range parameter (HD, NTSC versions). Sigma can be fine tuned, but now tweaking is much more less time consuming, with other words, sigma tweaks are now relative to filter range, not absolute. Default values didn’t change.
  • Now Sigma values automatically scale with the number of taps in blur/bloom passes. Tweaking is much faster while same results are possible. Default values didn’t change.

Download Link:

https://mega.nz/file/gsxwAQLb#DiJFx3zEPx8ceeGbQQdTejmaHfmx4TDQgQB3V4Qo_Mc

12 Likes

I think that a nice update, If I’m not imagining things, the picture now looks more like CRT than ever before

2 Likes

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.

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.