Easy & Advanced Arcade

Under construction.

If this article is designed for beginners, it should probably be a bit shorter.

This page is dedicated to beginners for helping them to easily play arcade games on Batocera.

Arcade has long been the most complicated of emulations due to its very own nature: arcade machines don't all use the same hardware, so they all have to be emulated independently. Imagine you want to play 5 different arcade games, you could have to use 5 different hardware emulators, whereas playing 5 different SNES games will only need the one and only SNES emulator.

That's why MAME has been invented: MAME is kind of a meta-emulator, it brings all the different emulated hardwares of arcade machines into one system, making it simpler for the user to play arcade games without any knowledge of the underlying arcade machine on which the games are launched. It is no small feat and this is why MAME is so complicated to use.

MAME is a fantastic piece of software, that evolved from being a Multi Arcade Machine Emulator into a framework whose goal is to emulate as many arcade machines and vintage computer systems as possible.

MAME's focus is emulation accuracy, rather than performance. As a result, it emulates a lot of gaming systems, but often times, the performance is better when you use other specialized cores, like FBNeo or dedicated Naomi/Atomiswave emulators.

There are only two main principles to know to get a good grasp of how to use MAME on your Batocera system: romsets and BIOS/driver files

What is a romset

A romset is a set of all the different game roms emulated by a MAME version.

A romset contains parent game roms wich are roms corresponding to the 'main' version of a game and clone game roms which are 'alternative' versions of a parent rom. As you can guess, in most cases we will discard all clone roms and only used the main (or parent) ones.

Most of the code used to make those game roms playable is included in the MAME emulator. Sadly this means that there is a strong and close relationship between a MAME version and the game roms versions : When MAME releases a new version, game roms may need to be updated to fit to the new emulator version.

To keep it simple: if you use a certain MAME emulator, say version 0.78, you also have to get your hands on and use the 0.78 version of the romset.
Some games from another romset may work with your version but the only way to be sure that the most games are working is to use only a MAME version in conjunction with the romset of the same version.

For recent versions (such as the one used by FBNeo, see below) there are less and less modifications of game roms, so it is sometime possible to use an older set and still have most of the games playable, but once again : the only way to be sure that the most games are working is to use only a MAME version in conjunction with the romset of the same version.

This is because with each new versions, MAME can take new ROM dumps as their reference for emulators. A ROM dump that worked with an earlier version of MAME might not work with a recent version any longer.
So each version of MAME has its specific romset, see the table in Advanced section for a full list.

Types of romsets

In addition to having a version number, romsets can be found in three different flavours :

  • Full Non-merged (a.k.a. reference set): All ROMs can be used standalone because each zip contains all the files needed to run that game, including any files from 'parent ROMs'. This is the recommended format.
  • Non-merged (a.k.a. reference set): All ROMs can be used standalone because each zip contains all the files needed to run that game, including any files from 'parent ROMs'. This is different from the full non-merged as it contains certain common BIOS files in the set as a single file shared by multiple ROMs, but is otherwise a bit smaller. This is also recommended, but may result in BIOS ROMs appearing in your game list.
  • Split: Some ROMS that are considered clones, translations, or bootlegs also require a “parent ROM” to run. The parent ROM is often the first or most common variant of a game. 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 ROM zip, meaning that more than one game is stored per file. Merged ROM sets are not recommended.

For Batocera the recommended type of romset is the non-merged version.

BIOS/Drivers

Some of the game roms from a romset may additionaly need BIOS files, the most well known case beeing neogeo games.

Let's use that as an example: If you want to use NeoGeo games, you'll have to copy the needed BIOS/driver file (in that case _neogeo.zip_) in the same folder as the game. (FIXME example?)

That's all!

Off course if you use different subfolders for your games (genre subfolders or hardware type subfolders for instance) you'll have to copy the BIOS file in every folder containing games which may need it.

Given that they are pretty small files, it's better to copy them all in each of your subfolders.

Where do I find the BIOS files do you say? Well it's very simple : they are included in your romset! (FIXME mention this earlier?)

So if a game doesn't launch and goes back right away to the Emulation Station screen, just try to find the relevant BIOS file and copy it in the game folder.

What does this title even mean? What are we describing here?

Default emulators

