MAME Tutorial

Last updated April 6, 2022


This tutorial covers the Windows version of MAME. Looking for the Android version? You'll find that here

About MAME

A preview of MAMEUI A preview of MAMEUI

MAME is the most compatible and capable multiple arcade machine emulator. It supports thousands of games. There is a large community of contributors working persistently to expand and perfect MAME's library of supported arcade games.

This tutorial is to help you with MAMEUI (short for 'MAME user-interface'), a once-popular build of MAME. Unfortunately, it hasn't been updated since 2014 and has since been abandoned. However, as you'll read in this guide, that's not a bad thing! The arcade ROMs that are readily available in ROM sites work best on old arcade emulators. I'll explain why.

This tutorial is for beginners, impatient casual gamers, and people who aren't very computer savvy. If you're an advanced MAME user looking for help or if you're building your own arcade cabinet, this tutorial won't help you - you need to go elsewhere for help.

*If you would like to download MAME, I have it on my emulators page.

Arcade emulation terminology

A list of important terms, so you don't get lost in this tutorial.

  • MAME - The king of arcade emulation. It's available for every OS and platform.
  • MAME 2000, MAME 2010, etc. - A version of MAME from that specific year. For example, “MAME 2010” is a build of MAME from the year 2010.
  • MAMEUI - A fork of MAME that has a Windows UI (user-interface). It was last updated in 2014, so it's abandoned.
  • FinalBurn Alpha - A strong competitor to MAME. It was last updated in 2018, so it's abandoned.
  • FinalBurn Neo - A continuation of FinalBurn Alpha by a different group.
  • RetroArch - A popular multi-system emulator that can emulate over 40 video game systems, including arcade.
  • NeoGeo - Arcade games such as Metal Slug were developed by NeoGeo. These games require a special BIOS file to run with MAME.
  • CHD - An acronym for “CD hard drive”. These are what the ROMs are called for arcade games that used a hard drive. Killer Instinct is an example. Their file sizes are drastically larger than regular arcade ROMs.

Should you use MAME?

With all the emulator offerings as of 2024, should you use MAMEUI? Well, it depends. RetroArch, a popular multi-system emulator, is a great option for arcade games. It includes multiple 'cores' (multiple emulators) for arcade games. At the time I'm writing this, it includes the following: FB Alpha, FinalBurn Neo, MAME (latest), MAME 2000, MAME 2003, and MAME 2010. This selection of cores is valuable when it comes to getting old arcade ROMs to work. And in my RetroArch tutorial, I have dedicated sections that cover emulating arcade games.

Emulation quality between RetroArch and MAMEUI is generally the same. RetroArch may run better/smoother simply because it's in active development and optimized for Windows 10/11. MAMEUI's benefit is that it's far easier to use and offers more features and options. I can't say which emulator is better because they both have their pros and cons. I recommend trying both to see what works best for your needs.

Why I don't recommend the latest MAME

MAMEUI, RetroArch, FB Alpha... I'm throwing a lot of names at you. I know this can be confusing for newcomers. So why not just use the original and latest version of MAME, and not bother using anything else? With Super Nintendo, for example, most of us just use Snes9x. We don't need to fuss with multiple emulators to get Super Nintendo games to work. So why is arcade emulation so complicated?

The official build of MAME How the official build of MAME looks

The source of this problem is the latest version of the official build of MAME. If you download a bunch of ROMs from a random ROM site, they won't work with the latest MAME. The latest version of FinalBurn shares the same complications. Additionally, the latest MAME is not user-friendly at all. I classify it as an advanced emulator, so I do not recommend it for newcomers and casual gamers.

As I mentioned earlier, my recommendation is to use RetroArch or MAMEUI instead of the latest MAME. The arcade ROMs that are readily available in ROM sites work on these 'old' arcade emulators.


MAMEUI is a standalone program, so it does not have an install wizard. Installation is simple: just extract MAMEUI from its zip file. To make things clearer, check out the video below that shows how to 'install' a portable emulator (it shows Snes9x, but MAMEUI is the same process). It's pretty straight-forward - all that you're doing is extracting a zip file while doing a little bit of folder management. If you want to 'uninstall' a portable emulator, simply delete it!

