Installation and configuration guide (V3.7)

ARpiCADE is the official distribution for the RaspberryJAMMA adapter.


It is a good idea to back up your software in case of emergency. I recommend imaging your whole SD card for easy restore should something go bad.

By default this software operates at low resolutions and is intended for use on monitors that can handle 240p/480i.

This software is intended for use with RaspberryJAMMA hardware using GPIO controls. The MK_ARCADE_JOYSTICK kernel module loads early during boot, to disable it edit /etc/modules with root privileges ‘sudo nano /etc/modules’.

I DO NOT recommend hot-plugging usb devices when powering the pi through JAMMA. Plug and unplug your USB keyboard or whatever else when the power is off.



This Raspberry Pi distro is built around the following software and would not be possible without a lot of peoples hard work, huge thanks to everyone involved in open source development:


Mame based:

  • MAME 0.172: 2nd newest version of MAME included, has the most accurate emulation and can do a few things the others can’t like mirrored cocktail mode & fine adjustments to video output size.
  • MAME 0.181 Newest version of MAME included, has the most accurate emulation and can do a few things the others can’t like mirrored cocktail mode & fine adjustments to video output size. v0.181 scales differently to all other emulators included.

I recommend using v0.172 over v0.181.

  • AdvanceMAME: Designed for use with arcade monitors, very configurable – HIGHLY RECOMMENDED for its mix of good speed, options and emulation quality
  • MAME4all: The fastest version of mame for arm architecture but very old with the most dated emulation, the version on this software is modified to work with the correct scanline output in low res.

*Not recommended for Pi3, the other versions of MAME have much better emulation due to age*


  • MAME2003 (Retroarch core): Good speed but a little buggy, improving though – good for mk2 and later Midway titles & SEGA System32 games. Also very good at mapping analog controls to a digital joystick
  • FBA_Next (Retroarch core): Fast but not as accurate/configurable as mame – good for CPS3 & PGM & a few SHMUPS that are buggy in advmame


  • Daphne: Plays laser disc games like Dragons Lair & Space Ace
  • Additional assorted console emulators



  • Attract-Mode: Fancy frontend, hugely themeable, access to menus through ‘tab’ on keyboard
  • AdvanceMENU: Now the optional frontend, formally the default. Exiting Attract-Mode with ‘esc’ loads advmenu as it is useful for rom management using the ‘F8’ menu



  • Linux and other free tools (Raspbian base)
  • GPIO controls are currently using mk_arcade_joystick modified to suit the wiring of the RaspberryJAMMA board
  • The hotkey system is using currently and pikeyd (ideally it would be part of mk_arcade_joystick but for now this works ok)



The following steps cover the writing of the image to an MicroSD Card.


  • 8Gb MicroSD Card (or larger)
  • SD Card reader for your home computer with Windows or MAC operating system
  • Raspberry Pi 2 or 3
  • RaspberryJAMMA adapter



  1. Download latest full release (here)
  2. Unarchive the downloaded tar.gz file using a tool like 7zip or Keka.  The result after unarchiving should be a .img file.
    1. MAC: Keka
    2. WINDOWS: 7zip
  3. You then need to  download and install software for writing Raspberry PI images to SD Cards.  Below are two suggestions on utilities that have been tested with ARpiCADE:
    1. MAC: Apple-Pi Baker, or Etcher
    2. WINDOWS: Etcher
  4. Write OS image to SD Card using your preferred utility
  5. Once completed, remove the SD Card from your computer and then re-insert SD Card back into your computer.


At this point, you will be ready to load ROMs.  See below for next steps.



Copy roms to SD card plug into JAMMA cab power up and play.


The image you wrote to the SD Card contains 2 partitions.  One for Raspian Linux (Ext4), and the other for Windows/Mac (FAT32).  The first partition is for the operating system and software that runs on the PI.  The second partition is meant to be used by Windows and Mac.

The reason this is done is so you can easily put the card into a desktop computer and copy ROMs directly.

So to add roms, you only need to place the SD Card into your desktop computer, and you should see a drive mount.  Inside this drive, should be a directory called “roms”.  It is in this directory where you will see directories related to each of the emulators. Here you can choose which emulator you want to use to run your ROM, by placing it in the appropriate directory.


