Mega Bezel Reflection Shader! - Feedback and Updates

Thanks @Cyber and @HyperspaceMadness.

The vids you posted Cyber ended up sending me down a deep, deep rabbit hole! I’ve been familiar with OpenEmu for years - it’s basically a Mac-specific RetroArch, but generally less customisable.

I’ve realised today however that in the past year or two it’s had support for slang shaders added. They’re not the easiest to implement though, and my complete lack of programming knowledge means I’ve run up against a little bit of a brick wall. I feel like if I knew what I was doing a bit more I’d be able to get Mega Bezel running on there, but as it is I’m able to run other stuff like Dr Venom, Lottes Multipass, and New Pixie. Those ones have already been converted to run on OpenEmu using Metal, so they work very well.

I feel like if I had some programming knowhow, I’d be able to get other stuff like Mega Bezel and Cyber presets converted to run on OpenEmu too, but it’s just beyond my ability. There are bits and pieces of instructions from one of the OpenEmu developers on Github, but after banging my head against a brick wall with them for a bit, I’ve realised I’m just not knowledgeable enough to do the conversions myself.

Hey ho :slight_smile: I’ve got some additional options now at least. I think OpenEmu, rather than RetroArch, is probably the way to go for me, since the performance seems much better.

If anyone is interested at all, here are the links to the relevant GitHub projects:

2 Likes

The Mega Bezel is self contained. Have you tried copying the “bezel/Mega_Bezel” folder structure into your slang shaders folder on OpenEmu. There is always the possibility that the error has been mitigated on that build.

1 Like

I have, but it seems to work differently on OpenEmu. Just copying over the the bezel/Mega_Bezel folder structure doesn’t do the trick - the Mega Bezel options won’t show up in OpenEmu’s shader selector, since it’s expecting a different file structure where each shader is in its own folder, e.g.

OpenEmu/shaders/Example Shader/ExampleShader.slangp/shaders/ExampleShader.slang

I did try and fumble a Mega Bezel preset into that structure (editing the paths in the slangp, etc) but it didn’t work, OpenEmu just gave me an error. As above I’m sadly not knowledgeable to be able to go much further with that at this point.

Thanks again for all your help and advice with this stuff guys.

1 Like

If you install the Mega Bezel in the default location, you should be able to create a shader that references one of the base presets, and place it in the expected folder.

An example *.slangp would look something like this…

#reference "../bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD__GDV.slangp"

You might need to edit the ../ part of the path.

2 Likes

Yes got it, thanks for the clarification. :hugs:

1 Like

Thanks, I’ve been trying a few different things now, including what you suggested, and I’ve had a bit more success.

First the negatives.

Unfortunately MegaBezel’s presets throw up an error no matter what I seem to do. So do Nesguy’s presets from this thread, which I also tested:

Two different errors, the MegaBezel one reads:

The operation couldn’t be completed. (OpenEmuShaders.ShaderConfigSerialization.Errors error 1.)

And the Nesguy one reads:

The file “grade.slang” couldn’t be opened because the text encoding of its contents can’t be determined.

You may be able to open the file by specifying a text encoding.

And now the positive - I also tested crt-guest-advanced.slangp, and that did work.

At this point that seems to indicate to me that both the MegaBezel and Nesguy presets are possibly using more exotic features that aren’t yet supported by OpenEmu.

I had a play around with the parameters on crt-guest-advanced.slangp while it was running, but unsurprisingly couldn’t get anywhere close to the quality of the screenshots of Cyber and Nesguy’s presets (which really do look like accurate simulations of CRT). It does look pretty good though! And a hell of a lot better than pure integer scaled pixels.

I’m now wondering if I can input at least some of the parameters based on Nesguy’s, for example, presets, or whether that isn’t possible.

I’m also going to try out a few more of the ‘stock’ slang presets in the crt folder, since those ones seem to work.

1 Like

You should be able to do this actually. Many of the settings are identical.

They may not look identical when you’re finished but you can use them as a starting point.

1 Like

So for the Mega Bezel the error you have is a known error in retroarch’s Metal driver.

The Mega Bezel is a HUGE shader compared to regular retroarch shaders, the Mega Bezel integrates many of the standard shaders inside it, for example the guest advanced shader. It is unlikely that you will get this metal shader error with the standard retroarch shaders.

I’m not 100% sure but the error with Nesguy’s is likely that it can’t find a particular shader file which it is trying to reference in the base retroarch shader hierarchy.

2 Likes

That is very interesting, thanks guys.

Good to know re: the known error. It’s clearly also a problem for OpenEmu’s Metal driver. You’ve saved me wasting more time trying to make it work, for which I’m grateful!

For the Nesguy one, I moved grade.slang into a place where the slangp was pointing with its filepath. I kind of feel like maybe OpenEmu isn’t compatible with whatever grade.slang is doing (that might be way off base though).