In the video, I'm recommending “Documents” to house your emulators. But, you could also place emulators in “Downloads”, a folder on your desktop, an external HDD, or a thumb drive. These are common locations with full read/write access.

To open MAMEUI, double-click on Mame's EXE. If you opted to use an older version of MAME such as MAME32, double-click on Mame32's EXE to open it.

Understanding MAME's ROM structure

Upon opening MAMEUI, the first thing you see is the All Games tab (shown below). This is a list of all the games supported by MAMEUI. MAMEUI does not include these games. You need to download them separately.

View of all the games that MAMEUI supports

In this list, notice the indented games. And notice that the first game of the same title is not indented. The first game is the parent ROM and all the indented games below are the child ROMs. See:

Parent ROMs and Child ROMs in MAMEUI

In the picture below, I'm showing you how this parent/child relationship applies to actual ROMs in the roms folder. This is how all arcade emulators work with arcade ROMs.

Parent ROMs and Child ROMs in MAMEUI

In other words:

  • If you want to play the parent of a game, you need to download the parent ROM.
  • If you want to play a child of a game, you need to download both the child ROM and the parent ROM.

You'll notice that all arcade ROMs are abbreviated. You must never rename or extract an arcade ROM! Its exact filename is how MAMEUI can detect it.

NeoGeo games need

NeoGeo games require the NeoGeo BIOS in order to boot. You can download it below. Additionally, old versions of MAME emulators may require an older version of the NeoGeo BIOS. If you're finding that the first NeoGeo BIOS doesn't work, download the old version.

  • NeoGeo BIOS (931 KB) - Required in order to boot NeoGeo games. Do not rename or extract this zip file!
  • NeoGeo BIOS (old version) (236 KB) - May be required if you're using an old version of MAMEUI. Rename it to “”.

*To set up the NeoGeo BIOS with MAMEUI, simply move it into Mame's ROMs folder . That's it!

Loading a game

  1. Before we do anything, I must first inform you to never extract or rename the zip file of an arcade ROM! The exact filename is how MAMEUI detects it.
  2. Move your arcade ROMs into Mame's ROMs folder .
  3. Performing a game audit in MAMEUI to detect new games Scanning for new games
    Next we need to have MAMEUI scan your ROMs folder for new games. You can do so by going to File > Audit all games (shown to the right), or just press the F5 key. A progress bar will appear on the bottom of MAMEUI's window:
    The progress bar for MAMEUI's game audit
    The audit usually takes just a few seconds. Sometimes it could take a few minutes.
  4. Click on Available to view the list of games that MAMEUI has detected as playable, as shown below:
    The 'Available' section in MAMEUI where playable games are listed
    Double-click on a game to play it.

*If your games are not being detected or giving you 'not found' errors, read the next section.

Troubleshooting undetected games & loading errors

A sample prompt of 'missing file' errors A sample prompt of 'missing file' errors

Unfortunately, it's common for MAMEUI to refuse to detect your games. Or, MAMEUI will detect your games, but give you 'not found' errors upon loading a game. These two problems have the same source.

This is happening because the authors of arcade emulators are purists who insist on everything to be perfect. As soon as an arcade game has a better ROM dump, MAME is updated to support the newer dump. This renders older ROMs incompatible. This problem gets more complicated with the reality that pretty much every ROM site distributes only old ROMs. These old ROMs are incompatible with newer builds of MAME.

The first step in troubleshooting this is to run through the following checklist:

  • Double-check to make sure your arcade ROMs are indeed in the ROMs folder .
  • Did you rename or extract your arcade ROMs? You must never do that! If you did then that's why they're not working.
  • Is it a NeoGeo game? Make sure is in the ROMs folder.
  • Did you run a game audit? You can do so by going to File > Audit all games, or just press the F5 key.
  • Make sure you have the parent of the game you're trying to play. Learn more about parents and children in Understanding MAMEUI's ROM structure.
  • Still getting errors? Try downloading all versions of the game you're trying to play. Meaning, download its parent and all of its children. MAMEUI can help you find all the ROMs that belong to a specific game.

