Please show off what crt shaders can do!

This is what I get when I just say “screw the mask, I want it bright” (still using 250 nits though).

9300K color temp.

6 Likes

Agreed, but there are a lot of bad anomalies from things which might be incorrectly associated with or correlated to CRT video that still can be emulated.

We’re basically in a sort of “Total Recall” era where not that many people actually have seen and used (real) CRTs in real life nor remember closely how they looked so what we get is people using bad recordings and photos of CRTs which look nothing like they do in person as references for CRT shaders and presets thinking the more they look like the misrepresentation the better.

Some of these videos are just as bad as a bad quality bootleg cam recording of a movie yet, some seem to believe that the artifacts seen in those videos are of that of the CRT.

When fed to the sometimes uninformed and sometimes untrained, younger public what do you think happens? New loudness wars again, just in a different form.

So keep doing what you’re doing in the name of preservation and whatever else you believe in but don’t expect a majority of folks to care or understand because they grew up in a completely different time and experience. It might actually be impossible for some of them to understand or conceive things they way you, myself and many others may have experienced it.

4 Likes

Well, eyes are cameras, sort of.

And they may react in a different manner when watching a mask generated by a shiny real crt versus one emulated on a dull lcd, so maybe a little, not too much, help is needed by the latter.

2 Likes

I’ve pretty much accepted that we now live in a Black Mirror episode and what really matters now is having the skill for self-promotion using social media. Quality has very little to do with popularity or success. There will still be some who are well-informed and care about accuracy, and those are the people whose opinions I really care about. I realize I’m coming off as a bitter old man having a “get off my lawn” moment but I sometimes think the kids are destroying the planet.

4 Likes

I really like those scanlines, would you mind sharing the settings?

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"
PR = "0.000000"
PG = "0.000000"
PB = "0.000000"
AS = "0.000000"
sat = "0.000000"
WP = "-100.000000"
wp_saturation = "1.300000"
m_glow = "1.000000"
glow = "0.050000"
brightboost = "1.500005"
brightboost1 = "3.000000"
gsl = "1.000000"
scanline1 = "12.000000"
scanline2 = "14.000000"
beam_min = "1.500000"
beam_max = "1.750000"
scans = "1.000000"
scan_falloff = "1.000001"
s_sharp = "1.000000"
sborder = "0.700000"
maskstr = "0.800000"
mcut = "0.800000"
maskDark = "0.300000"
maskLight = "1.000000"
slotwidth = "3.000000"
deconrr = "-0.250000"
deconrry = "-0.250000"
deconrgy = "0.250000"
post_br = "1.300000"
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

It’s just phases and stages of life. It is what it is. Then one day we’ll all no longer exist and we don’t know exactly when that day will come so it’s important to make the time to actually enjoy some of the things that we have in our minds to do and enjoy.

Even though we might still remember the spirit of our childhood and have not aged nearly as fast in terms in terms of our consciousness. Despite growing, learning and attaining maturity, you can’t hide from what the outside tells you.

I have a feeling a number of us here might already have long grey beards and possibly bald patches.

2 Likes

For a little change, I’ve made a NTSC aperture grille preset, Trinitron style (that’s why only one axis is curved). It’s not that different from my slot mask one as I’m applying the same philosophy: hassle free, tweak just a few parameters, but with very fine tuning.

I’m pretty satisfied, seems a nice balance between playability - or maybe I should call it simply brightness :laughing: - and fidelity.

#reference ":/shaders/shaders_slang/crt/crt-guest-advanced-ntsc.slangp"
WP = "-20.000000"
pre_bb = "1.100000"
gamma_out = "2.000000"
interm = "5.000000"
S_SHARP = "1.000000"
HSHARP = "2.000000"
m_glow = "1.000000"
m_glow_dist = "0.800000"
m_glow_mask = "0.800000"
bloom = "-0.400000"
halation = "-0.050000"
warpX = "0.030000"
csize = "0.010000"
bsize1 = "0.100000"
shadowMask = "6.000000"
maskstr = "1.000000"
smoothmask = "1.000000"
post_br = "1.100000"
3 Likes

2 Likes

With this “prepend/append” shaders option makes it so much easier to combine. I think this is what I was looking for. One global shader for all systems (kinda, some cores use NTSC filters or upscale to fit). Much love to the crt_consumer shader:

However, Retroarch ver. 15 implements this feature somewhat differently and the shaders look weird. Had to revert to ver 14, on both my android tablet as PC. Lenovo legion y700 has descent PPI count and looks great when hooked to the TV 4k @60hz.

6 Likes

Dim if I’m viewing it in full daylight but plenty bright in a dark room at max backlight settings.

1 Like

Wow! I love this glow. How do you achieve that?

While I can’t spot clipping, Isn’t the gamma a bit low/very compressed on brighter colors?

1 Like

Yes it is. Maximum mask strength is always a challenge with SDR. I’m not sure how the Megatron does it, and I’ve never been able to exactly replicate it in guest-dr-venom.

Mask mitigation is probably a fine option when playing at couch mode distances, when using an SDR display. With HDR it’s no longer necessary to sacrifice the mask for brightness.

80% mask strength, maximum bright boosting, some post CRT brightness, saturation, and some scanline tweaks:

7 Likes

CRT-Royale with alternate shadow mask pattern. I like it a lot even though the mask pattern may not be authentic in closeups. At normal viewing distance, the image averages out quite well to my eyes. :nerd_face:

shadow

8 Likes

Not sure what you mean by glow :sweat_smile:, but I guess you mean the Vignette effect from the CRT_consumer shader. I have it at power: 30 and strength: 30

1 Like

I second that, It gives that lovely typical sparkling look.

4 Likes

These are from a new shader i am toying around the last few days. Mitchell cubic filter (i think that’s the best for scaling pixel art after testing all variations), easymode scanlines (they scale well on non integer), improved glow, hue shifted to match a CRT etc etc.

13 Likes

Added an easily tweakable mono display :grinning:

7 Likes

3 Likes