Arcade roms should be placed in


Where “*” is the emulator and “%” is the game. Roms must be in the correct directories and named and zipped according to the conventions of the relevant emulator.

The exception to the arcade rom storage system is Daphne, its roms are stored in /boot/roms/daphne/rom and framefiles in /boot/roms/daphne/framefile/(directory with same name as the rom) due to the way the emulator works.

Console roms should be placed in:


Where “*” is the emulator, “%” is the game and “ext” is the relevant extension. Roms must be in the correct directories and generally must be unzipped (except advmess). Names of console roms are not critical as they are for arcade roms, name them so you can identify them in the menu.

Rom scanning is automatic at startup by default but can also be done manually through the service menu.

Make sure to safely remove/eject your SD card before pulling it out of your PC.


Hold 1P Start for a couple of seconds + 2P Start == exits a game back to the menu

Hold 1P Start for a couple of seconds + P1B1 == Credit

Hold 1P Start for a couple of seconds + P1 Joy Down == Pause/Unpause

Hold 1P Start for a couple of seconds + P1 Joy Right == MAME menus (MAME only)







There are two partitions on a typical Raspberry Pi installation. Only one of these partitions (the first) is usable by Windows. For Windows users this software compilation features an expanded first partition containing the rom directories for the emulators. This allows you to update your roms through a Windows computer. More extensive customisation can be done on the pi or on a Linux (or possibly other UNIX like OS) box which will be able to see the second partition as well as the first. There is a directory on the boot partition to assist in updating settings usually unreachable by Windows using scripts run from the menu (/boot/config-updater).

Basic instructions to the Raspberry Pi for booting are contained in:


which can be seen in the boot partition of the SD card as config.txt (even in Windows). Options contained within this file include video mode and overclocking. For use with the RaspberryJAMMA hardware the hdmi_mode option directly changes the resulting RGB output from the JAMMA edge connector. This software boots in 480i and switches resolution before launching games so be careful editing resolution settings here.



Video output width can be changed in:


using the overscan options without image quality being ruined. Best not to play with the height though as it will affect the scanline perfect output.

Video output can also be flipped (180 degrees) in this file without a performance hit using


Although rotating (90 degrees) output here is possible it is easier to achieve consistent results across multiple emulators using emulator specific options (explained there).



The instructions for what happens after boot are in


which is a shell script controlling what happens after automatic login. It contains a very hacky “now loading” message that is seen during boot and game loading (until broken by the resolution switching) and launches the hot key system as well as Attract-Mode, the game select menu.



The emulator launcher scripts are in


and are used to change the resolution prior to loading games (when applicable) and back again after. This folder also contains the parts of the new system config menu for Attract-Mode (it’s very basic at the moment).

Hotkey config is done through


you can hash out lines to disable certain functions, or add new ones if you need them.



If you are curious about what is actually happening during boot the regular Linux boot text can be seen by replacing




If you want to go back to the silent boot use



Basically invisible to Windows is the second partition. It contains the Linux system and emulator software and config files. To edit these files you will need either a computer running an OS that can write to this partition or to edit the files on the Raspberry Pi using a USB keyboard. Editing on the Raspberry Pi is easiest outside of an arcade cabinet on a more modern monitor however in cab edits are possible in a pinch and the F8 menu in advmenu can help too.



MAME 0.172 (Note: some behaviour is controlled by the launcher instead of the config file)


AdvanceMAME (MAME-106) (some behaviour is controlled by the launcher instead of the config file)


for games that render badly in SDL


MAME4all (some behaviour is controlled by the launcher instead of the config file)


Retroarch based emulators use the Retroarch menus to edit settings.

Some options common to different versions of MAME may have slightly different names in each version. For example screen rotation:

eg. advmame:

 display_rol no
 display_ror yes

eg. mame4all:


Both of these commands achieve the same thing and should match between all emulators for the gaming experience to be smooth.



Editing attract modes config is best done through the built in menus but if needed all the files are in


To edit AdvanceMenu options (not required to rotate or switch layout)




Another file you may want to change is the boot splash which can be found at


You will need to have root access (admin rights) to write to this location due to the structure of the Linux system. This can be done through the new service menu in Attract-Mode or the F8 menu in AdvanceMENU (explained below in the FAQ).