HSM Mega Bezel Reflection Shader! - Feedback and Updates

You have been a busy and productive man!!!

Love the new scanline features. Just amazing!


SNES night using only the top image layer with the new features!

New masking worked exactly as we hoped. :grin:

Just edit the slangp, set the blend and mask, and boom! (I did need to reduce the inner bezel edge to zero. Not a deal breaker in any way.)


This is because your texture was not appearing on the inner edge? If so I can fix this

If you agree that it is desirable. Just know that you’re work is appreciated my friend!

I am in awe of your last two releases!


Thanks a bunch, you’ve been really making some great stuff too, that pc tower in vector with all the details is pretty amazing :slight_smile:

Yeah I think the change to the mask is desirable, I think it was only that way for the glass preset. So I’ll just put in another define for the special behavior of the glass preset which is more the correct thing I think.


The fake scanlines are badly misaligned with the pixels; is there a way to fix that?

It really depends on what resolution you are at and the core resolution, the fake scan lines takes the tube size and divides it by 240 to find an integer height for the scanline so each is the same number of pixels. It’s possible that we could add some controls to set the alignment and number of scanlines, but we’re pretty tight on adding new parameters.

If the scanlines aren’t starting at the exact top of the tube this could be possibly improved without any extra parameters.

Can you post a screenshot showing the problem and with the debug parameter on, all the scaling & resolution info will be shown on the screen.

Fantastic update. One shader to emulate them all.

For the fake scan lines I have found the 2d short axis set to 0 helps along with having the HSM integer scaling turned to on inside the shader. From my experience it is very difficult to get the fake lines to be pixel perfect. A possible solution would be having something like the rolling scan lines from the newpixieCRT shader as it further tricks the eye.

What a diverse and powerful shader. Now if only I understood the various color profiles + crt profile + lut.


Yeah the color profiles are interesting, here’s my cheat sheet after using them for a bit:

  • The color spaces are really there to match what color space of your monitor, for most of us this is SRGB so keeping it at 0.

  • If you are using the lut colors on, then leave the crt profiles at 0.

  • If you are not using lut colors then you it can be helpful to use the crt color profiles, I find #5 to be good.

Edit: This leads me to wonder if the lut colors should be one of the color profile options and the lut parameter removed.


The profiles tells the shader what type of standard you want it to approximate. Example:

I use the AdobeRGB gamut and use the #2 profile for classic consoles because it is the SMPTE-C standard, which is what most consumer devices used from the retro period. You can find out more about these profiles inside the shader. (“How things should look”)

The LUT applies a LUT to the picture but it doesn’t use standards but particular looks from individual TVs. Less accurate. (“I want my display to look like Jimmy’s PVM!”)


The Mega Bezel is updated to V 2020-05-24


  • Added & Renamed the Core Downres Options
    • [Scanlines] Reduce Core Res Mult X
    • [Scanlines] Reduce Core Res Mult Y
  • The LUT is now one of the CRT Profile options and no longer has it’s own parameter to hopefully simplify
  • The cylindrical 3d curvature now maintains the width rather than shrinking horizontally
  • All Bezel presets now have the first version of @Duimon’s night mode top image texture, turn up opacity to overlay it onto the frame and background
  • Fixed masking issues @Duimon found
  • The full scale mode which scales the screen to the whole monitor is now aspect ratio mode 3
  • The debug parameter is now the first parameter
  • Adjusted Black level to -0.1 and Negative Crop Brightness to match
  • BG image scale mode is set to Fullscreen (1) by default

Top Image Opacity to turn on night mode, here’s an example with @Duimon’s awesome background images


Cylindrical Curvature

Reduce Core Res



Love the “night mode”. Though raising the number all the way to 100 takes a while. :stuck_out_tongue:

1 Like

Glad you like it, it was mostly driven by input from Duimon and of course the nice texture comes from him too.

Yeah, I’ll take a look at the increments to see if they are too low. I think originally the increments were low so that when you use it additively like in the glass preset you can add on just a little at a time.

If you hit enter you can press up and it will go from 0 right to 100, then you can dial down from there.

1 Like

Oh I didn’t know the “enter” trick, good to know. Just when I keep thinking this shader couldn’t get any better!

1 Like

This is really cool. I noticed that when applying “night mode” there is a slim edge to the bottom and right parts of the image, as if that part of the screen does not apply the darkened image:


I’m guessing this is in the texture, we’ll fix it on the next update to the texture which should come soon.


Hey shenlong, your work is amazing but i cant get the new version of retroarch to work with these shaders. any chance of you uploading your version with these shaders installed??

1 Like

Is there a way to reduce the uneven scanline effect with the Crt-Royale Bezel Reflection preset without setting the Int Scale Mode to Short Axis (which makes the screen too tiny on my 1440p monitor) ?

1 Like

What is the core res you are working with? If you set the debug parameter on you will be able to see this. Can you post an image of what you’re seeing and an image of the same thing in Guest-Venom?

You can also play with the int scale min border height to adjust how much empty vertical space the shader reserves for the top & bottom if int scale is making the screen really small.

Other than this I’m not sure what can be done with the current shader.

I’m still thinking about options for improving moire. There is the EWA solution that hunterk used in EWA Curvature which adds a bit of blur. And there is also the moire mitigation stuff hunterk did in one of the shaders, but has a performance impact and you trade moire for some noise

1 Like

I think a bit of blur is a better poison than the noise.

1 Like

@nyckrazy, thanks for your kind works, however I’m not clear which shaders you are referring to. As you have posted in this thread I will assume you mean the HSM Mega Bezel Reflection Shader - the great work on this shader has been done by @HyperspaceMadness, the pack utilises and combines other great shader work done by @guest.r, @EasyMode, @hunterk … other developers.

I currently have no versions of my own presets with this shader pack as I struggle to get full speed with this combo.