New CRT shader from Guest + CRT Guest Advanced updates

You know I’m always down for new features lol. I gave it a quick look using my current preset settings, right off the bat I noticed it affects scanlines in bright areas. Here’s mask control at default settings:

Here’s afte5 bringing it down to .70:

You can see the difference in Hulk’s skin.

When I come home later I’ll play around with this more. So far with my current settings bringing that mask control down by one to .98 gives a nice little boost in brightness.

4 Likes

Hi Guest, I’m almost there and I swear I won’t bother you anymore. I used, with this order, ScaleFX - FXAA - Guest Advance. Exactly as you advised me. Then I changed the following values ​​as follows:

  • Magic Glow ON
  • Scanlines Type 2
  • Mask Type 9
  • Slot Mask Strength Bright Pixel 1,00
  • Slot Mask Strength Dark Pixel 1,00
  • Sloth Mask Width 100

I’m close to my personal perfection, and I’ve seen that it also smooths 3D with excellent results but one problem remains: I can’t understand or find the right setting to adjust the brightness and make the image more vivid. Please help me understand where I need to act so I’m OK with everything. Thank you with all my heart !

2 Likes

You can just add a notch of bloom or mask bloom. To lift the darker colors just use gamma correct and increase it a bit.

Slotmask strengths are otherwise ideally the same values as mask low and crt mask strengths respectively.

4 Likes

Guest thank you from the bottom of my heart !!! I’m on the right track, thanks to your advice I have a light shader capable of smoothing 2D and 3D at native resolution with excellent results. Together with the “Sonkun” version (from which I’m looking for a more vintage style) I’m satisfied. Thanks for your work and your help! In the future when I have adjusted the settings better and tried everything on various platforms I will share the settings.

6 Likes

You can also try raising “post brightness” a bit as well. My presets are bright and vivid because I go crazy on all the different kinds of glow, halation, gamma correction, post brightness but somehow I make it work lol. Later on today I’m gonna see what that new mask glow setting will do, looking forward to it actually.

3 Likes

Greetings @guest.r, just reposting this here because I’m not sure if you saw it since I edited and updated it with descriptive text and other information. Sometimes I post in stages using both my phone and computer and you liked the post before I had completely finished.

1 Like

New Release Version (2023-02-13-r1):

Notable changes:

  • Magic Glow mask strength parameter range enlarged, so mask can reach full strength with at least default Lottes masks.

Download link:

https://mega.nz/file/pppGSRja#2mha4tnO_hbQNpEn03mDwlNiQqcrT_L5eEGWwSBzfz4

11 Likes

That new mask glow setting came in handy, I found a good combination last night and will be releasing a new pack with those new magic glow settings hopefully by later tonight. Also gonna put together a scalefx preset pack I finally figured how to mix that shader in with all my presets. Next update gonna be the cherry on top to my last update.

2 Likes

In layman’s terms, what does Magic Glow do differently from regular glow? Is it that it applies glow exclusively by exciting surrounding “phosphors” as opposed to being independent of phosphors?

1 Like

Regular glow is nicely implemented, but works quite simple. The most of the glow, which is produced by brighter pixels, is manifested on a very dark background.

Magic glow OTOH has very good control variables for how glow is distributed regarding pixel brightness. You can disable glow of less bright pixels and determine mask application on glow.

Last but not least there is a mechanism which distributes glow in a smart manner. Without it widespread glow would look quite annoying.

I’ll also mention that one can do even better normal glow with “magic glow” by tweaking the parameters.

You can also use it as a nice brightness and contrast enhancer and as a mask mitigation functionality.

One of my fauvorites is also wide glow with some mask mitigation, which makes large bullets, explosions, etc. do the blooming. Previously such effect weren’t possible without external shaders.

6 Likes

So magic glow is a replacement for the old glow, or is that still available? Also, the HD version won’t get it?

1 Like

Old glow mode is still available and is the dafault one. Need to switch to magic glow with a parameter setting in order to use it.

It’s tricky with the HD version, since i would need to add two extra shader passes. Haven’t really made this decision yet.

6 Likes

Good evening Guest, I need a little tutorial please: under the “interlacing option” category there is the “internal resolution” item, how exactly does it work?

1 Like

Nice. Can you share the settings for these?

1 Like

If you run higher resolution content, you might want to have ordinary “lores” scanlines. Some emulators work with increased internal resolution and you can set the “internal resolution” parameter to match.

Sure. NTSC preset is to be used, here are the parameters for the newest version in this thread:

wp_saturation = "1.250000"
ntsc_scale = "1.999999"
m_glow = "1.000000"
m_glow_cutoff = "0.150000"
m_glow_low = "0.600000"
m_glow_high = "4.100001"
m_glow_dist = "0.500000"
m_glow_mask = "0.775000"
SIGMA_H = "0.700000"
SIGMA_V = "0.700000"
glow = "0.600000"
bloom = "0.250000"
halation = "0.200000"
gamma_c = "1.300000"
brightboost = "1.600000"
brightboost1 = "1.000000"
warpX = "0.040000"
warpY = "0.050000"
csize = "0.080000"
bsize1 = "0.090000"
shadowMask = "10.000000"
maskstr = "1.000000"
maskboost = "1.200000"
mshift = "2.500000"
slotwidth = "3.000000"
double_slot = "2.000000"
mclip = "0.750000"
smoothmask = "1.000000"
deconrr = "1.000000"
deconrb = "-1.000000"
deconrry = "1.000000"
deconrby = "-1.000000"
decons = "1.500000"
addnoised = "-0.240000"
3 Likes

