MAME and QMC2 Installer. Bash script to download MAME and QMC2 source files then build and install them
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE Update to 1.0.4 - QMC2 download bugfix Apr 28, 2018 Update Apr 28, 2018


MAME and QMC2 Installer. Bash script to download MAME and QMC2 source files then build and install them.

Compiles both from source and installs the binaries and files to their expected locations.

For OS: Linux

Tested With: Ubuntu flavours

Copyright 2018 OneUP!

License: GPL3

Programmer: Lee Hodson <>, VR51 <>

Use of this program is at your own risk


  1. Install/Update MAME from source (includes tools)
  2. Install/Update QMC2 from source (includes QMC2, QMC2 Arcade, QCHDMAN and the man help pages)
  3. Update MAME default data files: artwork, bgfx, ctrlr, hash, keymaps, language, plugins, roms and samples.
  4. Create default output data directories: cfg, nvram, memcard, inp, sta, snap, diff and comments
  5. Delete, or not, stale files before new files are downloaded. Option set affects only actions committed.
  6. Set the number of parallel jobs make should use during build process.
  7. Install packages required to successfully build MAME and QMC2. This option shows until used.



Download the script from here

Ensure the script is executable.

  • Right-click > properties > Executable
  • OR
  • chmod u+x

Launch by clicking the script file or by typing bash at the command line.

  • MAME will be compiled in /home/USER/src/mame
  • QMC2 will be compiled in /home/USER/src/qmc2
  • MAME and QMC2 will install to their default locations
  • MAME default data files will be installed to /home/USER/.mame/
  • MAME default output data directories will be installed to /home/USER/.mame/
  • This installer assumes SDL2 and QT5 can be installed into the active system without conflicts.
  • Files that exist in $HOME/src/mame and $HOME/src/qmc2 will be overwritten or updated by this program.

OneUp! uses sudo privileges to install compiled binaries and during file updates.

OneUp! asks for sudo permissions when installing software and/or when it is about to remove stale directories. Directories are not removed with sudo privileges. OneUp! uses sudo to change the user and owner of the directories and files to be removed or overwritten so that they can be removed or overwritten under the active user's credentials.


You will need game and arcade ROMs to use MAME enjoyably.

Visit to find some.



  • QMC2 Installer: Fixed QMC2 download bug that occured when OneUp! was run in installer mode for the first time.
  • MAME Installer: Changed git clone to git clone depth 1 to prevent download of unnecessary MAME source data. Thank you i30817 for this suggestion.


  • Fixed variable call. Had forgotten to brace array variable ${conf[1]}. Resolves MAME update error.


  • MAME Installer/Updater bugfix. Had forgotten to CD to the correct build directory.


  • New options
  • Redesigned code
  • Redesigned options layout