-
Notifications
You must be signed in to change notification settings - Fork 10
Arcade1Up Firmware Updates
Arcade1Up manufactures modern versions of classic arcade game cabinets. The company also posts firmware updates for some of their cabinets on their website. Because of this, games for these cabinets can be extracted, indirectly, from their corresponding firmware updates.
Various Namco arcade games can be extracted from these firmware updates, as well as the Mega Man NES games and Android APK files for the pinball machines. The arcade games can be run using the latest version of MAME (with the exception of Dig Dug, which requires MAME 2003-Plus). The Outrun firmware update cannot be extracted at this time.
These instructions are for a Debian-based Linux distro. For Windows, follow these instructions using WSL.
- Install any prerequisites required to run the extraction scripts:
sudo apt update
sudo apt install wget zip libguestfs-tools simg2img
- If extracting any of the pinball firmware images, or the "SKU 8255 - Ms. Pac-Man™ Head-to-Head Firmware Update", you will also need to compile and install the
awimage
program.
sudo apt install build-essential git
git clone https://github.com/Ithamar/awutils.git
cd awutils
make awimage
-
Download the firmware update for your corresponding Arcade1Up unit from the Software Updates page, and extract the zip file.
-
Download the Arcade1Up firmware extraction script (replace
arcade1up-extract
witharcade1up-pinball-extract
if extracting a pinball firmware image):
wget https://raw.githubusercontent.com/farmerbb/RED-Project/master/ROM%20Extraction/arcade1up-extract.sh
chmod +x ./arcade1up-extract.sh
-
If
awimage
is required, move the compiledawimage
program from step 2 into the directory where the extraction script is located. -
Run the extraction script (replace
arcade1up-extract
witharcade1up-pinball-extract
if extracting a pinball firmware image):
./arcade1up-extract.sh <path-to-firmware-img>
(where <path-to-firmware-img>
is the path to the .img file, usually located in the "Updater" folder where you extracted the firmware update zip file.)
The extracted games will be available in the same directory that you ran the script in.
-
Certain games have multiple variants available across different firmware updates. These will be noted in the output of the script. Note that any existing files will be overwritten across multiple runs of the script, even if a different firmware image is extracted.
-
The version of Pac-Man Plus used by Arcade1Up is decrypted; MAME usually requires an encrypted ROM to run this particular game. However, if the ROM is renamed to
pacman.zip
, then it will be run with MAME's Pac-Man driver instead, allowing it to run successfully. The script outputs the ROM with the namepacman.plus.zip
instead of the usualpacplus.zip
. -
Not all games can be extracted in a playable state at this time. If you wish to extract these unplayable games anyway, run the script with the
-a
parameter at the end.
- Mega Man
- Mega Man 2
- Mega Man 3
- Mega Man 4
- Mega Man 5
- Mega Man 6
- Dig Dug
- Dig Dug II
- Galaxian
- Mappy (two variants)
- Ms. Pac Man
- Pac & Pal
- Pac-Land (two variants)
- Pac-Man
- Pac-Man Plus
- Pac-Mania (two variants)
- Super Pac-Man
- Super Xevious (see note below)
- Xevious (see note below)
- Marvel Pinball
- Star Wars Pinball
- Williams Pinball
Xevious and Super Xevious require files from two different variants to be combined, as well as a timing ROM generated, in order for the FinalBurn Neo emulator to accept the ROM. In order to produce working versions of these games:
- Extract the firmware image containing variant 1 of the Xevious games, using:
./arcade1up-extract.sh <path-to-firmware-img> -a
(Note the -a
parameter at the end)
-
Open up
xevious.zip
andsxevious.zip
, and extract all files starting withxvi_
into a separatexevious
andsxevious
folder. -
Extract the firmware image containing variant 2 of the Xevious games, using the above command.
-
Open up the new
xevious.zip
andsxevious.zip
files, and extract only files starting withxvi-
into thexevious
andsxevious
folders. -
Generate a timing ROM by running:
wget https://raw.githubusercontent.com/farmerbb/RED-Project/master/ROM%20Extraction/generate-timing-rom.sh
chmod +x ./generate-timing-rom.sh
./generate-timing-rom.sh xvi-1.5n
-
Copy this timing ROM into the
xevious
andsxevious
folders, overwriting the existing file. -
Finally, zip up each file in the
xevious
andsxevious
folders into new zip files namedxevious.zip
andsxevious.zip
.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.