There are several arcade emulators included in Batocera, but just using the default one will be enough for running the majority of games on your Raspberry Pi. For weaker SBCs, those two systems are:

  • Mame 2003Plus
    • mame/romset version: 0.78Plus
    • ROMs folder: mame
  • FBNeo
    • FBNeo is kind of an alternative version of MAME (emulating less arcade machines), but it follows exactly the same principles which I just explained
    • FBNeo romset version: FBNeo 1.0.0.0 this corresponds to MAME 0.187 more or less but not entirely, once again it's better to use the FBNeo 1.0.0.0 romset
    • ROMs folder: fbneo

Now some games will only work on Batocera with MAME and some others only with FBNeo.

For PC, the default emulator is regular latest stable MAME, available at the time of release.

Here is a table of all the versions of MAME, FBNeo and RetroArch (FIXME why is RetroArch even here?) included in the stable versions of Batocera:

Batocera version Latest MAME core Latest FB Neo core RetroArch version
Batocera 34 MAME standalone 0.242 + LR-MAME 0.242 LR-FBNeo 1.0.0.3 RetroArch 1.10.3
Batocera 33 MAME standalone 0.239 + LR-MAME 0.238 LR-FBNeo 1.0.0.3 RetroArch 1.9.14
Batocera 32 MAME standalone 0.232 + LR-MAME 0.228 LR-FBNeo 1.0.0.2 RetroArch 1.9.9
Batocera 31 MAME standalone 0.229 LR-FBNeo 1.0.0.2 RetroArch 1.9.1
Batocera 30 LR-MAME 0.228 LR-FBNeo 1.0.0.0 RetroArch 1.9.0
Batocera 29 LR-MAME 0.225 LR-FBNeo 1.0.0.0 RetroArch 1.9.0
Batocera 5.27 LR-MAME 0.223 RetroArch 1.9.0
Batocera 5.26 LR-MAME 0.220 RetroArch 1.8.6
Batocera 5.25 LR-MAME 0.219 RetroArch 1.8.4
Batocera 5.24 LR-MAME 0.214 RetroArch 1.7.9.2
Batocera 5.23 LR-MAME 0.212 RetroArch 1.7.7
Batocera 5.22 LR-MAME 0.212 RetroArch 1.7.7
Batocera 5.21 LR-MAME 0.206 RetroArch 1.7.6

For further details on all the different arcade emulators in Batocera, see the list in the advanced section (FIXME link?).

Managing the romset

No matter which set you use, you should always copy the full set to ensure that it will all work correctly.

You may rather only copy over each game one by one because full romsets are quite large, but it's usually very difficult to find individual ROMs and to be sure that they are in the right version. Full romsets are the only way to avoid headaches! If you'd rather just have the games you'd like to play, it's recommended to copy over the full romset anyway and then clean it to just the playable ROMs using a tool like BestArcade or clmamepro, from which we will copy later.

The romset files must be in zip format, 7z is not supported and in the next section, when you are told to copy your bios or roms, you must copy the zip files without decompressing them, otherwise, it will not work.

Copy your BIOS/drivers

