Please show off what crt shaders can do!

These high-pitch monitors must have been more common than people think nowadays. None other than IBM sold them until the early 90’s

Nesguy suggested years ago that Lottes 4 is something of an equivalent to a 3.6 mask, so you’d need about 1600p res TVL wise I guess.

1 Like

I think mask 11 in the subpixel masks looks pretty close. Here it is in crt-hyllian (photo of my crappy 1080p office monitor):

Obviously, it looks more like the PC monitor at 4K (faux 4K here using my same crappy monitor):

5 Likes

Yeah, both Mask 10 and 11 with mask stagger set to 2 (or 2.5 for a slightly coarser mask) look really quite good if you want a shadow mask look, but they’re a bit too high pitch for the look I was shooting for unless you stick to 3x scale. If you want a sharper look with some slight scanlines, though, they’re great.

Here’s a black and white version. Mask 7, mask shift 1.

6 Likes

I do like how that makes the edges of pixels look nice and round. Mask 0 with shift 1 also works, of course.

2 Likes

This looks awesome! Can you please post the settings for this?

1 Like

It took a lot of trial and error, but I finally got the gamma curve I wanted.

Another brief video: https://youtu.be/8yyFveYiMFg

Download: https://github.com/frankschoeman/kyubus-shader

1 Like
shaders = "12"
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 = "false"
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 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "true"
alias3 = "PrePass"
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/avg-lum.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "true"
alias4 = "AvgLumPass"
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/linearize.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "LinearizePass"
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/gaussian_horizontal.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "absolute"
scale_x6 = "800"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "GlowPass"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "absolute"
scale_x7 = "800"
scale_type_y7 = "absolute"
scale_y7 = "600"
shader8 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "absolute"
scale_x8 = "800"
scale_type_y8 = "absolute"
scale_y8 = "600"
shader9 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "BloomPass"
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/advanced/crt-guest-advanced.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "viewport"
scale_x10 = "1.000000"
scale_type_y10 = "viewport"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/guest/advanced/deconvergence.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "viewport"
scale_y11 = "1.000000"
GAMMA_INPUT = "2.500000"
gamma_out = "2.200000"
m_glow = "1.000000"
glow = "0.050000"
bloom = "0.050000"
brightboost = "2.100000"
brightboost1 = "1.799997"
gsl = "2.000000"
scanline1 = "5.000000"
scanline2 = "10.000000"
beam_max = "1.200000"
scans = "0.700000"
s_sharp = "1.000000"
shadowMask = "7.000000"
maskstr = "1.000000"
mcut = "1.000000"
maskDark = "0.300000"
maskLight = "1.000000"
mshift = "1.000000"
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"
2 Likes

So it turns out Mask 10 with mask shift 2 actually works really freakin’ well at 1080p:

I ended up adding quite a bit of mask boosting for this shot to brighten it up while making the shadow mask details really pop. Turned out really nice IMO. Best thing is, for this shot I didn’t even have to disable line-doubling, so this is line-doubled 480p at 2x scale.

6 Likes

Linedoubling and non-integer stretching work fine with mask only, it’s the scanlines that throw everything off (including making this mask way too coarse). With scanlines you are limited to the 2pixel masks at 1080p I think, but you can keep linedoubled scanlines with the res-indepent scanlines shader attached for 5x scale.

Mask 10 shifted without scanlines for comparsion.

3 Likes

Some tests with mask 10 moved to 2 - along with other changes I need to fine-tune.

1 Like

Another nice work I found among the RetroArch CRT shaders is the Newpixie, here it is with some small modifications:

2 Likes

Doing more gamma correction. I’ve been adjusting the LUT texture for a while. I would like to bring it to RetroArch, but the LUT shader that is available (reshade\shaders\LUT\LUT.slang) fails to load for me. Anyone know why? The PSD file is a lot more complex now, I feel like I’m getting it right even though I’m not using a CRT for reference. I’m just trying to see what the original artists saw.

4 Likes

I don’t think you need integer scaling. Disable it to get some more pixels as breathing room for the shader.

This is my LG C9 OLED preset that borrows from many comm contributions. Mask 12 slot width 7 height 3. I’m using magic bloom w/ bloom & and mask bloom. Can share if interested.

It’s a low tvl style preset

Slotmask

6 Likes

Looks good,

Which Mask Layout are you using, RGB (0) or BGR (1)?

If you want to make a separate thread with a log containing the shader compiler error, I can take a look.

Getting back into shaders again with some new ReShade VHS settings :

Raw screens (for comparison) :

9 Likes

Here’s screenshots of preset by Sonkun with some little changes.

8 Likes

How can I make triads more pronounced and saturated? Especially on whites?

1 Like