24 February 2020

OpenEmu - A New Strong Contender for MacOS MAME

These days I revisited OpenEmu after quite some time, and it is a fair statement that it became an extremely attractive contender for playing MAME in MacOS.


This shall only serve as a teaser for an in-depth review - just briefly what makes OpenEmu a compelling option for gaming MAME in MacOS:
  • Up to date - current MAME Core is 0.217 (note: the MAME Core only comes with the "Experimental" version of OpenEmu!).
  • Performance is extremely good. OpenEmu claims to have developed a Metal backend for better performance in MacOS. While there is nothing documented about this, so far all games work flawlessly. A more objective testing than playing games you know does not seem to be available.
  • Shaders built in, can be changed in the game on the fly. It is by far the most convenient way of applying shaders for MAME games. And you find CRT-GEOM or even CRT-Royale-Kurozumi amongst them! Shader options are also very convenient.
  • And of course outstanding usability, which you will not find in any other MAME emulator:
    • import roms by drag'n'drop and enjoy immediate scans for artwork; import also provides a smart mechanism for resolving conflicts with other emulators; if you launch a game with missing roms (e.g. neogeo.zip), OpenEmu tells you this; also importing of bios files is drag'n'drop (more important for the other emulators)
    • outstanding configuration of joypads, with a lot of them being recognized automatically
  • Autostate out of the box: MAME currently does not save hiscore files in OpenEmu, and there is nothing to worry about that. Because OpenEmu, by its default options, just autosaves your last state and resume there at restart. So your highscores are just saved by savestates, and that's just fine.
I wanted to write this teaser very fast because OpenEmu now has reached a state where it becomes a top option for MAME in MacOS. In my review, I will also elaborate on the current deficits (e.g. no Artwork), but all in all, for the casual arcade gamer, this software is just brilliant. Stay tuned, I need to test further.

Read further for my in-depth review of OpenEmu (this review is reduced to the MAME core, wile OpenEmu's potential obviously go far beyond MAME emulation):


The Concept: Retroarch - the MacOS way

OpenEmu smartly rethinks the concept of Retroarch: Each emulator is bundled into a Core, and these Cores are built upon the popular emulators that are out there. Look into the Package Contents of the OpenEmu App, and you will find the different Systems in the PlugIns folder. These plugins seem to point to /Username/Library/Application Support/OpenEmu/Cores. For each Core, there is a separate Github subrepo.

It seems to me that OpenEmu uses an arcade-only version of MAME, i.e. compiling MAME with the SUBTARGET=arcade option. For example, the Game & Watch handheld roms do not work in OpenEmu. Considering the other OpenEmu Cores that cover a lot of the MESS stuff (and much performanter), this seems a logical decision to me.

Apart from the concept of Cores, OpenEmu is hugely different from Retroarch: Preferences in OpenEmu are scrapped down to an absolute minimum. It is like Retroarch represents the Linux way (everything is configurable), whereas OpenEmu hides most of the options from you. When it comes to MAME, the OpenEmu Core is so smartly configured that this is hardly a problem (we will see later).

Preferences are ridiculously scarce compared to Retroarch

The User Interface: iTunes for Emulation

The big strength of OpenEmu is its slick interface - it is MacOS as it can be for emulation. If you have ever used iTunes, you will immediately feel comfy.

OpenEmu takes pride to be a MacOS App
Rom Import: Just drag roms into the app window. If the app recognizes it, it immediately assigns a screenshot to it and assigns the full name. During my testing this worked very nicely. If you want to assign different artwork, you can do this by the right-click menu. If the rom is not assignable automatically, OpenEmu warns you and lets you do a manual assignment to the Arcade Core. Very nice indeed. MAME bios files, such as neogeo.zip, are also imported via drag & drop, and you must manually assign them to the Arcade Core.





Missing Roms: It is very nice that the UI provides you with dedicated information about any missing rom files.



Improvement Suggestion/MAME Bios files: As you can see in the screenshot, MAME Bios files, such as neogeo.zip, are treated just like game roms. It would be nice to hide these roms from the display.

Joypad Configuration: This is where OpenEmu has currently no competition. You cannot setup joypads easier than here. In the Preferences menu, you provide for the Core configuration. From that you can still deviate for individual games. The concept is just perfect MacOS experience.

As you can see, the Arcade joypad setup desperately misses some kind of gorgeous joypad artwork, such as for the Nintendo64, but otherwise just perfect.
As always, click to enlarge

MAME Gaming Experience

On my iMac (Late 2013, Mac Mojave), MAME performance is flawless. I did not experience any performance issues, and the scaling abilities of the OpenEmu window are perfect. The windowed MAME emulator behaves just as a regular MacOS app should behave. This alone is a huge benefit over regular MAME, at least in MacOS.

On the aging MacBookPro (2012), I even see superior performance of OpenEmu compared to MAME (BGFX Metal, CRT-GEOM), especially in vertical games. My assumption is that the MAME BGFX shader requires more GFX performance than OpenEmu, but this is pure speculation.

The in-game settings are properly reduced to just the Dip Switches and the Machine Information. Changes in the Dip Switches are properly saved.


Sample support is here. You need to put the samples into $HOME/library/Application Support/OpenEmu/MAME/samples.

Shaders - a mixed bag: Shader implementation is very nice, but somewhat buggy (see below). With some shaders, in particular CRT-GEOM, some options are changed on the fly, others not (e.g. sharpness). In any case, if the MAME emulation is paused, changes of the shader options are not visible immediately. During a running game, most shader changes are seen immediately. In overall, shaders do not work properly in vertical games.

It seems to me that shader quality of CRT-GEOM in OpenEmu cannot match the quality of standalone MAME. Maybe it is a matter of correct settings, so I am currently unsure about that statement.

No proper Bezel Artwork support: While you could place your Bezel Artwork into $HOME/library/Application Support/OpenEmu/MAME/artwork, the result is incorrect. Installation requires just to put the artwork.zip into this folder, no further configuration is required. However, the OpenEmu shaders also affect the bezel artwork, so that is a no-go. 

1942 bezel and CRT-GEOM shader, both the shader effects and the curvature are also applied to the bezel, which does not provide a nice picture. Currently bezels do not rely on any mame.ini, and you can also not change the Artwork settings as in regular MAME, e.g. crop.
So if you rely on bezels, you must head for regular MAME for the time being.

No Cheats: It seems to me that contrary to other OpenEmu Cores, MAME currently provides for no cheat support. Frankly I do not care because Cheats suck anyways ;-).

