Hmmm, never used RA BFI. But it makes me think it may just be a sync issue.
Don’t do it then. Just accept that the Mac is for work and you could build or buy a nice mini PC for your emulation needs. Check out ETA Prime’s videos on YouTube. You can get something with a Ryzen 6800U APU or even a compact system with an RTX 3050, RX 6500 XT or RX6600 or RTX 2060, 16GB RAM, a Ryzen R5 5600, B550 Motherboard or you can start planning your build now and get something nice for yourself when the Ryzen 7000 series (or Intel 13th Gen) launches next month.
It could very well be. Maybe RetroArch isn’t detecting the correct monitor refresh rate. He could probably try toggling Threaded Video or playing around with the settings in the Video, Output menu. Maybe disable VSync temporarily or set a fixed monitor refresh rate. Or maybe enable hard GPU Sync. There are quite a few video synchronization related options there.
Also, try a different menu driver and see if the same thing is happening.
It’s definitely worth considering for the future it’s just probably not something that I’ll do right away, though. You’re right in that my computer is primarily for work.
I’ll have a tinker with some of the sync settings you mention and also the menu driver, thanks for the suggestion. Also going to dig into the other shaders and see what kind of results I can squeeze out of my current machine.
You’re welcome. One more thing to consider is if you’re using multiple monitors. I’ve had my fair share of issues using multiple monitors in RetroArch so if you are, you can try using a single display and see if the same thing is happening.
Hope these can help as well.
Yeah, the Mega Bezel can be pretty demanding in terms of performance. There are lots of great retroarch shaders.
Guest Advanced is a great and flexible one, and there is a fast version of this as well.
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 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:
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.
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.
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.
Yes got it, thanks for the clarification.
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.
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.
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.
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.
Yeah, that will work pretty well, grade is only color correction, and guest advanced does have some color correction options in it as well
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?
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.
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 looks like RetroArch it is then!
You don’t need to use grade though. Just use CRT-Guest-Advanced by itself.