09 May 2026

MAME (current) for RetroArch: running list of improvements

I will use this post as collector for any further improvements that we see in the MAME (current) RetroArch core.

Update 9 May 2026 - with the tremendous help of a community member, I now understand that MAME (current) still supports the .lay files of MAME official. However, due to the limitations of the RetroArch implementation, you will only need this for very special topics, but not for classical bezel artwork.

If I am not mistaken, there is no documentation of this setup anywhere - so here you are.

Very long time ago, I did a deep dive into the logic of a MAME .lay file:
With a highly capable shader such as koko-aio, there is no longer the need for such .lay file in RetroArch. However, there are things that a MAME .lay file is still valuable in RetroArch:

Configuration in the RetroArch shader, such as koko-aio:
  • Arcade machine artwork
  • Bezel configuration in every single detail
  • most Backdrops
What's left for a configuration in the MAME .lay file:
  • Screen overlays for colorizing pixels

The colorization of the pixles is done with an overlay in the MAME .lay file

In comparison without the overlay

  • Dual screen setups, like in certain Game & Watch handheld games

The alignment of the two screens is done in the MAME .lay file

  • Backdrops, like those of Game & Watch handhelds, only look good if configured in a MAME .lay file
Grass, hens and wood is in a MAME .lay file as backdrop, not in koko-aio


The apparent challenge is that you need to be absolutely sure what you need in the MAME .lay file and what not. Have a look into the two Game & Watch examples, that should help.

Installation of MAME lay files

Like in MAME official, the relevant file are compressed into a .zip file having the name of the game. In the .zip file, the layout file is called default.lay, and it contains the references to the other files in this .zip file.

Installation path in RetroArch: 
RetroArch/system/mame/artwork

For your orientation, the system folder is the folder that contains all other system data, such as bios files of consoles. Inside of this folder the mame subdirectory is written in small letters, as well as the artwork directory. Same as in official standalone MAME.

I hope that this information helps, it is incredibly hidden in the Internet. Cheers.


Update 4 August 2025 - just briefly an overdue update on easier highscore support in MAME (current) for RetroArch, which I can confirm as working (done with newest MAME version 0.279)

Preparatory steps:

  • Step 1: have the MAME (current) core installed
  • Step 2: verify that you have the following directory: $HOME/Documents/RetroArch/system/mame - if not, then create it
  • Step 3: download the entire master file from github as a zip file: https://github.com/libretro/mame and extract it
  • Step 4: move the following directories into the mame directory according to Step 2: hash and plugins
Activating Highscore Support from within MAME (current):
  • launch a game in MAME (current), enter Quick Menu, and in the Core Options/System, enable "Boot to OSD"
  • Completely close RetroArch, launch it again and launch a game (horizontal monitor!) in MAME (current) -> the OSD appears
  • With (TAB), jump to the General Settings of the MAME OSD, go to Plugins and activate "Hiscore Support" - don't forget to save the settings in the MAME OSD. 
  • After this, disable "Boot do OSD" in the Core Options and completely close RetroArch again.
  • MAME has now generated the necessary ini files in $HOME/Documents/RetroArch/system/mame/ini
From now on, games should save highscores in $HOME/Documents/RetroArch/system/mame/hiscore. Play any game and get a hiscore, and it should create this directory and save hiscores into it. 

Very good news: In my tests, I could successfully move all hiscores from MAME official to MAME (current) in RetroArch! The solution now seems compatible and stable enough.

Still a bit clumsy, but far better than before. 

Reminder: samples for very old MAME games need to be here as well - $HOME/Documents/RetroArch/system/mame/samples

Update 14 August 2023 - MAME (current) was also updated to version 0.257 and is on par with official MAME as of this blog update

Recently the iOS core also was slimmed down to 77 MB - still a lot compared to the 9.2 MB that FBNeo brings, but nevertheless some improvement.


Update 26 July 2023 - MAME (current) did a jump to 0.256 (both MacOS and iOS), while latest RetroArch Nighties imply that version 1.16.0 should be imminent  🎉🎉




With the latest tweaks, the MAME (current) Core is functional on Mac RetroArch, but still has some issues. As of this writing, the „current“ RetroArch core is version 0.251, whereas official MAME is already at version 0.255. In practice, this probably won’t matter that much to you.

 

