Skip to content

Getting started with arcade emulation

Arcade emulation requires a different planning approach than console emulation. Arcade emulator terminology can also differ from the terms used in other kinds of emulation.

Process

  1. Choose an arcade emulator to match your system
  2. Use the correct version romsets for that emulator

The libretro core ecosystem includes a variety of arcade emulators, each with specific strengths and each requiring its own distinct version of arcade "romsets" which the emulator supports. Every arcade emulator core is optimized for different hardware and different games. This guide is intended to help you decide which core to use and find out what romset version is required for that emulator.

Arcade cabinets in an arcade room


Step 1: Choose an arcade emulator to match your system

There are two families of multi-system arcade emulators available as libretro cores: FinalBurn and MAME. These emulators are in turn available in multiple versions to allow users to best match a core to their device. There are also a few console emulators that can alternatively emulate the arcade hardware based on that console. There is no "best arcade core", recommending one is hard without knowing your device and what you intend to play, each of them are a balance between multiple criterias.

The criterias for choosing an arcade core

Integration within the libretro ecosystem

A better integration allows for more features to be available from the frontend you are using, like netplay, runahead, rewind, retroachievements, ... but also reduces the risk of bugs. The quality of the integration is directly linked to the availability of a support team for the core.

Accuracy

Theoretically, more recent version of the emulators should always be more accurate, which means the graphics, sound and gameplay of the games are more likely to be faithful to the original cabinet. In reality, for vintaged MAME cores, with fixes being backported to some vintages and not some others, the situation is not so predictable.

Input lag

Accuracy improvements can add or remove frames of input lag. It is believed that FinalBurn Neo and MAME (current) have the lowest input lag on average. Also note that FinalBurn Neo has virtually 0 frames of input lag since it has full support for the runahead feature. As of november 2022, runahead is also available in MAME (current), but its quality is disparate since it's not officially supported upstream.

Romset versioning

Part of the reason older emulators are more likely to be less accurate is that they are using a lot of bad dumps. What we refer as a dump is the digital representation of a chip, a romset is a collection of those dumps, 1 dump for each chip. Sometimes the attempts at digitalizing some of those chips failed, and instead of having the game totally unplayable because the romset was only 90% complete, it was decided to implement workarounds in the emulator's code to make the game somehow playable, those workarounds are known for going as far as changing gameplay by causing different enemy patterns from the real game. Every time one of those chips finally gets a proper dump, which can happen decades later, ongoing arcade emulators will update their code by removing the workarounds and loading the correct dump. Some of those boards are rare and pricy, dumping the chips is a complex process which can be harmful, meaning while it can be annoying for the end user to update their romsets, those new romsets aren't made for fun.

Performance

Being more accurate usually means the emulation will be more taxing on your cpu, so older versions of emulators will usually perform better and are worth trying if you have performance issues with more recent versions. Accuracy is not the only reason for performance regression though, the emulator framework has an impact too, this is especially noticeable on MAME which had its framework constantly updated over the years.

Supported games

What we refer as "arcade emulation" is the emulation of thousands of different machines. Arcade emulators keep adding support for new machines over the years, so the more recent versions support more games. This is a double-edged sword as far as performance is concerned, because it can require updates to an already emulated component, to add a previously unemulated/unnecessary feature of the component, which might impact its emulation performance even for the machines that don't need this feature.

Emulator goal

MAME's goal is to emulate every existing machines, including machines unrelated to gaming (it can emulate printers, vending machines, ...), the most accurately possible, while documenting them thoroughly. FinalBurn's goal is mainly to offer a comfortable experience for the end-user as a gaming software, and will include optional features that didn't exist on original cabinet (alternate controls for a better experience with modern controllers, alternate high-quality music, ...). MAME 2003-Plus has pretty much the same goal as FinalBurn, with both emulators actually sharing a few contributors.

Support team

