14 January 2024

Featured Post: Retrogaming Emulation on Apple Silicon

This featured post is in steady update. 

Last update 23 March 2024 - added TyrQuake in the Quake for PC section for the sake of completeness.

Update 2 March 2024 - added GBA section and applied links to the Table of Content as well as a lot of shoe polish to the entry. 

Table of Content

(links in this TOC only work in the actual blog post, but not on the homepage)

About this Blog

Statistics tell me that my info about MAME on Apple Silicon is having highest popularity and became a kind of landing page for the entire blog. Here I give a broader overview. As emulators still improve, this blog post will be revisited from time to time. Sorted in accordance with my own experience (in particular only own dumps of my console games). 

But first - what is so peculiar about emulating old games?

In a nutshell, dedicated enthusiasts preserve gaming history for no money. As the old arcade machines increasingly wear off, emulators build virtual machines around its games. This alone is fascinating, but the community does much more: It also preserves the artwork, photos of the controllers and the PCBs, even the old manuals. And the only thing they expect from you is respect and gratitude 😊. Of course you can also contribute in other ways (like I do with this blog).
Work is mostly done under open source licenses, so that this work remains free. I am a bit hesitant to (always) buy into the commercial variants, as they basically perpetuate the income from old arcade games. But there are definitely nice commercial offers: I bought the Capcom Classics (1942, 1943, etc) for Nintendo Switch, and it‘s quite comparable to the open source variants (plus an acceptable way to play it on the Switch, however e.g. both 1942 and 1943 stutter on my Switch from time to time). Other commercial offerings, such as Metal Slug on the Switch, are a bit disappointing, as they provide you a bare bones emulation without upscaling and just scanlines - they should do better.

Why this focus on MacOS emulation?


Motivation has changed through time. When I started this blog in 2016, its main purpose was to fill a huge gap by explaining how to run MAME on Macs. Documentation was scarce or non-existent back then. 

Nowadays documentation got much better, and I see Silicon Macs as a quite unique emulation platform - and for me, emulation on the Mac mini shines like never before. You are getting decent performance paired with highest energy efficiency, thus no noise or heat at all. Compared to a quite noisy and hot Nintendo Switch, a Silicon Mac is a much quieter and cooler gaming device. Gaming PCs, while more powerful, are clumsy, can be noisy and always emit a lot of warm air. With most emulation, Apple Silicon performance will just be stellar or at least very fine.

That’s why I also started to cover other than arcade emulation, simply because you can get very convincing results on Silicon Macs. I would not want to trade thus package in for something different.


What about those RetroAchievements?


I consider them as a game changer for all retrogaming. While cheevos shines on other systems, they are increasingly fun on arcades as well (with just recently brilliant achievements for 1942 and Bubble Bobble). I also discovered new things via RetroAchievements that I had not been aware of. That‘s why I will always prefer emulators supporting RetroAchievements over others.


So many words to read here - why don‘t you do videos?


Call me old-fashioned, but reading is remembering. Sure, there is great YouTube content out there, but when it comes to learning things, I prefer the written word, as you engage more actively with it. And with the more complicated configuration instructions, videos get overly complicated to make (and to use as well). I also revisit my blog entries and update them, and that seems hardly feasible with videos.


With this in mind, let's have a look into the emulation scene with a focus on Silicon Macs.


Arcade Games

2 March 2024
This is the main focus of this Blog, and my own preferences shifted significantly through the years.

No.1 - FinalBurn Neo/RetroArch Core (excellent): My current golden standard in arcade emulation in MacOS/iOS. As soon as you have tamed RetroArch, you get best-in-class performance (also due to the 60Hz core option, which can be a live saver), HDR in Vulkan, shaders (see my koko-aio repository) and RetroAchievements. Highscore support steadily increases. Emulation of some very old games and newer games is missing. This RetroArch core is updated nearly on a daily basis. Discord (if you like it) has a lively user community.

No.2 - MAME (current)/RetroArch Core (very good): These days MAME (current) is in sync with official MAME. In RetroArch, you get HDR and the shaders, and my koko-aio repository works with identical presets now. However, RetroAchievements are missing/not officially supported. Compared to offical MAME, highscore support has problems and is hard to install. This is my choice for all games that FinalBurn Neo does not support.

No.3 - official MAME (very good): You may call it heresy, but I hardly use official MAME these days, as FinalBurn Neo outperforms it and is currently in sync with official MAME. Shaders are ok, but can no longer compete with a powerful RetroArch shader as koko-aio is. Download the official MacOS builds here - but as of MAME 262, no MacIntel builds are available (you need to compile them by yourself). Otherwise not much more to say here. But as most of the new emulation development seems to happen here, MAME official is the main reference for any technical issues. So is a game does weird things for you, always also check behavior in official MAME.

