New CRT shader from Guest + CRT Guest Advanced updates

Hey there!

The default shader settings are pretty vanilla, you can start tweaking without much consideration from here on.

Many features are disabled, you can recognize them by the default value of 0.0 (like Bloom…).

There are some features which must have a non-neutral value, because the shader works this way (like horizontal sharpness…).

Which features you can’t use at the same time:

  • interlaced/no-scanline mode and scanlines
  • Magic Glow and ordinary Glow
  • VGA mode and interlacing
  • Smart Edges Effect Strength negates Substractive Sharpness in the standard shader

Otherwise, you can combine almost every feature. Another advice on tweaking is to set mask strength quite high if you want to use more advanced mask mitigation techniques like Bloom, Mask Bloom…

3 Likes

I set Scanlines Type 1. what have to a bit stronger filtering with mask 1?

3 Likes

You have plenty of horizontal filtering options. Just reminding, that you can achieve more appealing results, if you tweak this aspect of the shader too.

3 Likes

shaders = "18"
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 = "true"
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/pre-shaders-afterglow.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "PrePass0"
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/ntsc/ntsc-pass1.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "NPass1"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "4.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass2.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "0.500000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass3.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/advanced/custom-fast-sharpen.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "NtscPass"
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/guest/advanced/stock.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "true"
alias8 = "PrePass"
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "source"
scale_x8 = "1.000000"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/guest/advanced/avg-lum-ntsc.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "true"
alias9 = "AvgLumPass"
float_framebuffer9 = "false"
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/linearize-ntsc.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = "LinearizePass"
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "source"
scale_x10 = "1.000000"
scale_type_y10 = "source"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc-pass1.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = "Pass1"
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/advanced/gaussian_horizontal.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = ""
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "source"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = "GlowPass"
float_framebuffer13 = "true"
srgb_framebuffer13 = "false"
scale_type_x13 = "source"
scale_x13 = "1.000000"
scale_type_y13 = "source"
scale_y13 = "1.000000"
shader14 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = ""
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "source"
scale_x14 = "1.000000"
scale_type_y14 = "source"
scale_y14 = "1.000000"
shader15 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = "BloomPass"
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "source"
scale_x15 = "1.000000"
scale_type_y15 = "source"
scale_y15 = "1.000000"
shader16 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc-pass2.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = ""
float_framebuffer16 = "true"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
shader17 = "shaders_slang/crt/shaders/guest/advanced/deconvergence-ntsc.slang"
filter_linear17 = "true"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
alias17 = ""
float_framebuffer17 = "false"
srgb_framebuffer17 = "false"
scale_type_x17 = "viewport"
scale_x17 = "1.000000"
scale_type_y17 = "viewport"
scale_y17 = "1.000000"
AS = "0.000000"
CP = "2.000000"
sega_fix = "1.000000"
BP = "-1.000000"
cust_fringing = "0.000000"
cust_artifacting = "0.000000"
ntsc_fields = "1.000000"
ntsc_phase = "2.000000"
ntsc_cscale = "2.250000"
ntsc_ring = "1.000000"
ntsc_sharp = "-10.000000"
ntsc_shape = "1.000000"
CSHARPEN = "5.000000"
CCONTR = "0.000000"
GAMMA_INPUT = "2.500000"
gamma_out = "2.200000"
interm = "0.000000"
HSHARPNESS = "3.000000"
SIGMA_HOR = "1.000000"
S_SHARP = "3.000000"
HSHARP = "2.000000"
MAXS = "0.300000"
HARNG = "0.000000"
spike = "0.000000"
m_glow = "1.000000"
m_glow_cutoff = "0.000000"
m_glow_low = "0.400000"
m_glow_high = "0.000000"
m_glow_mask = "0.000000"
SIZEH = "2.000000"
SIGMA_H = "0.500000"
SIZEV = "1.000000"
SIGMA_V = "0.200000"
SIZEHB = "2.000000"
SIGMA_HB = "0.650000"
SIZEVB = "1.000000"
SIGMA_VB = "0.325000"
glow = "0.010000"
bloom = "1.950000"
bmask1 = "0.775000"
hmask1 = "0.000000"
brightboost = "1.000000"
brightboost1 = "1.000000"
gsl = "1.000000"
scanline1 = "20.000000"
scanline2 = "20.000000"
beam_min = "1.225000"
beam_max = "1.225000"
beam_size = "1.000000"
scans = "1.000000"
scangamma = "5.000000"
shadowMask = "10.000000"
maskstr = "1.000000"
mcut = "2.000000"
masksize = "2.000000"
mask_zoom = "-2.000000"
mzoom_sh = "1.000000"
maskDark = "0.000000"
maskLight = "1.000000"
mask_gamma = "5.000000"
smoothmask = "1.000000"
post_br = "1.430000"
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"

