A new MAME and QMC2 installer for Linux distros hit the scenes this week. OneUp! installs and updates MAME and QMC2 cleanly. It downloads source files, compiles MAME and QMC2 from source and installs the binaries. It will install software dependencies too.
OneUp! is a BASH script that works on Ubuntu flavours.
The program’s download link is at the bottom of this page.
There is more to OneUp! than meets the eye
MAME gamers can use OneUp! to update their MAME data files and install the default MAME directories that other installers neglect.
What to expect from OneUp!
OneUp! has three run modes: Update, Update or Install. Yes, there are 2 Update options.
Each mode reflects the user’s preference for the way OneUp! builds and installs the programs.
- Install: Delete existing source files (if they exist) and download a clean set of source files to use to install MAME or QMC2,
- Update: Do not clean compile caches, just update the source files and try to build and install MAME and QMC2.
- Update: Clean any compile caches, update the source files before MAME and QMC2 are built and installed.
The run mode is changed by pressing option 6.
The installer menu has 8 options to choose from:
- Install/Update MAME
- Install/Update QMC2
- Update MAME Data Files
- Create MAME Data Directories
- Number of parallel jobs the installer should run. This affects build time.
- Clean Level: Should source files be deleted or just updated?
- Install Essential Build Packages
Source files are downloaded to $HOME/src/. This is where MAME and QMC2 are compiled before they are installed.
The OneUp! Options
Install MAME
This will download the MAME source files from the mamedev GiHub repository, build mame then move the program binary file to the directory /usr/games. This installation directory can be configured in the OneUp! script file.
Install QMC2
This will download the QMC2 source files from the the official QMC2 Sourceforge repository, build QMC2 then install the program binary. The installer auto detects the correct location for the binary.
Update MAME
This updates the local source files and rebuilds the MAME executable binary file. It is the same as the Install MAME process. The MAME updater can be set to clean or not clean the build cache if one exists. MAME takes a long time to build.
Update QMC2
This downloads source files changed since initial compile of QMC2. The QMC2 updater can be set to clean or not clean the build cache if one exists.
Update MAME data files
The MAME source code ships with data files that improve the MAME experience and that tell the installed version of MAME about the ROMs and games supported by the current MAME release. These data files are used by MAME frontends. They contain highscore data, plugins, game and ROM file data and more.
When MAME is installed from Linux distro repositories these data files are installed into (if installed at all) either /usr/share/games/mame or /usr/local/share/games/mame or maybe some other place too but not usually into $HOME/.mame, which is where frontends for MAME commonly look for the data files. Additionally, the data files shipped from Linux distro repositories are often out-of-date.
These data files are
- artwork
- bgfx
- ctrlr
- hash
- keymaps
- language
- plugins
- roms, and
- samples.
The Update MAME Data Files option copies the data files to the MAME default locations and to $HOME/.mame.
Create MAME data directories
MAME stores game and system information in data directories in $HOME/.mame. These directories are not usually created when MAME is installed. These directories are
- cfg
- nvram
- memcard
- inp
- sta
- snap
- diff, and
- comments.
The Create MAME Data Directories option creates these directories if they do not already exist.
Clean level
This option sets the source file clean level for OneUp!
- Delete Source Files tells OneUp! to delete all source files before it downloads and rebuilds MAME or QMC2.
- No Cleaning tells OneUp! to download and build without care for whether old source files and build caches exist.
- Clean Compiler Cache tells OneUp! to clean the build cache then update the source code before it rebuilds the QMC2 or MAME.
Most users will use Delete Source Files when OneUp! is first used then No Cleaning whenever QMC2 or MAME is updated.
Install Essential Build Packages
QMC2 and MAME have multiple software dependencies without which they will not compile successfully. These packages are build-essential, subversion, g++, libqtwebkit-dev, libphonon-dev, libxmu-dev, rsync, libfontconfig-dev, libsdl2*, libqt5* and qt5*. It is recommended to install these through this option before you attempt to compile MAME or QMC2.
This option only shows when it has not already been run by OneUp! You will need to manually edit the script’s internal setting conf[0] to change conf[0]=1 back to conf[0]=0 if you wish to use this option again.
Note that OneUp! installs QT5 and SDL2 packages. You might wish to use QT4 or SDL1 within your own OS. Typically, QT5 and SDL2 are the norm in 2018. You can change the packages by editing the OneUp! script at around line 449.
Editable User Flags
OneUp! has few user editable variable flags. The ones that might be adjusted begin at line 73 of the script file. Most these variables relate to file locations:
- mameloc=’https://github.com/mamedev/mame.git’ # MAME Git directory
- qmc2loc=’https://svn.code.sf.net/p/qmc2/code/trunk’ # SVN path of QMC2
- mameinst=’/usr/games’ # MAME installation path. Where should the compiled binary be installed to? Exact path. No trailing slash.
- mamesearchpath=’/usr/share/games/mame’ # Default location for MAME data files. Exact path. No trailing slash. This mirrors $HOME/.mame.
- mamesearchpath2=’/usr/local/share/games/mame’ # Default location for MAME data files. Exact path. No trailing slash. This mirrors $HOME/.mame.
How do you get OneUp!?
Download the OneUp! from GitHub. Make the file executable then click it to run it or launch it from the command line with bash oneup.sh.
To make the file executable either right-click > properties > Select Executable or type chmod u+x oneup.sh at the command line.