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
- Format a USB drive as FAT32.
- Label the USB drive exactly ALCHEMY.
- Insert the USB drive into the Raspberry Pi.
- Power on the Raspberry Pi.
- Wait for Arcade Alchemy to create the required folders and files.
- When the USB setup screen appears, wait at least 60 seconds.
- Power off the Raspberry Pi.
- Remove the USB drive and connect it to your computer.
- Add ROMs, samples, and game-list entries.
- 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.
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.