shaders = "18"
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 = "true"
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/pre-shaders-afterglow.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "PrePass0"
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/ntsc/ntsc-pass1.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "NPass1"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "4.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass2.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "0.500000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass3.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/advanced/custom-fast-sharpen.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "NtscPass"
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/guest/advanced/stock.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "true"
alias8 = "PrePass"
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "source"
scale_x8 = "1.000000"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/guest/advanced/avg-lum-ntsc.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "true"
alias9 = "AvgLumPass"
float_framebuffer9 = "false"
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/linearize-ntsc.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = "LinearizePass"
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "source"
scale_x10 = "1.000000"
scale_type_y10 = "source"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc-pass1.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = "Pass1"
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/advanced/gaussian_horizontal.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = ""
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "source"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = "GlowPass"
float_framebuffer13 = "true"
srgb_framebuffer13 = "false"
scale_type_x13 = "source"
scale_x13 = "1.000000"
scale_type_y13 = "source"
scale_y13 = "1.000000"
shader14 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = ""
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "source"
scale_x14 = "1.000000"
scale_type_y14 = "source"
scale_y14 = "1.000000"
shader15 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = "BloomPass"
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "source"
scale_x15 = "1.000000"
scale_type_y15 = "source"
scale_y15 = "1.000000"
shader16 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc-pass2.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = ""
float_framebuffer16 = "true"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
shader17 = "shaders_slang/crt/shaders/guest/advanced/deconvergence-ntsc.slang"
filter_linear17 = "true"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
alias17 = ""
float_framebuffer17 = "false"
srgb_framebuffer17 = "false"
scale_type_x17 = "viewport"
scale_x17 = "1.000000"
scale_type_y17 = "viewport"
scale_y17 = "1.000000"
AS = "0.000000"
CP = "2.000000"
cust_fringing = "0.000000"
cust_artifacting = "0.000000"
ntsc_fields = "1.000000"
ntsc_phase = "2.000000"
ntsc_cscale = "2.250000"
ntsc_ring = "1.000000"
ntsc_sharp = "10.000000"
ntsc_shape = "1.000000"
blendMode = "0.000000"
CCONTR = "0.000000"
CDETAILS = "0.000000"
GAMMA_INPUT = "2.500000"
gamma_out = "2.200000"
interm = "0.000000"
HSHARPNESS = "2.950000"
SIGMA_HOR = "1.000000"
S_SHARP = "3.000000"
HSHARP = "2.000000"
MAXS = "0.300000"
HARNG = "0.000000"
spike = "0.000000"
m_glow = "1.000000"
m_glow_cutoff = "0.000000"
m_glow_low = "0.400000"
m_glow_high = "0.000000"
m_glow_mask = "0.000000"
SIZEH = "1.000000"
SIGMA_H = "0.300000"
SIZEV = "1.000000"
SIGMA_V = "0.200000"
SIZEHB = "1.000000"
SIGMA_HB = "0.300000"
SIZEVB = "1.000000"
SIGMA_VB = "0.200000"
glow = "0.010000"
bloom = "1.900000"
bmask1 = "0.675000"
hmask1 = "0.000000"
brightboost = "1.000000"
brightboost1 = "1.000000"
gsl = "1.000000"
scanline1 = "20.000000"
scanline2 = "20.000000"
beam_min = "1.200000"
beam_max = "1.200000"
beam_size = "1.000000"
scans = "1.000000"
scangamma = "5.000000"
shadowMask = "10.000000"
maskstr = "1.000000"
mcut = "2.000000"
masksize = "2.000000"
mask_zoom = "-2.000000"
mzoom_sh = "1.000000"
maskDark = "0.000000"
maskLight = "1.000000"
mask_gamma = "5.000000"
smoothmask = "1.000000"
post_br = "1.430000"
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"
6 Likes

Looking good. Vampire Hunter for the playstation. I really need to play this one in the future it looks so cool

2 Likes

New Release Version (2023-11-18-r1):

Notable changes:

  • Scanline Saturation negative parameter value code cleanup (all versions).
  • NTSC: “Quality” parameter description is more clear now: Artifacting and Fringing are to be set for Svideo, Composite and RF modes…
  • NTSC: Chroma bleeding can be further reduced for 2-phase mode.
  • Fastest: better “performance mode” fidelity.
  • Fastest: Post Brightness feature implemented.
  • Fastest: large code optimizations, very notable speedup.
  • Note: please test it a bit, feedback is welcome.

