The Full Wiki

MAME: Wikis

  
  
  

Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.

Encyclopedia

Updated live from Wikipedia, last check: June 03, 2012 16:22 UTC (38 seconds ago)

From Wikipedia, the free encyclopedia

MAME
MAME Logo
Developer(s) Nicola Salmoria and the MAME Team
Initial release February 5, 1997; 13 year(s) ago (1997-02-05)
Stable release 0.137  (March 11, 2010; 2 day(s) ago (2010-03-11)) [+/−]
Preview release 0.136u4  (March 4, 2010; 9 day(s) ago (2010-03-04)) [+/−]
Written in C++
Operating system Cross-platform
Type Emulator
License MAME License
Website www.mamedev.org

MAME is an emulator application designed to recreate the hardware of arcade game systems in software, with the intent of preserving gaming history and preventing vintage games from being lost or forgotten. The aim of MAME is to be a reference to the inner workings of the emulated arcade machines; the ability to actually play the games is considered "a nice side effect" [1]. The name is an acronym for Multiple Arcade Machine Emulator.

The first public MAME release (0.1) was on February 5, 1997, by Nicola Salmoria. As of version 0.137, released March 11, 2010, the emulator now supports 4392 unique games and 8604 actual ROM image sets and is growing all the time. However, not all of the games in MAME are currently playable; 1291 ROM sets are marked as not working in the current version, and 48 are not actual games but BIOS ROM sets. The project is currently coordinated by Aaron Giles.

Contents

Design

The MAME core coordinates the emulation of several elements at the same time. These elements replicate the behavior of the hardware present in the original arcade machines. MAME can emulate many different central processing units (CPUs), both in number or types, including processors, audio and video specific chips, integrated circuits, microcontrollers, etc., including the needed elements for them to communicate together such as memory regions, RAM, data buses, peripherals, storage devices, etc. These elements are virtualized so MAME acts as a software layer between the original program of the game, and the platform MAME runs on.

Individual arcade systems are specified by drivers which take the form of C macros. These drivers specify the individual components to be emulated and how they communicate with each other.

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, contrary to an emulator such as PocketNES, 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 1 GHz PC. More modern arcade machines are based on 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.

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 (but usually longer). These releases are given a version number, e.g. 0.99. The Unix-like numbering scheme is used, i.e. the version after 0.99 is 0.100, which differs from standard decimal numbering. These major releases are the most mature and least frequent, and are aimed at the average computer user who wants to try MAME. An executable version for the current main development platform (currently Microsoft Windows) 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. The main purpose of the u releases is keeping development code in synchronization among developers. As such, these minor releases are not made officially available as executables. They are released only as source diffs against the most recent major version.
  • For those users who wish to keep up with day-to-day MAME development, the MAME source code is kept on the public Mess.org Subversion server for those who wish to access it. This is intended only for those who have access to compiler tools and feel comfortable building software from source code.

Originally, the official binary releases of MAME were for MS-DOS. Later, MS-DOS and Windows binaries were distributed. In the latest versions, the only official binary releases are for Windows. MAME has been also ported to many different platforms. The X11 port for Unix-like systems, named XMAME, is currently undergoing a major rewrite and will not have any public releases in the near future. The SDL port is SDLMAME, and is considered XMAME's official replacement[2]. SDLMAME is functionally no more than the MAME core with an SDL-based OS-dependent layer, and indeed, SDLMAME has been merged into the main codebase of MAME as of 0.136u1 and is no longer a separate port. The discontinued Mac OS X port MacMAME has been replaced by another port for that platform, MAME OS X, though the SDL component of MAME is also available for use on Mac OS X. In addition, different versions of MAME have been ported to many other computers, PDAs, digital cameras and game consoles. Most of these ports, however, are based on very old versions of MAME because current versions would run very slow due to being more accurate, and many of them are not under active development anymore.

Game data

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, laserdiscs, and compact discs are also used. Most of these devices can be copied to computer files, in a process called "dumping". The resulting files are often generically called ROM images or ROMs regardless of the kind of storage they came from.

