Please show off what crt shaders can do!

Check the difference a simple shader (fake-crt-geom with image-adjustment.glsl as 1st pass) can make

https://screenshotcomparison.com/comparison/18282

10 Likes

Holy cow that is an amazing difference. Not to mention that is a very cool website.

8 Likes

We all need to be using that site, that’s some spicy fire lol.

6 Likes

Could this stack of effects be done with the slang shaders?

Your monitor resembles one that i had in 1997.

Thanks.

There are some shaders that use that mask: crt-aperture, CRT-geom, guest.r, I think crt-pi, so if you add 1st pass image-adjustment (in misc folder) and then e.g CRT-geom and add some contrast, saturation should be similar if not better.

Also that image comparison is on my laptop with gtx 1060, if I stretch image non-integer there, there are no uneven scanlines/artifacts but If I do the same on my cellphone there are. I think this is due to float precision definition inside the shader (lower on cellphones).

3 Likes

How can I add little softness to crt shader, like on your screenshots?

1 Like

Check this out

https://screenshotcomparison.com/comparison/18313

Save this as yourname.glslp and check (should run inside folder retroarch/shaders so it can see the paths.

shaders = "2"
feedback_pass = "0"
shader0 = "shaders_glsl/misc/image-adjustment.glsl"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
shader1 = "shaders_glsl/crt/shaders/crt-guest-cgwg-curvature.glsl"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
ia_contrast = "1.400000"
ia_black_level = "-0.030000"
ia_bright_boost = "0.050000"
brightboost = "1.150000"
saturation = "1.200000"
beam_min = "1.500000"
beam_max = "2.300000"
h_sharp = "1.400001"
warpX = "0.030000"
warpY = "0.020000"
5 Likes

You can try different things like Increasing Downsample Blur, Decreasing Horizontal Sharpness, Turning On Scale FX, playing with the core sampling resolution and more.

Or you can just use presets like these:

2 Likes

@Cyber or anyone for that matter…since you are familiar with the new pixie shader, do you have integer scale on while using it or you leave it off…generally I always use integer scale on with my shaders but I read somewhere (and correct me if I’m wrong) that newpixie makes some sort of auto-scaling, is it true?

For the record my screen is 1600*900 and I use 5x width with 4x height. Thanks!

1 Like

Thank you very much! Strangely, the softness of your screenshots is missing on my side :confused:

2 Likes

Integer scaling is primarily an issue for scanlines. Newpixie doesn’t include any special sauce that fixes this, it just rolls the scanlines so the unevenness from fractional scaling isn’t as obvious.

4 Likes

I’m not really familiar with the new pixie shader but instead the new pixie clone shader preset that was made by @HyperspaceMadness. I use HSM Mega Bezel Reflection Shader exclusively now and in order to use that you must set integer scale to off and aspect ratio to either Full or the aspect ratio of your screen. HSM Mega Bezel Reflection Shader takes care of the scaling and aspect ratio automatically.

1 Like

If you’re using Higan or BSNES, the resolution setting in the core options can influence how your final image quality looks in terms of sharpness and softness. You can try switching between 256 x 224 or 512 x 224 and see what happens.

Also things like the billinear filtering setting and blur emulation can affect that as well. There are many settings which can affect softness.

Can you post your shader preset settings?

This applies to Guest-DrVenom and HSM Mega Bezel Reflection Shader but it might help:

2 Likes

It also handles Integer scaling. You can have it off, on just the Short axis, or Both axes.

The new pixie clone uses fake scanlines that have no curvature so integer scaling isn’t needed. It also has an Integer Scale scanlines option. (Though I think this is to make the scanlines fit the pixels like they should.)

3 Likes

That’s right, the integer scale scanlines divides up the scanlines so that they are a multiple of the pixels available.

3 Likes

Another @guest.r shader update, another shader preset tweak. The new rolling scanlines feature is a welcome touch and I wasted no time making use of it. I kept it subtle though:

Retro-Arch-20211022-152752 Retro-Arch-20211022-152903 Retro-Arch-20211022-153247 Retro-Arch-20211022-153455 Retro-Arch-20211022-153827 Retro-Arch-20211022-154543

shaders = "10"
shader0 = "shaders_slang/crt/shaders/crtsim/composite.slang"
filter_linear0 = "true"
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/misc/grade.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "PrePass"
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/avg-lum.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "true"
alias2 = "AvgLumPass"
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/linearize.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "LinearizePass"
float_framebuffer3 = "true"
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/gaussian_horizontal.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = ""
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "absolute"
scale_x4 = "800"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "GlowPass"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "absolute"
scale_x5 = "800"
scale_type_y5 = "absolute"
scale_y5 = "600"
shader6 = "shaders_slang/crt/shaders/guest/advanced/bloom_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 = "absolute"
scale_y6 = "600"
shader7 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "BloomPass"
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/advanced/crt-guest-advanced.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "viewport"
scale_x8 = "1.000000"
scale_type_y8 = "viewport"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/guest/advanced/deconvergence.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
NTSCArtifactScale = "0.000000"
wp_temperature = "8004.000000"
interm = "5.000000"
bloom = "0.900000"
halation = "0.400000"
gsl = "-1.000000"
rolling_scan = "-0.100000"
h_sharp = "3.000002"
s_sharp = "0.200000"
BLOOM = "1.000000"
csize = "0.030000"
barspeed = "200.000000"
barintensity = "0.010000"
warpX = "0.040000"
warpY = "0.050000"
c_shape = "0.600000"
shadowMask = "8.000000"
maskstr = "1.000000"
slotmask = "0.500000"
slotmask1 = "0.850000"
slotwidth = "3.000000"
double_slot = "2.000000"
deconrr = "0.750000"
deconrb = "-0.750000"
deconrry = "1.500000"
deconrby = "-1.500000"
decons = "-2.000002"
addnoised = "-0.300000"
textures = "MaskTexture;NTSCArtifactSampler;shadowMaskSampler;SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
MaskTexture = "shaders_slang/crt/shaders/mame_hlsl/resources/aperture-grille.png"
MaskTexture_wrap_mode = "clamp_to_border"
MaskTexture_mipmap = "false"
NTSCArtifactSampler = "shaders_slang/crt/shaders/crtsim/artifacts.png"
NTSCArtifactSampler_linear = "true"
NTSCArtifactSampler_wrap_mode = "clamp_to_border"
NTSCArtifactSampler_mipmap = "false"
shadowMaskSampler = "shaders_slang/crt/shaders/crtsim/mask.png"
shadowMaskSampler_linear = "true"
shadowMaskSampler_wrap_mode = "clamp_to_border"
shadowMaskSampler_mipmap = "false"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron1.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron2.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/lut/other1.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/lut/custom_lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"
9 Likes

Easy, this filter with the effect of the crystal distortion, and perfect.

2 Likes

Thank you I’m glad you like it, @guest.r likes my preset as well and I always appreciate that. I think this preset is the best concoction I’ve came up with yet since I started posting in this thread months ago. That slot mask is so sexy and gives off the right gritty look I’m going for. I like my preset so much I might try and ask @hunterk if he can get it up upstreamed to the presets folder for all to easily grab, maybe call it something like “crt-guest-dr-venom-advanced-slotmask-grade” or something lol

5 Likes

Maybe add something about the rolling scanlines into the name?

1 Like