Arcade Guide

This page is dedicated to beginners getting into arcade emulation for the first time and describes how to set them up for Batocera.

Todo: add consistent example demonstration throughout the article, using MAME as it is the most common.

A lot of arcade emulators have a lot of overlap with what games they are compatible with. The preference of which to use largely depends on which game is being played:

  • For most “retro” arcade games (the likes of Pac-Man, Q*bert, Asteroids, etc.) MAME can be used. MAME is a demanding emulator, so for higher-requirement games it is preferable to look into other, more specialized emulators. MAME also does not support certain modern games, notably 3D ones (but there are exceptions).
    • In Batocera, there are five different versions of MAME, each there for its own reason:
      • libretro iMAME4all (ROMset version 0.37b5): A very light version only available on the weakest boards, such as the Raspberry Pi 1. Unless you are using this specific discontinued hardware, this version is not recommended for use.
      • libretro MAME2003plus (ROMset version 0.78+): The default version. This is light on resources, so it is suitable for weaker SBCs like the Raspberry Pi 3 and above. This should not be used on x86_64, as it has long-standing bugs and limited capability compared to the more modern versions.
      • libretro MAME2010 (ROMset version 0.139): A “middle-ground” version that is still fast enough to be run on weak hardware while having more modern compatibility.
      • libretro MAME (ROMset version changes): The latest libretro MAME version compiled at the last stable release.
      • MAME (ROMset version changes): The latest standalone version of MAME compiled at the last stable release.
  • For fighting/multiplayer “retro” arcade games (the likes of Street Fighter II, Darkstalkers, etc.), FBNeo (ROMset version changes) can be used. FBNeo has limited compatibility compared to MAME, but specialises more in the ROMs that it is compatible with. Read how it's different from MAME here.
    • In Batocera, there are two different versions of FBNeo. Usually, only one is included for a platform:
      • FBAlpha2012 (FIXME): An older version from before the rebranding that is only available on the weakest boards, such as the Raspberry Pi 1. Unless you are using this specific discontinued hardware, this version is not recommended for use.
      • libretro FBNeo (ROMset version changes): The latest libretro FBNeo version compiled at the last stable release.
  • For FMV “laserdisc” arcade games (the likes of Dragon's Lair, Space Ace, Astron Belt, etc.), DAPHNE/Hypseus can be used.
  • For early 3D “last generation” arcade games (the likes of House of the Dead, Daytona, Mario Kart GP, etc.), the dedicated emulator for the system which that arcade hardware was based off of is usually the best. These include Flycast, Model2emu, Supermodel or Triforce (this list is not exhaustive).

A community-driven list of which emulator should be used with which game can be found at nonMAME (its name to symbolize which games are non-MAME compatible, and the best alternative to use as a backup). A list of arcade games tested on an RPi 3 can be found on the BestArcade list.

Certain arcade boards are conversions of home consoles. These can be found on System16's base hardware list. Typically, these work best with the standalone emulator for that console, but more often than not the arcade games are in an unworking state (and some emulators do not extend their compatibility to their arcade spinoffs anyway).

A ROMset is a set of all the different game ROMs emulated by a particular MAME version. Essentially, the “game's files”. These are different from the typical ROMs used in convential home consoles, as instead of one ROM existing for a game, a ROMset is particular to the version of the arcade emulator being used. For instance, MAME 0.78plus is only compatible with running ROMs from the MAME 0.78plus ROMset.

It is possible to use ROMs from different sets, however this is discouraged. To avoid issues, always use the set made for the particular version of the emulator being used.

As a friendly reminder, Batocera does not provide copyrighted content. Questions asking where to download such ROMsets will be ignored.

In addition to there being a ROMset per version of emulator, there are many different types of ROMsets. Most users are interested in one of these types:

  • Full Non-merged (a.k.a. reference set): This set has everything needed to run each game in its own ZIP file, including any parent ROMs. This is the recommended format, as it is the easiest to work with.
  • Non-merged (a.k.a. reference set): This is the same as full non-merged, however “common” BIOS files shared by a large number of ROMs are separated out to save space. Use this only if you know which BIOS files you'll need for each ROM.
  • Split: Each ROM is separated and only the difference between them are stored in the ZIP files. This means one ROM may depend on another (or even multiple others) to work. For example, in a split ROMset, pacman.zip (a clone), will not work without puckman.zip (its parent). If using a split set, it is recommended to copy over the entire set to ensure no necessary files are missing (or use an arcade ROM manager to filter down the set). This is not recommended for new arcade users.
  • Merged: Clones are merged into the parent ROM ZIP file, meaning that more than one game is stored per file. This relies on the frontend to select which game is to be played. Batocera does not have this functionality, thus it is not recommended to use this type of set.

Fortunately, the type of ROMset will be automatically detected by the emulator. There is no need to manually specify which type is being used.

If a ROMset does not specify what type it is, usually it is of the “split” type. Split ROMsets can be converted to non-merged ROMsets by use of the right tools.

MAME 2003 plus always uses the 0.78plus ROMset. MAME 2010 always uses the 0.139 ROMset.

Here is a table showing the versions of MAME (standalone and libretro (LR)) being used in each stable release of Batocera:

Batocera version MAME standalone version libretro: MAME version LR-FBNeo version
Batocera v38 MAME 0.258 LR-MAME 0.258 1.0.0.3 (FIXME)
Batocera v37 MAME 0.253 LR-MAME 0.251 1.0.0.3 (FIXME)
Batocera v36 MAME 0.251 LR-MAME 0.251 1.0.0.3 (FIXME)
Batocera v35 MAME 0.245 LR-MAME 0.242 1.0.0.3 (Jul 21)
Batocera v34 MAME 0.242 LR-MAME 0.242 1.0.0.3 (FIXME)
Batocera v33 MAME 0.239 LR-MAME 0.238 1.0.0.3 (FIXME)
Batocera v32 MAME 0.232 LR-MAME 0.228 1.0.0.2
Batocera v31 MAME 0.229 N/A 1.0.0.2
Batocera v30 N/A LR-MAME 0.228 1.0.0.0
Batocera v29 N/A LR-MAME 0.225 1.0.0.0
Batocera 5.27 N/A LR-MAME 0.223 N/A
Batocera 5.26 N/A LR-MAME 0.220 N/A
Batocera 5.25 N/A LR-MAME 0.219 N/A
Batocera 5.24 N/A LR-MAME 0.214 N/A
Batocera 5.23 N/A LR-MAME 0.212 N/A
Batocera 5.22 N/A LR-MAME 0.212 N/A
Batocera 5.21 N/A LR-MAME 0.206 N/A

Information on how to clean the ROMset to shorten it can be found on the advanced arcade emulation page. Cleaning is not required in order to use a ROMset, but can be very preferable to copying over the entire set (they can get in excess of terrabytes if you include everything).

If you simply want the easiest thing to do, use a full non-merged version of one of the ROMsets and simply pick and choose which ZIPs to transfer over. A full non-merged set should contain everything needed to run the ROM in that single ZIP.

Once the you have the ROMset for the intended version and have (optionally) cleaned it for use with your Batocera, it is time to copy over the data.

Most arcade ROMsets will deliver their ROMs in ZIP files. Do not uncompress the individual ROM files. They are designed to be read directly from the ZIP files, and rely on the naming structure of the ZIP files in order to function. Batocera will display the name of the game once the ROM has been scraped.

The exact folder the ROMset should be copied to depends on which emulator is being used. Check the Arcade section on the systems page for the specific folder depending on which system is being used. If you simply don't care, put them into the roms/mame folder as that has the most emulators.

If using subfolders, be sure that all the required files are also copied to the subfolder.

That's it. You may copy over the ROMs as you wish. All files are included in the ZIP, you can even pick and choose which ROMs you'd like to keep.

A list of the ROMs' full names can be found in the provided DAT file (may have an XML extension instead), if not wanting to use a ROM manager.

Additionally, a good resource for discovering ROM names is http://adb.arcadeitalia.net/lista_mame.php

First, if not wanting to copy over the entire set, clean the ROMset first of unwanted files. Then, copy over the cleaned set.

It is still somewhat possible to pick and choose which ROMs to copy over, however if the ROM is dependent on a BIOS file that needs to be copied over too. Check the error logs if something fails to launch, and it will usually tell you the exact file needed.

Required BIOS files can be found by finding the game in the provided DAT/XML file. However, it is also possible to find the game on http://adb.arcadeitalia.net/lista_mame.php and scroll down to the “Bios:” section to see if there are any required BIOS files.

The "ROMSET" section of a game's entry on Arcade Italia.

If you'd rather just copy over all of the shared BIOS files, here are the lists of the known shared BIOS files for each set:

  • MAME 2003 plus (0.78+): acpsx.zip, cpzn1.zip, cpzn2.zip, cvs.zip, decocass.zip, konamigx.zip, megaplay.zip,megatech.zip, neogeo.zip, nss.zip, pgm.zip, playch10.zip, skns.zip, stvbios.zip, taitofx1.zip and tps.zip.
  • MAME 2010 (0.139) common BIOS (for working systems): acpsx.zip, aleck64.zip, alg_bios.zip, ar_bios.zip, atarisy1.zip, atluspsx.zip, atpsx.zip, cpzn1.zip, cpzn2.zip, decocass.zip, galgbios.zip, kviper.zip, maxaflex.zip, megatech.zip, neogeo.zip, nss.zip, playch10.zip, psarc95.zip, skns.zip, taitofx1.zip, taitogn.zip, tps.zip and vspsx.zip.
  • MAME 2010 (0.139) remaining BIOS (for broken or miscellaneous systems): airlbios.zip, awbios.zip, bctvidbs.zip, cd32.zip, cdi.zip, chihiro.zip, crysbios.zip, f355bios.zip, gg863.zip, hikaru.zip, hng64.zip, hod2bios.zip, konamigv.zip, konamigx.zip, macsbios.zip, megaplay.zip, naomi.zip, naomi2.zip, naomigd.zip, pgm.zip, sfcbox.zip, stvbios.zip, sys246.zip, sys256.zip, sys573.zip, taitotz.zip and triforce.zip.
  • FBNeo 1.0.0.0: neogeo.zip, pgm.zip and skns.zip.
  • FBNeo 1.0.0.2: bubsys.zip, cchip.zip, decocass.zip, isgsm.zip, midssio.zip, namcoc69.zip, namcoc70.zip, namcoc75.zip, neogeo.zip, nmk004.zip, pgm.zip, skns.zip, and ym2608.zip.

Add the rest.

You could try copying over the entire set, however you'll find many undesirable ROMs being included such as testing utilities (for the arcade boards, not your Batocera), prototypes, bootlegs, not to mention all the duplicated clones. If you want to avoid these, it is a requirement to clean the ROMset first before copying over.

After cleaning the ROMset, copy over the ROMset to the folder. By default, Batocera will only be capable of launching the parent ROM of each ZIP, so ensure it's that version which you want to play. This will be up to your ROM cleaner to decide, if it even has such functionality.

Artwork

Some games need extra artwork files (scans of physical media typically placed behind the screen to enhance the gameplay, required for some machines that were really rudimentary):

  • For MAME2003plus: /userdata/bios/mame2003-plus/artwork
  • For MAME2010: /userdata/bios/mame2010/artwork
  • For MAME: /userdata/bios/mame/artwork

To use artwork in-game, open the MAME menu (FIXME how?) and go to Video OptionsScreen ## and then select the appropriate artwork for the title (some games have many variations). MAME2003plus will use artwork files if they are simply present, there is no option to turn them off outside of manually removing the files.

Samples

Some games need extra samples files:

  • For FBNeo: /userdata/bios/fbneo/samples
  • For MAME2003plus: /userdata/bios/mame2003-plus/samples
  • For MAME2010: /userdata/bios/mame2010/samples
  • For the latest MAME: /userdata/bios/mame/samples

CHD

Some more recent arcade games can use extra files (typically that were physically stored on a disc) called CHD (compressed hunks of data). To use CHD for a game, the CHD must be placed in a folder with the same name as the game's ZIP. For example, carnevil.zip the game will be looking for carnevil/carnevil.chd when it launches.

Once copied over, if refresh your gamelist and go to the newly added arcade/MAME/FBNeo/etc. system you'll see a much of meaningless names for all the games. Unlike home console ROMs that are typically named after the title of the game they are for, arcade ROMs require a specific naming scheme in order to keep track of which is which. These should not be altered under any circumstances.

Then how do you get the names of the actual games to show up? Simple, scrape them. Once scraped, all titles will have their correct names. BIOS files will also be automatically hidden, very useful.

If not using the default arcade emulator, it is required to change the emulator used. This can be done by doing the following:

  1. Navigate to the system's game list.
  2. Press [SELECT] to bring up the system's view settings and go to ADVANCED SYSTEM SETTINGS (can also use [START]GAME SETTINGSPER SYSTEM ADVANCED CONFIGURATION and then go to the applicable system).
  3. Go to EMULATOR and choose which emulator to use.

This concludes the introduction to Arcade ROMs. However, should you be interested in learning more, you can read the following:

Short answer: scrape your games' metadata.

Long answer: Arcade ROMsets typically require each game to have a unique name, and a short one at that to allow for differentiation of every clone/bootleg/regional variation/etc. They are usually abbreviated to allow for the most flexibility. You may be tempted to rename these files yourself, however doing so will render the game unplayable as the emulator will no longer recognize which game it is.

Fortunately, Batocera has the ability to scrape the metadata for these games, allowing it's “full” name to appear in the game list instead of its file name. It will even include some fancy artwork relevant to the title, ranging from posters advertising the arcade game to its marquee (depending on which source is chosen to scrape from).

The metadata for any given title can also be edited manually by holding down South button (B SNES) while hovering over the game.

Check system/logs/es_launch_stderr.log and system/logs/es_launch_stdout.log. They'll usually tell you directly what has gone wrong, or if any alternative ROMs that are in a working state are available.

Only a full non-merged set will provide all the files required in one ZIP file. You most likely have a regular non-merged set, which requires certain shared BIOS files to be present in the same folder as the ZIP itself. You can check the error logs to see which file it is requesting.

Arcades traditionally had control panels tailored specifically to them. It would be an impossible task to try and assign them logically onto a Batocera Retropad by default, so they just use whatever the emulator itself sets up. Controls can be remapped per game.

You can find some emulator-specific troubleshooting information in the respective system page in the Arcade section on the systems page.

For further troubleshooting, refer to the generic support pages.

  • arcade.txt
  • Last modified: 3 months ago
  • by lbrpdx