13 January 2023

Sneak Peek: Massive RetroArch/FinalBurn Neo Update (WIP)

Update 13 January 2023, several amendments and Preemptive Frames as third big thing

2023 starts with some big news for Mac Retrogaming: RetroArch received a Vulkan driver for MacOS via the MoltenVK layer and further big things. I try to explain why this will probably become a major game changer and even less reason for me to use MAME.

First: Vulkan and HDR

The MacOS Vulkan shader comes with HDR, nicely configurable in the UI. I had to heavily scale down the default settings to achieve decent colors on my HDR monitor, however. Contrast must go up tremendously here.

(wip: insert default settings vs my settings here)

Vulkan let's you use more of the latest and greatest shaders. One shader that can be easily overlooked is the koko-aio shader (bundled with RetroArch, but only github provides for the latest version 3.5 currently):

 https://github.com/kokoko3k/koko-aio-slang

This shader provides for screen bezel reflection and other goodies and is easily configurable and editable (after some initial work). Here is an example of my first work results (videos will follow, the main point are the reflections on the screen bezel, which incredibly add value) - the bezels are included in the shader configuration!

HDR and bezel reflections as you play are a significant upgrade. The background image needs further adjustment.

Second: Stable 60 fps on 60 Hz monitors

FinalBurn Neo is the best choice for everybody that has a 60Hz fixed rate LCD: In the Core Options of FinalBurn Neo, be sure that "Force 60 Hz" is activated (you need to close the Core and restart, if changed!). It truly makes a difference with difficult candidates, such as Moon Patrol:

Moon Patrol scrolling at 60 Hz is perfect (again, see the screen bezel reflections!), the vertical lines come from the screenshot.


The system's default refresh was at 56,97 Hz, and this must cause severe hickups with 60 Hz fixed rate monitors.

In essence, perfect scrolling in FinalBurn Neo can be achieved easily, while the workaround explained for MAME in an earlier post seems more of a hack. That‘s a huge thing.

Third: Preemptive Frames instead of Runahead

Very recent RetroArch Nighties deliver another new function called Preemptive Frames (under Latency Options). The RetroArch team claims that it is consuming less resources, so you should use it instead of Runahead, unless you experience audio issues - then again Runahead. 

Happy to report that during my initial testing, I encountered no issues whatsoever in FinalBurn Neo, for me it just works like Runahead. Another very nice thing is that the new function takes over the core-specific and game-specific settings. So I am running FinalBurn Neo default with one preemptive frame and 2 frames only in selected games (e.g. gyruss). 

Even better, many games now have functioning highscores even if you activate Runahead/Preemptive Frames! In the past, you had to decide between the two. While it is not universal like in MAME, it keeps getting better (for me, however, RetroAchievements have become much more important than personal highscores).


These three things alone, combined with RetroAchievements and a steady development of FinalBurn Neo, provide this emulator a clear edge over MAME on Mac systems. I know, that's heresy, but on the other hand, MAME development for Macs has not seen any improvement through the last two or so years.

More to come here soon.