First we are going to copy BIOS/drivers files from our romsets. Contrary to other systems, these files must not be copied into the bios folder but inside the dedicated roms folder (except for when it isn't).

When copying over the ROMs, keep them in their ZIP format! MAME and FBNeo expect ZIP files, not the raw data.

  • Get these BIOS/Drivers files from your MAME 0.78 romset and copy them into the mame roms folder: 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, tps.zip
  • Copy these BIOS/Drivers files from your FBNeo (1.0.0.0) romset and copy them into the fbneo roms folder, I only needed three of them: neogeo.zip, pgm.zip and skns.zip

Copy games

  • Copy your MAME ROMs from the complete 0.78 romset to the MAME ROMs folders
  • Copy your FBNeo ROMs from the complete complete FBNeo romset into the roms/fbneo folder or arcade-specific system folder (like roms/neogeo).
  • Play!

You can also use this list to see if a given MAME works on a given emulator or not: BestArcade list and determine more easily which emulator is the best for the game you want to play.

Further Tricks

  • If you want to hide your BIOS files in EmulationStation, edit their metadata with the select menu, add a tag <hidden>true</hidden> to your game.
  • Remember, if you want to use subfolders in your ROMs folders, just make a copy of BIOS/drivers files into every subfolder and then move your game into the subfolder.

This section could probably do with an overhaul of its headers.

Changing the arcade emulator on Batocera

There are two ways to change the emulator for a system on Batocera: either through EmulationStation or by editing directly your configuration file located in /userdata/system/batocera.conf.

For arcade emulation, you can change the emulator used for system mame or for neogeo, but not for fbneo.

The emulator you chose will then be used for all games of the system.

Editing batocera.conf

If you want to change your mame core you need to either modify or add the values for those two lines in batocera.conf:

mame.core=mame0139
mame.emulator=libretro
Changing the emulator through EmulationStation

Press [START], then go in the GAME SETTINGS menu, then choose Per System Advanced Configuration

Then seek the MAME or NeoGeo system:

And you will see the list of emulators you can choose from:

All the arcade emulators on Batocera

Too many columns. Information is not accurate. For the actual information here, can it be merged with the table above?

Arcade emulator Alternative name Romset Roms folder Default on hardware Purpose Extras Notes
MAME (standalone) Mame Latest mame PC All arcade hardware highscores, samples, overlays The latest and greatest, usually the hardest to run
libretro/mame Mame Latest mame PC All arcade hardware highscores, samples, overlays Batocera for PC is shipped with the latest stable MAME version available at the time of release, see table up there
libretro/imame4all iMame4All 0.37b5 mame RPi0 (<v30) All arcade hardware highscores, samples, overlays Very old version, good for lower devices like pi0, but not many games supported
libretro/mame0139 Mame2010 0.139 mame PC All arcade hardware highscores, samples, overlays Good core for medium powerful boards like Pi3
libretro/mame078plus Mame2003Plus 0.78+ mame PC All arcade hardware highscores, samples, overlays Good port for less powerful boards with back porting of more recent developments
Romset is a bit specific, it's not the same as standard 0.78
libretro/fbneo Final Burn Neo Latest fbneo All All 2D arcade hardware highscores 1.0.0.X romset is always evolving, it is mostly base on MAME 0.187 romset, but some ROMs are different
libretro/neogeo Neo Geo Latest fbneo All All 2D arcade hardware highscores can also set to use mame emulators, but fbneo is the recommanded way to go
libretro/flycast Flycast Latest atomiswave All Atomiswave arcade hardware AtomisWave roms can be picked from the latest mame romset
libretro/flycast Flycast Latest naomi All Naomi arcade hardware Naomi roms and CHD can be picked from the latest mame romset
Hypseus Daphne Specific daphne All Daphne arcade hardware Emulator for laserdisc arcade games like Dragon's Lair, uses a very specific non-mame based romset
libretro/fbalpha2012 Final Burn Alpha FB Alpha 0.2.97.29 fbneo / neogeo RPi0 (>v31) All 2D arcade hardware Emulator that performs well on low-power boards. Retropietest's excellent page on it (note we aren't using the same romset version).

CHD

Some more recent arcade games can use extra files called CHD, a copy of the harddrive the game was using at the same time. To use CHD for a game, just place the CHD folder alongside your rom zip, at the same level.

NeoGeo system