No.4 - OpenEmu (very good): With a surprise release 2.4.1 in December 2023 after two years of silence, OpenEmu is back. If you hate all this configuration effort, this emulator is definitely worth a try. While it is Intel binaries only, it runs sufficiently well on my M2 Mac mini. The MAME 250 core is in the Experimental Build of OpenEmu. Installation is like any other MacOS app, joypad configuration is very good, and shaders are loaded from within the game with the mouse. If you are fine with the MAME 250 core (probably yes for classic arcade games), you might be better of with OpenEmu compared to official MAME for an acceptable gameplay. OpenEmu also provides tons of other console emulators. But it cannot match RetroArch performance (and doesn't want to, because it wants to provide you with an out-of-the-box solution with no tweaking possibilities).

Bottom line: With so much choice, you cannot complain. All four alternatives are rock stable and provide ready binaries.

Sony Playstation

13 January 2024
Playstation emulation went a long way in MacOS. As of this update, you experience stellar PSX emulation on Silicon Macs.

No.1 - Duckstation (excellent): Since August 2023, Mac Universal builds are available (I do recommend the Latest Preview Build, but Rolling Releases are also good). It is a genius work of the main developer stenzek, who continues to tweak this emulator to perfection. The Mac version is blazingly fast in my Silicon Macs (it ships even with two dynarecs, and Newrec seems stable enough here), and the native Metal GFX plugin is also rock stable. RetroAchievements are best in class (with more details than in RetroArch), rumble works in supported games. In recent builds, you also get nice postprocessing shaders. I definitely intend to write a dedicated blog entry for this wonderful emulator.

No.2 - Mednafen PSX HW/RetroArch core (very good): Mednafen PSX has been the only stable choice on Macs for a long time and still is the only real choice under iOS. However, there is no dynarec option in MacOS, so it cannot match the performance of Duckstation. iOS performance is quite decent considering that dynarecs are not allowed in iOS.

No.3 - Swanstation/RetroArch core (good): This is a hard fork from Duckstation, however the development is lagging behind Duckstation. As Duckstation has everything, there is no real need to head for this core. Vulkan also tends to be buggy in this implementation, but frankly only little testing on my end because there is simply no need. Like Duckstation, also this core is not available for iOS.

Bottom line: It hardly can get any better in MacOS right now, simply enjoy your favorite PSX titles of your childhood (or dive into those of your parents ;-).
    

Sony Playstation 2 (PS2)

14 January 2024
After a long times of a black void, PS2 emulation got a major boost in MacOS during recent years. You can play a lot of titles in MacOS, but sorry, no iOS emulation is available.

No.1 - PCSX2 nightly build (very good): With tremendous imput of Duckstation developer stenzek, the ui of this emulator moved to QT, and this apparently enabled MacOS builds again - always use nightly builds. Still an Apple Silicon build is missing and will be missing for longer, if I understand forum posts correctly. Having said that, most titles work flawlessly with the native Metal gfx plugin at 3x or more scaling. Even Guitar Hero works rather decently, with more or less identical performance as on a beefy gaming PC. RetroAchievements, rumble and automatic updates are also here, so not a lot to complain. There is also a lively Discord community, including a MacOS-specific channel.

No.2 - AetherSX2 (very good, but closed source and stalled development): For some time, AetherSX2 seemed the best option under MacOS, as it also provided native Silicon builds. As its name implies, it built upon PCSX2. Unfortunately development stopped now for quite some time, so it seems that all the MacOS-specific code is lost. This example shows you why it is important to have emulators in open source, as also explained at the beginning.

Honorable mention - Play! (experimental): Besides PCSX2, there is further PS2 emulation development in a project called Play! Its website calls its state experimental, and this is true. For MacOS, there is a standalone app and an experimental RetroArch core available. But it's fair to say that both implementations are currently more a proof of concept than full emulation.

Bottom line: While there is still room for improvement, you can enjoy many PS2 titles in PCSX2 and hunt all those RetroAchievements.

Nintendo Game Cube and Wii

14 January 2024

Single choice: Dolphin nightly builds (excellent): I cannot give enough kudos for this project, as it strives for nothing else than perfect Game Cube and Wii emulation. You have Universal MacOS builds and a Metal gfx plugin done by developer TellowKrinkle (he is also very active in the Discord and web forums). Since MacOS Ventura, you can play your Wii games with Switch joycons, and it works really well. Dolphin now also updates from within the application. Still I am a bit in a waiting position here - because RetroAchievements are under development for many months.

There is also a Dolphin for iOS app out there, but that one only makes sense if you provide the dynarecs via a MacOS/Windows pc. That's why I never dug into that topic, because why should I? And there is an old Dolphin RetroArch core out there, which does not work in MacOS anyways.

Bottom line: The MacOS emulator is a no-brainer.

Nintendo 64

14 January 2024
Under MacOS/iOS, N64 emulation has always been a rocky thing, and while it remains a bit rocky, the overall situation for MacOS improves.

No.1 - mupen64plus-next/RetroArch core (very good): It's already quite close to other OS, with Vulkan/HDR support and choice between the major RSPs Parallel, GlideN64 and Angrylion. Only the dynarec is currently not activated (probably for a reason). For most of the games, a safe bet is 4x upscaling, 1/4 downscaling and a lightweight crt shader (e.g. crt-geom) - this provides very convincing results. So please expect some drawbacks due to the missing dynarec. Same is true for iOS, where the situation also improved steadily. And of course, RetroAchievements, which are generally rather good for N64 games.

No.2 - Parallel Launcher (good): While this solution provides an own ui, a modified RetroArch/parallel core runs in the background. It also provides a dynarec for better performance. The drawback is that it is far more buggy and does not work for me in MacOS from time to time. Right now, joypad support is broken for me, and Gauntlet Legends immediately crashes. Still I return to it from time to time to find out whether something works or not. RetroAchievements are also here.

No.3 - Ares (good): In this multi-core emulator, a lot of good things happen for N64 emulation. Performance and compatibility steadily improves, and the ui is simple and effective. However, there will be no RetroAchievements, and that's a big bummer in N64 emulation because the achievements really shine. Head for the MacOS nightly Univeral builds. It's definitely something to look into.

No.4 - OpenEmu (good): With the surprise release 2.4.1 in December 2023, there also comes a bare bones N64 emulation back, and you can't really complain as it plays safe. Drag&drop of games, nice joypad config for the emulator, 2x scaling in full screen (Gaming Mode in Sonoma) and shaders. It's an attractive package for fast gaming, but no tweaking allowed. It's also Intel-only, but in my own tests, performance was quite ok in 2x scaling.

No.5 - Mupen64plus own compile (good): Back in times where there was nothing else available under MacOS, I provided a post on self-compiling the app from GitHub, including GlideN64. This still works and provides for decent results. However, as mupen64plus-next now implements all changes of this software, there is hardly a necessity to go back to here. Similar to official MAME, it still can serve as a nice reference for testing.

Bottom line: Significantly improved situation for MacOS, but still a bit on the buggy side. And yes, you can play Ocarina of Time and Super Mario 64 until the end.

Sony Playstation Portable (PSP)

14 January 2024

Sole choice - PPSSPP standalone and RetroArch core (both excellent): Thanks to the tremendous work of developer hrydgard, you get PSP emulation at its best. In MacOS, both the standalone app and the RetroArch core provide for quite identical functionality, including RetroAchievements. Due to my limited exposure to PSP games back in the days, I play only a very limited number of games now. 
But clearly God Of War in the upscaled version gives me the freaks on my large monitor, and I do not suck that much like on the small handheld screen ;-).

