New CRT shader from Guest + CRT Guest Advanced updates

Hi there. I really like experimenting with you shader but I was wondering if it was possible to get a more realistic aperture mask. Something like these shots on Twitter from CRT Pixels.

I think you can get similar results with CRT-Royale but I was wondering if it is possible with your shader. I really like it, but I find the masks too artifical for my taste.

Also I forgot to mention that I’m mostly using 1080p, but I also have a 4k screen.

For these looks you got to play with scanline beam dynamics, scanline saturation, hotizontal filtering and vertical deconvergence a bit. Not to mention the brightness and mask options. The default look is a bit shy and there are many parameters and options in the shader, this should ring a bell or two. :smiley:

Does TexCoord * 1.00001 solve the issues (adding one decimal digit) ? These coordinate bugs are real and pop up at some situation, drivers or adapters.

3 Likes

Yes it works.:+1: Now it looks rounded like gaussian and still centered.

2 Likes

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

Notable changes:

Download link:

https://mega.nz/file/R1Ai2ZhB#g0b1QG47CdIlDzIpCoiRfcNeLCpq782zt-viST8nY1o

9 Likes

“Fuzzy” is the better description, because everyone was smoking and the screens had a layer of smoke on them :stuck_out_tongue:

4 Likes

Thanks for the quick response. I’ve been messing around a bit with the shader and this is what I have come up with.

quality = “0.000000” glow = “0.160000” scanline1 = “12.000000” scanline2 = “16.000000” beam_max = “0.850000” scans = “0.600000” shadowMask = “6.000000” maskstr = “0.500000” deconrr = “1.500000” deconrb = “-1.500000” deconrry = “0.500000” deconrby = “-0.500000” I am using these settings with the latest version with svideo ntsc. Also integer overscale at 1080p.

Could you maybe point out what settings I could change so that the mask looks more like the pictures? Or maybe if you have time give me a simple base preset that I could adjust more? Thanks a lot!

3 Likes

With 1080p you might want to use mask 5 instead, so the TVL of the “picture” would get a better match. Also the BGR layout is recommended with mask 6, or the subpixel spacing is quite bad.

Secondly, the pictures of a crt display can be deceiving, because masks are prone to “smearing” in a bloomy way. If you want to reproduce this, you might add a tad of bloom to the config.

Increasing “Bright Boost Bright Pixels” also adds some royalness to the appearance. :smiley:

If you want stronger scanline dynamic, you might want to increase the “Increased Bright Scanline Beam” parameter and increase the “Scanline Shape Dark Pixels” at the same time.

The “deconvergence” looks neat though.

Lastly, you might decrease the horizontal filtering value with standard (non-ntsc) version to match the crt images better.

6 Likes

I have been working a bit on the aperture look to be less boring and i’m quite pleased with the results. One more parameter makes the tweaking much easier though…probably will release a new version soon.

screenshot:

17 Likes

Nice, I see things are heating up in this thread again. I’m still in the middle of tweaking my next update from your last update, hopefully I can release it tonight.

2 Likes

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

Notable changes:

  • Fixed a fastest version issue.
  • Mask Boost parameter added. It’s a really nice option to boost aperture and other mask setups. Works quite nice with bloom options.
  • Mask bloom improvements.

Download link:

https://mega.nz/file/EwoE1BAS#3d6Wvvw4HVixnbtoP5gVUAR2ayFGps7LZVdFIQn52ts

16 Likes

What parameters did you use to be able to look like the image above? what preset are you using? Is it for 1080p?

2 Likes

These parameter values should look good enough with 1080p:

mask_bloom = "0.700000"
brightboost1 = "1.500000"
scanline1 = "2.000000"
scanline2 = "12.000000"
beam_min = "3.499998"
beam_size = "0.700000"
scans = "1.699999"
scan_falloff = "0.600000"
h_sharp = "3.500001"
s_sharp = "0.800000"
shadowMask = "9.000000"
maskstr = "1.000000"
maskboost = "1.849999"
mask_gamma = "1.699999"
mclip = "0.000000"
post_br = "1.100000"
8 Likes

So, I made the greatest mask 7 config ever…

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 = "absolute"
scale_x12 = "640"
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 = "absolute"
scale_x13 = "640"
scale_type_y13 = "absolute"
scale_y13 = "480"
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 = "absolute"
scale_x14 = "640"
scale_type_y14 = "absolute"
scale_y14 = "480"
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 = "absolute"
scale_x15 = "640"
scale_type_y15 = "absolute"
scale_y15 = "480"
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"
PR = "0.460000"
PG = "0.460000"
PB = "0.460000"
AS = "0.100000"
sat = "1.000000"
quality = "-1.000000"
ntsc_ring = "1.000000"
lsmooth = "0.600000"
interm = "0.000000"
iscan = "0.000000"
HSHARPNESS = "1.000000"
SIGMA_HOR = "0.550000"
S_SHARP = "0.000000"
SIZEH = "50.000000"
SIGMA_H = "3.000000"
SIZEV = "50.000000"
SIGMA_V = "2.999999"
SIZEHB = "50.000000"
SIGMA_HB = "0.400000"
SIZEVB = "50.000000"
SIGMA_VB = "0.400000"
glow = "0.000000"
mask_bloom = "0.300000"
halation = "0.150000"
brightboost = "1.000000"
brightboost1 = "1.250000"
gsl = "2.000000"
scanline1 = "4.500000"
scanline2 = "10.000000"
beam_min = "0.800000"
beam_max = "1.499999"
beam_size = "0.000000"
scans = "0.950000"
scan_falloff = "2.000000"
shadowMask = "7.000000"
maskstr = "0.775000"
mcut = "1.300000"
masksize = "2.000000"
slotwidth = "6.000000"
double_slot = "3.000000"
gamma_out = "2.000000"
addnoised = "0.140000"
noisetype = "1.000000"
post_br = "1.300000"
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"

