Please show off what crt shaders can do!

Try changing the “CRT Mask Size” to 2 or better. I never viewed my presets in 4k so I don’t know how they look that way or if I’d have to further tweak other parameters to get it looking just right in 4k. Hopefully changing that one parameter will do the trick though.

1 Like

Yoooooo @P-Kong i love that fire emblem screenshot! Holy looks so good! Any chance you could share that preset?

1 Like

I like the crisp look ,mind sharing the Preset?

Here’s the Sony Megatron CVM in SDR mode captured off my 2018 Dell XPS with a 4K screen.

Do make sure to play these back fullscreen and in the 4K quality mode.

As always more info here:

8 Likes

It’s crt-royale with minimal tweaks:

#reference "shaders_slang/crt/crt-royale.slangp"
levels_contrast = "0.703125"
bloom_underestimate_levels = "0.390000"
beam_max_sigma = "0.250000"
convergence_offset_y_r = "0.200000"
convergence_offset_y_b = "-0.200000"
mask_type = "0.000000"

It can look a bit dark with dull colors because the goal is to have well-defined mask patterns/scanlines on brighter areas, which requires you to use low contrast and low bloom underestimate level in crt-royale settings. Instead of boosting soft brightness/saturation using something like grade, just switch between the built-in profiles on your monitor. The ones that are brighter and more vibrant should work.

Try using integer scale on both axes if possible for best sharpness. :nerd_face:

2 Likes

Sony Megatron CVM simulation of a 300TVL Sony PVM 1910!

Comparison photos (CRT is first, Sony Megatron is second):

CRT Photos: No idea pictures sourced off the internet

LCD Photos: OnePlus 8 Pro Camera: Pro Mode, ISO 200, WB 6500K, Aperture Speed 1/60, Auto Focus, 48MPixel JPEG.

Video here do make sure play fullscreen and in 4K!

More video’s can be found here:

6 Likes

This may not be the place for it but I had a dumb question; How do CRT shaders actually affect the final output image? For example I know there’s the base mask itself, is that just a straight overlay over the output? And then as far as splitting the image into individual scanlines, or splitting the color of each pixel into its own RGB layout I’m kind of mistified, ha.

I ask because a lot of basic shaders I’ve used nearly look to just slap a mask over the output and blur the image, but for the more intricate shaders there’s clearly a lot more going on.

2 Likes

It’s not a dumb question at all.

At a high level you’re right at a more detailed level you have to simulate the three electron beams as they scan down the screen and excite the phosphors using various old circuits of differing fidelity and power. Add onto that all the different colour and TV standards and you’re getting close.

The Sony Megatron is basically a whole load of bezier curves layered onto top of each other representing various aspects of the beams and phosphors.

4 Likes

They take the image, each shader has it’s own filter to smooth jagged lines trying to do what a CRT does, they do a gamma correction (CRT is 2.5 and LCD is 2.2 so dark areas are darker on CRT), then apply a mask and scanlines. Some extras like saturation, contrast, Glow. Some take into account the pixel brightness when drawing scanlines to create some beam dynamics. Others don’t. The very simple and fast ones just put a mask there and draw a dark line every 2nd line.

2 Likes

Speaking of gamma correction, are 2.2 input and 2.5 output considered the right values for accurately replicating a CRT? Assuming a 2.2 gamma value on an LCD, of course.

3 Likes

Almost everything you do winds up affecting gamma so 2.5/2.2 should be used as a starting point only, IMO.

2 Likes

Played around with guest-dr-venom a bit today. Kinda going for a consumer Trinitron look at 1080p.

10 Likes

Some Metroid on my 19" 4:3 LCD (1280x1024).

6 Likes

Looks good. Settings?

3 Likes

Nothing special, really simple but still looks really good in RL.

shaders = "1"
feedback_pass = "0"
shader0 = "shaders_glsl/crt/shaders/crt-guest-cgwg-curvature.glsl"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
brightboost = "1.200000"
sat = "1.200000"
scanline = "6.000000"
beam_min = "1.600000"
beam_max = "1.250000"
h_sharp = "1.600000"
gamma_out = "0.450000"
shadowMask = "2.000000"
maskDark = "0.700000"
maskLight = "1.000000"
CGWG = "0.700000"
warpX = "0.030000"
warpY = "0.040000"
vignette = "1.000000"
3 Likes

Here we go another guest Slot Mask preset update, this update I tweaked mainly the NTSC sharpness parameters to try and sharpen things up more on both presets and fixed that excessive fringing in the 8/16 bit preset. @guest.r I tried tweaking that NTSC Resolution Scaling parameter and it’s as tricky as you said it would be, couldn’t find that sweet spot so I just left it alone for now.

Slot Mask Arcade/32/64/128 bit/480i preset:

shaders = "17"
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/grade/pre-shaders-afterglow-grade.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"
frame_count_mod4 = "2"
mipmap_input4 = "false"
alias4 = ""
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 = "false"
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/custom-fast-sharpen.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "NtscPass"
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/convert-ntsc.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "0.500000"
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/gaussian_horizontal.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "absolute"
scale_x11 = "640"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = "GlowPass"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "absolute"
scale_x12 = "640"
scale_type_y12 = "absolute"
scale_y12 = "480"
shader13 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = ""
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_vertical.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "BloomPass"
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/crt-guest-advanced-ntsc.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = ""
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "viewport"
scale_x15 = "1.000000"
scale_type_y15 = "viewport"
scale_y15 = "1.000000"
shader16 = "shaders_slang/crt/shaders/guest/advanced/deconvergence-ntsc.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = ""
float_framebuffer16 = "false"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
g_signal_type = "0.000000"
wp_temperature = "9304.000000"
quality = "0.000000"
ntsc_phase = "3.000000"
SHARPEN = "2.999999"
CONTR = "0.200000"
blendMode = "2.000000"
GAMMA_INPUT = "2.200000"
interm = "5.000000"
SIGMA_VB = "0.750000"
bloom = "0.700000"
bloom_dist = "0.050000"
halation = "0.100000"
gamma_c = "1.360000"
brightboost = "1.300001"
brightboost1 = "1.250000"
gsl = "-1.000000"
scanline1 = "2.500000"
scanline2 = "14.000000"
beam_min = "1.500000"
beam_max = "0.775000"
beam_size = "0.750000"
scan_falloff = "0.250000"
spike = "1.500000"
h_sharp = "10.000004"
s_sharp = "1.000000"
smart_ei = "0.500000"
ei_limit = "0.500000"
sth = "0.000000"
warpX = "0.040000"
warpY = "0.050000"
csize = "0.115000"
bsize1 = "0.300000"
shadowMask = "10.000000"
maskstr = "1.000000"
mask_gamma = "2.399999"
slotmask = "1.000000"
slotmask1 = "1.000000"
slotwidth = "4.000000"
double_slot = "2.000000"
mclip = "0.350000"
gamma_out = "2.200000"
deconrry = "1.250000"
deconrby = "-1.250000"
decons = "1.400000"
addnoised = "-0.160000"
noiseresd = "1.000000"
post_br = "1.100000"
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"

Slot Mask 8/16 bit systems preset:

shaders = "17"
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/grade/pre-shaders-afterglow-grade.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"
frame_count_mod4 = "2"
mipmap_input4 = "false"
alias4 = ""
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 = "false"
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/custom-fast-sharpen.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "NtscPass"
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/convert-ntsc.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "0.500000"
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/gaussian_horizontal.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "absolute"
scale_x11 = "640"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = "GlowPass"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "absolute"
scale_x12 = "640"
scale_type_y12 = "absolute"
scale_y12 = "480"
shader13 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = ""
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_vertical.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "BloomPass"
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/crt-guest-advanced-ntsc.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = ""
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "viewport"
scale_x15 = "1.000000"
scale_type_y15 = "viewport"
scale_y15 = "1.000000"
shader16 = "shaders_slang/crt/shaders/guest/advanced/deconvergence-ntsc.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = ""
float_framebuffer16 = "false"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
g_crtgamut = "1.000000"
quality = "-1.000000"
cust_fringing = "0.500000"
cust_artifacting = "2.000000"
SHARPEN = "2.500000"
CONTR = "0.200000"
DETAILS = "0.500000"
blendMode = "2.000000"
GAMMA_INPUT = "2.200000"
SIGMA_VB = "0.750000"
bloom = "0.700000"
bloom_dist = "0.050000"
halation = "0.100000"
gamma_c = "1.360000"
brightboost = "1.300001"
brightboost1 = "1.250000"
gsl = "-1.000000"
scanline1 = "2.500000"
scanline2 = "14.000000"
beam_min = "1.500000"
beam_max = "0.775000"
beam_size = "0.750000"
scan_falloff = "0.250000"
spike = "1.500000"
s_sharp = "1.000000"
smart_ei = "0.500000"
ei_limit = "0.500000"
sth = "0.000000"
BLOOM = "3.000000"
warpX = "0.040000"
warpY = "0.050000"
csize = "0.115000"
shadowMask = "10.000000"
maskstr = "1.000000"
mask_gamma = "2.399999"
slotmask = "1.000000"
slotmask1 = "1.000000"
slotwidth = "4.000000"
double_slot = "2.000000"
mclip = "0.350000"
gamma_out = "2.200000"
deconrry = "1.250000"
deconrby = "-1.250000"
decons = "2.000000"
addnoised = "-0.300000"
noiseresd = "1.000000"
post_br = "1.100000"
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"

https://www.mediafire.com/file/vohb5vi1r5k8z7d/crt-guest-advanced-ntsc-slotmask_presets_3-20-2022.zip/file

You must have the latest guest shader update for my presets to display properly which you can get here.

I cranked up the white point parameter on the arcade preset from 8004 that I used in all my prior presets to 9304 to further match the Japanese crt tempurature standard, if you don’t like the cool temperature look go into the parameters and hit start on White Point to set it back to default. You can further tweak the Phosphor parameter to 1 as well to make the image even more warm looking.

@HyperspaceMadness this update will replace all the other updates lol

10 Likes

The slotmask is interesting but the excessive glow and lack of scanlines aren’t my thing, personally. I think at least some light scanlines would improve the image and make it look closer to the artist’s vision, whatever that is.

Getting the NTSC stuff to look just right is very difficult, I’ve been trying for months. Good luck!

1 Like

Excessive glow huh. I’ll try working on that next time then. Funny you mentioned light scanlines, I was told by another user I should get rid of the scanlines altogether

2 Likes

Can’t make everyone happy, but I think the majority of users want at least some scanlines(?)

It would be odd if a majority of crt shader users polled said “I prefer no scanlines in a crt shader”

2 Likes

Personally, I like very subtle scanlines. But that’s merely my nostalgia talking.

2 Likes