HSM Mega Bezel Reflection Shader! - Feedback and Updates

i love the reflect from the first image, but now my question is… how can change the black background for a personal image? is posible?

1 Like

Oh right, that’s much easier. XNView can convert IFFs to whatever too, or IrfanView that I use. Keep in mind I’m a WinUAE user, so I’m writing from that perspective. I’m mainly hanging around in this forum to chat with @guest.r :slight_smile:

4 Likes

You are in for a treat!

Load one of @HyperspaceMadness Mega Bezel presets and save it as a new preset.

Navigate to your shaders folder and open the preset in a text editor.

Simply add a path to a new background image.

#reference ":/shaders/shaders_slang/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD__GDV.slangp"
BackgroundImage = ":/shaders/images/MyBackground.png" 

Keep in mind that on some platforms the :/shaders syntax will need to be replaced with either a relative or absolute path.

The Mega Bezel has many image layers that can be manipulated in a lot of ways using parameters. You can take a look at my presets or @TheNamec (In the resources link at the beginning of this thread.) for examples.

Here’s a sample of a more complex image path setup.

IntroImage = ":/shaders/Mega_Bezel_Community/Duimon-Mega-Bezel/Graphics/_Backgrounds/Duimon_OSD.png"
BackgroundImage = ":/shaders/Mega_Bezel_Community/Duimon-Mega-Bezel/Graphics/Amstrad_GX4000/GX4000.png"
LEDImage = ":/shaders/Mega_Bezel_Community/Duimon-Mega-Bezel/Graphics/Amstrad_GX4000/GX4000_LED.png"
CabinetGlassImage = ":/shaders/Mega_Bezel_Community/Duimon-Mega-Bezel/Graphics/PVM/PVM20_LED.png"
DeviceImage = ":/shaders/Mega_Bezel_Community/Duimon-Mega-Bezel/Graphics/PVM/PVM20_Bezel.png"
DecalImage = ":/shaders/Mega_Bezel_Community/Duimon-Mega-Bezel/Graphics/PVM/PVM20_Decal.png"
TopLayerImage = ":/shaders/Mega_Bezel_Community/Duimon-Mega-Bezel/Graphics/PVM/PVM20_Extra.png"
6 Likes

bright

3 Likes

thank you so much!!! is work!!! Now I can create my own designs and share them with the community. :v:

2 Likes

It is a long read, but I strongly recommend reading the README.md in the Mega Bezel folder for a description of what the parameters do. (There are a lot of them.)

If you have any questions feel free to ask.

4 Likes

This shader is wonderful, I absolutely love it! But I’m having a couple of issues.

I’d love to know how I can disable the bloom effect that basically every preset has.

I mean that effect that is visible on every sprite. For example, that little glow around the 1-UP letters. I personally find it hard to play with it, it’s as if my eyes are constantly watered and I’m in tears! It’s especially difficult to look at the screen at night. I keep blinking, and it’s not healthy.

Another problem is the left screen space. I tried manually adjusting it, but it seems some games are fixed and others are not. I’d love to fix it automatically for all! How do I do that?

And I’ve tried many presets, but they all seem to have this bloom to some degree. All I want is to have the beautiful reflective overlay, a correctly positioned screen and no watery eyes!

3 Likes

Welcome to the forum!

So the way to do this is to go into the shader parameters and go near the bottom of the list and edit some values (pressing up when you are at the top of the list will put you at the bottom of the list)

Basically look for glow and bloom and halation. Turning all of these to 0 will get rid of any glowing effect. I would suggest turning down glow and halation first and see how that looks.

The first thing to try is to turn on Retroarch’s crop overscan option and see if that makes it any better.

If you still have black that you want to get rid of at the side, the way to remove it is to edit the cropping shader parameters. With the default settings, crop values above 0 will immediately crop off pixels regardless of they are black or not. To get the crop to only remove black, set the cropping mode parameter to “only crop black”.

Let me know how these things work for you :slight_smile:

2 Likes

Thank you so much for the quick response!

I did manage to disable the bloom, which was my biggest issue, thank you!

I couldn’t get rid of the black screen space however. It’s strange because it only happens in very specific games. And the “only crop black” option was already selected by default. Changing it to other values seems to not have effect at all. I also had RetroArch’s crop overscan option enabled already as well. It’s the least of my problems, I’m in no rush to fix it however!

I think I should gather all my questions in a single reply, to not clutter the forum and probably serve as easy access to others with similar questions, so here they go:

There’s a small nitpick: I think the Mega Bezel intro is dope, and wanted to enable it. I did, but for some reason the orange Mega Bezel logo is heavily pixelated! I didn’t find an option to change that.

What shaders are recommended for each console? As in, the most accurate or most widely used by people? It would take me AGES to find the best one for each! Or should I just stick with an universal one and not bother?

Is there a way to automatically detect if my FBNeo games are vertical or horizontal, or does that already happen automatically?

Might be identified somewhere, but what shader is used on the Super Metroid screenshot at the top of the forum? Looks great!

Might a dumb question this one, but where are those cool overlays that say Mega Bezel along with power switches and everything? Couldn’t find them in the folders. Maybe I’m just blind! I especially liked the Sega Genesis screenshot that says “Debug Scaling Info”.

What is the slangp file name of the shader used in the “Mega Bezel Night Preset with awesome graphics” screenshot? I love it!

Final question: is there a way to enable ONLY the overlay reflections on a POTATO preset?

Thanks for the attention!

1 Like

You’re welcome!, glad you are enjoying the shader package :slight_smile:

Great!

So by default it should be set to 2 which is “crop any”, and 1 is “crop only black”.

The thing with the cropping is that you must set some cropping values to see any effect, for example you could set crop left to 10 to get a 10% crop off the left side. If you had it set to “crop any” it would always take off that 10%. If you set “only crop black” then it would crop only black, and only up to the 10% you chose.

The Mega Bezel logo (or whatever image you decide to use) is “placed inside the signal” of you will, so it will be processed as the rest of the signal is, E.G. Scanlines etc. So it is displayed with the same resolution as if it was coming from the game. If you play a game with a higher resolution, like dreamcast it would be much more detailed. I imagine it might look rough on an atari 2600 game

So that one specifically is part of the Mega Bezel package, you can find a preset in the variations folder, it should be called Night something. There have been wonderful graphics and preset packages done by amazing artists in the community, you can find them at the end of the first post in this thread.

This is still on my TODO list because it requires a new feature to be added to retroarch. I got partway through implementing this and paused on it because it was going need a fair bit more work to complete.

So the potato presets are really focused on being able to run on potatoes, and therefore have most things stripped out of them that are expensive, and the reflection is one of the performance eating features that has been removed. Right now the Potato presets are really like a easier alternative to using traditional Retroarch overlays to apply graphics.

2 Likes

Hey, someone posted a video of the Mega Bezel on the Steam Deck :slight_smile:

6 Likes

I’ve been trying to get this running on my shield tv and it crashes on every emulator. here’s a log of me trying to load it on swanstation at 1x resolution:

[LibretroHostInterface] base = 320x240, max = 1024x512, aspect ratio = 1.22
[Environ]: SET_GEOMETRY: 320x240, Aspect: 1.219.
[Android]: Native window size: 1920 x 1080.
[LibretroHostInterface] base = 256x239, max = 1024x512, aspect ratio = 1.22
[Environ]: SET_GEOMETRY: 256x239, Aspect: 1.224.
[Android]: Native window size: 1920 x 1080.
[LibretroHostInterface] base = 320x240, max = 1024x512, aspect ratio = 1.22
[Environ]: SET_GEOMETRY: 320x240, Aspect: 1.219.
[Android]: Native window size: 1920 x 1080.
[Vulkan]: Setting swap interval: 1.
[Android]: Native window size: 1920 x 1080.
[Vulkan]: Destroying stale acquire semaphore.
[Shaders]: Finding parameters in shader passes (#pragma parameter)..
[Shaders]: Loading base parameter values..
[Shaders]: Load parameter value: "HSM_ASPECT_RATIO_MODE" = 1.000000.
[Shaders]: Load parameter value: "g_sat" = 0.150000.
[slang]: Compiling shader: "/storage/SERVBOT/Media/Emulators/RetroArch/shaders/shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-add-params-potato.slang".
[slang]: Using render target format R8G8B8A8_UNORM for pass output #0.
[slang]: Compiling shader: "/storage/SERVBOT/Media/Emulators/RetroArch/shaders/shaders_slang/stock.slang".
[slang]: Using render target format R8G8B8A8_SRGB for pass output #1.
[slang]: Compiling shader: "/storage/SERVBOT/Media/Emulators/RetroArch/shaders/shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-add-negative-crop-area.slang".
[slang]: Using render target format R8G8B8A8_SRGB for pass output #2.
[slang]: Compiling shader: "/storage/SERVBOT/Media/Emulators/RetroArch/shaders/shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-cache-info-screen-scale-params.slang".
[slang]: Using render target format R32G32B32A32_SFLOAT for pass output #3.
[slang]: Compiling shader: "/storage/SERVBOT/Media/Emulators/RetroArch/shaders/shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-text-potato.slang".
[slang]: Using render target format R16G16B16A16_SFLOAT for pass output #4.
[slang]: Compiling shader: "/storage/SERVBOT/Media/Emulators/RetroArch/shaders/shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-intro-potato.slang".
[slang]: Using render target format R16G16B16A16_SFLOAT for pass output #5.
[slang]: Compiling shader: "/storage/SERVBOT/Media/Emulators/RetroArch/shaders/shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-custom-fast-sharpen.slang".
[slang]: Using render target format R8G8B8A8_UNORM for pass output #6.
[slang]: Compiling shader: "/storage/SERVBOT/Media/Emulators/RetroArch/shaders/shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-dogway/hsm-grade.slang".
[slang]: Using render target format R8G8B8A8_UNORM for pass output #7.
[slang]: Compiling shader: "/storage/SERVBOT/Media/Emulators/RetroArch/shaders/shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-crt-dariusg-gdv-mini-potato.slang".
[slang]: Using render target format R8G8B8A8_UNORM for pass output #8.
[slang]: Compiling shader: "/storage/SERVBOT/Media/Emulators/RetroArch/shaders/shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-post-crt-prep-potato.slang".
[Vulkan filter chain]: Creating framebuffer 1024x1024 (max 1 level(s)).
[Vulkan filter chain]: Creating framebuffer 1024x1024 (max 1 level(s)).
[Vulkan filter chain]: Creating framebuffer 1024x1024 (max 1 level(s)).
[Vulkan filter chain]: Creating framebuffer 1024x1024 (max 1 level(s)).
[Vulkan filter chain]: Creating framebuffer 1024x1024 (max 1 level(s)).
Pause: 0x277c4c2bd0
2 Likes

So my best guess is that it’s running out of memory because it’s in the middle of assembling the shader pass buffers, it manages to get through 5 at 1K before it crashes. I wonder if you are really running without upscaling in swanstation because standard PlayStation res is about half this. You could try one of the DREZ presets which reduce the resolution at the first pass.

Also have you tried with nes, snes or genesis?

2 Likes

I tried with snes9x 2010 and also crashed, but I don’t have a log for that. I can grab one tonight. I’ll also try power cycling the shield, some background process could be eating memory.

3 Likes

You can take a look at my preset pack which uses HSM Mega Bezel Reflection Shader. I’ve tested Atari games with several of my presets. My initial tests with my Computer Monitor Presets looked really beautiful. The sharper presets really shine on those older systems. You can start with the Computer Monitor Raw Preset but I’m sure there are others in the pack that will give you just the type of effect or look that you’re going for.

I retested some Atari games not too long ago with some of my newer preset revisions but I can’t really remember in detail what the experience was like except that they also looked pretty good.

CyberLab__Arcade-Sharp__PVM-Edition__ADV

You have to zoom in or view these screenshots fullscreen for them to look right.

You might also like Composite Pure or Composite Sharp. A few of my presets are included with HSM Mega Bezel Reflection Shader in the Community CRT Variations Folder. You can check them out.

The entire suite of presets is available at the following thread:

I have aimed to address this exact scenario in my presets pack. I have provided general purpose presets as well as console (and in some cases game) specific presets. Here’s a link to a couple videos of them in action:

I’ve improved my CyberLab SNES preset just this morning so I’ll have to upload an updated video!

5 Likes

@FoxFerreira

If you want the most accurate CRT experience available then you need look no further than the Megatron shader. It requires a bright display, and best results are obtained with a 4K display. Setup can be a bit intimidating but that’s what the presets are for :wink:

There are a variety of presets in the “community presets” directory of the Mega Bezel shader targeting different looks/tastes, you’re sure to find something to your liking and if not you can always tweak the parameters.

6 Likes

There are presets for the Mega Bezel with the Megatron in the Base_CRT_Presets/Megatron folder, but only hor non-hdr at the moment. Hdr will be coming later though.

5 Likes

Thanks everyone for the great suggestions, I managed to fix every issue I had and I’m satisfied with answers to my questions!

I’m having a new problem though, and it can be seen on the screenshot.

What’s with the weird circular lines on the screen, that can be seen in the sky more clearly?

I’m fully aware that it usually happened in old monitors, I’ve seen it before as a kid. Now, if I was playing in an actual old CRT monitor, I’d accept it as part of the experience! :smiley:

But my monitor is 1080p, and those just look weird to me in my screen. My questions are: What is that exactly? And how do I remove that effect? I don’t know how that’s called, so I can’t figure out which settings to change to remove it.

2 Likes

It’s called moire pattern. There are several ways to try to reduce or mitigate this.

First is to set Integer Scale Mode to 1, or, if you’re using Integer Scale Mode 0, adjust the Non-Integer Scale percentage until the moire disappears.

A trick is to enable the Resolution Info in Shader Parameters then also set Integer Scale Mode to 1. Look at the Non-Integer Scale Mode % when the moire disappears then try to be as close as possible to that number when you switch back Integer Scale Mode to 0.

These are some other things you can try:

4 Likes

If you change the parameter…

[CORE RES SAMPLING]>>>Opposite Dir Multiplier

from the default 100 to 50 the scanlines will look better and the moire should also.

2 Likes