Workaround #1: If you're good on the above bullet points then you're doing everything correctly. This means the arcade ROMs you downloaded are definitely old. So how do you get old ROMs to work? That's simple - use an old version of MAMEUI! In my emulators page I provide a version of MAMEUI from 2007 (this older version is formerly called “MAME32”). It has a high success rate of detecting ROMs that are being distributed in popular ROM sites.

Workaround #2: A rising star in the emulator scene is RetroArch, a multi-system emulator. It includes multiple 'cores' (multiple emulators) for arcade games. At the time I'm writing this, it includes the following: FB Alpha, FinalBurn Neo, MAMEUI (latest), MAMEUI 2000, MAMEUI 2003, and MAMEUI 2010. That's a fantastic selection of options for getting arcade games to work. “MAME 2003” in particular is ideal for getting 'old' arcade ROMs to work.

Loading a CHD (hard drive) game

Arcade games based on a hard drive require some extra steps. You need two things: (1) the parent ROM, and (2) the CHD file (the hard drive file). The size of the parent ROM is tiny, but expect the CHD file to be around 100 MB. I'll use Killer Instinct as an example in these directions:

  1. The parent ROM for Killer Instinct is “” and the CHD file is “kinst.chd“. Place “” into Mame's ROMs folder as you would with any other MAMEUI ROM.
  2. Within the ROMs folder, create a new folder and call it kinst (which is the exact name of the ROM).
  3. Move “kinst.chd“ over to this new kinst folder.
  4. Open MAMEUI and do a game audit. You can do so by going to File > Audit all games, or just press the F5 key.
  5. You should see Killer Instinct come up in the Available list. Double-click to play. If Killer Instinct did not show as available, read the section in this tutorial about troubleshooting undetected games.

*If these directions aren't enough and you're still lost, here's a YouTube video showing you exactly how to load CHD games.

How to play games

Arcade games on MAMEUI work in the same fashion as the real thing. Upon loading an arcade game, to play you must insert virtual coins. You can insert as many as you want (which gives you infinite lives). Then press Start to begin. Each player has their own coin bank and Start button.

A sample of an arcade deck A sample of an arcade deck (the X-Arcade)

Players 1-4

  • Player 1 Start = Press 1
  • Player 2 Start = Press 2
  • Player 3 Start = Press 3
  • Player 4 Start = Press 4
  • Player 1 Coin = Press 5
  • Player 2 Coin = Press 6
  • Player 3 Coin = Press 7
  • Player 4 Coin = Press 8

Player 1 Keys

  • Player 1 Button 1 = Left Ctrl
  • Player 1 Button 2 = Left Alt
  • Player 1 Button 3 = Space
  • Player 1 Button 4 = Left Shift

General MAMEUI Keys

  • Press left Ctrl + Alt + Enter for Window mode. Press it again to go back to full screen.
  • Press F3 to reset.
  • Press P to pause.
  • Press F12 to capture a screenshot. It will be captured in PNG format and tossed into the “Snap” folder.
  • Press Esc to quit your game.

Using a gamepad (or mouse)

Your gamepad must be plugged in before you open MAMEUI. MAMEUI won't detect it if you plug it in after you open MAMEUI.

  1. Click on the Options > Default Game Options, as shown here .
  2. The “Default Game Properties“ window will pop up. Click on the Controllers tab, as shown here .
  3. Enabling the gamepad
    Put a check in the box for Enable joystick input, as shown to the right. If this option is shaded out , then MAMEUI is not detecting your gamepad.
    • To enable a mouse (for light gun games), put a check in the box for Enable mouse input.
  4. Click on Apply then OK.
  5. That's it! MAMEUI has already configured your gamepad's buttons. Although you still have to use keys 1-8 for player starts and inserting coins.

If MAMEUI didn't detect your gamepad: Test your gamepad with other emulators. If it doesn't work with any other emulator, then your gamepad is faulty. If it does work with other emulators, then MAMEUI isn't compatible with your gamepad.

Reconfiguring the keyboard or gamepad

