HSM Mega Bezel Reflection Shader! - Feedback and Updates

Thanks for all the updates. Though i think i prefer the older version (3rd release iirc). See the comparison:



First thing about the new version is that the screen is smaller and doesn’t fit even when i disable integer scale from the shader options (you can see the texture around the bezel taking space). The aspect ratio is also different, with the horizontal resolution being a bit more squished.

Secondly, the reflection area in the bezel is much larger/fatter (which further decreases the playable screen size) and i don’t think i could make it like before.

Lastly, the colors seem different, with the blue looking a bit more like purple.

@GemaH If you’re using the third release from the thread, then the color issue in the newest version is probably from hsm-color-adjustment.slang (small chance it’s from updates to crt-guest-dr-venom itself, but idk…), the other issues I can’t really comment on.

UPDATE: I believe the shader is currently on the 7th release.

The one i use is the previous release i think. It has the image-adjustment options in it.

Hi @GemaH thanks for the feedback, and especially for the before and after images which show the differences you are seeing.

I think most of these things can be adjusted to taste with parameters.

I don’t think the aspect ratio has changed, so I’m not sure why is seems different, although the exact aspect ratio of the frame outside of the bezel has been adjusted so that a more equal amount of space of the bezel is shown on top and bottom

The outer frame/border/overlay area can now be scaled independently of the bezel where the reflection is shown. This gives creates the visual of a larger or smaller bezel. You can adjust the outer border by adjusting the mil2_screen_height_in_texture parameter or mil2_scale_offset_x and mil2_scale_offset_y this

For the reduced screen size if you have integer scaling on this is controlled by mscl_int_scale_border_min_height you can always change mscl_int_scale_multiple_offset want a larger or smaller screen.

The reflection can also be adjusted to be more or less stretched. Currently the default values make the reflection a similar scale to the screen, so not stretched a lot like it was in the previous versions. You can adjust how much the reflection is stretched by adjusting the mw_reflection_stretch parameter, this will allow you to get the same thick looking reflection like before.

For the color being possibly purple, the color in the reflections is definitely the same as in the crt image, no color adjustment is being done to it by default. One of the things I notice different about the first and second screenshot you posted is in the latest one the reflection is not as bright and fades out earlier.

For the default parameters of this shader it might be good to do a few different screenshots of the final look with different parameters and have people weigh in on what they like best For example, do they want the default screen scale to be larger like it was before? and how big should the bezel area appear?

In the end these things are configurable so people can tune to their setup and taste, but it would be good to have defaults which are good for those who don’t want to go down the road to tweaking.


Damn, what overlay is that, looks awesome!

1 Like

Thanks! You can find all my overlays in this thread:

There is a dropbox link in the first post where you can download them all. I focus on 4K resolution and recently I’ve started creating these vertical format overlays.


Ive noticed on the newer releases that reflective part of the bezel (not sure what the correct name is) seems to be a lot wider that what it was in previous releases, on the older version this reflective part of the bezel was a lot narrower. Is there a parameter setting that allows you to get it back to a similar size of the older releases??. GemaH post above with the OLD and NEW comparison shots show how much wider the reflective part of the bezel is in newer releases!..

Honestly imo, the new thicker bezel (reflection area) looks more natural and realistic. Maybe I’m in the minority here.


In the last pass you can change “screen height in in texture” parameter or the scale offset x or y to tune how wide/tall the bezel appears

1 Like

Just to clarify. (My post may be pointless, lol.)

I don’t think everyone is complaining about the size of the bezel as a whole (the frame surrounding the playable area.)

They are complaining about an area of the bezel, the top/bottom/sides where the actual reflection is showing up.

In the earlier versions, the area of the bezel where you see the reflection (is about about half the height/width; height or width depending on whether we are talking about the sides or the top/bottom.)

Personally I like how it looks currently, but I seem to be getting out-voted, lol.

1 Like

Yes just the area where the reflection actually is.

