I’m gonna have to figure out this Fluidvision stuff, it’s looking too cool to not play around with
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"
Yeah, I agree, in the Mega Bezel the default parameters are going to match your suggestion
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.
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
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 Nice stuff Fercho!
Hi there, im a nooby on this,so be patience, pleasee. 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!!!
No worries, we are all newbies somewhere.
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.)
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?
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.
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…
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
- 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
toXXX_UniqueReplace_XXX
or something else unique - Search and replace
_SCALE_MODE
with_FOLLOW_LAYER
- Search and replace
XXX_UniqueReplace_XXX
withHSM_INT_SCALE_MODE
to put it back
- Search and replace
- VSCode is recommended for an easy search and replace through files
- To handle this you can do the following:
-
- 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
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.
Whoops! I spotted them in the 2 section, nevermind. Cheers again for another awesome release, looking forward to digging into them now. xD
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.
Welcome to the community. Thank you for your kind words.
You’'ll have to be more specific than that.
I have done overlay versions for every MAME Mega Bezel preset I have.
Could you provide a link to the graphic you are talking about?
Arcade_Originals In your Repository, you have a very well done MAME model. Sorry for writing, using Google Translate.
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.