To play a particular game, MAME requires a set of files called a ROM set. They contain all the data from the original machine; for legal reasons, however, MAME itself does not include any of these files.

Some arcade machines use analog hardware, including laserdiscs and magnetic tape, to store and play back audio/video data such as soundtracks and cinematics. This data must be ripped and encoded into digital files that can be read by MAME, ordinarily involving lossy compression. Consequently, the digital copy is not a perfect reproduction of the analog source.

MAME uses two different file types for storing ROMs depending on the original medium:

  • The majority of ROM dumps are stored in raw format and contained in ZIP archives, one for each game.
  • For arcade machines which use hard disks or CDs, MAME uses CHD (Compressed Hunks of Data) files which contain the entire contents of the original hard disk, CD or Laserdisc. Due to the large size of these media, the CHD files derived from them also tend to be large.

Parents and clones

  • Original ROM sets ("parent"): 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 are used.
  • Clone ROM sets: 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: the ROMs in common between all games on various standardized arcade systems (e.g. Neo-Geo). They boot the hardware and then allow the regular game software to take over.

Naming convention

A single supported game is usually referred to as a ROM set. Usually 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 ROM set an 8-letter name for identification as well as a description associated with that 8-letter name, though for the past couple releases, this naming convention has been loosened, with some newer ROM sets having 9 or 10-letter names. Examples:

  • Original ROM: hyperpac "Hyper Pacman" - MAME expects all required ROM images in a folder (or ZIP file) called hyperpac.
  • Clone ROM: 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 often 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. Although some standards do exist, the descriptive long names often follow naming conventions set by the original game manufacturers. For example, Sunset Riders by Konami:

  • ssriders "Sunset Riders (4 Players ver EAC)" (This is the parent set, with clones following)
  • 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)"
  • sunsetbl "Sunset Riders (bootleg 4 Players ver ADD)"

Konami gave each revision of their later games a very specific and clearly visible version number, from the mid-90s onwards. 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 are labeled as "(prototype)" and non-original versions of games are labeled as "(bootleg)".

User interface

Emuloader being used with MAME

Although the main MAME program was once only made available as a command-line application for Microsoft Windows and DOS, there has been a minimalist GUI added to version .118 of the Windows distribution, and is currently available in all of the targets of the official MAME codebase, including MAME/SDL. 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 of launching games while hiding 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 most countries, as it is merely an emulator. Some companies (notably Sony and Nintendo) have attempted in court to prevent emulators from being sold, but they have been ultimately unsuccessful.[3] As yet, no legal action has been brought against the MAME team.

The situation regarding ROM images of games is less clear-cut. Most 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 Alien Arena, Gridlee, Robby Roto, Teeter Torture and a number of early games by Exidy have been released by their copyright holders under non-commercial licenses. These games may be downloaded legally from the official MAME web site. As of the 0.125u1 release, Gaelco's World Rally is supported and fully working thanks to the ROMs and protection data being made freely available for non-commercial use from their website.[4]

MAME license

While MAME is available at no cost, including its source code, it is not 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." The main goal of this is to prevent arcade operators from installing MAME cabinets and profiting from the works of the original manufacturers of the game.[5]

Also, redistributions of modified versions (derivative works) must include the complete corresponding source code (similar to a copyleft).

There exist, however, a number of derivative versions that violate the license by not releasing the full and complete source code, including multiplayer builds that support the Kaillera server protocol, or others that add newer games.[citation needed]

MAME cabinets

MAME arcade cabinets are meant to provide the experience of an entire video arcade in one unit. They can come in many different varieties, such as upright cabinets which are the full-size cabinets many people are used to, cocktail cabinets which are similar to tables with a glass top that players look down on to play on, and bar-top machines which are miniature versions of the uprights.

Mame enthusiasts will either build their own cabinets from scratch or they will restore an old second hand cabinet with a computer at its core in place of the original circuit boards. When constructing a cabinet in this fashion there are many considerations to be made on which parts to choose and methods of connecting the external joysticks, pushbuttons, monitor and speakers.[6]