I think the new ‘inner’ bezel size is actually cutting of the screen off also. If you look at those sonic title screen pictures, where the Sega 1991 text is, its looks possible nearer to the bezel on the new version than the older version!?

I also prefer the new thicker bezel, I think it looks more realistic and it fits my own overlay designs more naturally. So @HyperspaceMadness, if you do anything to shrink it back down, please leave both options available somehow for those of us that prefer the newer style :slight_smile:


Yeah that’s definitely the idea, whatever we land on as the default, the parameters can always be adjusted to get either look


Yeah, im not asking for it to be changed back just for an option so it can be adjusted. Also are you considering doing different TV overlays on the sides in the future?

What option do i need to look at so the reflect effect is more vivid and not so blurry?

Just a suggestion, the updates are nice but it’s not the best idea to change the defaults every time a new version comes out. Just leave the options open for anyone who likes to do changes. Personally, i like to settle to a default and then make changes myself. For instance, i got used to the smaller inner reflection area of the bezel and the sharper reflections of the previous version. And while there might be options to change them back, i have no idea what numbers to put in the parameters so i’m going with trial and error…

But no biggie, i’m happy with the previous version so i just keep that.

1 Like

DISCLAIMER: I don’t speak for @HyperspaceMadness these are my thoughts on the current state of things, also I’m not trying to argue with anyone or complain about things being said, I’m just trying to give an explanation for things. (To the best of knowledge and ability, primarily to cut down on confusion.) Also sorry for this book…

I understand this to an extent, but the main issue is, this is currently still only a very functioning beta build for this shader (at the moment; so things are bound to change).

Things are still being added per user feedback (features being added and default settings changing based off feedback in the comments/possibly his own experiences with using the shader) and @HyperspaceMadness goals/to-do list (ex. automatic-bezels, static/noise in the bezel reflection; these being added in one of the the last 2 releases.)

Part of the reason things look different after an update is because sections of code have been altered or completely replaced giving you a difference in appearance and in cases changing how settings work in a values-to-looks situation. (This is slightly unavoidable imo). I do feel all of the important settings should be able to be user adjustable inside of Retroarch.

I also understand why @HyperspaceMadness is wanting to setup a default for the settings (I understand some people like to tweak settings to get the look they want, I’m in this group myself.)

The main issue is yes, some of us will alter every setting in the shader, whereas some users just want to select a shader and get a certain kind of look without changing settings for hours/months, they just want to pick something and it look good enough for what they want.

To end this long winded post, this shader is still in it’s beta phase imo, a fully functional beta but it’s still very much in flux, things are being added and optimized with every release. Defaults with easy adjustments won’t really be an option imo until this is closer to being a finished-ish release (being ready for the repo.)


Thanks for the excellent explanation @Syh this is spot on.

Between the version @GemaH was showing and the newer one I re-did a lot of the shader including how the space outside the screen was mapped, so many the parameter values and some of the parameter names changed.

A good example of these beta type changes is last night I went through and renamed some of the .slang files and ALL of the parameters to have consistent prefixes (all starting with an h) this will allow them all to show up in the same area alphabetically in the preset file when you change parameters and save the preset within Retroarch.

Since they got renamed any preset you had saved likely won’t work. This is a result of this being an in progress project, but would be a very bad thing to do to people after it’s officially ‘done’, in the repo and people have saved their own presets from it.


To get a sharper and stronger result you can adjust

reflection sharpness -adjusts how sharp it is close to the screen reflection amount -can make it brighter

blur falloff blur num samples - both of these affect the overall blur

global scale - increasing this will make everything fade out slower


Current screenshots from my Radeon RX 580 at 4K, direct from the presets:



1 Like

So I see the Clipping behavior happening at the outer corner which is obviously wrong. Did you adjust any other parameter values? Because the reflection is very bright.

Could you set the last pass (image overlay) to OFF with the parameter and post another screenshot? I’d like to see whatever else is showing up in the reflection under there!

1 Like