A note about version numbers
MAME is a constantly growing and evolving project, written in the authors' free time. Updates are sporadically (but frequently) provided with no official time table for release. There are official updates which increase the decimal part of the version number (i.e. after official version 0.99 came official version 0.100) and there are unofficial updates that occur between official updates, which add a u and the unofficial version number (e.g. 0.108u2). The unofficial versions are not as readily available as the official versions, and typically require that you compile them for yourself.
There are two primary websites dedicated to serving the MAME binary archive:
It is common these days for MAME to be distributed in a self-extracting archive, meaning you are not required to use a program such as 7-Zip to extract the contents. Other variants of MAME might only be available in a zip or rar archive.
It is also common for these sites to also provide the option to download a Pentium Pro optimized version of MAME (the i686 build). This build is an optional build for people who have a Pentium Pro class of processor, or better, and desire a performance increase over the regular build. Most users fast processor should not require this build as your system should be fast enough to run most games at full speed without the optimizations.
You will also find the option to download the source code to MAME, but obviously you will have no use for this unless you are a programmer, knowledgeable in C++, and have any intention of modifying and compiling your own version of MAME (something that this guide has no intention of delving in to.)
Note that there is a difference between the regular MAME binaries and the binaries compiled for DOS. Both are command line driven (you need to run it from a command prompt or a front-end), but only the original is compiled for a 32-bit Windows Operating System environment (called Win32 code.) The DOS build is for anyone who might still be running an original MS-DOS operating system (which is common in some MAME cabinet setups.)
More variants of MAME are discussed on the Variations page, but if you are looking for a Windows version of MAME that does not require the use of a command prompt, and contains its own built-in front-end, the official Windows version of MAME is MAMEUI (previously MAME32), and can be downloaded from mamemirror as well, or from the official MAMEUI homepage.
For a while, the official Linux build of MAME was known as XMAME. While you can download still find distributions of XMAME for download, it is no longer being maintained, and has been replaced by SDLMAME as the official cross-platform variety of MAME since SDL is supported on a number of platforms including Linux, Windows, and Mac. There are several sources of SDLMAME including the official homepage, the Ubuntu distribution, the Debian repository, and Fedora RPMs.
All versions of SDLMAME are strictly command line driven, but there are numerous front-ends that are available for use with SDLMAME including the cross platform "MAME Plus! GUI" (linux version is Qt4 based), Qt4 based QMC2, Java based XMAME GUI, KDE based KXMAME, and Gnome based Gnome Video Arcade.
MacMAME is available from MacMAME.org. The builds there are often out of date.
Installing MAME on your system is a relatively simple process. Simply double click on the self-extracting archive that you downloaded, and choose which directory you would like to extract the contents of the archive to. (C:\MAME is the most common choice for this operation.) If you did not download a self-extracting archive, then use your compression software of choice to extract the contents of the archive to a directory. This operation will deposit a myriad of files and (empty) directories that MAME needs, or might need.
Note: Any new version of MAME can be safely extracted on top of (thereby replacing) an old version. The same is not necessarily true if you try to replace a newer version with an older version, so if for some reason you need to do this, it is better to extract an old version in to a separate directory and not in to you usual MAME directory. Variations of MAME can typically live safely together in the same folder.
Once MAME is extracted in to a directory, you can run it right away, but you will probably need to download ROMs to play with before you start using MAME. Due to the legal issues surrounding ROMs, this guide will in no way aid the user in locating MAME ROMs available for downloading. Suffice it to say, Google is your friend.
Downloaded ROMs typically need to go in the rom folder that is contained in your MAME directory (e.g. C:\MAME\roms), but MAME can be configured to located ROMs in a different folder, or even multiple folders. By default, it will only look in the roms folder supplied with MAME until you direct it otherwise.
Additionally, a very small percentage of ROMs that MAME supports (less than 1%) require sound samples in order for all of the sound effects to be heard properly while playing a game. This may be due to incomplete knowledge of the sound architecture used by a game, or the use of analog sound circuits that can not be replicated in digital software. These sound samples are merely wave files containing the missing sounds and are programmed to be played by MAME at the appropriate moments. They are freely distributable, and you can download them from MAME's official homepage or from Twisty's MAME Samples Collection page. Twisty is a MAME supporter who has maintained an up to date collection of MAME samples, as well as a few enhanced "unofficial" sample replacements. Downloaded samples belong in the samples folder that resides in the same directory as MAME (e.g. C:\MAME\samples)
There will be a few more folders in the MAME directory, such as artwork or ctrlr, that you are not obligated to add files to unless you want to. This will be discussed in the configuration section and the support files section. If you extracted the MAMEUI archive, you will notice many more folders than those included with command-line MAME. These folders typically hold art support files that only come in to play while you are looking at the game navigation window, and will also be discussed in the support files section. Once you have some ROMs, and optionally some sound samples, you are ready to play!
Note: To create a new mame.ini file, bring up a command line terminal, change your directory to where your MAME executable is located, and type:
to generate the ini file where most of MAME's settings are saved to and loaded from.