New CRT shader from Guest + CRT Guest Advanced updates

Yeah, I noticed that ShaderGlass supports RetroArch shaders. Unfortunately, I haven’t been able to get satisfying HDR results with it, so I decided to stick with Guest Advanced instead.

Now I’m just trying to figure out how to configure Guest Advanced to achieve a high-TVL PVM look. With Megatron, it was so easy to just set it to something like 800–1000 TVL and it looked great. :sob:

If anyone has recommendations for Guest Advanced settings that get close to that kind of high-end PVM appearance, I’d really appreciate it.

1 Like

I’m playing Shadow Hearts, and I absolutely loved the result. It looks gorgeous. Thanks for the setup!

Out of curiosity, what would you consider a non-conservative setup?

1 Like

Thanks for trying the setup. A less conservative setup could go by reducing mask strength (to provide an even more high TVL feel) or using more dense masks (like 0, 5 or 9).

It could also add more scanline saturation, combined with stronger (de)convergence. The look could also be shifted a bit towards the BVM area.

I had to resort to web screenshots for a PVM look, there were different models and screen sizes involved, so the parameter combo looks more like a middle ground.

I hope I’m not taking too much of your time with all these questions. Since you mentioned that “the look could also be shifted a bit towards the BVM area,” I was wondering if you have any suggestions for a setup that’s specifically aimed at achieving a convincing BVM look. I’d be really interested to hear what settings you would use.

This is mostly out of curiosity, but more broadly, what do you think current CRT shaders are still missing to make them truly convincing? Are there any characteristics of real CRTs that you feel today’s shaders still don’t capture accurately?

1 Like

they still missing some, see Crt effects list and its replies

anyway, current CRT shaders are indeed getting better and better by the time

2 Likes

Here are parameters for a semi-conservative BVM look and crt-guest-advanced.slangp:

FINE_BLOOM = "3.000000"
glow = "0.000000"
mask_bloom = "0.500000"
gamma_c2 = "1.300000"
clips = "0.200000"
gsl = "1.000000"
scanline1 = "2.500000"
scanline2 = "36.000000"
beam_min = "2.250000"
beam_max = "1.600000"
scans = "1.000000"
scan_falloff = "0.500000"
h_sharp = "7.999998"
s_sharp = "1.200000"
smart_ei = "0.150000"
shadowMask = "9.000000"
maskstr = "0.700000"
mcut = "0.700000"
maskboost = "1.300000"
mzoom_sh = "0.250000"
mask_gamma = "1.000000"
mclip = "0.400000"
deconrr = "0.500000"
deconrb = "0.500000"
deconrry = "0.500000"
deconrby = "-0.500000"
decons = "1.500000"

Anyway, BVM presets usually need a 4k display to manifest properly, mostly scanlines can develop much better there.

Haven’t posted in this thread in a while, yo guest.r. So I came across a new setting called “Bloom Pixel Sampling”, not sure which release you added that in but without knowing anything about I turned it on, I seem to understand what it’s suppose to be doing to the image.

Here’s with the setting off:

With it on:

It’s best noticed at the top on top of the numbers and the the eyes of those skull faces, it goes off this extra hazy look. Is that the intended purpose of that setting? And if so is there another setting to dial it down some? It’s a really strong effect but it looks cool.

2 Likes

Heya Sonkun, glad to see you back!

It’s a bit tricky with “bloom sampling” and your presets, because they more or less depend on magic glow for mask mitigation, so the differences are rather small.

Bloom pixel sampling is otherwise quite nice to dissolve small checkerboards etc. with non-ntsc/pal versions and to introduce a smart-smoothing look, deal with gradients etc. The effect strength is controlled by bloom pass sampling, so it’s quite versatile.

Needless to say, that it looks better with 16 bit games, compared with 8 bit ones due to color options, distribution and usage.

1 Like

Thanks man I’m glad to be back, I should be around more regularly now for the most part.

I see. That “smart-smoothing look” is what I like the most from it, gives the image that hazy crt like vibe. I went back and tried it again adjusting the “fine bloom/halation sampling”, it seems to give a better balanced look on 3.

First here’s no bloom pixel sampling:

Bloom pixel sampling on:

Bloom pixel sampling with bloom sampling set to 3 and both vertical and horizontal bloom sigma settings lowered to .25:

It makes a small difference. I’m not sure if I’ll incorporate this feature or not but I’ll see as I continue tweaking in the lab.

8 Likes

@Jobima First, thank you so much for your work on porting CRT guest updates to to Reshade; Much appreciated. I noticed 2026-07.23 was released recently and thought I’d see if I could port it myself. Then I learned what steps are needed to convert slangp files to fx and thought… wow, that’s a lot of manual work. How do you do it? I’m thinking a script to parse the slangp file, then compile and convert the files. And then another script to merge the outputs, or something like that? I was not able to find any easy way to do it, so I was wondering if you could give a peak behind the curtain, so to speak.