The NeoGeo system is not an emulator itself, but uses the FBNeo emulator. (FIXME Why do we have this? This doesn't work like this for any other system. This section is also confusing, are we no longer defining systems by their folder? Are settings retained from the general mame and fbneo folder?)

You can use this system to visually separate the NeoGeo games from the other arcade games, they will appear as a dedicated system in EmulationStation.

It uses the same romset as the FBNeo emulator.

Setting a Rotary Joystick with libretro mame2003plus

If you have a special stick like the Happ Rotary Arcade you need to configure both joystick and keyboard at same time:

Dial :   AZERTY keyboard: "^" (between  "P" and "Enter") -- QWERTY keyboard: "[" (leftbracket)
Dial :   AZERTY keyboard: "$" (between "P" and "Enter")  -- QWERTY keyboard: "]" (rightbracket)
Dial 2 : AZERTY keyboard: "*" (between "m" and "Enter")  -- QWERTY keyboard: "/" (slash)
Dial 2 : AZERTY keyboard: "!" (between "m" and Right)    -- QWERTY keyboard: "\" (backslash)

You must launch your game, open the Retroarch menu with Hotkey + B, go to Input Interface and activate the option Simultaneous. Then you can use your joystick and keyboard keys at the same time.

Samples

Some games needs extra samples files, place them in :

  • For FBNeo: /userdata/bios/fbneo/samples
  • For MAME2003plus: /userdata/bios/mame2003-plus/samples
  • For MAME2010: /userdata/bios/mame2010/samples

Highscores

Highscores can be tracked and kept throughthe use of `highscore.dat` which mus be in the right version for each emulator / emulator version, they can be found or must be placed here :

  • For FBNeo : /userdata/bios/fbneo
  • For mame2003plus : /userdata/saves/mame/mame2003-plus/hi
  • For mame2010: /userdata/saves/mame/mame2010/hi
  • For mame: see temporary solution in following post

Configuration menus

This is the per-game menu for accessing the machine's advanced configuration such as its dip switches, service mode and diagnostic input.

For FB NEO, the default combo is [START] + [L1] + [R1] (old versions (FIXME what older versions? Be specific): Hold [START])

For MAME, the default combo is pushing in [L3] + [R3] (old versions (FIXME what older versions? Be specific. I also don't think this was even removed, ie. you can still press Tab on the keyboard to access the dip switch menu): [Tab] on the keyboard)

For NEOGEO:

  • For the default (FIXME factory?) NEOGEO BIOS, the default combo is [START] + [L1] + [R1] (old versions (FIXME what older versions? Be specific): Hold [START])
  • For the universal BIOS:
    • At the boot screen, the default combo is holding down West button (Y SNES) + South button (B SNES) + East button (A SNES)
    • During gameplay, the default combo is holding down [START] + [SELECT] or holding down [START] + West button (Y SNES) + South button (B SNES) + East button (A SNES)

Setup a new shortcut via RetroArch:

[HOTKEY] + South button (B SNES)Quick AccessOptionsDiagnostic Input

Setup DIP Switches via RetroArch: [HOTKEY] + South button (B SNES)Quick AccessOptionsDip Switches

Setup NEO-GEO BIOS via RetroArch:

[HOTKEY] + South button (B SNES)Quick AccessOptionsSPECIFIC NEO GEO BIOSUNIBIOS or SPECIFIC BY DIP SWITCHES (UNIBIOS)

Not all games have a dip switch menu, and may crash when using these commands.

Here you can change number of players, get more lives, switch for arcade or console mode, setup subtitles, or even active the free mode!

Options available (Defaults)
  • Diagnostic Input (shortcut combination):
    • None
    • Hold Start
    • Start + A + B
    • Hold Start + A + B
    • Start + L + R (Default)
    • Hold Start + L + R
    • Hold Select
    • Select + A + B
    • Hold Select + A + B
    • Select + L + R
    • Hold Select + L + R
  • DIP Switches (settings) - may differ from game to game:
    • Autofire: Off* or On
    • Coin Mode: Mode 1*, Mode 2
    • Coin A / Coin B | Coinage | Coin setting : 4 Coins 3 Credit, 2 Coins 1 Credit, 1 Coin 1 Credit*, 1 Coin 2 Credits, 1 Coin 3 Credits, 1 Coin 4 Credits, 1 Coin 6 Credits, Free to Play
    • 2C to Start, 1 to Continue: Yes or No* | Starting Coin: Normal, 2x
    • Difficulty: 1 (Easiest), 2, 3, 4 (Normal)*, 5, 6, 7, 8 (Hardest)
    • Difficulty 2: Easy, Normal*, Hard, Hardest
    • Bonus Life: 100K*, 200K, 100K and every 200K, None
    • Number of Players: 1, 2*, 3, 4
    • Change Lives: 1, 2*, 3, 4, 5
    • Free to play: Yes or No*
    • Freeze: : Yes or No*
    • Flip: Yes or No*
    • Demo Sound | Attractive: Yes* or No
    • Allow Continue: Yes* or No
    • Game Mode: Game* or Test
    • Sound Output: Mono or Stereo
    • Unknown: Off* or On
    • Region: Europe, USA or Japan
    • Mode: ARCADE or CONSOLE-AES
    • Subtitles: English, Japanese, Korean or Portuguese
    • Jukebox

←-

MAME input remap files

Is this heading really required?

MAME machines can be remapped in-game by pressing [L3] + [R3] (old versions: [Tab]) to open the MAME configuration screen, then go to “Input for this game”. Press [Enter] or South button (B SNES). Inputs can be cleared by double-tapping [Enter]/South button (B SNES) instead.

Remap configuration files are stored at \userdata\saves\mame\mame(version)\cfg\

Automatic Controller Mapping

Standalone MAME and libretro/MAME have options to automatically map the controls for certain games and controller types. For more information, see Automatic Controller Layouts

Further Reading

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 days ago
  • by atari