Download link:

https://mega.nz/file/A1JmjZQA#vFyBgpOoO3B5llMjXLv5MRW5k-zyEd7jINMRUA0-UV4

17 Likes

That’s the first one that caught my eye. So you managed it to where it can go pass 2.50 without colors starting to look weird? Looking forward to testing that out.

Edit:

My man @guest.r, I don’t know how you continuously improve this shader but somehow you do and this update is another home run. First thing I tested was the Sega logo in Sonic and this is the result.

Chroma scaling at previous 2.25 limit:

Chroma scaling pushed to the new max at 4.00:

Right away you can see all those little artifacts around all the letters horizontally disappear (notice the left side of the “S”). There was a user in my thread days ago trying to get rid of those very artifacts and this update has now made it possible.

Another test with Chroma scaling at 2.25:

Chroma scaling now at 4.00:

Another benefit of pushing 2phase chroma scaling to the max is that it now gets rid of that “washed out” color look giving colors that punch that 3phase games have so now both 2phase and 3phase look equal “color” wise.

Speaking of 3phase I gave a 3phase game a test

Chroma scaling at the previous 2.25 max limit:

Chroma scaling at the new 4.00 max:

Not much a difference between the two so it seems you designed the code to strictly benefit 2phase games which needed that extra punch imo. All in all this update should now allow anyone to get their 2phase games to have a crispy composite look while still getting the dithering blending:

Chroma scaling at 4.00:

With that said it’s time to work on a new shader pack with these settings PRONTO lol. Thank you once again @guest.r

Also if possible maybe you can get this update pushed upstream?

8 Likes

Much appreciated @guest.r! This is what I had in mind ever since I had made my original comparison comparing the bleeding and reduced black levels in your NTSC preset vs the Blargg Filter Presets.

Fantastic work! The best keeps getting better!

6 Likes

Thanks both for very positive feedback. :smiley: I also think quite nice changes were made compared with the current repository version, and it should be updated quite soon. I’m testing different versions atm. and so far it looks good. Maybe some details needs to be ironed out first, but looks OK in general.

4 Likes

No problem at all. I only tested that Chroma scaling setting though didn’t touch the “fastest” shader or try any of the other settings. But for chroma scaling it’s pretty much perfect now, I see no reason to use any other “ntsc” shader besides yours at this point.

No problem at all. Anything to further perfect it is only a cherry on top so please take your time to iron any kinks out that you may see.

4 Likes

Nice!

Hey @HyperspaceMadness, do you intend to release any new Mega Bezel updates with these improvements? :hugs:

5 Likes

Wow, chroma scaling is fantastic! This may be the NTSC shader update I’ve been waiting for my whole life!

:exploding_head:

7 Likes

Looks flawless to my untrained eyes! Lol

Also you can use the NTSC portion with any other shader now thanks to this:

Or this:

@hunterk

Has any progress been made on this awesome idea?

6 Likes

I’m putting it through the 240p torture tests right now and it outperforms the pre-chroma scaling version in almost every way. I can raise the brightness by a lot while still keeping everything sharp, and I can achieve better dynamic range. It’s really damn impressive.

4 Likes

Don’t forget that anti ringing setting at max values too, that looks to have also been improved by a lot since it was first introduced as well. I predict all shader tweakers will be releasing a sexy ntsc preset soon.

Also since you’ve been gone guest introduced another game changing setting called “clip saturated color beams”, be sure to play around with that, it’ll have all your “reds” looking just right.

3 Likes

It’s great to log in after a long hiatus and see all the amazing progress that’s been made, and I’m also glad to see our dedicated shader pack authors still at work. Keeping the dream alive.

I’ll check out the clip saturated beams setting, sounds cool.

4 Likes

Good to see you back as well man. Yeah guest.r and us guys are still keeping it going, even our guy Retro Crisis has blown up now and pretty much become the “go to” guy for RetroArch shader reviews on YouTube. You got a lot to catch up on so we’ll be looking forward to see what you cook up in the lab.

4 Likes

Yes, I’m working on doing an update on this now should be out in the next week

10 Likes

I have it in my local fork (https://github.com/hunterk/slang-shaders) but haven’t pushed it up to the main repo yet.

2 Likes

I tested the shader a bit, and it’s great some challenges have been addressed. 4k aperture curved mask looks really nice.

2 Likes