Please show off what crt shaders can do!

Well at least I’m not crazy, I’ll figure out if my monitor will even support 120khz

You mean 120 Hz vertical refresh rate, right? 120 KHz would refer to horizontal refresh rate. As long as your monitor supports 480 lines at 60 Hz (that would be 31 KHz output, which your monitor certainly supports), it ought to be able to output 240 lines at 120 Hz, which is also 31 KHz output…

2 Likes

Honestly the interlacing shader looks almost identical to “true” 240p on a 31 kHz monitor.

It’s also not that hard to set up true 240p, though. Custom Resolution Utility is how I did it.

2 Likes

I used to have a CRT monitor 240p setup myself some years back. I tried both the “true” and “fake” 240p methods, and after applying BFI on the former, I literally couldn’t tell the difference between them, so I just went with the latter because it’s also compatible with 480i whenever it shows up in a game.

I really miss that monitor…

4 Likes

Then, yes that. Idfk anything about CRT monitors tbh, CRT TV’s I’m more comfortable with.

I’ll have to look into that this weekend.

I don’t think my monitor likes 480i, or at the very least it’s yet again a MiSTer issue (PS1 core said no)

1 Like

I smashed together venom fast and reshade to make an “FX” shader. Is it good? I don’t know but it’s entertaining. It works best with games like Super Metroid and top down shooters. It’s hard to capture the split second flares and bloom so I’ve found some screenshots and exaggerated them for viewing. It’s better in motion when gun shots or sword slashes flare up.

You can dial things up and down with the threshold values. If you download it and find a game that shows off the silly FX let me know.

shaders = "17"
shader0 = "shaders_slang/reshade/shaders/bloom/BloomPass0.slang"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "SamplerBloom1"
float_framebuffer0 = "true"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "4.000000"
scale_type_y0 = "source"
scale_y0 = "4.000000"
shader1 = "shaders_slang/reshade/shaders/bloom/BloomPass1.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "SamplerBloom2"
float_framebuffer1 = "true"
srgb_framebuffer1 = "false"
shader2 = "shaders_slang/reshade/shaders/bloom/BloomPass2.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "SamplerBloom3"
float_framebuffer2 = "true"
srgb_framebuffer2 = "false"
shader3 = "shaders_slang/reshade/shaders/bloom/BloomPass3.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "SamplerBloom4"
float_framebuffer3 = "true"
srgb_framebuffer3 = "false"
shader4 = "shaders_slang/reshade/shaders/bloom/BloomPass4.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "SamplerBloom5"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
shader5 = "shaders_slang/reshade/shaders/bloom/LensFlarePass0.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "LensFlare1"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
shader6 = "shaders_slang/reshade/shaders/bloom/LensFlarePass1.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "LensFlare2"
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
shader7 = "shaders_slang/reshade/shaders/bloom/LensFlarePass2.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "LensFlare3"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
shader8 = "shaders_slang/reshade/shaders/bloom/LightingCombine.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "source"
scale_x8 = "0.250000"
scale_type_y8 = "source"
scale_y8 = "0.250000"
shader9 = "shaders_slang/stock.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
shader10 = "shaders_slang/crt/shaders/guest/fast/pre-shaders.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = "PrePass"
float_framebuffer10 = "false"
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/fast/linearize.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = "LinearizePass"
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "source"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/fast/crt-guest-advanced-pass1.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = "Pass1"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "viewport"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/fast/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 = "source"
scale_y13 = "1.000000"
shader14 = "shaders_slang/crt/shaders/guest/fast/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 = "source"
scale_x14 = "1.000000"
scale_type_y14 = "absolute"
scale_y14 = "480"
shader15 = "shaders_slang/crt/shaders/guest/fast/crt-guest-advanced-pass2.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/fast/deconvergence-f.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"
bLensdirtEnable_toggle = "1.000000"
bAnamFlareEnable_toggle = "1.000000"
bChapFlareEnable_toggle = "1.000000"
bGodrayEnable_toggle = "1.000000"
iBloomMixmode = "1.000000"
fBloomAmount = "1.500000"
fBloomSaturation = "1.100000"
fBloomTint_r = "1.000000"
fBloomTint_g = "0.500000"
fBloomTint_b = "0.800000"
iLensdirtMixmode = "1.000000"
fAnamFlareWideness = "1.200000"
fAnamFlareAmount = "2.500000"
fChapFlareIntensity = "10.000000"
fGodrayDecay = "0.999900"
fGodrayWeight = "0.400000"
fGodrayThreshold = "0.850000"
iGodraySamples = "48.000000"
fFlareLuminance = "0.875000"
fFlareBlur = "10000.000000"
fFlareIntensity = "1.570000"
fFlareTint_r = "1.000000"
fFlareTint_g = "1.000000"
glow = "0.000000"
gamma_c = "1.100000"
brightboost1 = "1.300000"
scanline2 = "15.000000"
beam_min = "1.999999"
shadowMask = "10.000000"
deconrr = "-1.000000"
deconrb = "1.000000"
deconrry = "-1.000000"
deconrby = "1.000000"
post_br = "1.100000"
textures = "Dirt;Sprite;SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
Dirt = "shaders_slang/reshade/shaders/bloom/LensDB.png"
Dirt_wrap_mode = "clamp_to_border"
Dirt_mipmap = "false"
Sprite = "shaders_slang/reshade/shaders/bloom/LensSprite.png"
Sprite_wrap_mode = "clamp_to_border"
Sprite_mipmap = "false"
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"
12 Likes

Ha! Love it. There is something about putting over the top effects on these things that I quite like the idea of. Nothing to do with CRTs just putting a completely different art style in. I haven’t really experimented with the shader’s that already exist in this direction.

4 Likes

This shader is so fun to use, pretty much any game you throw on turns it into a whole new experience and I love it. Thanks for this one

2 Likes

4 Likes

That FX shader does really well with the arcade version of Strider!

6 Likes

For anyone interested I did a port of NTSC-Adaptive to ReShade :

Some shots with CRT-Geom on top :

13 Likes

Just showing off what CyberLab Turbo Duo for Blargg + Blargg_NTSC_Turbo_Duo_SNES_PSX_S-Video_CyberLab_Special_Edition looks like today!

CyberLab Turbo Duo for Blargg + Blargg_NTSC_Turbo_Duo_SNES_PSX_S-Video_CyberLab_Special_Edition

This is what CyberLab SNES looks like today!

CyberLab SNES

This is what CyberLab Genesis for Blargg + Blargg_NTSC_Genesis_S-Video_CyberLab_Special_Edition looks like today!

CyberLab Genesis for Blargg + Blargg_NTSC_Genesis_S-Video_CyberLab_Special_Edition

This is what CyberLab NES for Blargg + Core Blargg NTSC S-Video looks like today!

CyberLab NES for Blargg + Core Blargg NTSC S-Video - 1

CyberLab NES for Blargg + Core Blargg NTSC S-Video - 2

CyberLab NES for Blargg + Core Blargg NTSC S-Video - 3

CyberLab NES for Blargg + Core Blargg NTSC S-Video - 4

CyberLab NES for Blargg + Core Blargg NTSC S-Video - 5

CyberLab NES for Blargg + Core Blargg NTSC S-Video - 6

You can use MPC-HC, MX Player or VLC Player to view the videos.

CyberLab__Arcade-Sharp__PVM-Edition__ADV

You have to zoom in or view these screenshots fullscreen for them to look right.

1 Like

2 Likes

Here we go another guest shader update another shader tweak. @guest.r I like the new additions especially that alternate bloom and luma grain, made good use of both of those. Just like my last post I included presets of both warm and cool temperatures to play with:

https://www.mediafire.com/file/i8agszxm2yys04d/crt-guest-advanced-ntsc-slotmask_presets_05-08-2022.zip/file

You must have guest’s latest shader update for my presets to display properly which you can find here.

@HyperspaceMadness you already know lol. As always, hope you all enjoy.

8 Likes

An example how i like to play some games, but is quite a quick setup.

Sometimes i find the Smart Edge Interpolation feature very handy also.

Edit:

parameter values for the standard preset (copy/paste into an existing saved preset):

bloom = "-0.500000"
halation = "0.050000"
brightboost = "1.800000"
gsl = "1.000000"
scanline1 = "2.000000"
scanline2 = "16.000000"
beam_min = "2.499999"
beam_size = "0.750000"
scans = "1.750000"
scan_falloff = "0.500000"
h_sharp = "3.300002"
smart_ei = "0.200000"
sth = "0.100000"
warpX = "0.050000"
warpY = "0.070000"
csize = "0.080000"
bsize1 = "0.100000"
shadowMask = "6.000000"
maskstr = "1.000000"
mask_layout = "1.000000"
deconrby = "-1.500000"
post_br = "1.200000"
13 Likes

That looks great! Would you mind sharing the preset?

2 Likes

Sure, maybe it needs some more tweaking though. :smiley:

2 Likes

Good work from the master himself! Maybe you should start including your current personal shader preset as an example preset in your package from now on!

I could see this benefiting many users, both new and experienced alike.

4 Likes

Hello everybody! Well I made this preset with Hillian sinc, I confess that I would like to get this sharpness with the guest advanced mask 10, but it doesn’t get the sharpness like this:

shaders = “6”
shader0 = “shaders_slang/ntsc/shaders/ntsc-adaptive/ntsc-pass1.slang”
filter_linear0 = “false”
wrap_mode0 = “clamp_to_border”
mipmap_input0 = “false”
alias0 = “”
float_framebuffer0 = “true”
srgb_framebuffer0 = “false”
scale_type_x0 = “source”
scale_x0 = “4.000000”
scale_type_y0 = “source”
scale_y0 = “1.000000”
shader1 = “shaders_slang/ntsc/shaders/ntsc-adaptive/ntsc-pass2.slang”
filter_linear1 = “true”
wrap_mode1 = “clamp_to_border”
mipmap_input1 = “false”
alias1 = “”
float_framebuffer1 = “false”
srgb_framebuffer1 = “false”
scale_type_x1 = “source”
scale_x1 = “0.500000”
scale_type_y1 = “source”
scale_y1 = “1.000000”
shader2 = “shaders_slang/misc/image-adjustment.slang”
filter_linear2 = “false”
wrap_mode2 = “clamp_to_border”
mipmap_input2 = “false”
alias2 = “”
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/custom-fast-sharpen.slang”
filter_linear3 = “false”
wrap_mode3 = “clamp_to_border”
mipmap_input3 = “false”
alias3 = “”
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/sharpen/shaders/adaptive-sharpen.slang”
filter_linear4 = “false”
wrap_mode4 = “clamp_to_border”
mipmap_input4 = “false”
alias4 = “”
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/hyllian/crt-hyllian-sinc.slang”
wrap_mode5 = “clamp_to_border”
mipmap_input5 = “false”
alias5 = “”
float_framebuffer5 = “false”
srgb_framebuffer5 = “false”
quality = “-1.000000”
ntsc_phase = “2.000000”
cust_artifacting = “1.100000”
ia_saturation = “1.100000”
ia_contrast = “1.050000”
SHARPEN = “4.000000”
CONTR = “0.000000”
BEAM_MIN_WIDTH = “0.360000”
COLOR_BOOST = “2.000000”
PHOSPHOR_LAYOUT = “8.000000”
OutputGamma = “2.999999”

6 Likes

It would require a special parameter with substractive sharpness. Been thinking about it since a long time ago and found a very nice code solution, will add it as a new release soon.

5 Likes