Please show off what crt shaders can do!

Here’s one more tweak, this time should be the last time lol. I went and dialed the noise back to how I have it in my custom slotmask shader a few posts up. The more noise you use the more the colors tend to look washed out, you can see the example here, last settings looked like this:

Now it looks like this:

Try it out.

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"
interm = "5.000000"
bloom = "0.900000"
halation = "0.400000"
rolling_scan = "-0.100000"
h_sharp = "2.000000"
s_sharp = "0.000000"
BLOOM = "1.000000"
csize = "0.030000"
barspeed = "200.000000"
barintensity = "0.010000"
warpX = "0.040000"
warpY = "0.050000"
c_shape = "0.600000"
shadowMask = "3.000000"
maskstr = "1.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"

Looks nice. I prefer being able to see the mask and scanlines over highlights but it’s hard to do without sacrificing a ton of brightness.


1440p users can now enjoy presets that are optimized for that resolution providing almost the same look and feel of my existing presets which were all designed, tested and targeted towards 4K display users!

While the 1080p presets can actually work well and look sharp at 1440p, certain settings vary quite a bit according to the resolution so the solution that would best preserve my vision and also help 1440p users encroach even more on 4K image quality would be dedicated optimized presets for 1440p resolution. After doing the 1080p groundwork, this wasn’t difficult at all to implement.

CyberLab Mega Bezel Death To Pixels (Blending and Transparency 1440p Edition)

CyberLab Mega Bezel Death To Pixels (Composite - Sharp 1440p Edition)

CyberLab Mega Bezel Death To Pixels (Composite - Pure 1440p Edition)

CyberLab Mega Bezel Death To Pixels (Arcade - Sharp 1440p Edition)

I do this for the love not for the likes…

After showing all of that love to 1440p and 1080p optimized presets, I just had to do something to lift the spirits of my 4K presets so without further ado here are my brand new RGB and updated 4K presets!

Be sure to click and load or download the full resolution versions of these to see them properly.

CyberLab Mega Bezel Death To Pixels (Composite - Sharp)

CyberLab Mega Bezel Death To Pixels (Blending and Transparency Edition)

Are these my presets? Are you serious? Looking this good?

Click the link below to download

CyberLab Mega Bezel Death To Pixels Shader Preset Pack


Yeah I see what you mean. Hopefully that’s the last time I touch that preset, I think it’s good to go now.

CRT-Pi stripped to it’s barebones. Gamma, Curvature, filter out. Runs at least 50% faster than CRT-Pi (900 fps vs 600 fps on my laptop but it has some limit of 900 on all cores so it could be faster than that). Runs 60 fps at 720p on Atom netbooks with crappy GMA cards! And looks good! Could be useful to some people.


Well everyone, just passing through to share the link to the new home of the CyberLab Mega Bezel Death To Pixels Shader Preset Pack. Thanks for all of your support in helping me to get to this point. Feel free to drop by and take a download!


Heh, I made that particular comparison pic something like 6 years ago. Funny to see it pop up again like this.

Confession time: to be honest, it was a bit of a troll image. It’s not even original: there was an earlier version someone else made that compared only the first and last shots (which I also did not take). I did add the middle two for my version, however. The second-to-last shot I took myself, and it’s not even a PVM shot, but rather the game running on RetroArch on a 17" Mitsubishi Diamondtron PC CRT running at 1920x480 or some such with IIRC, which basically just adds pure black lines on top to simulate 240p on a PC CRT. It’s more akin to a BVM if anything.

Anyway, that’s the story of that pic. Cool shader, though!


Probably that last shot was taken with an old Nokia phone with 320x240 resolution. CRTs never looked like that, or maybe some old magazine shot.

And this is how they actually looked


It’s good to know the history behind that pic, the first time I seen that pic was in this very thread when it first started and someone had posted it in the beginning, never knew where it was sourced from but I liked how the last pic looked so I tried to mimic it and now I made my own little version of it lol

