Emulation on Mac

Emulating classic video game consoles on Mac OS X

Monthly Archives: April 2017

Multi-System Emulators: RetroArch 1.5.0 vs. OpenEmu 2.0.5

Clearly I have not been updating this blog, but one of the reasons for that is that emulation has become much more user-friendly in the past few years. You no longer have to “get your hands dirty” to emulate a ton of game consoles on MacOS. Thanks to OpenEmu (covered here previously), emulation of about 30 consoles “just works.” We also now have RetroArch, a competing multi-system emulator that works on far more than just MacOS.

OpenEmu’s strength is its MacOS-native interface. It’s a mouse-driven UI designed to focus on your ROM collection, organized by system. When you run OpenEmu, all of the systems you see in the list are supported “out of the box.”Screen Shot 2017-04-28 at 12.17.45 PM.png

In the past, adding CD-based games to your “library” in OpenEmu was hit-or-miss. Now, if you have a game that is a .bin/.cue file pair, you just add them as a pair, and they show up correctly without any trouble. As many Playstation 1 era games are turning 20 years old now and Sony has abandoned any concept of backwards compatibility, it’s great to have an easy way to manage an archive of our collections. When you add a game to your library, the box art thumbnail just shows up automatically, no further action required on the user’s behalf.

OpenEmu does not apparently support emulator tweaking (no super-hi-res PS1 emulation or widescreen hacks), nor does it support netplay, or streaming. It’s a single player (and local multiplayer) multi-system emulator front-end. (Technically we have to call it a front-end, because it’s just providing a unified interface to a collection of already-existing emulators).

RetroArch is the relative newcomer on the scene. Their goal is to run basically any emulator on any machine, using an underlying middleware API they call LibRetro. RetroArch is the application for the user, and individual emulators can be adapted or abstracted away by the LibRetro interface, turning them into “cores.” This is much the same way that OpenEmu works, but RetroArch is portable: it works not only on MacOS, but on Windows and Linux and even smartphones and jailbroken game consoles. You can run RetroArch on your jailbroken PS Vita, Wii, or even a $35 Raspberry Pi. It also allows for far more configurability than OpenEmu, for better or worse. Compared to OpenEmu, RetroArch supports many more emulator cores. Close to 100, although many of those are variations (several choices of GBA emulator, several choices of PS1 emulator, etc.)

Screen Shot 2017-04-28 at 12.27.46 PM.png

The RetroArch default interface is an homage to the Sony PS3 and PSP’s “cross-media bar” (also known as the XMB) design. If it works don’t fix it, I guess. The reason this UI makes sense for RetroArch is that it can be entirely game-controller-driven. Controller support is automatic: plug and play. I didn’t need to spend any time at all in RetroArch configuring my PS3 controller, I just plugged it in and that was it. Painless. Well, I did have to hit the PS home button.

The rest of the UI is not so painless though. I experienced multiple bugs running it on MacOS: using the window frame controls to go full-screen corrupted the picture and I had to use the in-app setting to change it to full screen, instead. I had major problems and inconsistent results launching Playstation 1 games. Loading a game before you load its corresponding core may or may not succeed. You may get stuck in a menu tree where you can’t go back without closing RetroArch. If you ask it to download something in the background, it will get to 99% and then halt all emulation for a few seconds before reaching 100%. It’s a lot of little annoying things.

If you double click anywhere on the interface, such as by accident, it just instantly quits RetroArch. If you accidentally hit the ESC key, it instantly closes RetroArch. If you run RetroArch, you basically don’t want to use it without a controller.

If you want box art thumbnails, you must direct RetroArch to download an entire set for a given system, regardless of how many of those games you actually own. Likewise, RetroArch doesn’t have any emulation cores when you first run it. You have to flip through its menus and download each individual one that you are interested in. Unlike with OpenEmu, it’s unclear if there is any kind of automatic updating for these cores or if that’s a manual step also.

All of these sharp edges aside, RetroArch is an amazing project. It promises to do for everyone, what OpenEmu did for MacOS users. It also has some unique advantages, including: netplay (including spectating), achievements (via RetroAchievements.org), recording and streaming.

Either OpenEmu will expand its feature set to compete with RetroArch, or RetroArch will improve the usability of its UI. Either way, the future of emulation is looking bright.