Last but not least, most of the arcade cores have no real maintainer and are mostly there as a frozen-in-time alternative if the cores that have a support team can't play properly the game you want. FinalBurn Neo and MAME 2003-Plus have a support team (please note that MAME 2003-Plus is a hard fork which isn't written by the MAME team). MAME (current) gets regular bumps but doesn't have a regular maintainer to take care of known issues. We don't recommend you try getting help from the MAME team for any of the MAME cores we provide, because you won't get any.

Quick tour of every available core

FinalBurn Neo

  • has the tightest integration within the libretro ecosystem
  • is mostly accurate, can be more accurate than MAME (current) on a few games
  • uses the latest known good romsets
  • is reasonably fast
  • has a support team
  • doesn't support 3D games, support fewer 2D games than MAME
  • keeps adding support for new games, including a lot of hacks and homebrews

MAME 2003-Plus

  • has the second tightest integration within the libretro ecosystem
  • while originally forked from MAME 2003, can be fairly accurate on some games since it incorporates some emulation fixes from recent versions of MAME
  • is quite fast, this fork was originally meant by the author to run on a pentium III @ 733mhz (Xbox OG)
  • doesn't have fixed romsets, doesn't always use latest known good romsets either
  • has a support team
  • supports a few classics that aren't supported yet in FinalBurn Neo
  • keeps adding support for new games

MAME (current)

  • is the slowest core and the one that consumes the most memory
  • is usually the most accurate
  • uses the latest known good romsets
  • has the widest range of emulated machines
  • has the shallowest libretro implementation, with concerning issues (see broken shaders on vertical games)
  • keeps adding support for new games

FinalBurn Alpha 2012

  • has splitted cores for optimized memory usage if you are using a device with very very limited memory (wii, nds, ...)
  • has fixed romsets
  • is an older version of FinalBurn Neo, and as such should be faster while being less accurate and supporting less games, the libretro integration isn't as good either
  • should only be considered as an alternative on ultra low-power devices

MAME 2000

  • is the fastest arcade core
  • is the most inaccurate arcade core
  • has fixed romsets
  • has the smallest list of supported games
  • should only be considered as an alternative on ultra low-power devices

MAME 2003

  • is slower than MAME 2000
  • is more accurate than MAME 2000
  • has fixed romsets
  • support more games than MAME 2000
  • probably shouldn't be used at all, MAME 2003-Plus is just plain better

MAME 2010

  • is slower than MAME 2003
  • is more accurate than MAME 2003
  • has fixed romsets
  • support more games than MAME 2003
  • probably shouldn't be used at all, most of the interesting things it has to offer were backported to MAME 2003-Plus, including lots of game additions

MAME 2015

  • is slower than MAME 2010
  • is more accurate than MAME 2010
  • has fixed romsets
  • support more games than MAME 2010

MAME 2016

  • is slower than MAME 2015
  • is more accurate than MAME 2015
  • has fixed romsets
  • support more games than MAME 2015
  • has the same shallow libretro implementation than MAME (current)

Flycast

  • support arcade hardware based on Sega Dreamcast (NAOMI, NAOMI 2 and AtomisWave)
  • is the only core available for those 3 systems

Kronos

  • support arcade hardware based on Sega Saturn (ST-V)

Step 2: Use the correct version romsets for that emulator

The rules

Romsets are archives in zip format, they must not be extracted, 7zip is also supported with a few exceptions and the drawback that it's slower to load. If you rename a romset, it won't work. If your romset doesn't contain the exact files the emulator requires, it won't work. If your romset requires other romsets (bios, parent) and you don't have them, it won't work.

The reasons behind those rules

