Arcade1Up Firmware Updates - farmerbb/RED-Project GitHub Wiki

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.

ROM Extraction Instructions

These instructions are for a Debian-based Linux distro. For Windows, follow these instructions using WSL.

  1. Install any prerequisites required to run the extraction scripts:
sudo apt update
sudo apt install wget zip libguestfs-tools simg2img
  1. 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
  1. Download the firmware update for your corresponding Arcade1Up unit from the Software Updates page, and extract the zip file.

  2. Download the Arcade1Up firmware extraction script (replace arcade1up-extract with arcade1up-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
  1. If awimage is required, move the compiled awimage program from step 2 into the directory where the extraction script is located.

  2. Run the extraction script (replace arcade1up-extract with arcade1up-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.

Notes

  • 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 name pacman.plus.zip instead of the usual pacplus.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.

List of Extractable Games

NES

  • Mega Man
  • Mega Man 2
  • Mega Man 3
  • Mega Man 4
  • Mega Man 5
  • Mega Man 6

Arcade

  • 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)

Android

  • Marvel Pinball
  • Star Wars Pinball
  • Williams Pinball

Note about Xevious / Super Xevious

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:

  1. 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)

  1. Open up xevious.zip and sxevious.zip, and extract all files starting with xvi_ into a separate xevious and sxevious folder.

  2. Extract the firmware image containing variant 2 of the Xevious games, using the above command.

  3. Open up the new xevious.zip and sxevious.zip files, and extract only files starting with xvi- into the xevious and sxevious folders.

  4. 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
  1. Copy this timing ROM into the xevious and sxevious folders, overwriting the existing file.

  2. Finally, zip up each file in the xevious and sxevious folders into new zip files named xevious.zip and sxevious.zip.