Nintendo Gameboy Advance (GBA)

2 March 2024

mGBA Retroarch core (excellent): After a revival of a family Gameboy Advance, this one comes late to the party. The mGBA core in RetroArch offers everything you can ask for, and developer warmenhoven recently provided a huge update of the core to 0.11-dev and is in sync with the upstream standalone emulator. The koko-aio shader gives you a brilliant standalone preset for proper LCD feeling and a funky GBA overlay. The RetroArchivement community supports a broad range of games. 
That's why I set a preliminary rating to excellent.

Nintendo Entertainment System (NES)

14 January 2024

Mesen, Nestopia UE, FCEUmm/Retroarch cores (excellent): not a lot to tell here, they all work and are stable. In Mesen, you can play some games with hires textures, and it's a love-it-or-hate-it thing. Otherwise you have tons of RetroAchievements under all cores, so just head for it.

Quake for PC 🤘

23 March 2024

No.1 - Darkplaces own compile (excellent): The one emulator where self-compiling provides you with outstanding results. I probably should write an own blog post about it, but let's summarize the situation:
You need to compile your own binary. It builds on Silicon Macs, but you need to rename the darkplaces-sdl binary into darkplaces-osx-sdl-bin and manually move it into the (nearly empty) MacOS folder of the existing app bundle. Provided that you have the necessary dylibs installed via Homebrew, the app works flawlessly.
On a 4k monitor, you must switch of the MacOS scaling in the System Preferences, then you can have quite incredible resolutions running.
If you have the incredible NIN soundtrack at home on the original Quake CD (like me), you need wav files. For whatever reason, the ogg format does not work even with the relevant homebrew packages installed. You then can enjoy this game with this incredible soundtrack.
Last but not least: You must download the incredible texture enhancements - head for the medium version of Rygel's texture packs and be amazed.

