
MAME is a computer software program for personal computers designed to
faithfully and precisely emulate as many arcade games as possible, with the
intent of preserving gaming history and preventing vintage games from being lost
or forgotten. The name is an acronym for Multiple Arcade Machine Emulator.
MAME has been ported to many different platforms. The X11 port for Unix-like
systems is named XMAME. The Mac OS X port is named MacMAME.
According to the official MAME web site, the first public MAME release (0.1) was
on February 5, 1997, by Nicola Salmoria. As of version 0.108 (actually the 152nd
proper release), released August 20, 2006, MAME now supports 3349 unique games
and 6216 actual ROM sets (each game may just have the original or have one or
more clones as well - see below) and is growing all the time. However, not all
of the games in MAME are playable; 710 ROM sets are marked as not working in the
current version, and 26 of the 6216 sets are not actual games but BIOS ROM sets.
How MAME works
MAME contains several components: a CPU emulator which duplicates the behavior
of the CPUs of many original arcade machines; an input emulator which maps
arcade buttons, joysticks, and other controls to PC keyboards, joysticks and
other devices; and an emulator for the arcade game display and sound equipment.
The only thing missing from MAME is the ROM image, which is the program from the
original arcade game which made the game run. When MAME is run, it is running
the original game from several years ago - just on different hardware.
Emulation philosophy
The stated aim of the project is to document hardware, and so MAME takes a
somewhat purist view of emulation, prohibiting programming hacks that might make
a game run improperly or run faster at the expense of emulation accuracy (see
UltraHLE, a project aimed to run games at a playable speed). In MAME every
emulated component is replicated down to the smallest level of individual
registers and instructions. Consequently, MAME emulation is very accurate (in
many cases pixel- and sample-accurate), but system requirements can be high.
Since MAME runs mostly older games, a large majority of the games run well on a
2 GHz PC. More modern arcade machines are based around fast pipelined RISC
processors, math DSPs, and other devices which are difficult to emulate
efficiently. These systems may not run quickly even on the most modern systems
available; some working games have been estimated to require a 10 GHz processor
to run at full speed.
The MAME team has not diverged from this purist philosophy to take advantage of
3D hardware available on PCs today. It is a common but incorrect assumption that
performance problems are due to some games` use of 3D graphics. However, even
with graphics disabled, games using RISC processors and other modern hardware
are not emulated any faster. Thus taking advantage of 3D hardware would not
speed these games up significantly. In addition, using 3D hardware would make it
difficult to guarantee identical output between different brands of cards, or
even revisions of drivers on the same card, which goes against the MAME
philosophy. Consistency of output across platforms is very important to the MAME
team.
MAME Releases
There are several types of MAME release depending on how frequently users wish
to update and the level of code maturity each user feels comfortable running:
The major releases of MAME occur approximately once a month. These releases are
given a version number, e.g. 0.99. The Unix numbering scheme is used, i.e. the
version after 0.99 is 0.100, which seems counter-intuitive to some. These major
releases are the most mature and least frequent ones so are aimed at the average
computer user who wants to try MAME. An executable version for Windows & DOS is
released from the MAME Home Page.
Smaller, incremental releases are released between major releases. These
releases are denoted by a `u` number after the version number of the previous
major release, e.g. 0.99u1 is the first development release after major version
0.99. There are usually about 5 new `u` releases in between major releases.
These minor releases are not intended for average MAME users. Instead, they are
aimed at people who take a close interest in MAME development and have access to
compiler tools. As such, these minor releases are not made officially available
as executables. They are available only as diffs against the MAME source code.
For those users who must keep up with the absolute daily goings-on with MAME
development, the MAME source code is kept on the Mess.org CVS server and may be
downloaded at will by any member of the public. This is intended only for those
who have access to compiler tools and feel comfortable building software from
source code.
ROM images
In most arcade machines, the data (consisting of the game program, graphics,
sounds, etc.) is stored in read-only memory chips (hence the name `ROM`),
although other devices such as cassettes, floppy disks, hard disks, and compact
discs are also used. These devices can be read in a process called `dumping` to
create computer files containing the same data; these files are often
generically called `ROM images` or `ROMs` no matter what kind of device they
originally came from. To play a particular game, MAME requires a set of files
(called a ROM set) containing all the data from the original machine, however
MAME itself does not include any of these files.
MAME handles these data files in two ways: CHD (Compressed Hunks of Data) files
hold the contents of hard disks or compact discs, and all the other types of
game data are stored in ZIP archives, one for each game.
There are three types of ROM sets:
Original game ROM sets (`parent`). These are the games which the MAME
development team has decided are the `original` versions of each game. Except
for the files contained in BIOS ROMs (if needed; see below), the ROM files for
these games contain everything those games need to run. The `original` set is
generally defined as the most recent revision of the game, and if multiple
regional versions are available, the `World` or US revision.
Clone ROM sets, which are different versions or variants of the originals (for
example, Street Fighter II Turbo is considered a variant of Street Fighter II
Champion Edition).
BIOS ROM sets, which are the ROMs in common between all games on various
standardized arcade systems (e.g. Neo-Geo). They basically `boot` the hardware,
then allow the regular game software to take over.
Rom Naming:
MacMAME under Mac OS X running Progear.A single supported game is usually
refered to as a `Romset`, as for the majority of cases each game will consist of
multiple `ROM` files, each of which represents a single device (usually ROM, but
sometimes other devices such as PALs)
The MAME developers assign each Romset an 8-letter name for identification as
well as a description associated with that 8-letter name.
hyperpac `Hyper Pacman`
MAME expects to find all the ROM images required for the game `Hyper Pacman` in
a folder, or ZIP file called hyperpac(.zip) For games which are considered
clones, for example
hyperpcb `Hyper Pacman (bootleg)`
MAME will look in both the parent folder (hyperpac) and the clone folder (hyperpcb)
for the files.
Individual ROM files are, where possible, named after labels found on the ROM
chips, and the position they are located on the board in the format `label.position`.
Sega for example use a standard labeling scheme for all the ROMs found on their
arcade boards giving each unique ROM chip a unique label. `mpr12380.b2` is a ROM
from the Golden Axe romset. This implies that the rom was labeled `mpr12380` and
located in position `b2` on the PCB. By using such a naming scheme it makes it
easy to use MAME to identify, and often help repair, non-working PCBs.
The 8-letter identification tags are less standardized and usually left to the
discretion of individual developers, likewise the descriptive long names,
although some standards do exist, again often following naming conventions set
by the original game manufacturers. Taking Konami`s Sunset Riders as an example
ssriders `Sunset Riders (4 Players ver EAC)`
ssrdrebd `Sunset Riders (2 Players ver EBD)`
ssrdrebc `Sunset Riders (2 Players ver EBC)`
ssrdruda `Sunset Riders (4 Players ver UDA)`
ssrdreaa `Sunset Riders (4 Players ver EAA)`
ssrdruac `Sunset Riders (4 Players ver UAC)`
ssrdrubc `Sunset Riders (2 Players ver UBC)`
ssrdrabd `Sunset Riders (2 Players ver ABD)`
ssrdradd `Sunset Riders (4 Players ver ADD)`
ssrdrjbd `Sunset Riders (2 Players ver JBD)`
Konami gave each revision of their later (mid 90s onwards) games a very specific
and clearly visible version number. As these represent an easy way to identify
each version of the game, including the region in which it was available and the
revision of the code, MAME uses this information to identify each set. UAA is
American revision A, while ABD is Asian revision D.
For companies where it is less clear sets are often simply labeled as `(set 1)`
and `(set 2)`. Unreleased games as labeled as `(Prototype)` and non-original
versions of games are labaled as `(Bootleg)`
Obtaining Roms:
Roms can be obtained through a number of methods.
1. Legally, from www.mamedev.org. For Three ROM sets, Gridlee, Robby Roto, and
Alien Arena the game`s copyright holders have given permission for them to be
freely distributed for non-commercial use.
2. By using an EPROM reader, to read the ROMs yourself from your Arcade PCB.
3. Illegally usually through download services or otherwise.
For more information on the legality of ROMs see the main ROM Image article.
Front ends
Emuloader being used with MAME, Emuloader is a popular MAME Front End for use on
Windows.Although the main MAME program is only made available as a command-line
application for Windows and Linux, there are several popular front ends, such as
GXMame[2] for Linux, which allow MAME to be launched from a more familiar,
graphical environment as well as providing facilities such as auditing ROMs.
MAME32 for Windows (not a front end, but a full port) also offers this
functionality.
Additionally, the front ends make available more information about the games
themselves, contributing significantly to the experience, such as history
information and images of the arcade cabinets.
Some frontends have the sole purpose to launch games and hide the operating
system. These frontends are generally used in MAME arcade cabinets, to enhance
the illusion that the cabinet is a real arcade machine.
Legal status of MAME
Owning and distributing MAME itself is legal in the US, as it is merely an
emulator. Some companies (notably Sony) have attempted in court to prevent
emulators from being sold, but they have been ultimately unsuccessful. As yet,
no legal action has been brought against the MAME team.
The situation regarding ROM images of games is less clear-cut. Most if not all
arcade games are still covered by copyright.
Some copyright holders have been indecisive regarding making licensed MAME ROMs
available to the public. For example, in 2003 Atari made MAME-compatible ROMs
for 27 of its arcade games available through the internet site Star ROMs.
However, a status check in March 2006 revealed a reversal of that decision, and
the ROMs are no longer being sold there.
Other copyright holders have released games which are no longer commercially
viable free of charge to the public. Games including Gridlee and Robby Roto have
been released by their copyright holders under non-commercial licenses. These
games may be downloaded legally from the official MAME web site.
However, the majority of games emulated in MAME at this time are copyrighted but
no longer commercially available in any form. The legality of distributing or
downloading such games depends greatly upon the laws in each country. Many
national copyright laws include language which limits offenses to those which
cause material harm to copyright holders. An argument could be made that where a
game is no longer being manufactured or sold, this could not be the case.
A peculiar legal situation exists with regard to games which are covered by
copyright but where there no longer exists a copyright holder. Such games are
termed orphan works. They are covered by copyright but, since they have no legal
owner, do not make money for anybody. Copyright reformers such as Lawrence
Lessig believe that such works no longer have a reason to be copyrighted and
should be in the public domain. The United States Copyright Office is currently
seeking comments on this issue.
MAME license
While MAME is available at no cost, including its source code, it is not
open-source software or free software because commercial use and redistribution
are prohibited. That is, its license does not meet the conditions of the Open
Source Definition, nor is it `free software` as defined by the Free Software
Foundation.
In particular, MAME may be redistributed in source or binary form, either
modified or unmodified, but: `Redistributions may not be sold, nor may they be
used in a commercial product or activity.` Also, redistributions of modified
versions (derivative works) must include the complete corresponding source code
(similar to a copyleft).
There exist, however, a number of unlicensed builds, including multiplayer
builds that support the Kaillera server protocol, or others that add newer
games.
