Please show off what crt shaders can do!

Just trying a preset from zero. With strong masks…

7 Likes

Looks delicious man! I’ve always said this you’ve got the eye for these things!

1 Like

Thank you man!

Here is my preset if you want to try it. Also try it with HDR and see how it looks…

shaders = "18"
shader0 = "shaders_slang/crt/shaders/guest/advanced/stock.slang"
alias0 = ""
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
filter_linear0 = "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/advanced/stock.slang"
alias1 = "StockPass"
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/advanced/afterglow0.slang"
alias2 = "AfterglowPass"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
filter_linear2 = "true"
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"
alias3 = "PrePass0"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
filter_linear3 = "true"
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"
alias4 = "NPass1"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
filter_linear4 = "false"
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"
alias5 = ""
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
filter_linear5 = "true"
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"
alias6 = ""
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/advanced/custom-fast-sharpen.slang"
alias7 = "NtscPass"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
filter_linear7 = "true"
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"
alias8 = "PrePass"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "true"
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/advanced/avg-lum-ntsc.slang"
alias9 = "AvgLumPass"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "true"
filter_linear9 = "true"
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"
alias10 = "LinearizePass"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
filter_linear10 = "true"
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"
alias11 = "Pass1"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
filter_linear11 = "true"
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/hd/gaussian_horizontal.slang"
alias12 = ""
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 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
alias13 = "GlowPass"
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 = "absolute"
scale_y13 = "600"
shader14 = "shaders_slang/crt/shaders/guest/hd/bloom_horizontal.slang"
alias14 = ""
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
filter_linear14 = "true"
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "absolute"
scale_x14 = "800"
scale_type_y14 = "absolute"
scale_y14 = "600"
shader15 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
alias15 = "BloomPass"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
filter_linear15 = "true"
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "absolute"
scale_x15 = "800"
scale_type_y15 = "absolute"
scale_y15 = "600"
shader16 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc-pass2.slang"
alias16 = ""
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
filter_linear16 = "true"
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"
alias17 = ""
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
filter_linear17 = "true"
float_framebuffer17 = "false"
srgb_framebuffer17 = "false"
scale_type_x17 = "viewport"
scale_x17 = "1.000000"
scale_type_y17 = "viewport"
scale_y17 = "1.000000"
CP = "4.000000"
WP = "-70.000000"
contr = "-0.450000"
sega_fix = "1.000000"
vigstr = "0.100000"
vigdef = "1.100000"
cust_artifacting = "0.000000"
cust_fringing = "0.000000"
ntsc_scale = "1.649999"
ntsc_sat = "1.010000"
ntsc_bright = "1.020000"
ntsc_gamma = "0.725000"
ntsc_taps = "15.000000"
ntsc_charp = "7.000000"
ntsc_charp3 = "6.000000"
ntsc_cscale = "1.649999"
ntsc_cscale1 = "1.450000"
ntsc_sharp = "-5.500000"
CSHARPEN = "1.500000"
GAMMA_INPUT = "2.449999"
gamma_out = "2.250000"
info02 = "1.000000"
intres = "1.000000"
m_glow = "2.000000"
FINE_GLOW = "3.000000"
FINE_BLOOM = "3.000000"
glow = "0.000000"
gamma_c = "0.725000"
gamma_c2 = "1.200000"
gsl = "1.000000"
tds = "1.000000"
scangamma = "2.450000"
warpX = "0.030000"
warpY = "0.040000"
csize = "0.030000"
shadowMask = "6.000000"
maskstr = "1.000000"
maskboost = "1.400000"
mask_gamma = "2.800000"
slotmask = "1.000000"
slotmask1 = "1.000000"
smask_mit = "0.500000"
bmask = "0.020000"
mclip = "0.100000"
maskmid = "0.100000"
edgemask = "0.100000"
dctypex = "0.750000"
dctypey = "0.750000"
deconrr = "0.250000"
deconrg = "-0.250000"
deconrb = "0.250000"
deconrry = "-0.250000"
deconrgy = "0.250000"
deconrby = "-0.250000"
decons = "2.000000"
noisetype = "1.000000"
post_br = "1.100000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_mipmap = "false"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_mipmap = "false"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_mipmap = "false"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_mipmap = "false"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
3 Likes

I like it a lot

4 Likes

Now testing with different gamma in and out without touching anything else…

3 Likes

Hey there!