I am going to try and setup Guest Advanced with some of the parameters from Nesguy’s RGB preset, now that Cyber has indicated that that isn’t a completely bonkers idea.

2 Likes

Yeah, that will work pretty well, grade is only color correction, and guest advanced does have some color correction options in it as well

2 Likes

If this is the only reason why grade isn’t loading, then perhaps simply saving the file with different a text encoding option might be all that is needed to get it to load?

1 Like

It’s an interesting idea. Let me give that a go.

It’s less crucial to me now (although I’d prefer to use OpenEmu than RA), as since my last post, I have realised that I get 60fps performance with Nesguy’s presets on RA, so have been enjoying using that. I like it a lot and it looks great on my OLED TV and laptop screen.

I have also been checking out the Sony Megatron ones. There’s no HDR support for Metal, unfortunately, but his SDR ones look great if I use my laptop screen. It’s mini LED with 1000 nits of brightness so it can kinda brute force it. Doesn’t look so good on my OLED TV though sadly, a bit dark and the colours require a lot of manual adjustment. Hopefully one day HDR support will be added to RA’s Metal driver.

2 Likes

Well, I tried changing the text encoding of grade.slang to get the Nesguy preset working in OpenEmu, and sadly got the ol’…

The operation couldn’t be completed. (OpenEmuShaders.ShaderConfigSerialization.Errors error 1.)

Same thing MegaBezel throws up when I try it in OpenEmu.

Ah well :slight_smile: looks like RetroArch it is then!

1 Like

You don’t need to use grade though. Just use CRT-Guest-Advanced by itself.

I have tried that, but I find that I like the results with Nesguy’s RGB preset a lot more. It’s not a big problem at all though. I get good performance in RA with that preset.

1 Like

I was suggesting that you use Nesguy’s RGB preset. Just not the grade part. Nesguy has presets for CRT-Guest-Advanced and CRT-Guest-Advanced-NTSC.

1 Like

Ah, I get you. I did try and finagle the grade portion out of Nesguy’s RGB.slangp, but OpenEmu would then throw up that ‘serialisation’ error I pasted above, rather than the error where it can’t read the grade.

To be honest, I’m not sure it matters too much to me in the end! After playing more with RetroArch last night, I think it’s better to stick with it than try and use OpenEmu - at least for SNES, MD/Genesis and PS1, which all work very well in RetroArch.

1 Like

I had a sudden thought today, about the poor performance I received on RA using Mega Bezel/Cyber’s presets.

I opened RA and kept everything the same as in my previous tests, loaded a ROM in Genesis Plus GX and then selected CyberLab__Arcade-Sharp__PVM-Edition__ADV.slangp as my shader.

In full screen, same bad performance as before, very slow with distorted music.

But then if I go into window mode and shrink the window down to the size of a large postage stamp, it runs at full speed with no distorted music.

Is this because when I’m running in full screen, RA is scaling the ROM to the native 4K res of the monitor I’m using? Is there a way of preventing it from doing so?

Thanks in advance!

Yes.

Maybe. But the solution is really what Cyber suggested. I would assume you’ll get poor performance at 1080 also. (Bigger than a postage stamp.)

You need to run the Mega Bezel on high performance hardware.

When you are ready, I wouldn’t go with an APU either. Spend more money than you think you can afford, go with a 3070 or higher GPU. In the end you’ll be much happier, for much longer.


While you are saving up some cash, you can go with a slim CRT shader and overlays.


BTW. How is your performance using a Lite shader? e.g. \bezel\Mega_Bezel\Presets\Base_CRT_Presets\MBZ__3__STD__GDV-MINI.slangp

Cyber’s presets are not optimized for performance. :wink: (They are using a heavy hitter base preset.)

Edit: Just read through your posts and saw that you get a 90% increase in performance. Your last post didn’t mention any flicker. Is that no longer an issue?

1 Like

Ah OK, was just a sudden thought that drifted into my mind - sounds like I’m way off base though.

The flicker only occurred on the Potato versions - I leapt straight into the most hungry ADV version this time, to see if performance improved when I shrank the window. There’s no flicker on the ADV ones for whatever reason.

I might give the STD ones a go, too, and see if a 1080p res gives me good, flicker free performance.

Fully appreciate where you’re coming from on the ‘Just buy a PC with good specs’ angle. It’s not something I’m planning on any time soon as this is just something I’ve started tinkering a bit with, rather than something I want to put a lot of money towards. OTOH, I appreciate that my incessant questioning in here might be annoying when there is an obvious ‘Buy a capable PC’ solution to every query.

With that in mind I thank all of you guys for your patience and the time you’ve spent kindly discussing with me.

And just to add, I’ve not had a complete fail on the shaders front. The lighter stuff like Nesguy’s RGB GUEST ADV preset and the Megatron SDR ones work great, and I love the results with those :slight_smile:

1 Like