Mame is a little weird with this. It doesn't offer a way to reconfigure buttons using the frontend GUI. Rather, MAMEUI requires you load a game and use the in-game overlay menus. Here's how:

  1. Mame's in-game overlay menu
    Open up a game. Press the Tab key.
  2. The menu that you see toward the right will pop up over the game. You have two options: globally change the keys (Input general), or just this game that you currently have running (Input this Game). Select the option you'd like.
  3. Selecting a Player's keys in the in-game overlay menu
    Next select the player whose keys you want to reconfigure.
  4. You'll arrive at the list of all the buttons for a player . Press the Enter key on a button you'd like to reconfigure. Next, hold down the keyboard key or gamepad button that you want the button changed to. That's it!
  5. If you want to clear the changed button and reconfigure it with something else, press the Enter key on it and do nothing (wait).

Using save states

'Save states' is a staple feature offered by all video game emulators. It allows you to instantly save your position in a game at any point. You can then load that saved state any time. If you saved at the start of a level or before a boss, you can restart it an infinite amount of times if you die.

When it comes to MAME and save states, I have some bad news. Here's a direct quote from MAME's documentation:

Note that the save state feature is not supported for a large number of drivers. If a given driver is not known to work perfectly, you will receive a warning that the save state may not be valid when attempting to save or load.

In other words, save states won't work with more than half of the games supported by MAME. But it never hurts to try it out and see if save states will work with the game(s) you want to save in! Start playing a game and do the following.

  • Saving a state: Press Left Shift+F7. You will be prompted to press a key.
  • Loading a state: Press F7. You will be prompted to press a key or select from the menu to determine which save state you wish to load.

If this is a big turn-off for you, I would recommend switching to RetroArch for arcade emulation. Save states work on there.

Finding ROMs

These are the best places:

  • Reddit is a great resource for finding good places for arcade roms. On Google search for “reddit download mame roms”.
  • (the Internet's library) is increasingly becoming a fantastic ROM site. You can easily find their arcade roms using Google, with search phrases such as “ mame”.
  • In my links page, I have some good links to sites where you can download arcade ROMs.

Knowing which ROMs to download

Downloading arcade games can be confusing. If you read this tutorial, you know that downloading a single ROM for a game doesn't mean you've downloaded the game. You need to download maybe 3-8 separate files in order for a game to work with MAME. ROM sites don't make it any easier for you by separating every piece of an arcade game as a separate ROM. How could you quickly & easily find out exactly which ROM files belong to a game?

This is where MAMEUI comes to the rescue! (Remember, you can download it from my site.) MAMEUI has a search at the top. Start typing in the game in question, and you'll see it appear. In the “Directory” column you'll see the filenames for the ROM files.

Finding out which ROMs to download

For example, let's say you want to download Teenage Mutant Ninja Turtles - Turtles in Time (probably the #1 Turtles game, haha). Looking at the above screenshot, you'll see:

  • Teenage Mutant Ninja Turtles - Turtles in Time (4 players ver (UUA)
  • Teenage Mutant Ninja Turtles - Turtles in Time (2 Players ver EBA)
  • Teenage Mutant Ninja Turtles - Turtles in Time (2 Players ver UDA)
  • Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver ADA)

Focusing on a game to download

Then remember everything I talked about earlier on parents and children. So to play Teenage Mutant Ninja Turtles - Turtles in Time, you'd need to download these files:

  1. [Parent] Teenage Mutant... - Turtles in Time (4 players ver (UUA) -- which is “”
  2. [Child] Teenage Mutant... - Turtles in Time (2 Players ver EBA) -- which is “”
  3. [Child] Teenage Mutant... - Turtles in Time (2 Players ver UDA) -- which is “”
  4. [Child] Teenage Mutant... - Turtles in Time (4 Players ver ADA) -- which is “tmnt2a.cip”

Advanced help with MAME

I wrote this tutorial for beginners, impatient casual gamers, and people who aren't computer savvy. If you're looking for advanced help with MAME, you won't find that here. Rather, I recommend the following Reddits:

  • r/MAME - The #1 Reddit for help with MAME
  • r/cade - Great Reddit for help with custom arcade cabinets
  • r/crapmame - Another helpful Reddit for custom arcade cabinets

And, of course, YouTube has hundreds of help videos for MAME and building custom arcade cabinets.