No.2 - Tyrquake/RetroArch core (very good): It is actually a very good implementation of Quake, you load the core and get nice core options. Music as .ogg files also work well. The description of the core in the Libretro Docs say it all. You even get rumble support in its core options. However, it cannot compete with the incredible custom textures in Darkplaces, which take this game to a new level. But for a quicker start, it's probably the easier thing.

Bottom line: Quake had been the single game to head for a Pentium PC, and this for a reason. This game still gives me shivers, and after the glorious Doom for PC days, this has been THE 3D first person shooter of the times. And the NIN soundtrack is quite unmatched, if you ask me.

Philips Videopac/Odyssey 2

14 January 2024
My first gaming console, and while it came with quite some major disappointments, it still lives in my memory.

No.1 - O2EM/RetroArch core (probably as good as it can get): For these games, RetroArch is the perfect choice because you get decent shaders and RetroAchievements (yes, there are cheevos!).

No.2 - official MAME: Same as O2EM in my experience, but no RetroAchievements and much harder to configure in MAME as a software list. Still impeccable emulation, I guess.


more to come ... stay tuned


9 comments:

  1. Thanks for keeping this updated. What a great resource for Mac users.

    ReplyDelete
  2. Awesome guide! I'd love to see a guide on installing an Silicon Mac version of Parellel on RetroArch. As currently using your mupen64plus option which works great but I'd love to use retroachievements

    ReplyDelete
  3. Many thanks. Parallel Launcher basically works out of the box and has decent documentation. However it is not absolutely ready for prime time on Apple Silicon, as some games crash pr slow down. Bur if you‘re adventuous, it‘s fun, including RetroAchievements!

    ReplyDelete
  4. I would like to echo the previous comments, thank you for keeping this post and the blog updated! With OpenEmu only getting minor updates over the past several years, I tend to think more and more Mac emulation will be done using RetroArch.

    With that said, since upgrading to macOS Sonoma (currently 14.3.1), I've noticed some strange behavior with my DualShock 4 controller using Bluetooth. Whenever I go full screen and Game Mode is enabled my DS4 light bar will switch from blue to red. The same happens when I exit RetroArch as well. Once this happens, some buttons no longer have action in game using the MAME core (typically the O button). I've also tested using a new DualSense controller as well -- same thing.

    Have you noticed any of this behavior using RetroArch, as I haven't been able to find anything on other forums or GitHub issue tracker.

    ReplyDelete
    Replies
    1. Hi, thanks for your feedback! I would definitely recommend you to use RetroArch for Arcade games, and there FinalBurn Neo (for reasons stated above), although the MAME current core also works nicely.

      I just launched RetroArch with one of my DualShock 4 controllers in Bluetooth mode (normally I stick with USB cable, it's simply easier to use the controller on different devices). But also in Bluetooth mode and full screen, I do not experience any of the behavior you describe. But I am still in Sonoma 14.2.1, so I'll see what happens when updating to 14.3.1 (I am a bit worried now...). Best!

      Delete
    2. Update to 14.3.1, also no problem. Do you use a Nightly build of RetroArch? I also do, but not the very latest.

      Delete
    3. Hi estefan,

      Thanks for the response! I do utilize the nightly builds, which recently solved the strange behavior when entering full screen mode (which turns on Game Mode). Although I'm still seeing the issue when I quit RetroArch. Here's a quick 15-second video, showing what I'm describing: https://drive.google.com/file/d/1MynYGJpU-GsjBDRQM8vBYoDSMiyouH2p/view?usp=sharing

      I wonder what's different with my setup, which is a MacBook Pro 14-inch, 2021 (M1 Pro) and can repeat this with a fresh install of RetroArch, deleting all previous preferences from the Library/Application Support/RetroArch folder.

      As for FinalBurn Neo, I'm considering making the jump thanks to the information you've provided on this blog!

      Delete
    4. Haha - interesting! Same here! But doesn't hurt at all, does it? Even after turning to the red colour, it works when restarting RetroArch. Wouldn't have noticed any difference here after the color of the PS4 LED changed once...

      Delete
    5. Thanks for validating that you're seeing the same thing and it's not just me! As mentioned in my initial comment, this used to happen whenever I would bounce in and out of full screen mode and it did cause problems. The fix was always to quit and restart RetroArch, regardless of the controller color. Since it no longer happens when going full screen it's not really impacting me at this point. It's just odd, almost like the controller is getting set to player 2 on exit (since different colors on DualShock 4 indicates that type of stuff). Probably a bug that will eventually get worked out...

      Delete

Any comments are welcome!