I had a blast playing through 2001’s PS2 title City Crisis. Very fun short copter sim arcade game, very satisfying for people like me who tend to identify as big helicopters. XD

To be as immersed as possible in the game, I used a 3D mod for PCSX2 available on the Helixmod site and played it with a VR headset and Desktop+ (a FOSS alternative to VRDesktop). The emulators are incredible when it comes to rendering in QHD and 4K, but the graphics were a bit too clean for me and I missed the awesome CRT shaders you guys provided, so I used yet another layer for post processing with ShaderGlass and its version of CRT-Guest Advanced.

Maybe there’s a simpler way to do all this, but once everything was in place and I knew what I was doing, it was easy going. I really like the grit the shader is adding to the look of the game and think it translates quite well to 3D stereoscopy. Feels like a videodrome trip of some kind of CRT diorama. Here are some cross-eyed stereograms of my playthrough, you can put them in full screen and cross your eyes a bit until you see a 3D image.

3 Likes

Making some some small tweaks on sharpness and other settings, with strong masks…

2 Likes

I like the sweet rainbow :rainbow: effect it gives when it’s zoomed out on my phone :rofl:

4 Likes

Hey there!

Tweaked some shader for Win98 SVGA on the awesome DOSBox-Pure fork, and found the new VGA doublescan setting in the resolution section of CRT-Guest was working quite nicely with 480p content (despite not being its intended use I guess, XD).

It also seems that JINC2 and the slight NTSC blurring is doing quite well with those old fog of war checkerboard patterns of the 2D games of that era. So almost 30 year later I can now play Diablo with transparency effects… Which is really cool as I’m a bit disappointed with the remasters and enhanced versions of those games being way too much zoomed out for modern resolutions.

Shader available here for 4K if you want to try it : https://mega.nz/file/aIYhGC7B#zA_8SjQOYr3Pt5pIk-XahYinBv40f78k6J2m-vQXFY0 But you can tweak the mask size to fit your resolution or liking.

Here’s a comparison with raw pixels on the left and a translucent wall.

It also works with the GOAT…

Also, related to my previous post, here’s a 3D video of the PS2 copter arcade game City Crisis modded for 3DTV or VR. Youtube app can also display the video for red cyan 3D glasses, or in normal 2D. The upload is fresh, 4K is still processing, so give it some time if you want to watch that with a headset and YoutubeVR.

https://www.youtube.com/watch?v=2Dy-LwR79k4

4 Likes

Also I’m tweaking my last brighter preset, so the image looks more natural…

7 Likes

7 Likes

2 Likes

Can anyone (or any shaders) explain why I don’t remember the gray pixels in Diddy Kong’s sprite back in 1995?

1 Like
  • koko-aio/Presets-ng/Monitor-Screen_Hmask-Screen_SlotMask_Taller_Brightest.slangp

6 Likes

Interesting, I like the relative evenness of the alignment between the slot mask and the scanlines.

However this is a Magenta-Green Mask. It’s supposed to show as RGB on the display once used correctly, isn’t it?

Can you post some photos of the screen to show if it actually looks RGB in person?

Maybe you were too busy trying to beat the game to go sniffing around at RGB phosphor triads and pixels to notice something like that.

How many photos of the screen or screenshots do you remember taking or looking at back in 1995?

CyberLab Megatron miniLED 4K HDR Game BFI Turbo Duo_DC 3D Comb Filter Shadow Mask Epic.slangp

CAR9x8x

6 Likes
@Cyber
#reference "shaders_slang/crt/crt-guest-advanced-ntsc.slangp"
CP = "4.000000"
TNTC = "1.000000"
WP = "0.000000"
contr = "0.000000"
BP = "0.000000"
vigstr = "0.200000"
vigdef = "1.000000"
cust_artifacting = "0.200000"
cust_fringing = "0.200000"
ntsc_scale = "1.500000"
ntsc_sat = "1.200000"
ntsc_bright = "1.000000"
ntsc_gamma = "1.200000"
ntsc_taps = "16.000000"
ntsc_charp = "6.500000"
ntsc_charp3 = "5.500000"
ntsc_cscale = "1.700000"
ntsc_cscale1 = "1.450000"
ntsc_sharp = "-2.000000"
CSHARPEN = "1.000000"
gamma_out = "2.400000"
info02 = "1.000000"
intres = "1.000000"
m_glow = "1.500000"
FINE_GLOW = "2.000000"
FINE_BLOOM = "2.000000"
mask_bloom = "0.500000"
halation = "0.130000"
gamma_c = "0.800000"
gamma_c2 = "1.250000"
gsl = "1.000000"
tds = "1.000000"
warpX = "0.040000"
warpY = "0.050000"
csize = "0.020000"
bsize1 = "0.010000"
shadowMask = "6.000000"
maskstr = "0.850000"
maskboost = "1.500000"
mask_gamma = "2.500000"
slotmask = "0.500000"
slotmask1 = "1.000000"
smask_mit = "0.500000"
bmask = "0.030000"
mclip = "0.100000"
maskmid = "0.500000"
edgemask = "0.100000"
dctypex = "0.750000"
dctypey = "0.750000"
deconrr = "0.200000"
deconrg = "-0.200000"
deconrb = "0.200000"
deconrry = "-0.200000"
deconrgy = "0.200000"
deconrby = "-0.200000"
decons = "1.500000"
post_br = "1.000000"

Amélioration:

#reference "shaders_slang/crt/crt-guest-advanced-ntsc.slangp"
CP = "4.000000"
TNTC = "1.000000"
WP = "0.150000"
contr = "0.000000"
BP = "0.000000"
vigstr = "0.200000"
vigdef = "1.000000"
cust_artifacting = "0.200000"
cust_fringing = "0.200000"
ntsc_scale = "1.500000"
ntsc_sat = "1.300000"
ntsc_bright = "1.000000"
ntsc_gamma = "1.200000"
ntsc_taps = "16.000000"
ntsc_charp = "5.000000"
ntsc_charp3 = "4.500000"
ntsc_cscale = "1.700000"
ntsc_cscale1 = "1.450000"
ntsc_sharp = "-2.000000"
CSHARPEN = "1.000000"
gamma_out = "2.200000"
info02 = "1.000000"
intres = "1.000000"
m_glow = "1.200000"
FINE_GLOW = "1.500000"
FINE_BLOOM = "1.500000"
mask_bloom = "0.500000"
halation = "0.200000"
gamma_c = "0.850000"
gamma_c2 = "1.200000"
gsl = "1.000000"
tds = "1.000000"
warpX = "0.030000"
warpY = "0.040000"
csize = "0.025000"
bsize1 = "0.010000"
shadowMask = "6.000000"
maskstr = "0.700000"
maskboost = "1.300000"
mask_gamma = "2.100000"
slotmask = "0.350000"
slotmask1 = "1.000000"
smask_mit = "0.500000"
bmask = "0.050000"
mclip = "0.100000"
maskmid = "0.500000"
edgemask = "0.100000"
dctypex = "0.750000"
dctypey = "0.750000"
deconrr = "0.200000"
deconrg = "-0.200000"
deconrb = "0.200000"
deconrry = "-0.200000"
deconrgy = "0.200000"
deconrby = "-0.200000"
decons = "2.000000"
post_br = "1.000000"

3 Likes

Thanks @bactino , if possible and you have a camera wth pro/manual controls/mode. You can set the Shutter Speed to 1/60 or 1/30 (for NTSC), lower the ISO to 100 - 150 and go close to the screen and capture something white or grey. That should allow the subpixels/phosphors to be revealed clearly.

Those pics look decent from a normal viewing distance but I still can’t see what is happening with the green and magenta at the subpixel level.

Hey there!

This week I’ve played a bit on my oldest computer, an obsolete potato of a 12 yo Athlon X2 with a Radeon HD7770 I use as a seedbox with a Ubuntu install as old as the metal it’s on. For some reason the proper AMD driver is not installed anymore and I didnt even bother to reinstall it yet. So using Retroarch with shaders like CRT-Royale was way too demanding to the point of making the whole PC freeze. And I was stuck with OpenGL. No Vulkan.

So here I am with a tweaked glslp preset. Its goal is to upscale VGA or SVGA, with Jinc2-sharp dedithering, ScaleFX edge-smoothing, and a lightning fast yet still great looking Hyllian3D, bringing the grain back. Always loved those Hyllian shaders, thanks you so much for them!

Here’s the preset and a screenshot on 1440p but you can adjust the Y-res multiplier and the Mask size in the shader’s parameters to your liking or your resolution. https://mega.nz/file/iMID1K4Y#iuyfwj40xJkRFyMz0UGXgPqBWp1hmvB6mRkgIh-6Teg

And here’s a side by side raw vs wet comparison, specially showcasing the dedithering effect on the horse’s shadow.

8 Likes