With the “Magic Glow mask strength” parameter you can really scale down bloom, you could even turn it off with a bright monitor. Here’s what I achieved with a quick experiment.

#reference ":/shaders/shaders_slang/crt/crt-guest-advanced-ntsc.slangp"
WP = "-20.000000"
S_SHARP = "1.000000"
HSHARP = "2.000000"
m_glow = "1.000000"
m_glow_dist = "0.800000"
m_glow_mask = "0.800000"
SIGMA_VB = "0.750000"
glow = "0.200000"
bloom = "-0.200000"
halation = "0.100000"
warpX = "0.030000"
warpY = "0.040000"
csize = "0.010000"
bsize1 = "0.100000"
shadowMask = "11.000000"
maskstr = "1.000000"
slotmask = "1.000000"
slotmask1 = "1.000000"
slotwidth = "4.000000"
double_slot = "2.000000"
smoothmask = "1.000000"
post_br = "1.100000"
5 Likes

New Release Version (2023-02-16-r1):

Notable changes:

  • Magic Glow wide glow improvements. The overall image is cleaner and less de-saturated. Existing presets which use magic glow for better contrast (lower sigma values) shouldn’t be affected.

Download link:

https://mega.nz/file/B8hxmLJS#ZJSSa39CEdFJHPzlmLL740xjxf2KPw5D0vNZZ4PyDdU

17 Likes

Glad I caught this before anything, I plan on putting my new pack out today. I don’t think this update will change anything (I got the magic glow sigmas turned all the way down) but I’ll take a look at it anyway. Thanks again for keeping this shader fresh.

7 Likes

Currently playing around with setting by stupidly high values just to understand how they affect an image. And the new Magic Glow effect is just wonderful. Tried to capture in small sized images, but the effect is a bit subtle. One has to play the games in motion and full sized picture to see it’s full potential. Here are comparison between Magic Glow on and off for the crt-guest-advanced.slangp: That’s the only change, just enable vs disable.

m_glow = "1.000000"

Panzer Dragoon Saga on Saturn (crop from 1440p):

Sengoku Blade on Saturn (crop from 1440p):

3 Likes

Hey @guest.r I’m trying to create my first Shadow Mask preset, I tweaked these settings here but would like your opinion. Is this a accurate representation of RGB Shadow Mask with these settings for 1080p?

shaders = "12"
shader0 = "shaders_slang/crt/shaders/guest/advanced/stock.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/crt/shaders/guest/advanced/stock.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "StockPass"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/guest/advanced/afterglow0.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "AfterglowPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/guest/advanced/grade/pre-shaders-afterglow-grade.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "true"
alias3 = "PrePass"
float_framebuffer3 = "false"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/guest/advanced/avg-lum.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "true"
alias4 = "AvgLumPass"
float_framebuffer4 = "false"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/advanced/linearize.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "LinearizePass"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/advanced/gaussian_horizontal.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "absolute"
scale_x6 = "800"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "GlowPass"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "absolute"
scale_x7 = "800"
scale_type_y7 = "absolute"
scale_y7 = "600"
shader8 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "absolute"
scale_x8 = "800"
scale_type_y8 = "absolute"
scale_y8 = "600"
shader9 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "BloomPass"
float_framebuffer9 = "true"
srgb_framebuffer9 = "false"
scale_type_x9 = "source"
scale_x9 = "1.000000"
scale_type_y9 = "source"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "viewport"
scale_x10 = "1.000000"
scale_type_y10 = "viewport"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/guest/advanced/deconvergence.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "viewport"
scale_y11 = "1.000000"
g_signal_type = "0.000000"
g_crtgamut = "0.000000"
g_vignette = "0.000000"
g_cntrst = "-0.500000"
g_lift = "-0.050000"
m_glow = "1.000000"
m_glow_cutoff = "0.010000"
m_glow_low = "1.000000"
m_glow_high = "1.000000"
m_glow_mask = "0.900000"
SIGMA_H = "0.200000"
SIGMA_V = "0.200000"
SIGMA_HB = "0.250000"
SIGMA_VB = "0.250000"
glow = "0.400000"
bloom = "-0.800000"
bloom_dist = "1.000000"
halation = "-0.075000"
gamma_c = "1.599999"
brightboost = "1.000000"
brightboost1 = "1.000000"
gsl = "2.000000"
scanline1 = "20.000000"
scanline2 = "20.000000"
beam_min = "1.000000"
beam_size = "0.000000"
scans = "0.200000"
scan_falloff = "0.650000"
spike = "1.500000"
scangamma = "7.000000"
h_sharp = "10.999985"
s_sharp = "1.000000"
smart_ei = "0.020000"
sth = "0.000000"
warpX = "0.050000"
warpY = "0.070000"
csize = "0.040000"
shadowMask = "6.000000"
maskstr = "1.000000"
masksize = "2.000000"
mshift = "-4.000000"
mask_gamma = "1.800001"
smoothmask = "1.000000"
deconrry = "1.000000"
deconrby = "-1.000000"
post_br = "1.130000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"

I’m using mask 6, mask size 2 and mask stagger -4

I’m also using the pics here as a reference.

2 Likes