The two important recent changes of the Mac core are the following: 

  • Initialization resolved on Macs thanks to Mac mastermind warmenhoven: You can finally stop a game and launch another one without having to restart RetroArch.
  • Rotation corrected: The koko-aio shader works with identical configurations as FinalBurn Neo or old MAME versions! This is very nice at least for all games that FinalBurn Neo doesn’t support. For other games, you can easily switch the Core Association and test which emulator is better. I am currently working on a new release of the koko-aio arcade presets including MAME (current).

Let’s also address these limitations of MAME (current) in RetroArch (tested both in MacOS and Windows):

  • Some games have heavily distorted audio, e.g. galaxian -> resolved, do not use Preemptive Frames, thus de-activate or switch to Runahead with the second instance activated
  • RetroAchievements do not work properly in several games. -> kind of resolved, as MAME cores have no official Achievement support

Some games do not launch achivements at all, while 1943 does not support some of the achievements - MAME (current) just does not officially support RetroAchievements





























Bearing this in mind, let’s further configure MAME (current).



Hiscore (and other plugin) support

As explained here for Windows: https://forums.libretro.com/t/guide-libretro-mame-current-hiscore-history-gameinit-command/24452/16


While this requires quite some manual work, the result is fully fledged MAME hiscore support, which prevails over the older FinalBurn Neo implementation. As newer MAME versions make use of a plugin for hiscores, some manual configuration is required so that also the RetroArch core finds the plugins.


Step 1 - Create the following directory structure in $HOME/Documents/RetroArch/system (this is the standard directory location on Macs)

mame

    hiscore

    history

    plugins

    ini

(careful - the directory names are case sensitive!)


Step 2 - Download the plugins folder from the GitHub repository https://github.com/libretro/mame and move its contents into the plugins directory above (alternatively, you can of course entirely replace it)


To download one directory from github: https://download-directory.github.io/ is your best friend!


Step 3 - Get the dat files and copy them into the history directory:


history.dat (should go to system/mame/history/)

command.dat (should go to system/mame/history/ as well)

gameinit.dat (should go to system/mame/history/ as well)


Step 4 - Create truncated ini files for RetroArch only (below is the file name first and then its content for copy/paste)


mame.ini


#

# CORE CONFIGURATION OPTIONS

#

readconfig                1

writeconfig               0


#

# CORE SEARCH PATH OPTIONS

#

mame.inipluginspath               $HOME/Documents/RetroArch/system/mame/plugins


plugin.ini


#

# PLUGINS OPTIONS

#

timecode                  0

dummy                     0

inputmacro                0

discord                   0

layout                    0

timer                     0

SLAXML                    0

cheat                     0

portname                  0

json                      0

cheatfind                 0

commonui                  0

autofire                  0

hiscore                   1

data                      1

gdbstub                   0

console                   


ui.ini


# UI SEARCH PATH OPTIONS

#

historypath               "$HOME/Documents/RetroArch/system/mame/history"



Samples Support


Samples come into $HOME/Documents/RetroArch/system/mame/samples -> and they work.


Conclusion: MAME (current) vs FinalBurn Neo


In direct comparison, I clearly prefer FinalBurn Neo as my default core for arcades, already due to the limitations described above. But also FinalBurn Neo’s ‚Force 60Hz‘ core option resolves all issues on 60Hz monitors, its a much leaner core and rock solid.  Performance-wise, both cores seem to perform nearly identical on my Macs (with FinalBurn Neo performing slightly better on full speed, but it doesn't matter). But it is definitely worth testing the cores out in direct comparison. One of my all-time favorites, 1942, somehow feels snappier with MAME (current).


MAME (current) is a good choice for me

- for games that are not supported by FinalBurn Neo at all

- for games that have no hiscore support in FinalBurn Neo (they get less and less)


What also may be important for you: Hiscores from official MAME standalone work! Just copy them into /system/mame/hiscore, and they are accepted!

So it‘s great to have this running now. Happy testing!

1 comment:

  1. Thank you for posting this information! I've looked at enabling hiscore support in MAME current within RetroArch for some time and this information made it a simple process.

    ReplyDelete

Comments are welcome - spam and ads will be removed! Please leave a name or a pseudonym, thanks!