1 Like

The reference of CRTS screen is in the old arcade machines 80 years, at least for me and for others. Clean image.

In home screes lots of differents crts screens and sources, and pc monitors … and at last the Sonys crts like flat screens.

See the curvature…:

These curvature apply an effect of the games, the distortion (mame MSDOS) , that make in the sprites a “zoom” in the center of the screen that reduce gradually to the sides. Is like a movement, is diferent and is imperative.

For see good, go to msdos mame and try distortion for se the results, apply to both a valour of 45, distortion to quadric and cubic and see.

See the rounded corners, and the vignetic effect…all the dinamics too…

(right mouse and open image on next tab to see the image)

The pixels of the mask are visible in all chases always visibles, i mean mostly.

A greeting and long live to crts!!

Never have I played Street Fighter II Hyper Fighting on an arcade cabinet and the power bars appeared bent like this.

Look at the words “Player Select” and the characters names, or the horizontal spacing between the bottom of the Character Selection boxes and the bottom border of the screen. It all looks fairly even, not bent out of shape like many of these examples of curvature look in some forum posts.

Curved screen does not equal equally curved image on the screen. What is easy to do is take a picture from an off axis angle and change the perspective of the image. This tends to exaggerate the curvature compared to the same picture taken or the same screen viewed head on.

Yes but that you not play not means that not exist and other people see, like the developer of mame hlsl, these that made the effect of distortion, this is very very real and live.

I put a image around internet one of a lots, not a image of a angle is a whole screen curved and whel… if people put the vigneting effect why no the distortion that is more funny and visible and make a real effect of crt screen, is another effect of the crt emulation.

The curvature is visible, and clear and that curvature was an effect, that exist, is for that the distortion effect is implementented in mame, because exist, and very visible and clear, when you play in a old crt screen.

A greeting.

It could be if you take in to account the barrel effect of the actual CRT and the angle of viewing (the CRT is not upright).

1 Like

When standing in front of a cab, we also lean over and into the opening so that we’re looking at the screen closer to perpendicular to the center of the screen. That shot with the extreme curvature visible is taken from down by the control panel, so it’s what a 10-yr old kid sees :slight_smile:

Anyway, yes, curvature is available for people who want it.


Yes ajam, the reduction of the pixels due the distortion effect is visible from any angle and from any age, from 10 to 37 years or above :wink:, exact and is make to be disponible and aplicable. An effect, one of the most, very inmersive to feel like a CRT screeen when you play, even new and the effect is little to be applied.

“what CRT shaders actually look like”


The bad of the distortion effect and the actually shaders config like ghest venon hi res 4k for example is that when is applied, the curvature, all people know what appears… Literally im not remember the name of these that broke the mask when the curvature is applied.

My computer for retroarch mame is not very good, and latelly the filters that run good, in the two last actualization of retroarch now are slow, and i cant run some filters now, also 4k not too etc.

A greeting.

new pixie: very real

guest curvature simulation (quick config)

Mame hlsl shader with real distortion effect applied, and humbar and filter, bloom, etc (following the filter)

Your Preset from Mega Bezel called “Nesguy__Aperture__Low-TVL__Mask-7__Dbl-Phosphor-Width__N0” is very nice and I wanted to thank you for this great preset, which I am using as default for all games. Are there in your opinion other Presets available, which you would recommend even more than this (I’m just searching for perfection :slight_smile: ?


Have you seen and tried these yet?

1 Like

Yes I tried them, but they give a slight “Aquarell painted” look, which I’m not a fan of to be honest. I can see cleary, that those presets are digitally manipulated. It does not look as natural as Nesguy’s preset to me. But thank you anyway, it’s just my personal taste, others may like it more.

I really tried all presets from the Bezel package and also all standard presets included in Retroarch, but the preset from Nesguy I mentioned is my favorite of all till now.