TOP

MAME4droid Tutorial

Last updated October 30, 2023

Share

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

About MAME4droid

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 MAME4droid, the most popular port of MAME for Android. It runs fantastic and offers ease-of-use on-screen buttons. It's not easy to set up, but that's due to the nature of Android and its security. Fortunately, you've come to the right place for help!

A quick intro to arcade emulation

Maybe you've used Snes9x for Super Nintendo emulation or ePSXe for PlayStation 1 emulation. Snes9x, for example, is extremely easy. All you do is load a ROM, and the game begins.

Arcade emulation, though, is a different kind of beast. A game is made up of multiple ROMs (multiple zip files) rather than a single ROM (a single zip file). Take a look at this screenshot:

Parent ROMs and Child ROMs in MAMEUI

These are (most) of the ROMs for “Dungeons & Dragons: Shadow Over Mystara” and “Dungeons & Dragons: Tower of Doom”. Arcade ROMs use a parent/child system to save space on your device. The parent ROM (i.e. “ddsom.zip”) is always at the top of the list and contains the core data of the game. The child ROMs contain specific regional data.

For example, “ddsomu.zip” contains the data for the United States (or North America) version of Shadow Over Mystara. To play “ddsomu.zip”, the parent ROM “ddsom.zip” must be present in the folder. That's how the parent/child relationship works.

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 MAME can detect it.

Does all this make sense? Easy so far, right? Let's continue...

Downloading MAME4droid

Searching 'mame' in the Google Play app store Searching 'mame'

I want to be fair and point out other ports of MAME for Android. If you simply search “mame” in Google Play, a handful of different versions will come up. MAME4droid even shows up more than once with a different version number in its title.

Due to the nature of arcade emulation with 'old' arcade roms actually working better than 'new' arcade roms, my recommendation is to download the older version of MAME4droid:

Proceed to install that to continue with this tutorial.

Moving ROMS to MAME4droid

This process is the 'hardest' part. But don't fret, I'm here to hold your hand!

Opening MAME4droid for the first time Opening MAME4droid the first time
  1. First, open MAME4droid. It's going to prompt you with the messages shown in the picture. Select Default, then select OK, then you can exit MAME4droid. This first-time opening of MAME4droid is important because it creates the folder for the ROMs.
  2. Next, you're going to need a file manager app that can let you view system folders. I recommend ZArchiver for this (it's free). Install it to proceed with my directions.
  3. With ZArchiver installed, take a look at this video. I walk you through moving arcade ROMs from Android's “Download” folder over to MAME4droid's folder “com.seleuco.mame4droid”. Oh, and please ignore the part about extracting zip files. I made this video for my Dungeons & Dragons shrine and I zipped up the game's ROMs. You can download those zip files from there if you wish. Here's a breakdown of the steps in the video:
    1. Open ZArchiver. Allow it to access files on your device. Don't get scared - that doesn't mean ZArchiver is going to start hacking your phone. All that this permission does is allow you to view your files inside ZArchiver.
    2. Tap Download to enter your device's downloads folder.
    3. Tap the dot menu Dot menu then Multi-select Multi-select. Select the arcade ROMs you want to move to MAME4droid. Long press them, then tap Cut Cut.
    4. Tap Button to go up one directory to return to the start screen (the root of your device) that shows all of your folders.
    5. From here, tap the Android folder, then tap the data folder. ZArchiver will ask you for permission again. Follow the prompts: tap the Use this folder button, then tap Allow. Again, don't get scared; having to allow these permissions are just precautions.
    6. From here, enter these three folders: com.seleuco.mame4droid > files > roms.
    7. Finally, you've arrived at MAME4droid's ROMs folder! Now, tap the paste icon Paste. That's it!

Notes about Android 14 on Pixel Phones: At this time I'm writing this tutorial, it would seem Google has all third party data folders either hidden or locked with their latest OS update (when you enter [root folder] > Android > Data). Without access to MAME4droid's roms folder, you can't add roms, rendering MAME4droid completely unusable. In this case, you can try using RetroArch for arcade emulation. Using an arcade core, RetroArch lets you load roms from a folder of your choosing on your device.

NeoGeo games need neogeo.zip

NeoGeo games require the NeoGeo BIOS in order to boot. You can download it below.

  • NeoGeo BIOS (931 KB) - Required in order to boot NeoGeo games. Do not rename or extract this zip file!

To set up the NeoGeo BIOS with MAME4droid, simply move it into the ROMs folder (and I explained this above).

Loading a game

  1. Open MAME4droid. Fortunately, MAME4droid doesn't overwhelm you with a FULL list of thousands of arcade games like other builds of MAME do. By default, MAME4droid only shows you the arcade ROMs that it detected on your device. Move the red joystick up & down to select a game. You can select any game, not just the ones with white text. Press B to load it.
    The game list in MAME4droid
  2. Wiggle the joystick to get past this screen.
    A game is loading
  3. Press COIN a few times to insert digital quarters, then press Start. This begins the game.
    Starting a game

Troubleshooting undetected games & loading errors

Unfortunately, it's common for MAME to refuse to detect your games. Or, MAME4droid 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 neogeo.zip is in the ROMs folder.
  • Make sure you have the parent of the game you're trying to play. Learn more about parents and children in intro to Arcade emulation.
  • Still getting errors? Try downloading all versions of the game you're trying to play. Meaning, download its parent and all of its children.

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. From this point, you have two options:

  1. Try downloading new ROMs and see if that helps. Try a different place than the one you originally used to get your ROMs.
  2. You can try the multi-system emulator, RetroArch, which I have a tutorial for its Android version. RetroArch has multiple cores for arcade emulators. What's awesome is that RetroArch has multiple cores of MAME by year. So in this case, what would help is trying to load your arcade ROMs with older versions of MAME. At the time I'm writing this, RetroArch lets you go as far back to MAME 2003.

Save states

The 'save states' feature allows you to save the exact position you are in the game. You can later load the saved state to continue your progress. MAME4droid gives you the option of saving up to two different save states.

  1. When you're ready to save your progress, press Option then Save State.
    Saving a state
  2. MAME4droid allows you to save two different states. Press either “B” (slot 1) or “A” (slot 2).
    Selecting a save slot
  3. To load your saved state, repeat the same steps but select Load State then press “B” or “A” to load your desired saved state.

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”.
  • Archive.org (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 “archive.org mame”.
  • In my links page, I have some good links to sites where you can download arcade ROMs.

Knowing which ROMs to download

I cover this in my MAME (Windows) tutorial because the Windows version of MAME comes with a robust database (with a search!) that makes it easy to find which ROM files are associated with which games.

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