To play arcade games on your computer you will need to use the MAME emulator. You can either download this as a stand-alone program or use it from within one of your front-end emulator systems, such as RetroPie or LaunchBox. Getting the MAME software installed, and running is very straightforward. Just install the downloaded software or enable the emulator core and you’re all set to go. Please check out my Arcade emulation tutorial for full details.
But when it comes to getting games working it can be a bit tricky and very confusing. MAME ROMs don’t work the same way as other emulators. To get a game to work you need a few different ROM files and it’s not always obvious which ones you need.
In this post I’ll show you how MAME ROMs work, what you need to get games working, and where you can download the files you need.
To understand ROM files, we first need to understand how emulators work.
An emulator is a piece of software that runs on your pc or laptop that simulates the hardware of some other computer system, for example an arcade cabinet or a games console. The hardware of the computer you’re trying to emulate consists of several electronic circuit boards with various microprocessors and support chips which are in turn connected to the controls, speakers and display. The emulator must model each of these processors and support chips in software. Once that’s all being emulated we can use a copy of some original game software and it will run as if it were using the real computer hardware.
For most games consoles and home computers, the electronics inside the box didn’t change for different games. So, emulators for these systems know which microprocessors and support chips they need to emulate. The emulator can be built around this specification needing only the game software to change to allow you to play all the games.
Arcade cabinets are different. Quite often specialised cabinets were built for specific games. Once a cabinet was built for one game it would then be reused for a number of other games, with possibly a few modifications to the internal workings. Arcade cabinets also tended to have more complicated circuits having multiple processors handling different parts of the system.
The MAME emulator must be able to account for all these differences and put together the correct combination of processors and associated circuitry for each arcade cabinet before it is able to run the game software. MAME ROMs are therefore split into several different types. As well as the actual game software ROMs you also need device ROMs, which simulate different parts of the arcade cabinets, and BIOS ROMs which contain the base system software for specific circuit boards.
So, multiple ROM files are required to run a single game. This collection of files forms a ROM set.
An individual ROM file is simply a dump of the information stored in a read only memory chip on a circuit board. It contains the software that drives that component of the computer system. As we’ve seen in the previous section an arcade cabinet needs a number of these pieces of software, together with the hardware emulators to run any arcade cabinet.
A MAME ROM set simply gathers all the files required to emulate a game into a single archive file. When you load a game into MAME it knows which files it needs to emulate that arcade cabinet. It then looks for these files in the ROM set archive file.
So, to get any game working in MAME you need a complete ROM set.
Although arcade cabinets were often specialised to a specific game, they were of course reused for other games. Many of the circuit boards were built in a modular fashion so that parts could be swapped in and out to customise the system. This does mean though that there were a lot of common parts between different games.
When arcade machine emulation started back in the 1990s computer storage was expensive. Reducing the amount of data you had to store was particularly important. As you’ve just seen a lot of the files needed to run a set of games are duplicated across the different ROM sets. This is why the concept of a split ROM was developed, to stop this unnecessary duplication.
Arcade games can be grouped together based on the original arcade cabinet they were developed for. The game that ran on the original cabinet can be thought of as the parent of all the games that were developed using the same cabinet. These child games are termed clones in the MAME system.
A parent ROM set contains all the files that are common to both the parent and all the clones of that arcade cabinet. It also contains the parent game files which allows that game to run from just the single parent ROM set.
Clone ROM sets only contain the specific files needed for that clone, along with the actual game software itself. A clone ROM set can’t run without the parent ROM set.
This system using parent and clone ROM sets is called a split ROM set, common files have been split out to parent sets.
Most of the files required to run a game are contained in the parent and clone ROM sets. But most systems also require BIOS and device ROM sets to completely emulate any particular arcade cabinet. Different parent games may use different arcade cabinets but again several the components are common across a number of systems.
These common component files were again split out of the full ROM set files into the separate files for the BIOS and device ROM sets.
If you’ve managed to follow along this far you will now understand that any single arcade game requires a parent ROM set and a clone ROM set, and that games can be grouped together by their parent. The MAME emulator finds files by first looking in the ROM set that you ask it to emulate, and if it can’t find some of the files it then checks to see if there is a parent ROM set.
The thinking behind a merged ROM set is that if MAME expects to find the files it needs in the ROM set that you ask it to run, then why not put all the files for all the games in a particular group into one single ROM set. This ROM set will include the parent ROM set files and every single clone ROM set file.
When you then ask MAME to run a game it will have every file needed in this single, multi-game ROM set.
So, a merged ROM set file lets you run a parent game and every single one of its clones.
Just to add one more layer of complication MAME also makes use of CHD files. Newer arcade machines didn’t have all the software built into ROM chips on the circuit board. Like modern consoles they had hard disks, DVD drives, CD drives and LaserDiscs. The data stored on these types of media tends to be large, so MAME uses a different file format to compress and store this data.
These files are Compressed Hunks of Data files, CHD.
So on top of the various ROM set files you may also need a few CHD files to get a game to work.
There isn’t really a right or wrong answer.
If you’re downloading individual games, you’ll most likely be downloading split ROM sets. So, your games won’t run until you’ve also downloaded any other ROM sets that they depend on. This can sometimes be an awkward process and you can spend a lot of time trying to piece together the files you need to get a game working.
Merged ROM sets will give you a group of games in one go with all the associated ROM files so these can be a better bet if you can find them.
My advice for the easiest way to get your arcade games up and running is to download a full reference set. These contain all the ROM set files for all of the arcade games that MAME supports. It will be a big download, upwards of 50 GB for just the ROM set files without any CHD files, but you’ll get everything you need to start playing your games in one go.
Another confusing part of the MAME system is versioning. The MAME emulator is continually being updated to improve compatibility and expand the number of games that can be emulated. With each new version of MAME some of the ROM files get updated. Perhaps a better version of the ROM image is created, errors are fixed for the new version just simply requires some modifications. Whatever the reason it means that not all ROM set files will work with all MAME versions.
Usually, a reference set is created each time a new version of MAME is released. My best advice is to always use the reference set that matches the version of MAME you’re using. You can mix versions, but you’ll find some games won’t work.
If you’re using a standalone version of MAME, you will already know the version number. If you’re using something like RetroArch or RetroPie, you’ll probably be using a libretto core which is sometimes versioned by year. Again, you need to make sure that you use the correct reference set for your core. If you have a look at,
you’ll see a list of which MAME version goes with which libretto core.
As with any ROM download, you’ll need to have a search around to find the ones you want. Emuparadise has a great archive but can be a bit hit and miss depending on which version of MAME you’re running.
As I’ve already mentioned my advice is to download a full reference set. I found the best place to find these is at https://archive.org. Just use the search box to search for MAME followed by the version number you want. For example, I needed some MAME ROMs for my RetroPie installation where I was running the lr-MAME-2003 core. This required MAME version 0.78. Searching for this on archive.org gives a few options.
There are a few options on how you download the files from archive.org, but by far the best way is using BitTorrent which will hopefully decrease your download time from a couple of days (yes, I do mean days) to a few hours. BitTorrent uses the community to supply the files you need, but in a safe environment where it keeps tabs to ensure the files are valid and untampered with. Again I’ll put links below so you can find out more.
If you’ve been downloading individual games or using a reference set that doesn’t match your MAME version, you might get error messages telling you about missing ROM files. It can be hard to work out which ROM set you need to download to fix these errors.
The Arcade Database can be a great help in working this out.
If you search for the game you’re having problems with you’ll find a page which gives you all the information about that specific ROM set along with which parent ROM set that belongs to and which platform ROM sets (BIOS and device) you need to run it.
From here you can start working out which other ROM sets your game ROM set depends on.
So hopefully you now understand everything about MAME ROM sets.
The only thing left to do is to install MAME, download a reference set and start playing.