HSM Mega Bezel Reflection Shader! - Feedback and Updates

Here’s a sneak peak of the new dual screen feature and some ways it can be adjusted, this should all be in the update this weekend


Very nice. Is it me or do the reflections look different? They look more… like glass. Or maybe it is just the game.


I think it’s because the reflection isn’t fading much before it reaches the frame and stops completely. THis might just be because the bezel is smaller but I need to investigate what is causing this effect, it might just be that the fade out needs to be set smaller, or perhaps should be automatically scaled smaller when we are in dual screen mode.

Here’s the single screen where we can see that the reflection fade out makes it look less like glass.


Ah okay. I’ll be honest though I kind of like the look.

1 Like

Yeah if you like it, all you need to do is increase the reflection radial fade distance parameter (I think that’s what it’s called)


Thank you, HyperspaceMadness. This all takes work and I want you to know that, as much as I can, I appreciate your hard work. Thank you! Would you like to discuss some of the changes coming up? It might temper expectations.

1 Like

Hey @HyperspaceMadness, is there a possibility to use the “Fake scanline” feature in a separate shader ? I love the effect and I want to use it on a secondary mini-PC for Flycast but the mini-PC is too weak for a whole shader preset.



In my “Misc-Overlays-Borders-Bezels” repo is a scanlines folder that contains a scanline image based on CRT-Geom. (It has all the slot-mask etc. elements.) I use it on my android etc, devices. All I do is place it under an overlay, covering the screen area, and play with the transparency. I find that somewhere between 60% and 30%, depending on my mood and the core, looks pretty good.


Thanks Duimon, I just tried it and it seems really good !

Edit : it’s exactly what I was looking for. Thanks a lot !


My last post was actually my first post, so I can’t edit it because it isn’t approved by the moderators yet, but I just wanted to add this real quick. I figured it out by investigating the log file (as far as I know, I’ve only tested a few shaders so far). I did have the folders set up wrong. I figured out that the presets were directing the emulator to search for a preexisting Retroarch shader Blur9x9, which is in the blur folder that comes already baked into Retroarch. I moved the bezel folder that comes with the HSM Mega Bezel Reflection Shader into the same folder the blur folder is in (Retroarch’s shaders_slang folder) and everything worked.

Apparently the only folder we actually need is the bezles folder, which belongs in the Retroarch’s shaders_slang folder. I don’t understand these instructions from the original post: “Inside the .zip is a shaders folder, drop this shaders folder directly over your existing one and everything will go into the right place.” It did not drop in to the right place when I did this. It just put the shaders folder from the zip inside the Retroarch shader folder. Maybe I did something wrong. I’m not certain. I am pretty proud of myself for figuring it out though. I’ve never used a log file to track the source of an error myself before.

But anyway, that’s how I fixed it and these shaders are really impressive. I’m blown away by the reflection effect. Great job man!


This shader looks amazing @HyperspaceMadness , but for some reason I can’t get it to run. It’s crashing when I try to load the presets. I’m using the beetle hw core. Inter scale is off. I set the aspect ratio in the scale menu to 16:9. I’m not certain if I set the folders up correctly but I tried every configuration I can think of. You are just supposed to copy the shader folder into the RetroArch shader folder, correct? I tried copying the whole HSM_Bezel_Reflection folder first. I then tried copying only the shader folder, and I even tried completely replacing the shader folder in Retroarch.

Here is a google doc link to a log I made of my attempt to get the shader working if that’s of any use.


Any help is greatly appreciated. I’m excited to give these shaders a try!



I think the path is the issue, it should be:


Shader_slang should be in the root of the shader folder. Make sure to update slang shaders through RA first, then copy over the bezel folder inside of it.


Sure, here’s a list of stuff let me know if there’s anything on the list you would like more info on:

Changes: All Presets

  • Requires Retroarch 1.9.1
  • RetroArch 1.9.1 has the Simple Presets feature which you should use for saving your presets
    • Saving with this feature allows the Mega Bezel presets & shaders to be updated without breaking the presets you have saved
    • These presets will be much simpler inside, they only include the changed parameters and textures
  • New preset organization with 4 base preset types
    • ADVANCED - Includes extra image layers which can be reordered and scaled
    • STANDARD - Standard Mega Bezel features
    • GLASS - Fills screen with glass like reflection image, same performance as STANDARD preset
    • BASIC-BORDER - Has only the Background Layer and no autogenerated bezel, can be a replacement for standard retroarch overlay
  • Presets Reorganized so only 4 presets are in the base preset folder
    • Presets with alternate crt shaders are in a different folder
  • Readme has been updated to have description the parameters (Hopefully all of them)
  • Sadly, Royale preset has been removed :frowning:
    • Put a lot of thought into this and decided to remove Royale because:
      • Royale was very difficult to maintain when new features are added
      • It was already missing a few features
  • Glass Presets is probably faster
    • I need to do a direct speed comparison to say definitively
  • All internal parameter names have changed, but will stay stable from now on
    • One exception is the dual Screen parameter names might need to change a bit since it’s newly implemented
  • Dual Screen Mode
    • Now available for all presets and doesn’t have a performance impact
    • A lot more flexibility and control over screen placement, scaling and cropping
    • Can do a proper 3DS preset with the different screen resolutions & aspect ratios
  • New Start Up Animation (You can change the image if desired)
  • Colored Gel Image
    • Used for games like Battlezone where white screen graphics are colored by a gel
  • Backdrop type image blending
    • Used to add screen on top of background art, E.G. Tron, Space Invaders, Boot Hill
  • NightMode
    • Renamed to NightLighting
    • Applied properly to all images
  • Static Gamma now properly applied to all images
  • Frame Highlight with @duimon’s highlight graphic
    • Gives a more dimensional feel to the frame
  • Added Header/Title Params for section breaks
  • LCD preset fixed artifacts in screen and in reflection, LCD can now use cropping
  • Guest-SM Garbage Pixels fixed
  • Fixed Moire appearing in reflection, more noticeable in glass preset
  • Independent curvature for bezel & screen so you can change the screen size without affecting the bezel
  • Reflection
    • Scaling of ‘reflection’ to have similar effect to Big Blur, interesting for driving games
    • Reflection Mask image so an image can be used to mask the reflection with a texture
      • A good example of this is when putting the reflection over top of a plastic textured bezel


  • Image Layers
    • You can change the layering order of each image layer
    • Added Features per Image Layer
      • Scaling Mode
      • Blending mode
      • Mask Mode
    • Almost all layers have the same controls
    • All Image Layers can be Reordered
    • Added Image Layers
      • Bezel Image
        • HSV adjustment
      • Cabinet Glass
    • NightMode
      • Add Saturation & HSV control to NightLighting
    • Image Cutout for Top Image

These changes look great! I have a question in regard to guests’ shader. What exactly is the difference between SM and Drvenom? Is there one you recommend for 4k based on your testing?

Looking forward to the release!


If Royale is removed, are there some settings to make Dr Venom look close to it ?


Could you elaborate on these, please? Sounds quite interesting.

Also wonder if it’s safe to keep getting nightly build updates? Though, RetroArch devs stated in 1.9.1 update blog post that there will be more frequent stable builds in future due to the new infrastructure. Will this be also affecting your presets and will require you an extra work to keep the shaders intact with the new releases?


Amazing work. I am wondering what version of guest’s shader you’re going to base these presets on. :thinking:

Also, would you consider including guest’s scanline interpolation idea in your shader? I think it adds a subtle ‘consumer tv’ quality.

Link to code:


Heh, right now they are the old guest-venom but I do plan to implement guest-venom-advanced as well, just haven’t gotten there yet :wink:

Yeah, I’ll take a look at what it’s doing to understand how it might fit into the picture…


The animation is this :


So like this, image

The game board output a black and white image and a colored plastic film was placed over the screen to make parts of the images colored. This image can be used for anything image you want to apply on the tube area, this can apply a colorizing effect like a colored gel as well as a brightening effect if desired like this.

Yup you can use nightly releases no problem, the shaders will keep working from version to version :slight_smile:


Hey I’m going to jump in here at Post 2000! Wow! Thanks so much everybody for all the feedback over the last year :partying_face:

The package has been downloaded over 2000 times as well which kind of blows my mind too :sweat_smile: