Mega Bezel Reflection Shader! - Feedback and Updates

I’m gonna have to figure out this Fluidvision stuff, it’s looking too cool to not play around with

2 Likes

That example is good, though probably too much smooth for all games.

Sharpsmoother is a shader from @guest.r to smooth color transitions like bilateral shaders that preserve edge transitions. The problem with its default param values is that they create some ringing around edges.

So, after testing for some days sharpsmoother.slang, I came to optimal params for 16/32bit games where it smooths enough without creating ringing nor destroying details. The results are better than those from bilateral filters in denoiser folder.

The optimal params:

parameters = "max_w;min_w;smoot;lumad;mtric"

max_w = "0.05"
min_w = "0.00"
smoot = "0.400000"
lumad = "0.500000"
mtric = "0.300000"

I use that in my particular crt-super-xbr-sharpsmooth preset:

shaders = "12"

shader0 = ../blurs/sharpsmoother.slang
filter_linear0 = false
scale_type0 = source
scale0 = 1.0

shader1 = "shaders/linearize.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "XbrSource"
float_framebuffer1 = "false"
srgb_framebuffer1 = "true"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"

shader2 = "shaders/super-xbr-pass0.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = ""
float_framebuffer2 = "false"
srgb_framebuffer2 = "true"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"

shader3 = "shaders/super-xbr-pass1.slang"
filter_linear3 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = ""
float_framebuffer3 = "false"
srgb_framebuffer3 = "true"
scale_type_x3 = "source"
scale_x3 = "2.000000"
scale_type_y3 = "source"
scale_y3 = "2.000000"

shader4 = "shaders/super-xbr-pass2.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = ""
float_framebuffer4 = "false"
srgb_framebuffer4 = "true"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"

shader5 = "shaders/custom-bicubic-x.slang"
filter_linear5 = "false"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "false"
srgb_framebuffer5 = "true"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"

shader6 = "shaders/custom-bicubic-y.slang"
filter_linear6 = "false"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "false"
srgb_framebuffer6 = "true"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "0.500000"

shader7 = "shaders/crt-hyllian-sinc-curvature.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "CRT_PASS"
float_framebuffer7 = "false"
srgb_framebuffer7 = "true"
scale_type_x7 = "viewport"
scale_x7 = "1.000000"
scale_type_y7 = "viewport"
scale_y7 = "1.000000"

shader8 = "shaders/threshold.slang"
filter_linear8 = "false"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "false"
srgb_framebuffer8 = "true"
scale_type_x8 = "source"
scale_x8 = "1.000000"
scale_type_y8 = "source"
scale_y8 = "1.000000"

shader9 = "shaders/blur_horiz.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "true"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "true"
scale_type_x9 = "source"
scale_x9 = "0.200000"
scale_type_y9 = "source"
scale_y9 = "0.200000"

shader10 = "shaders/blur_vert.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "false"
srgb_framebuffer10 = "true"

shader11 = "shaders/custom-resolve.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "true"

parameters = "max_w;min_w;smoot;lumad;mtric"

max_w = "0.05"
min_w = "0.00"
smoot = "0.400000"
lumad = "0.500000"
mtric = "0.300000"
6 Likes

Yeah, I agree, in the Mega Bezel the default parameters are going to match your suggestion :smile:

4 Likes

Sometimes I envision @hyllian and @guest.r as Formula1 engineers, tuning gears and putting real science behind those magic shaders @HyperspaceMadness is weaving together.

I can merely eyeball things and hope that something good comes out. I’m just setting numbers in those glorious simulation machines we’re building up, like a youngster trying to squeeze variations from something that’s just “almost” perfect.

Really guys, sincerely tnx for your YEARS of commit. It’s invaluable and inexplicable.

5 Likes

This isn’t anything to do with the Mega Bezel, but I wanted to call attention to it because I think it’s really awesome, amazing work @fercho :star_struck:

Note: This is 100% overlay, but you could run the Mega Bezel with it and it would appear under the overlay graphics.

I was wrong about no Mega Bezel content, he made a custom preset to work with the overlay that he showed at the end :wink: Nice stuff Fercho!

10 Likes

15 posts were merged into an existing topic: Building Presets for the Mega Bezel

Hi there, im a nooby on this,so be patience, pleasee. :slight_smile: I made the configuration of 0 as explained at the beginning of the post, but I have a problem. When I deactivate the option that allows the core to rotate the image, in Arcade, I see vertical games horizontally. what could be happening in my configuration? Millions of thanks!!!

2 Likes

No worries, we are all newbies somewhere. :grin:

Also from the install instruction in the first post.

The “Rotate CRT Tube” parameter is near the beginning of the list in the [FLIP & ROTATE] section.

Feel free to post again if you still can’t get it to work. (Our storage locker is full of patience.)

4 Likes

thanxx…and… ok. just another question.

