Arcade Alchemy

Arcade Alchemy is a Debian-based arcade operating system designed for Raspberry Pi 3A+ hardware and newer.

It is built specifically for classic arcade cabinets, with an emphasis on fast startup, responsive controls, dependable AdvanceMAME emulation, and straightforward configuration.

Arcade Alchemy is not intended to be a multi-purpose home-console emulation platform. It is focused on classic arcade games and cabinet-style operation.

The operating system, frontend, and AdvanceMAME software are stored on the microSD card. ROMs, samples, configuration files, high scores, NVRAM, save data, and other user files are stored on a removable USB drive labeled ALCHEMY.

This keeps the operating system separate from user content and allows most routine configuration to be completed from an ordinary computer without repeatedly modifying the microSD card.

Why I Built Arcade Alchemy

I originally built Arcade Alchemy for my own arcade cabinets.

I wanted a system that could boot directly into one dedicated game while still providing access to a small list of additional cabinet-compatible titles.

I also wanted a system that would start quickly and operate without unnecessary desktop software, startup screens, unrelated emulators, and complicated menu layers.

Arcade Alchemy is designed to behave more like a dedicated arcade game board than a multi-purpose emulation computer.

Alchemy Classic

A dedicated Raspberry Pi OS for traditional arcade cabinets.

Alchemy Classic is designed for cabinets that normally run one primary game but may also provide access to a short list of related or cabinet-compatible titles.

At startup, Alchemy Classic automatically launches the first valid game listed in gamelist.cfg.

Pressing Player One Start and Player Two Start together while a game is running exits the game and returns to the simple game list.

Best Suited For

  • Dedicated Pac-Man, Galaga, Donkey Kong, or similar cabinets
  • Cabinets with a small collection of related games
  • Traditional joystick-and-button arcade controls
  • Users who want appliance-like startup and operation
  • Systems where simplicity and reliability are the priority
  • Replacing an aging or unavailable original arcade game board

Key Features

  • Boots directly into the first valid configured game
  • Simple text-based game list
  • AdvanceMAME-based arcade emulation
  • Raspberry Pi GPIO cabinet controls
  • Player Two coin option
  • Display rotation support
  • GPIO input testing
  • Display test pattern
  • Restart and shutdown controls
  • USB-based ROM and sample storage
  • Persistent USB storage for high scores, NVRAM, and save data
  • User configuration editable from a standard computer

Simple to Operate and Maintain

Many Raspberry Pi arcade systems require users to navigate Linux directories or edit system files just to make basic changes.

Arcade Alchemy takes a different approach.

The microSD card contains the operating system and software. The removable USB drive contains the user-accessible files.

After the image and USB drive are prepared, there is normally no reason for the average user to modify the microSD card.

User-accessible files include:

alchemy.cfg
gamelist.cfg
font.ttf
emulators/advmame/roms/
emulators/advmame/samples/

AdvanceMAME also stores persistent game data on the USB drive, including high scores, NVRAM, differential files, memory cards, snapshots, input recordings, and save states.

Hardware Requirements

  • Raspberry Pi 3A+ or newer supported Raspberry Pi
  • MicroSD card
  • FAT32 USB drive labeled ALCHEMY
  • Computer capable of writing Raspberry Pi image files
  • AdvanceMAME-compatible arcade ROM files

The included AdvanceMAME build expects ROMs compatible with MAME 0.106. Non-merged MAME 0.106 ROM sets are recommended.

Preparing the USB Drive

  1. Format a USB drive as FAT32.
  2. Label the USB drive exactly ALCHEMY.
  3. Insert the USB drive into the Raspberry Pi.
  4. Power on the Raspberry Pi.
  5. Wait for Arcade Alchemy to create the required folders and files.
  6. When the USB setup screen appears, wait at least 60 seconds.
  7. Power off the Raspberry Pi.
  8. Remove the USB drive and connect it to your computer.
  9. Add ROMs, samples, and game-list entries.
  10. Safely eject the USB drive and return it to the Raspberry Pi.

Adding ROMs

Copy compatible arcade ROM ZIP files into:

emulators/advmame/roms/

Leave ROM files zipped.

Examples:

pacman.zip
galaga.zip
dkong.zip

The ROM name used in gamelist.cfg must match the ZIP filename without the .zip extension.

Adding Sound Samples

Some arcade games require or support external sound-sample files.

Copy compatible sample ZIP files into:

emulators/advmame/samples/

Leave sample files zipped unless the sample-set documentation specifically states otherwise.

Game Configuration

Games are listed in:

gamelist.cfg

Add one game per line using this format:

Display Name,romname

Do not include .zip after the ROM name.

Example:

Pac-Man,pacman
Galaga,galaga
Donkey Kong,dkong

The corresponding ROM files must be:

pacman.zip
galaga.zip
dkong.zip

The first valid game listed in gamelist.cfg is the game Alchemy Classic launches automatically at startup.

Blank lines and lines beginning with # may be used for spacing or comments.

Display Rotation

Display rotation can be configured in alchemy.cfg or from the service menu.

Rotate = none
Rotate = right
Rotate = left
Rotate = flip
  • none — standard horizontal display
  • right — display rotated clockwise
  • left — display rotated counterclockwise
  • flip — display mounted upside down

Player Two Coin Function

The Player Two coin feature can be enabled or disabled in alchemy.cfg or from the service menu.

P2 Coin = on
P2 Coin = off

When enabled, the configured Player Two control can be used to generate a coin input without repeatedly operating a separate coin switch.

A physical coin door can still be connected through the available GPIO coin input for a more traditional arcade experience.

Controls

  • Joystick: move through the game list and service menu
  • Player One Start: start the selected game or confirm a selection
  • Player Two Start: open the service menu from the game list or cancel/back where applicable
  • Player One Start + Player Two Start: exit a running game and return to the game list

Exact controls may vary depending on cabinet wiring and GPIO configuration.

Service Menu

  • Display Rotation
  • Player Two Coin
  • GPIO Input Test
  • Display Test Pattern
  • Restart Alchemy
  • Restart System
  • Shutdown System
  • Return to Gamelist

Important Notes

  • Always shut down the system before removing the USB drive.
  • Do not remove the USB drive while Arcade Alchemy or AdvanceMAME is running.
  • Do not place ROMs or other user content on the microSD card.
  • Do not rename required files or folders.
  • Only change documented settings in alchemy.cfg.
  • Do not edit game-control mappings from AdvanceMAME’s internal TAB menu.

Arcade Alchemy is designed to tolerate normal cabinet use and abrupt power loss better than a general-purpose desktop system, but no writable storage device is immune to corruption. Use the Shutdown System option whenever practical.

Download Alchemy Classic

Downloads, release notes, installation information, and announcements are available through the Arcade Alchemy Discussion Group.

Alchemy Classic download link

Legal Notice

Arcade Alchemy does not include copyrighted arcade ROM files.

Do not ask where to obtain ROMs.

Users are responsible for supplying game files they are legally permitted to use.

Arcade Alchemy is not affiliated with the original arcade game manufacturers, Raspberry Pi Ltd., the AdvanceMAME project, or any other referenced hardware or software vendor.

Support

Questions, release notes, installation help, compatibility discussions, and Alchemy Classic support are available in the Discussion Group.