In 2004 a bootleg version of MAME was created, called '39-in-1' which ran on an Intel XScale processor. As of version 0.133u1, MAME also emulates this 'game', thus in essence, emulates itself.

Reception

Retro Gamer called MAME "the original, and best, arcade emulator" in reference to the MAME32 package.[7] An entire chapter of the book Retro Gaming Hacks is devoted to the use of MAME.[8]

See also

References

  1. ^ http://mamedev.org/about.html
  2. ^ http://rbelmont.mameworld.info/?page_id=163
  3. ^ Glasner, Joanna (10 February 2000). "Court Upholds PlayStation Rival". Wired. http://www.wired.com/news/business/0,1367,34281,00.html. Retrieved 24 September 2006. 
  4. ^ "Gaelco games at home!". http://www.gaelco.com/english/pages/hablando/frhablan.htm. 
  5. ^ Salmoria, Nicola. "MAME Legal Information". The MAME Development Team. http://mamedev.org/legal.html. Retrieved 22 March 2009. 
  6. ^ J Wiley, Project Arcade, Build Your Own Arcade Machine, 2004 - ISBN 0-7645-5616-9
  7. ^ "Retro Coverdisc". Retro Gamer (15): 107. 2005. 
  8. ^ Kohler, Chris (2006). Retro Gaming Hacks. Sebastopol: O'Reilly. pp. 84-136. ISBN 0596009178. 

External links


Strategy wiki

Up to date as of January 23, 2010

From StrategyWiki, the free strategy guide and walkthrough wiki

MAME
Box artwork for MAME.
Developer(s) MAMEDev
Publisher(s) MAMEDev
Release date(s)
Genre(s) Emulators
System(s) Windows, Mac OS, Linux
For games supported by MAME see Category:MAME.

MAME is an emulator for arcade systems. Unlike other emulators, which seek to handle all games for their focus systems, MAME only supports games for which support has specifically been added to the emulator. It currently supports over 6000 different games (approximately 3500 of those are unique games, the rest are clones).

Introduction

What this guide does:

  • Help you to locate and install MAME on your computer.
  • Explains how to configure and operate MAME.
  • Details the different variations of MAME.
  • Provides information about support files and front-ends.
  • Discusses controller options and lightly touches upon the phenomenon of building a MAME cabinet.

What this guide does not do:

  • Tell you where to find and download ROMs.
  • Tell you how to configure options that are unique to particular MAME variations.
  • Tell you how to use MAME on a system other than Windows, Linux, or Mac OS. Unofficial ports to systems such as the Xbox do exist, but they are not documented here.

Table of Contents


Gaming

Up to date as of January 31, 2010
(Redirected to Multiple Arcade Machine Emulator article)

From Wikia Gaming, your source for walkthroughs, games, guides, and more!


Multiple Arcade Machine Emulator


Developer Nicola Salmoria and others
Operating System Microsoft Windows, Mac, Linux
Latest version 0.125 / May 5, 2008
First release February 5, 1997
Use Emulator
License Custom
Website http://www.mamedev.org/
Website

MAME is an emulator application designed to recreate the hardware of arcade game systems in software, 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.

The first public MAME release (0.1) was on February 5, 1997, by Nicola Salmoria. As of version 0.111 (actually the 155th proper release), released December 10, 2006, MAME now supports 3400 unique games and 6344 actual ROM image sets and is growing all the time. However, not all of the games in MAME are playable; 740 ROM sets are marked as not working in the current version, and 28 are not actual games but BIOS ROM sets.

Stub
This article is a stub. You can help by adding to it.

Stubs are articles that writers have begun work on, but are not yet complete enough to be considered finished articles.


This article uses material from the "Multiple Arcade Machine Emulator" article on the Gaming wiki at Wikia and is licensed under the Creative Commons Attribution-Share Alike License.







Got something to say? Make a comment.
Your name
Your email address
Message
Please enter the solution to case below
45-15=