Bugs detected so far:

The OpenEmu team considers MAME as 'experimental', so bugs are out there. These were the that came to my attention:
  • Lost Joypad Configuration: From time to time, MAME seems to loose the joypad configuration of my PS4 joypad - just partly, and always the analogue stick. No major issue, since you can configure the joypad in the game on the fly.
  • Shader Irregularities in Vertical Games: Some games, such as Xevious, do not have a proper shader implementation. Changes of the shader configuration in game also do not affect anything. Up to now, this only happens in vertical games with me. In the case of 1942, any changes to the shader parameters require a restart of the game in order to take effect.

Click to enlarge - Xevious does not look nice.
  • Washed Vector Games Video: In original MAME, vector games look much nicer than in OpenEmu. None of the available shader configuration seems to be a proper fit.
But all in all, these bugs are not real show stoppers for decent MAME experience.


Conclusion - so how does OpenEmu fare in comparison to the competition? Let's compare the three options:

No 1 - MAME official - still first choice if you are willing to work with a text editor:
+ impeccable performance and Metal gfx backend
+ high shader quality in BGFX
+ full support of bezel artwork and cheats
+ AttractMode is an impressive frontend
- configuration of BGFX, joypad etc requires work in a text editor, same goes for AttractMode
- no artwork scraping, you need to add artwork manually

No 2 - OpenEmu - the fastest start into MAME on Macs:
+ impeccable performance and Metal gfx backend
+ superior rom import, artwork scraping and joypad configuration, nearly all configuration in the interface
+ up-to-date MAME version
+- nice shader implementation, but buggy with vertical games
- bezel artwork and cheats are missing

No 3 - Retroarch - buggy and too complicated to configure
+ performance is mostly good
+ abundance of shaders, but you need not all of them for MAME
+ many MAME core options for experimentation on lower end machines
- MAME (current) often crashes in MacOS and is hard to configure
- little documentation on how to correctly configure MAME in Retroarch













No comments:

Post a Comment

Any comments are welcome!