Is this setting or is the rotation automatic depending on the game? that is, if I close retroarch after playing a game in vertical and open another one but it is horizontal, the shader updates the way to visualize it?

2 Likes

No, it’s not automatic, I have a plan for that in the future, but it requires an additional feature added to retroarch.

One thing people often do is put all their vertical games in one folder, then they will save a content directory preset. Then all games loaded from this folder will load the same preset when the game loads.

2 Likes

ohh yes… good idea “One thing people often do is put all their vertical games in one folder”… i go for this… thanxx a lot for your patience…

2 Likes

4 Likes

Mega_Bezel_Logo

Mega Bezel is updated to V1.3.0_2022-09-24

Changes:

  • Added SUPER-XBR-GDV presets includes SUPER-XBR by Hyllian
    • These presets create a rounded look to the pixels while maintaining more of the original pixel look
    • Vertical resolution of the signal stays the same as the original
    • Uses Guest Advanced (GDV) crt shader on top
    • Also uses Guest’s SharpSmoother shader before XBR to smooth out some dithering/shading
  • Updated Hyllian’s Checkerboard Dedither
    • Now includes his error control parameters
    • Default values set to avoid errors
      • Reduce Neighbor Errors = 4
      • Reduce Region Errors = 1
  • DeDithering / Pixel Blending
    • Guest.r’s SharpSmoother is added to ADV presets
  • Megatron CRT Shader updated to V4.1
  • Split Scaling Fluidvision :wink:
    • Added Split Preserve Center %
    • New Follow Mode added for each layer
      • Gives the option to follow scale and position, or follow exactly
      • When Follow Exactly is on it uses the same coordinates as the other layer, splits included
      • Now the newly exposed areas can now be filled in with a repeated texture
  • Renamed Parameters
    • _FOLLOW_LAYER in each image layer has been renamed to _FOLLOW_LAYER
      • E.G. HSM_BG_FOLLOW_LAYER -> HSM_BG_FOLLOW_LAYER
    • _FOLLOW_FULL_USES_ZOOM has been renamed to _FOLLOW_FULL_USES_ZOOM
      • E.G. HSM_BG_SCALE_FULL_WITH_ZOOM -> HSM_BG_FOLLOW_FULL_USES_ZOOM
    • If you do search and replace through your files you will want to watch out for HSM_INT_SCALE_MODE
      • To handle this you can do the following:
        • Search and replace HSM_INT_SCALE_MODE to XXX_UniqueReplace_XXX or something else unique
        • Search and replace _SCALE_MODE with _FOLLOW_LAYER
        • Search and replace XXX_UniqueReplace_XXX with HSM_INT_SCALE_MODE to put it back
      • VSCode is recommended for an easy search and replace through files
  • Added Device LED layer
    • The texture is named DeviceLEDImage
    • By Default the Device LED layer
      • Follows the Device layer
      • Follow Exactly is set to on
      • Uses add blend Mode
  • Added Tube Diffuse Image Rotation

Go to the first post here for links to the package and install instructions. Please make sure to read the install & setup instructions

No CRT Shader

Guest Advanced CRT Shader

SUPER-XBR + Guest Advanced CRT Shader

SMOOTH-ADV + Guest Advanced CRT Shader

19 Likes

I’m having trouble finding the new Super-XBR-GDV preset. I can see the Slang files in Shaders for it, but nothing in the Preset folder called that.

2 Likes

Whoops! I spotted them in the 2 section, nevermind. Cheers again for another awesome release, looking forward to digging into them now. xD

3 Likes

I would like to thank you for the excellent work, these shaders are works of art. RetroArch is an excellent platform. But without these shaders, without your work, it would just be one more. Everyone who is a part of these Shaders, Overlays, all of you, are great artists. Thanks and please Duimon, make a booth overlay for MAME like there is one you have in your repository.

7 Likes

Welcome to the community. Thank you for your kind words. :heart_eyes:

You’'ll have to be more specific than that. :wink:

I have done overlay versions for every MAME Mega Bezel preset I have. :grin:

Could you provide a link to the graphic you are talking about?

2 Likes

This model, if you have at least in PSD. This one was too beautiful.

2 Likes

Arcade_Originals In your Repository, you have a very well done MAME model. Sorry for writing, using Google Translate.

3 Likes

I actually don’t have one spicifically design with the MAME logo, or just for MAME. All of the graphics in the MAME folder are MAME layouts, the rest are RocketLauncher Bezels.

There is no good reason that I can’t convert them all to Mega Bezel presets.

It will take a bit of work, and they are all 1080, but I feel like it is a project worth doing, just like the original Arcade Originals project.

Thanks for reminding me of that project… it was a labor of love, and a big reason I am here was someone mentioning the Mega Bezel in the forum I was sharing the work in.

I will put it at the top of my list of projects once I finish my current short list.

5 Likes