8 comments:

  1. I have a fairly powerful Intel Mac (Core i9, 64gb RAM, 8gb graphics card). I use the experimental MAME core in OpenEmu and I do not want to go to the trouble of trying to make the change-over (with all the fine tuning of my favorite games) unless the performance benefit will be substantial. Will this Vulkan support in Retroarch work well with a system like mine? Is there a detailed configuration guide I can follow to get the best results? I tried the Metal driver in MAME about a year ago and it performed extremely poorly, so that kind of put me off. I hope Final Burn with Vulkan will work better.

    ReplyDelete
    Replies
    1. Hi Adam, the RetroArch MAME core is still a huge disappointment here as well, FinalBurn Neo should perform much better. Unfortunately, my old iMac 2013 might run into troubles with Vulkan, maybe I'll give it a test. But why don't you do the following:
      - download RetroArch Metal Nighlty, switch system-wide to Vulkan, configure joypad, save global configuration
      - head for Settings/On Screen Display/On Screen Notifications/Notification Visibility/turn Display Framerate to ON, save global configuration
      - download FBNeo Core in the Online Updater
      - start one of your favorite games and be sure that "Force 60 Hz" is checked, close game
      - test some of your favorite games in this config: after launching the game, it should always rund stable 60fps, then press SPACE and see the fps you get (for example, I get some 250-280 fps depending on the game, all very old school)
      That should give you a very good first idea of how your Mac fares. Would be very interested in your results.

      Delete
    2. Hi Estefan, thanks for your advice. I downloaded the latest nightly build of Retroarch (Metal) from Libretro. com and successfully installed the FB Neo core. However, I cannot find any setting in the Retroarch interface to switch system wide to Vulkan. I can see under the video settings there is an output option which defaults to 'metal' and there is no other option listed. Can you please tell me where I can find this setting to switch to Vulkan? Thanks.

      Delete
    3. Very strange Adam, I suggest two things: First, download directly from here:
      http://buildbot.libretro.com/nightly/apple/osx/universal/
      (last entry RetroAch_Metal.dmg)
      Before launching it, please fully delete the folder (your user/Library/Application Support/Retroarch) or move it away. It might be that an old install makes your new fresh install buggy.
      Good luck

      Delete

  2. Hi Estefan, I was able to obtain a copy of Retroarch that supports Vulkan from the URL you provided. However, it appears that on my Mac, setting the video mode to Vulkan causes Retroarch to immediately crash upon launch. Switching back to metal or gl resolves the problem. I read up on this, and it appears to be a rather common symptom of the Vulkan builds, on both
    Macs and PCs. It seems that AMD cards are the more likely to be affected.My card is a Radeon Pro Vega 48. I think I have no option other than waiting for a nightly build where they have addressed whatever bug is causing the Vulkan driver to fail on my specific configuration. In the near future, I am purchasing an external GPU enclosure to use with my external AMD Vega 64 card. I may or may not have more success using an external GPU. The problem is I cannot test this with Nvidia cards, as Apple has long stopped supporting that manufacturer in macOS. Even on Mojave, which I am still using, I do not think it would work. I would have to test in Bootcamp using Windows, and that kind of defeats the purpose here, as we are focusing on MAME on Macs! :-)

    ReplyDelete
    Replies
    1. Hi Adam, thanks for the insight. If I were you, I would first upgrade MacOS as far as possible. Mojave is already out of Apple security updates, and while both RetroArch Metal 2 and MoltenVK still support Mojave, the likelihood of anything newer running on it diminishes. Needless to mention that you might be running into more troubles with an external GPU, shouldn‘t you be on the latest available MacOS. Depending on your system and your own risk appetite, OpenCore Legacy Patcher might be an option, too - but probably not with an external enclosure ;-).

      Delete
    2. Hi Estefan, thanks again for your suggestions. I upgraded to Ventura and tried again. This time it did allow me to switch to Vulkan, and I used the "sync to exact content frame rate" setting under video/sychronization. I tested a range of games from old to new. When the games start, as you mentioned, they run at a steady rate, although I notice it varies between 59hz to 60.x hhz. That makes me wonder if the above setting is the same as the "force 60hz" check box that you mention above - but I cannot locate that anywhere in the Retroarch settings. Can you tell me exactly where that setting is accessed? Given I am not always seeing exactly 60hz, I suspect the setting I found is not the right one. That aside, pushing the space bar gives me maximum frame rates of 360fps. This is on my internal GPU, Radeon Vega 48. I have not yet setup my Vega 64 as I am awaiting delivery of the thunderbolt enclosure.

      Delete
    3. Hi Adam, great that it worked out for you! The ‚Force 60Hz‘ option is a Core Option of the FinalBurn Neo Core! To trigger this, you must launch a game with FinalBurn Neo and change into the RetroArch setup from within the game. Under the Quick Menu, you head then for the Core Options and activate this. Important: It is saved by closing the game (Close Content), and after the restart of FinalBurn Neo with any game, the option is checked. After you have triggered Core Options once or twice, you won‘t forget it.

      Delete

Any comments are welcome!