I didnt make it from zero, it’s DevilSingh/HelelSingh port in the first place

anyway, to update it I do use compare/diff plugin in Notepad++ with slang versions so I know what changes, then I do the same changes in reshade manually

BTW, 2026-07.23 already ported but inside my preset of reshade since Jobima crt guest advanced presets

3 Likes

Wooowww, that’s hardcore. I also tested that approach but the shear size of the diff scared me away pretty fast. Much respect for you! And thanks for the link to your updated reshade presets. I will be trying that one later today.

Just did a test run of the 8.24 presets. Works like a charm. But I noticed that, although the shader is called guest_advanced, it seems to be the guest_ntsc version. A diff with the previous version seems to confirm this.

1 Like

it based on my preset (which is based on guest_ntsc version) as I said, so the defaults are changed and it has crt-black_crush-koko as I said

1 Like

Hey @guest.r, so I’m putting together some new rf type presets and I see the change up and how you dedicated a small section to just rf settings in the ntsc shader, it’s been a while since I tweaked any kind of rf anything but did you remove a setting by chance? I think it was labeled something like “static noise” or something, I really liked that setting but it doesn’t seem to be there anymore in your latest update.

New RF test screenie:

2 Likes

Hmm…static noise (or any kind of dedicated noise) wasn’t present in older ntsc shader releases, but you can look under the deconvergence pass settings, where there is a decent parameter section for noise.

1 Like

That’s right it was right at the bottom where it’s always been, forgot it was down there the “add noise” setting in the negative values. That setting gives the image a nice “dirty” look, almost like looking at 90’s gaming magazine photos:

Off:

On:

Alright got RF presets done already, time to go make some new s-video presets.

3 Likes

Hey! @guest.r Long time listener, first time caller… I had a few questions about higher internal resolution and downsampling options.

  1. In “crt-guest-advanced-hd” If I am using for example… 4x native res, What paramaters do I need to change?
  • “INTERNAL RESOLUTION (Quick Setup)” Do I change this to 1 and what does it do?
  • “Internal Resolution” - I know I would change this to 4, but do any other paramaters need to be changed, like “High Resolution Scanlines”?
  1. With “crt-guest-advanced-ntsc” If I wanted to run 4x native res and then use this shader to downsample back to native res so the shader works… Which paramaters do I change?

-What does “Smart Scanline Mode” do? -How does the “Internal resolution Y:” setting work/ -Do I need to chnage both Downsampling-X and -Y paramters, and how do they work? -Do I need to change anything related to NTSC if downsampling?

Sorry for all the questions I have tried to read through all of this and found some things related… Thank you for all your hard work!

1 Like

Hey! Nice for stopping by. Here are some clarifications regarding your questions, hope they will make some sense… :smiley:

First of all, it also matters if you are using scanline mode or not. If using scanlines and increased internal resolution, then you are good with Internal Resolution Y: 0.5...y-dowsample divider parameter set to the internal resolution multiplier. You can use X/Y downsampling for the pixel influence effect or increase Internal Resolution with the HD version.

You change the first parameter named Internal Resolution for the increased filter range. It’s WYSIWYG coded, so you don’t need to set it to 4x if to blurry, maybe 3.5 will do better for you etc. For scanlines it’s already explained a bit above.

This is a parameter section description, has no operational value, you must alter the parameter below.

High resolution scanlines enabled make sure that the vertical scaling component is also enabled if using a pre-scaler or increased internal resolution. Only valid when using scanlines and compatible with the Internal Resolution parameter with the HD version.

For the authentic buffer shrink downsampling it’s best to pre-pend a DREZ preset, there are many and serve the exactly this purpose. Normally shader parameters can’t control buffer sizes, so guest-advanced shaders do this visually while maintaining original output buffer sizes, but this can be slower.

With the ntsc preset you can lower the "NTSC Resolution Scaling" parameter to a reciprocal of the internal resolution (i.e. 0.5 for 2x, 0.33 for 3x, 0.25 for 4x…) and use the speedup parameter. Later on you set Downsampling-X and -Y paramters to 4x and add some neighbour pixel influence with Downsampling parameters.

Setting the Internal Resolution Y: 0.5...y-dowsample divider to 1.0 makes sure you are in the correct scanline mode regardless of the internal resolution or resolution changes which might trigger interlacing… It’s a set-and-forget setting for users who want scanlines. It’s benefits are you can change internal resolutions and use it with different cores without changing the preset.

“INFO --> Internal Resolution Y: 1.0 - Smart Scanline Mode” is only an info line for the next parameter and how it’s working, it’s parameter values are here because even an info line must be a parameter and must have a value…

Many settings in the guest-advanced shaders have, as i mentioned, immediate visual impact, so it’s ok to play a bit with them, see how it goes and keep the most appealing setting.

2 Likes

Thank you for all of that clarification, it was extremely helpful!

2 Likes