FAQ:About

From MAMEDEV Wiki
Revision as of 19:37, 13 March 2007 by Aaron (talk | contribs) (New page: ==What is MAME?== MAME stands for '''M'''ultiple '''A'''rcade '''M'''achine '''E'''mulator. When used in conjunction with an arcade game's data files (ROMs, CHDs, samples, etc.), MAME atte...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

What is MAME?

MAME stands for Multiple Arcade Machine Emulator. When used in conjunction with an arcade game's data files (ROMs, CHDs, samples, etc.), MAME attempts to reproduce that game as faithfully as possible on a more modern general-purpose system. MAME can currently emulate many thousands of classic arcade video games from the the very earliest CPU-based systems to much more modern 3D platforms.

The ROM and CHD images that MAME requires are "dumped" from arcade games' original circuit-board ROM chips, hard disks, and CD-ROMs. MAME becomes the "hardware" for the games, taking the place of their original CPUs and support chips. Therefore, these games are NOT simulations, but the actual, original games that appeared in arcades, complete with all the bugs, glitches, slowdowns, and subtleties of the original game as it appeared in the arcade.

MAME's purpose is to preserve these decades of video-game history. As gaming technology continues to rush forward, MAME prevents these important "vintage" games from being lost and forgotten. This is achieved by documenting the hardware and how it functions. The source code to MAME serves as this documentation. The fact that the games are playable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully)?

Also see: About MAME

What do I need to run MAME?

MAME is written in fairly generic C, and has been ported to numerous platforms. Over time, as computer hardware has evolved, the MAME code has evolved as well to take advantage of the greater processing power and hardware capabilities offered.

The official MAME binaries are compiled and designed to run on a standard Windows-based system. The minimum requirements are:

  • Any MMX-capable AMD or Intel processor (Pentium III or later recommended for current versions)
  • Windows 98 or later (Windows 2000 or later preferred)
  • DirectX 5.0 or later (included with all versions of Windows 98 or later)
  • A DirectDraw or Direct3D capable graphics card
  • Any DirectSound capable sound card

Of course, the minimum requirements are just that: minimal. You may not get optimal performance from such a system, but MAME should run. Modern versions of MAME require more power than older versions, so if you have a less-capable PC, you may find that using an older version of MAME may get you better performance, at the cost of lowered accuracy and fewer supported games.

As of MAME 0.106 and later, MAME will take advantage of 3D hardware for compositing artwork and scaling the games to full screen. To make use of this, you should have a modern Direct3D 8-capable video card with at least 16MB of video RAM.

Around the same time, MAME added minimal multi-processor support, if you use the -mt flag. This means that some of the video processing can be done on a second CPU core if it is available. To take advantage of this, you should run MAME on a dual core (or greater) system.

Keep in mind that even on the fastest computers available, MAME is still incapable of playing some games at full speed. The goal of the project isn't to make all games run playably on your system; the goal is to document the hardware and reproduce the behavior of the hardware as faithfully as possible.

What platforms does MAME run on?

The official build of MAME is targeted for Windows platforms.

Other popular up-to-date MAME ports include:

  • SDLMAME is an SDL-targeted port of MAME maintained by R. Belmont. SDL is a platform-independent library, and so SDLMAME can be configured to run on Linux, Windows, MacOS X, and many other platforms.
  • MAME OS X is a native MacOS X port of MAME maintained by Dave Dribin.

A number of additional MAME ports are available, but not updated as frequently. These include:

  • MacMAME, a MacOS X port of MAME maintained by Brad Oliver.
  • XMAME, an X11 port of MAME maintained by Laurent Desnogues.
  • AdvanceMAME, a DOS/Linux port of MAME optimized for arcade monitors that was maintained by Andrea Mazzoleni. Note the 'was'. This port is no longer maintained. The last official release was on 25-06-2006, AdvanceMAME v0.106.0 (R.I.P).

In addition, people have ported MAME to various cameras, PDAs, game consoles, and other platforms. Search the web to find more details on these more obscure ports.

How is MESS related to MAME? How about PinMAME?

MESS (Multiple Emulator Super System) is a sister project to MAME that shares the core MAME emulation engine, but provides drivers and additional tools that are focused on the emulation of console and computer systems. The MESS project keeps up-to-date with changes to the core MAME system, and generally releases shortly after each major MAME release.

PinMAME (Pinball MAME) is a MAME-derived project that aims to emulate the circuit boards that ran the displays and produced the sound for most modern-era pinball machines. Of course, with only the sound effects and score displays, you can't actually play the pinball game, so there are mechanisms to connect PinMAME to various pinball simulators to complete the picture. PinMAME releases on its own schedule and has not kept sync with recent MAME developments, instead using the source code from an older MAME release as its basis.

Is MAME Open Source?

MAME's License is a modified version of the standard BSD license. The primary modification is that we do not allow commercial distribution or use of MAME, in order to limit some of the obvious abuses of the code. Because of this modification, MAME's license does not fall under the definition of an Open Source (uppercase) license. This is one of the reasons you don't see the MAME source code hosted on sites such as SourceForge.

Confusingly, MAME is often referred to as open source (lowercase), as its development shares much in common with other open source projects. However, in spite of its freely available source code, MAME may not be used in a commercial setting, as specified by its license.

Is MAME free?

Yes, MAME is really free. The source code is freely available, too, though it is not Open Source.

According to the license, it is illegal to sell MAME or its source.

Is MAME illegal?

No. Emulating another platform, in itself, is perfectly legal.

ROM and CHD images are a different matter. There is a separate FAQ available on this site that deals with common questions surrounding the legality of owning and copying ROM and CHD images.

What games does MAME emulate so far?

Each version of MAME includes support for additional games. If you run MAME with the -listfull option, it will display a list of all supported games.

On the web, there is an excellent searchable database of the games that MAME supports, called MAWS. You can search games by name, manufacturer, year, etc.

Another very helpful site is Bobby Tribble's page of unemulated arcade games. It contains numerous screen shots and descriptions of yet-to-be emulated games.

Also take a look at System16 - The Arcade Museum. It is a very detailed site about the games made by several of the biggest manufacturers and it also contains lots of hardware information.