FinalBurn and MAME emulate thousands of different machines (because Pac-Man doesn't use the same hardware as Donkey Kong), so they need a mean to identify which machine run a given romset, it was decided to use the archive's filename for this purpose. Each file within a romset is the dump of a chip (program data, sound data, graphics data, ...) from the original game's PCB, the emulator needs to identify each dump's role, it was decided to use their signature (crc) for this purpose (filenames can sometimes be used as a fallback to load bad/hacked dump). To summarize, when you launch a romset with one of those emulators, it first matches the archive's filename with its internal database, then load all the dumps it requires, failing at one of those 2 steps will prevent the game from running.

Warning

When using romsets for the latest version of MAME or FBNeo, you should first make sure your version of those cores aren't outdated.

Tip

In general, you will get better results with a full collection of romsets for your chosen emulator. Starting with individual arcade romsets is less likely to work because you generally won't know which emulator they target, or if they contain every required files to run the game (bios, parent).

Tip

Full Non-Merged romsets are widely available for all of the "historic" MAME cores. Full Non-Merged romsets are the simplest romset format to get started with because each romset zip contains all necessary files for one game.

Emulator Required ROM Version ClrMamePro dat file
FB Neo FBNeo (latest version) here
FB Alpha 2012 FBA 0.2.97.24 N/A
MAME 2000 MAME 0.37b5 here
MAME 2003 MAME 0.78 here
MAME 2003-Plus MAME 2003-Plus (latest version) here
MAME 2010 MAME 0.139 here
MAME 2015 MAME 0.160 here
MAME 2016 MAME 0.174 here
MAME (latest version) MAME (latest version) here (click XML link)

Optional : ClrMamePro tutorial

Clrmamepro is a tool to help validating your romsets against a given emulator.

Credits

This tutorial is based on RetroPie's

Step 1 - Back up your ROMs

It is possible with ClrMamePro to change one or two options and when it runs it will delete all your existing ROMs. OK, not really - using the default options it will make backups of any files it removes, but it is still possible to mess up their ROMs beyond repair when getting started with ClrMamePro.

Step 2 - Download ClrMamePro

Step 3 - Acquire DAT files

You can download most DAT files from above.

Step 4 - Run ClrMamePro for the first time

  • Run it. The welcome screen explains that common first steps are to 1) Create a Profile, 2) Set up your paths and 3) Scan your ROMs. We will be doing things slightly differently, in order to leave your source ROMs intact.
  • Click OK to the Welcome screen
  • Click "Add DatFile...", search and open the DAT file you downloaded
  • Accept the default profile location of [PROFILES], click "OK"
  • Select "[NEW DATFILES]" in the left-hand pane and select the one jou just added in the right-hand panel
  • Click "Load / Update"
  • ClrMamePro will ask you how to generate the settings for this datfile, click "Default" (it is possible it will throw a warning but just select "ok to all" and continue on)
  • You are now at the main window for clrmamepro. We still need to set our paths, so click "Settings"
  • Verify "ROM-Paths" is the selected option in the upper-left corner drop down menu
  • Click the "Add..." button
  • Create a folder where you'll store your romsets, select it and click "OK"
  • Close the settings window with the "X" button in the upper right

At this point, you could scan the ROMs folder you just selected, but we just created this folder and it is empty. Instead, we will rebuild into this folder.

Step 5- Rebuild a ROM set

  • In the main ClrMamePro window, select "Rebuilder"
  • The destination should already be filled in for you - it is the same as the ROM path you defined above
  • Use the browse button "..." to select your source path. For example you might have a folder where you stored various arcade ROM sets you got from various sources - point ClrMamePro to that directory as your source.
  • When rebuilding there are three options: Non-Merged, Merged, and Split. Pick the one you prefer. If you select "Non-Merged" in this menu, it is recommended to click the "Advanced" button and deselect "Separate BIOS sets", so that ROM sets will also be self-sufficient with BIOS.
  • Click "Rebuild...". Depending on the size of the directory you chose as a source, this could take some time
  • When ClrMamePro is finished rebuilding, you will see a window with statistics showing how many matching files were found, how many files were created and how many were skipped. Click "OK"
  • Repeat for any other source paths you might have. You can rebuild from multiple sources, but leave the Destination path the same
  • When finished, close the Rebuilder with the "X" in the upper right corner of the window

Time to find out how well your source ROMs matched up...

