new update 8.05
it should be more balanced and also has some fixes for “update 8.03” problems
new update 8.05
it should be more balanced and also has some fixes for “update 8.03” problems
I did a preset based on crt-guest-advanced-fastest
Jobima CRT Preset VFast.slangp
shaders = "10"
feedback_pass = "0"
shader0 = "shaders_slang/stock.slang"
alias0 = ""
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
shader1 = "shaders_slang/crt/shaders/crt-resswitch-glitch-koko.slang"
alias1 = "PrePass0"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
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/ntsc/ntsc-pass1.slang"
alias2 = "NPass1"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
filter_linear2 = "false"
float_framebuffer2 = "true"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "4.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass2.slang"
alias3 = ""
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
filter_linear3 = "true"
float_framebuffer3 = "true"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "0.500000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass3.slang"
alias4 = ""
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
filter_linear4 = "true"
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/fast/perf-pass.slang"
alias5 = "PerfPass"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
filter_linear5 = "true"
float_framebuffer5 = "false"
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/fast/pre-shadersf.slang"
alias6 = "PrePassDontChange"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
filter_linear6 = "true"
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/fast/linearizef.slang"
alias7 = "LinearizePass"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
filter_linear7 = "true"
float_framebuffer7 = "true"
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/fast/crt-guest-advanced-pass1f.slang"
alias8 = ""
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
filter_linear8 = "true"
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "viewport"
scale_x8 = "1.000000"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/guest/fast/crt-guest-advanced-pass2f.slang"
alias9 = "Pass2"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
filter_linear9 = "true"
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
cust_artifacting = "0.200000"
cust_fringing = "0.100000"
ntsc_scale = "1.050000"
ntsc_sat = "1.100000"
ntsc_gamma = "0.750000"
ntsc_rainbow1 = "2.000000"
ntsc_taps = "16.000000"
ntsc_charp = "5.000000"
ntsc_charp3 = "3.000000"
ntsc_cscale = "1.500000"
ntsc_ring = "0.900000"
ntsc_sharp = "-7.000000"
ntsc_shape = "0.500000"
wp_saturation = "0.950000"
contr = "0.500000"
GAMMA_INPUT = "2.200000"
interm = "4.000000"
inters = "0.050000"
h_sharp = "3.000002"
s_sharp = "0.000000"
ring = "0.050000"
spike = "0.900000"
bloom = "0.150000"
mask_bloom = "-0.500000"
bloom_dist = "0.050000"
halation = "0.100000"
hmask1 = "-0.750000"
gamma_c = "1.250000"
clips = "0.200000"
gsl = "2.000000"
scanline2 = "6.000000"
beam_min = "1.899999"
beam_size = "0.800000"
scans = "2.300000"
scan_falloff = "0.250000"
shadowMask = "6.000000"
maskstr = "0.400000"
mcut = "1.050000"
maskboost = "1.999999"
mshift = "0.500000"
slotmask = "0.050000"
slotmask1 = "0.100000"
smask_mit = "0.500000"
vertmask = "-0.500000"
DER = "-0.300000"
DEB = "0.200000"
DES = "0.750000"
post_br = "1.030000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_mipmap = "false"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_mipmap = "false"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_mipmap = "false"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_mipmap = "false"
SamplerLUT4_wrap_mode = "clamp_to_border"
it seems work nicer than other fast shaders preset I made, but it’s a bit slower than them
The spikes are sharp but not blocky looking. Zoomed in I see the edges of the scanlines around the white number text what setting adjusts that?
another “TV 480i” test with the last update (only in All-in-1 Jobima Presets for now), using last guest updates and phosphor-persistence
Jobima CRT Preset TV 480i V8.06
keep in mind that the real quality not show up because of video compression and there are out of sync problem in obs that make interlaced video worst sometimes
–======–
The OP didnt updated yet since there will be another update to add PAL preset
PAL preset test
I spent all my time with PAL on this game, and this kinda similar to how I remember it (thanks to guest.r for adding PAL)
anyway, here the PAL preset for now
shaders = "20"
feedback_pass = "0"
shader0 = "shaders_slang/crt/shaders/crt-resswitch-glitch-koko.slang"
alias0 = ""
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
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/hd/stock.slang"
alias1 = ""
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
filter_linear1 = "false"
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/hd/stock.slang"
alias2 = "StockPass"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
filter_linear2 = "false"
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/hd/afterglow0.slang"
alias3 = "AfterglowPass"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
filter_linear3 = "false"
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/hd/pre-shaders-afterglow.slang"
alias4 = "PrePass"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "true"
filter_linear4 = "false"
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/pal/pal-pass1.slang"
alias5 = "PalPass1"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
filter_linear5 = "false"
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/pal/pal-pass2.slang"
alias6 = "PalPass2"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
filter_linear6 = "false"
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "4.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/advanced/pal/pal-pass3.slang"
alias7 = "PalPass3"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
filter_linear7 = "true"
float_framebuffer7 = "true"
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/custom-fast-sharpen-pal.slang"
alias8 = ""
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
filter_linear8 = "true"
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/hd/linearize-hd.slang"
alias9 = "LinearizePass"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
filter_linear9 = "true"
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/hd/crt-guest-advanced-hd-pass1.slang"
alias10 = "Pass1"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
filter_linear10 = "true"
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "viewport"
scale_x10 = "1.000000"
scale_type_y10 = "source"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/guest/hd/gaussian_horizontal.slang"
alias11 = ""
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
filter_linear11 = "true"
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "absolute"
scale_x11 = "800"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/hd/gaussian_vertical.slang"
alias12 = "GlowPass"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
filter_linear12 = "true"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "absolute"
scale_x12 = "800"
scale_type_y12 = "absolute"
scale_y12 = "600"
shader13 = "shaders_slang/crt/shaders/guest/hd/bloom_horizontal.slang"
alias13 = ""
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
filter_linear13 = "true"
float_framebuffer13 = "true"
srgb_framebuffer13 = "false"
scale_type_x13 = "absolute"
scale_x13 = "800"
scale_type_y13 = "source"
scale_y13 = "1.000000"
shader14 = "shaders_slang/crt/shaders/guest/hd/bloom_vertical.slang"
alias14 = "BloomPass"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
filter_linear14 = "true"
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "source"
scale_x14 = "1.000000"
scale_type_y14 = "absolute"
scale_y14 = "600"
shader15 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass2.slang"
alias15 = ""
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
filter_linear15 = "true"
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/hd/deconvergence-hd.slang"
alias16 = ""
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
filter_linear16 = "true"
float_framebuffer16 = "false"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
shader17 = "shaders_slang/crt/shaders/phosphor-persistence/phosphor-apply.slang"
alias17 = "internal1"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
filter_linear17 = "false"
float_framebuffer17 = "false"
srgb_framebuffer17 = "false"
scale_type_x17 = "source"
scale_x17 = "1.000000"
scale_type_y17 = "source"
scale_y17 = "1.000000"
shader18 = "shaders_slang/crt/shaders/phosphor-persistence/phosphor-update.slang"
alias18 = "phosphor"
wrap_mode18 = "clamp_to_border"
mipmap_input18 = "false"
filter_linear18 = "false"
float_framebuffer18 = "false"
srgb_framebuffer18 = "false"
scale_type_x18 = "source"
scale_x18 = "1.000000"
scale_type_y18 = "source"
scale_y18 = "1.000000"
shader19 = "shaders_slang/crt/shaders/phosphor-persistence/passthrough.slang"
alias19 = "internal2"
wrap_mode19 = "clamp_to_border"
mipmap_input19 = "false"
filter_linear19 = "false"
float_framebuffer19 = "false"
srgb_framebuffer19 = "false"
scale_type_x19 = "source"
scale_x19 = "1.000000"
scale_type_y19 = "source"
scale_y19 = "1.000000"
AS = "0.000000"
CP = "1.000000"
wp_saturation = "0.950000"
contr = "0.500000"
ARTIFACTING = "0.200000"
FRINGING = "0.100000"
RFNOISE = "0.000001"
RFNOISE1 = "0.000010"
pal_res = "2.000000"
CSHARPEN = "0.500000"
CDETAILS = "0.250000"
NDEBLUR = "1.750000"
DESHARP = "2.000000"
GAMMA_INPUT = "2.200000"
gamma_out = "2.200000"
interm = "5.000000"
S_SHARP = "0.100000"
HSHARP = "0.700000"
MAXS = "0.010000"
HARNG = "0.100000"
m_glow = "2.000000"
m_glow_low = "5.000000"
m_glow_dist = "0.700000"
m_glow_mask = "0.600000"
FINE_GLOW = "5.000000"
FINE_BLOOM = "2.000000"
glow = "0.100000"
bloom = "0.150000"
mask_bloom = "-0.500000"
bloom_dist = "-0.050000"
halation = "0.100000"
bmask1 = "-0.100000"
hmask1 = "-0.750000"
gamma_c2 = "1.250000"
clips = "0.250000"
gsl = "2.000000"
scanline2 = "6.000000"
beam_min = "1.900000"
beam_size = "0.800000"
scans = "1.000000"
scan_falloff = "0.250000"
shadowMask = "6.000000"
maskstr = "0.700000"
mcut = "1.050000"
maskboost = "2.000000"
mshift = "0.500000"
slotmask = "0.100000"
slotmask1 = "0.200000"
smoothmask = "0.250000"
smask_mit = "0.500000"
bmask = "0.001000"
mclip = "0.050000"
pr_scan = "0.125000"
maskmid = "0.250000"
edgemask = "0.500000"
dctypex = "0.150000"
dctypey = "0.150000"
deconrr = "1.000000"
deconrb = "-0.750000"
deconrry = "0.500000"
deconrgy = "-0.250000"
decons = "1.200000"
addnoised = "0.020000"
post_br = "1.030000"
phosphor_power = "2.900000"
phosphor_amplitude = "0.010000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_mipmap = "false"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_mipmap = "false"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_mipmap = "false"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_mipmap = "false"
SamplerLUT4_wrap_mode = "clamp_to_border"
maybe I will update the OP later, since PAL still get updates from guest.r (also “raster bloom” (breathing) still missing so my enthusiasm kinda reduced to do full update)
new update V8.07 in the OP
What’s the difference between this and the AfterGlow parameter which is already included in Crt-guest-advanced?
As far as I know AfterGlow can not be used in the end of preset, also AfterGlow dont fill the interlace gaps but it seems it only fill the edge
more info about AfterGlow and interlace
while phosphor-persistence work whether at the beginning or the end of the preset, also it operates like a real CRT, blindly, and doesn’t skip the gaps between the fields, therefore, its suitable if the goal is to accurately simulate how the interlace system works in CRT televisions
more info about phosphor-persistence and interlace
anyway, I used phosphor-persistence only for “TV 480i” presets, regular presets still use AfterGlow
new update, to use last guest update features
also this update use new crt-black_crush-koko to get better crt-like black levels in bright scenes
EDIT I got it working! Had to restart RA and that fixed it somehow.
Hi.
I’ve been trying to use your shaders but for some reason they fail to load. I place them in the parent directory like instructed. Other presets like sonkun’s work just fine. Did I miss a step?

same problem here.
To add the all-in-1 presets that goes in \shaders\shaders_slang\presets\ didnt work either.
seems you use d3d* like d3d11, which seems not working at all with TV 480i (except V7 TV 480i) presets (which I think because phosphor-persistence), in that case you should use glcore if you dont have Vulkan
Hello, I’ve been a passive reader just checking in for shaders update, I finally created an account for this topic 
So I tried to delete the whole slang_shaders to start fresh from the latest Online-update, and some your last update did not work : I see you have implemented the move from …/…/…/crt/shaders to …/…/…/crt/crt-effects/shaders, for crt-resswitch-glitch-koko.slang but it was not done in these 6
guest VFast.slangp
Sony CRT Pixels.slangp
zfast G.slangp
zfast G2.slangp
zfast G3.slangp
zfast V2.slangp
Hi and welcome 
yes, those were forgotten, I will do a silent update to fix them today, thanks for the report 
up to 2025-11-16-r1 version.
make sure to do the #0
also
It worked, thanks, I almost never update the shaders, only the guest ones.