And then @guest.r comes along and adds an amazing new feature that’s pointless to use with mask 7.

Alright… Switch to mask 6, Raise Mask Boost to 2.00, lower Bright boost dark to match Blaze’s Hair, fiddle with Bloom and Halation to compensate for lost advantages of mask 7, fine tune Mask Boost to 1.65, fix Blaze’s hair again, Realize that fiddling B & H made things too bright, Adjust brightness settings to mend the skin tone of that wiz kid from Alcahest, yada yada yada, tinker tinker tinker…

And out come this fine gem.

shaders = "18"
shader0 = "../shaders/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/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/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/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/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/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/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/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/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/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/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/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/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 = "absolute"
scale_x12 = "640"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "../shaders/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 = "absolute"
scale_x13 = "640"
scale_type_y13 = "absolute"
scale_y13 = "480"
shader14 = "../shaders/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 = "absolute"
scale_x14 = "640"
scale_type_y14 = "absolute"
scale_y14 = "480"
shader15 = "../shaders/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 = "absolute"
scale_x15 = "640"
scale_type_y15 = "absolute"
scale_y15 = "480"
shader16 = "../shaders/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/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"
PR = "0.460000"
PG = "0.460000"
PB = "0.460000"
AS = "0.100000"
sat = "1.000000"
quality = "-1.000000"
ntsc_ring = "1.000000"
lsmooth = "0.600000"
interm = "0.000000"
iscan = "0.000000"
HSHARPNESS = "1.000000"
SIGMA_HOR = "0.550000"
S_SHARP = "0.000000"
SIZEH = "50.000000"
SIGMA_H = "3.000000"
SIZEV = "50.000000"
SIGMA_V = "2.999999"
SIZEHB = "50.000000"
SIGMA_HB = "0.400000"
SIZEVB = "50.000000"
SIGMA_VB = "0.400000"
glow = "0.000000"
mask_bloom = "0.100000"
bloom_dist = "0.500000"
halation = "-0.250000"
brightboost = "0.800000"
brightboost1 = "1.250000"
gsl = "2.000000"
scanline1 = "4.500000"
scanline2 = "10.000000"
beam_min = "0.800000"
beam_max = "1.499999"
beam_size = "0.000000"
scans = "0.950000"
scan_falloff = "2.000000"
shadowMask = "6.000000"
maskstr = "0.775000"
mcut = "1.150000"
maskboost = "1.649999"
masksize = "2.000000"
mclip = "0.750000"
gamma_out = "2.000000"
addnoised = "0.140000"
noisetype = "1.000000"
post_br = "1.300000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "../shaders/shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "../shaders/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/shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = "../shaders/shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"

What?.. you want screenshots? Maybe later… In the showoff thread… Too tired.

When well configured Mask Boost makes everything “pop”, which is exactly what I want out of a shader. Up to 2.00 Bright Boost Dark needs to be reduced to compensate for the brightness it adds. Beyond 2.00, however, this isn’t always the case.

Mask Boost seems to be that missing piece of puzzle that was always needed. However, now I’m worried that running RetroArch will create a time space anomaly that will keep expanding until everything becomes a 90’s television screen.

3 Likes

Can you share the parameters of the curvature? Thanks.

1 Like

Curvatures are 0.04 and 0.05, corner 0.10, border 0.10.

2 Likes

It looks really good :smiley: I was thinking if it could be possible an option for the slotmask RGB to fusion colors so it could create yellow magenta and cyan without mask 11. Could it be possible that per example if red is lit alone, also be thicker, or other color also? I mean, on my crt the slotmask glows in a way that when the three colours are lit, per example in white, you can see magenta, yellow and cyan. I know mask 11 does that, but is not that realistic… I you want I can post some pictures so you know what I mean…

2 Likes

Mask 11 is ok and it can be used with slotmask also. The catch with magenta-yellow-cyan is the RGB subpixel configuration and not about these colors themselves so this mask shouldn’t be used with mask size other than 1.0. It’s a more or less 4k mask, because you can’t use mask scaling on masks 0 and 5.

Otherwise crafting a mask is not this simple, the screen would definitelly get tinted is one base color is dominant.

2 Likes

This is what I mean about thicker beam… In some areas are thicker than others, also when a colour beam lits on it’s own. Here is an example of the letters at the bottom…

2 Likes

The only “downside” of this is that the image appears brighter compared with a genuine RGB mask. There is definitelly no general tinting of the screen.

Unfortunatelly this is one of the rare options to have a medium-high TVL mask with 4k, it’s similar to 2-size mask at 1080p.

2 Likes