Step 6 - Scan a ROM set

  • In the main ClrMamePro window, select "Scanner"
  • Leave all settings at default and click "New Scan..."
  • When ClrMamePro finishes scanning, you will see a "Statistics" window with high level information and a "Scan Results" window with detailed information about your missing ROMs

Notes

  • Typically you cannot completely 'roll forward' from an old ROM collection version to a new version, since these will often feature entirely new roms or dumps that weren't present in your older version. The same is true for 'rolling back' from a new version to an older version, but there are 'rollback' sets available that collect all the previously deleted ROMs from old versions that you can use to fill in the gaps.
  • Be careful with the "Fix" settings in the Scanner window and the "Remove Matched Sourcefiles" setting in the Rebuilder window. These settings will remove and rename your ROMs.
  • If ClrMamePro does delete any ROMs (because you told it to), you should be able to find backups in C:\clrmamepro\backup as long as you didn't change the default settings.
  • ClrMamePro is very stable. It has been around for a long time, it is regularly updated and it is widely used. If it reports problems reading your ROMs, you most likely have corrupt ROM archives (zip files) or a failing hard drive.
  • If you feel the need to reset ClrMamePro's settings, just delete your existing profile(s) and reload your DAT file, selecting "Default" settings for the new profile. Almost all of ClrMamePro's settings are per-profile.

Arcade ROM terminology

  • ROM, ROM set, and romset: Arcade games are packaged as zip files, most of which are composed of more than one individual 'ROM' file. That is why some resources refer to an individual arcade game as a ROM (like people use to describe a zipped game cartridge ROM) while other resources refer to an individual game as a ROM set or romset.
  • ROM version or romset version: Each version of an arcade emulator must be used with ROMs that have the same exact version number. For example, MAME 0.37b5 ROMs are required by the MAME 2000 emulator, but will not work correctly with the MAME 2010 emulator, which requires MAME 0.139 ROMs.
  • Sample: Some games require an additional zip file with recorded sounds or music in order for audio to work correctly. The path where these samples should be copied varies from emulator to emulator.
  • CHD: Some MAME games require data from an internal hard drive, CD-ROM, laserdisk, or other media in order to be emulated -- those forms of media are packaged as CHD files. CHD files should be copied to subfolders within the folder where the MAME ROM zips have been installed.

In addition to having a version number, arcade ROMs can be formatted four ways:

  • Full Non-merged: All romsets can be used standalone because each zip contains all the files needed to run that game, including any ROMs from 'parent' ROM sets and BIOS sets.
    !!! ClrMamePro users To rebuild Full Non-Merged romsets, use Non-Merged mode and deselect Separate BIOS sets via the Advanced button in the Rebuild and Scanner menus. ClrMamePro may display BIOS sets as missing in scans with these settings, but that is because all of the BIOS files will be distributed directly to the game romsets that need them.
  • Non-merged ROM: All romsets can be used standalone because each zip contains all the files needed to run that game, including any files from 'parent romsets'. The only exceptions are games which use BIOS ROMs, which are formatted as 'Split' and must be kept in the same folder as the game romset which uses it.
  • Split: Some romsets that are considered clones, translations, or bootlegs also require a "parent" romset to run. In some cases the parent is not the most popular or best working version of the game, however. For example, in a Split set pacman.zip (a clone), will not work without puckman.zip (its parent).
  • Merged: Clones are merged into the parent romset zip, meaning that more than one game is stored per file. Merged romsets are not supported by libretro cores.

RetroArch Playlist Scanner Support

The RetroArch content database supports arcade romsets in Full Non-Merged and Split formats. In order to be recognized by the scanner, Full Non-Merged and Split romsets must also be processed by TorrentZip to standardize their CRC.

Credits

The arcade cabinets image is based on an image by Rob DiCaterino, licensed for reuse under a Creative Commons (CC BY 2.0) License. Original image and license: https://www.flickr.com/photos/goodrob13/17385639015/


Last update: 2023-01-23