Mame Adjei
   HOME

TheInfoList



OR:

MAME (formerly an
acronym An acronym is a word or name formed from the initial components of a longer name or phrase. Acronyms are usually formed from the initial letters of words, as in ''NATO'' (''North Atlantic Treaty Organization''), but sometimes use syllables, as ...
of Multiple Arcade Machine Emulator) is a free and open-source
emulator In computing, an emulator is hardware or software that enables one computer system (called the ''host'') to behave like another computer system (called the ''guest''). An emulator typically enables the host system to run software or use pe ...
designed to recreate the hardware of arcade game systems in
software Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work. ...
on modern personal computers and other platforms. Its intention is to preserve gaming history by preventing vintage games from being lost or forgotten. It does this by emulating the inner workings of the emulated arcade machines; the ability to actually play the games is considered "a nice side effect". ''
Joystiq ''Joystiq'' was a video gaming blog founded in June 2004 as part of the Weblogs, Inc. family of weblogs, now owned by AOL. It was AOL's primary video game blog, with sister blogs dealing with MMORPG gaming in general and the popular MMORPG ''Wor ...
'' has listed MAME as an application that every
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ser ...
and Mac gamer should have. The first public MAME release was by
Nicola Salmoria Nicola Salmoria is an Italian software developer. He is the original developer of MAME, an emulator application designed to recreate the hardware of arcade machines in software. In December 2002, he graduated from the University of Siena with a ...
on 5 February 1997. It now supports over 7,000 unique games and 10,000 actual
ROM image A ROM image, or ROM file, is a computer file which contains a copy of the data from a read-only memory chip, often from a video game cartridge, or used to contain a computer's firmware, or from an arcade game's main board. The term is frequen ...
sets, though not all of the games are playable. MESS, an emulator for many
video game console A video game console is an electronic device that outputs a video signal or image to display a video game that can be played with a game controller. These may be home consoles, which are generally placed in a permanent location connected to ...
s and computer systems, based on the MAME core, was integrated into MAME in 2015.


History and overview

The MAME project was started by Italian programmer
Nicola Salmoria Nicola Salmoria is an Italian software developer. He is the original developer of MAME, an emulator application designed to recreate the hardware of arcade machines in software. In December 2002, he graduated from the University of Siena with a ...
. It began as a project called Multi-Pac, intended to preserve games in the Pac-Man family, but the name was changed as more games were added to its framework. The first MAME version was released in 1996. In April 1997, Salmoria stepped down for his
national service National service is the system of voluntary government service, usually military service. Conscription is mandatory national service. The term ''national service'' comes from the United Kingdom's National Service (Armed Forces) Act 1939. The ...
commitments, handing stewardship of the project to fellow Italian Mirko Buffoni for half a year. In May 2003, David Haywood took over as project coordinator; and from April 2005 to April 2011, the project was coordinated by Aaron Giles; then Angelo Salese stepped in as the coordinator; and in 2012, Miodrag Milanovic took over. The project is supported by hundreds of developers around the world and thousands of outside contributors. At first, MAME was developed exclusively for
MS-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few ope ...
, but was soon ported to
Unix-like A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
systems (X/MAME), Macintosh (MacMAME and later MAME OS X) and Windows (MAME32). Since 24 May 2001, with version 0.37b15, MAME's main development has occurred on the Windows platform, and most other platforms are supported through the SDLMAME project, which was integrated into the main development source tree in 2006. MAME has also been ported to other computers, game consoles, mobile phones and PDAs, and at one point even to digital cameras. In 2012,
Google Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
ported MAME to
Native Client Google Native Client (NaCl) is a discontinued sandboxing technology for running either a subset of Intel x86, ARM, or MIPS native code, or a portable executable, in a sandbox. It allows safely running native code from a web browser, independen ...
, which allows MAME to run inside Chrome. Major releases of MAME occur approximately once a month. Windows executables in both 32-bit and 64-bit fashion are released on th
development team's official website
along with the complete source code. Smaller, incremental "u" (for update) releases were released weekly (until version 0.149u1) as source
diff In computing, the utility diff is a data comparison tool that computes and displays the differences between the contents of files. Unlike edit distance notions used for other purposes, diff is line-oriented rather than character-oriented, but ...
s against the most recent major version, to keep code in synchronization among developers. MAME's source code is developed on a public
GitHub GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continu ...
repository, allowing those with the required expertise and tools to build the most up-to-date version and contribute enhancements as pull requests. Historical version numbers 0.32, and 0.38 through 0.52 inclusively, do not exist; the former was skipped due to similar naming of the GUI-equipped MAME32 variant (which itself has since been rename
MAMEUI
due to the move to 64-bit builds), while the latter numbers were skipped due to the numerous releases in the 0.37 beta cycle (these version numbers have since been marked next to their equivalent 0.37 beta releases on the official MAMEdev website). MAME's architecture has been extensively improved over the years. Support for both raster and
vector display A vector monitor, vector display, or calligraphic display is a display device used for computer graphics up through the 1970s. It is a type of CRT, similar to that of an early oscilloscope. In a vector display, the image is composed of drawn li ...
s, multiple CPUs, and sound chips were added in the project's first six months. A flexible timer system to coordinate synchronization between multiple emulated CPU cores was implemented, and ROM images started to be loaded according to their CRC32 hash in the ZIP files they were stored in. MAME has pioneered the reverse engineering of many undocumented system architectures, various CPUs (such as the M6809-derivative custom
Konami , is a Japanese multinational video game and entertainment company headquartered in Chūō, Tokyo, it also produces and distributes trading cards, anime, tokusatsu, pachinko machines, slot machines, and arcade cabinets. Konami has casino ...
CPU with new instructions) and sound chips (for example, Yamaha FM sound chips). MAME developers have been instrumental in reverse engineering many proprietary encryption algorithms utilized in arcade games, including
Neo Geo Neo Geo is a family of video game hardware developed by SNK. On the market from 1990 to 2004, the brand originated with the release of an arcade system, the Neo Geo MVS and its home console counterpart, the Neo Geo AES. The Neo Geo MVS was ...
,
CP System II The or CPS-2 is an arcade system board that Capcom first used in 1993 for '' Super Street Fighter II''. It was the successor to their previous CP System and Capcom Power System Changer arcade hardware and was succeeded by the CP System III hardw ...
and CP System III. MAME's popularity has gone mainstream, with enthusiasts building their own arcade game cabinets to replay old games, and even with some companies producing illegal MAME derivatives to be installed in arcades. Cabinets are built either from scratch or by taking apart and modifying an original arcade game cabinet. Cabinets inspired by classic games can also be purchased and assembled (with MAME optionally preinstalled). Although MAME contains a rudimentary user interface, the use of MAME in arcade game cabinets and home theaters necessitates special launcher applications called '' front ends'' with more advanced features. They provide varying degrees of customization, allowing one to see images of games' cabinets, histories, playing tips, specialized logo artwork for games, and video of the game's play or ''
attract mode This list includes terms used in video games and the video game industry, as well as slang used by players. 0–9 A ...
''. The information within MAME is free for reuse, and companies have been known to utilize MAME when recreating their old classics on modern systems. Some have even hired MAME developers to create emulators for their old properties. An example is the ''
Taito Legends ''Taito Legends'' is a compilation of 29 arcade games released for the PlayStation 2, Xbox, and Microsoft Windows. The games were originally developed by Taito. The European release was published by Empire Interactive, who had licensed the game ...
'' pack, with ROMs readable on select versions of MAME. On 27 May 2015 (0.162), the games console and computer system emulator MESS was integrated with MAME (so the MESS User Manual is still the most important usage instruction for the non-arcade parts of MAME). This also lead to the removal of the acronym, as MAME can now emulate more than arcade machines. Since 2012, MAME has been maintained by former MESS project leader Miodrag Milanović. In May 2015, it was announced that MAME's developers planned to re-license the software under a more common free and open-source license, away from the original MAME license. MAME developer Miodrag Milanovic explained that the change was to draw more developer interest, allow game manufacturers to distribute MAME to emulate their own games, and to make the software ''"''a learning tool for developers working on development boards". The transition of MAME's licensing to BSD/GPL was completed in March 2016. Most of MAME's
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the w ...
(90%+) is now available under the BSD-3-Clause license, and the complete project is under the GPL-2.0-or-later license. On 24 February 2016 (0.171), MAME embedded the MEWUI front-end (and its developer joined the team), providing MAME with a flexible and more full-featured UI. On 30 December 2021, exA-Arcadia, the Western copyright holders of the games
Akai Katana is a bullet hell shooter video game developed by Cave that was released on August 20, 2010 in arcades. A video game console port, , was released on the Xbox 360 on May 26, 2011 in Japan. Rising Star Games released the game in North America and Eu ...
and DoDonPachi SaiDaiOuJou had their lawyers filed a cease and desist notice to the MAME developers over those games being included in the emulator. MAME complied with the request a day later, making both unplayable on the emulator outside of command line, as of version 0.240.


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 An arcade cabinet, also known as an arcade machine or a coin-op cabinet or coin-op machine, is the housing within which an arcade game's electronic hardware resides. Most cabinets designed since the mid-1980s conform to the Japanese Amusement Mac ...
. MAME can emulate many different
central processing unit A central processing unit (CPU), also called a central processor, main processor or just Processor (computing), processor, is the electronic circuitry that executes Instruction (computing), instructions comprising a computer program. The CPU per ...
s (CPUs) and associated hardware. These elements are virtualized so MAME acts as a software layer between the original program of the game, and the platform MAME runs on. MAME supports arbitrary screen resolutions, refresh rates and display configurations. Multiple emulated monitors, as required by for example '' Darius'', are supported as well. Individual arcade systems are specified by ''drivers'' which take the form of
C preprocessor The C preprocessor is the macro preprocessor for the C, Objective-C and C++ computer programming languages. The preprocessor provides the ability for the inclusion of header files, macro expansions, conditional compilation, and line control ...
macros. These drivers specify the individual components to be emulated and how they communicate with each other. While MAME was originally written in C, the need for object oriented programming caused the development team to begin to compile all code as
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
for MAME 0.136, taking advantage of additional features of that language in the process. Although a great majority of the CPU emulation cores are interpretive, MAME also supports
dynamic recompilation In computer science, dynamic recompilation is a feature of some emulators and virtual machines, where the system may recompile some part of a program during execution. By compiling during execution, the system can tailor the generated code t ...
through an intermediate language called the Universal Machine Language (UML) to increase the emulation speed. Back-end targets supported are x86 and x64. A C back end is also available to further aid verification of the correctness. CPUs emulated in this manner are SH-2, MIPS R3000 and PowerPC.


ROM data

The original program code, graphics and sound data need to be present so that the system can be emulated. In most arcade machines, the data is stored in read-only memory chips (ROMs), although other devices such as cassette tapes, floppy disks, hard disks, laserdiscs, and
compact disc The compact disc (CD) is a digital optical disc data storage format that was co-developed by Philips and Sony to store and play digital audio recordings. In August 1982, the first compact disc was manufactured. It was then released in Oc ...
s are also used. The contents of most of these devices can be copied to computer files, in a process called "dumping". The resulting files are often generically called
ROM image A ROM image, or ROM file, is a computer file which contains a copy of the data from a read-only memory chip, often from a video game cartridge, or used to contain a computer's firmware, or from an arcade game's main board. The term is frequen ...
s or ROMs regardless of the kind of storage they came from. A game usually consists of multiple ROM and
PAL Phase Alternating Line (PAL) is a colour encoding system for analogue television. It was one of three major analogue colour television standards, the others being NTSC and SECAM. In most countries it was broadcast at 625 lines, 50 fields (25 ...
images; these are collectively stored inside a single
ZIP file ZIP is an archive file format that supports lossless data compression. A ZIP file may contain one or more files or directories that may have been compressed. The ZIP file format permits a number of compression algorithms, though DEFLATE is th ...
, constituting a "ROM set". In addition to the "parent" ROM set (usually chosen as the most recent "World" version of the game), games may have "clone" ROM sets with different program code, different language text intended for different markets etc. For example, '' Street Fighter II Turbo'' is considered a variant of ''Street Fighter II Champion Edition''. System boards like the
Neo Geo Neo Geo is a family of video game hardware developed by SNK. On the market from 1990 to 2004, the brand originated with the release of an arcade system, the Neo Geo MVS and its home console counterpart, the Neo Geo AES. The Neo Geo MVS was ...
that have ROMs shared between multiple games require the ROMs to be stored in "BIOS" ROM sets and named appropriately. MAME ROMs come in three forms, ''split'', ''non-merged'', and ''merged'': * A "split" ROM only contains information about itself. For example, a "clone" ROM does not have the necessary data the "parent" ROM has, and a "parent" ROM will not contain its clones. * A "non-merged" set is a ROM that has everything a program needs to run in one ZIP file, such as its "parent". Non-merged roms take up more space due to redundancy, but are useful for cases where only a specific set of programs are desired, such as only desiring one specific version of a game without desiring to also obtain the other required files. * A "merged" set is a ROM that contains the "parent" ROM and its "clones" in one package. For example, a merged '' Pac-Man'' rom would contain the "parent" Japanese ''Puck-Man'' rom, the Midway USA ''Pac-Man'' version, and all other clone or bootleg versions of the game. It is more space efficient than a split set. Hard disks, compact discs and laserdiscs are stored in a MAME-specific format called CHD (Compressed Hunks of Data). Some arcade machines use analog hardware, such as laserdiscs, to store and play back audio/video data such as soundtracks and cinematics. This data must be captured and encoded into digital files that can be read by MAME. MAME does not support the use of external analog devices, which (along with identical speaker and speaker enclosures) would be required for a 100% faithful reproduction of the arcade experience. A number of games use sound chips that have not yet been emulated successfully. These games require sound samples in WAV file format for sound emulation. MAME additionally supports artwork files in PNG format for bezel and overlay graphics. Furthermore, emulation of games with liquid-crystal displays such as
Game & Watch The Game & Watch brand ( ''Gēmu & Uotchi''; called ''Tricotronic'' in West Germany and Austria, abbreviated as ''G&W'') is a series of handheld electronic games developed, manufactured, released, and marketed by Nintendo from 1980 to 1991. C ...
or extra physical aspects such as
slot machines A slot machine (American English), fruit machine (British English) or poker machine ( Australian English and New Zealand English) is a gambling machine that creates a game of chance for its customers. Slot machines are also known pejoratively ...
usually require extra image files for backgrounds or other aspects of the games.


Philosophy and accuracy

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 easier to run at the expense of emulation accuracy. Components such as CPUs are emulated at a low level (meaning individual instructions are emulated) whenever possible, and
high-level emulation UltraHLE is a discontinued emulator for the Nintendo 64. Emulating the Nintendo 64 (which was only 3 years old at the time) made it the first of the N64 emulators to run commercial titles at a playable frame rate on the hardware of the time, an ...
(HLE) is only used when a chip is completely undocumented and cannot be reverse-engineered in detail. Signal level emulation is used to emulate audio circuitry that consists of analog components. MAME emulates well over a thousand different arcade system boards, a majority of which are completely undocumented and custom designed to run either a single game or a very small number of them. The approach MAME takes with regards to accuracy is an incremental one; systems are emulated as accurately as they reasonably can be. Bootleg copies of games are often the first to be emulated, with proper (and copy protected) versions emulated later. Besides encryption, arcade games were usually protected with custom
microcontroller unit A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs ( processor cores) along with memory and programmabl ...
s (MCUs) that implemented a part of the game logic or some other important functions. Emulation of these chips is preferred even when they have little or no immediately visible effect on the game itself. For example, the monster behavior in
Bubble Bobble is a 1986 platform arcade game developed and published by Taito. It was distributed in the United States by Romstar, and in Europe by Electrocoin. Players control Bub and Bob, two dragons that set out to save their girlfriends from a world know ...
was not perfected until the code and data contained with the custom MCU was dumped through the
decapping Decapping (decapsulation) or delidding of an integrated circuit is the process of removing the protective cover or integrated heat spreader (IHS) of an integrated circuit so that the contained die is revealed for visual inspection of the micro cir ...
of the chip. This results in the ROM set requirements changing as the games are emulated to a more and more accurate degree, causing older versions of the ROM set becoming unusable in newer versions of MAME. Portability and generality are also important to MAME. Combined with the uncompromising stance on accuracy, this often results in high system requirements. Although a 2 GHz processor is enough to run almost all 2D games, more recent systems and particularly systems with 3D graphics can be unplayably slow, even on the fastest computers. MAME does not currently take advantage of hardware acceleration to speed up the rendering of 3D graphics, in part because of the lack of a stable cross-platform 3D API, and in part because software rendering can, in theory, be an exact reproduction of the various custom 3D rendering approaches that were used in the arcade games.


Legal status

Owning and distributing MAME itself is legal in most countries, as it is merely an emulator. Companies such as
Sony , commonly stylized as SONY, is a Japanese multinational conglomerate corporation headquartered in Minato, Tokyo, Japan. As a major technology company, it operates as one of the world's largest manufacturers of consumer and professiona ...
have attempted in court to prevent other software such as
Virtual Game Station The Virtual Game Station (VGS, code named Bonestorm) was an emulator by Connectix that allows Sony PlayStation games to be played on a desktop computer. It was first released for the Macintosh, in 1999, after being previewed at Macworld/iWorld ...
, a
Sony PlayStation is a video gaming brand that consists of five home video game consoles, two handhelds, a media center, and a smartphone, as well as an online service and multiple magazines. The brand is produced by Sony Interactive Entertainment, a divi ...
emulator from being sold, but they have been ultimately unsuccessful. MAME itself has thus far not been the subject of any court cases. Most arcade games are still covered by copyright. Downloading or distributing copyrighted ROMs without permission from copyright holders is almost always a violation of copyright laws. However, some countries (including the US) allow the owner of a board to transfer data contained in its ROM chips to a personal computer or other device they own. Some copyright holders have explored making arcade game ROMs available to the public through licensing. For example, in 2003 Atari made MAME-compatible ROMs for 27 of its arcade games available on the Internet site ''Star ROMs''. However, by 2006 the ROMs were no longer being sold there. At one point, various Capcom games were sold with the HotRod arcade joystick manufactured by Hanaho, but this arrangement was discontinued as well. Other copyright holders have released games which are no longer commercially viable free of charge to the public under licenses that prohibit commercial use of the games. Many of these games may be downloaded legally from the official MAME web site. The Spanish arcade game developer Gaelco has also released '' World Rally'' for non-commercial use on their website. The MAME community has distanced itself from other groups redistributing ROMs via the Internet or physical media, claiming they are blatantly infringing copyright and harm the project by potentially bringing it into disrepute. Despite this, illegal distributions of ROMs are widespread on the Internet, and many "Full Sets" also exist which contains a full collection of a specific version's ROMs. In addition, many bootleg game systems, such as arcade multi carts, often use versions of MAME to run their games.


Original MAME license

MAME was formerly distributed under a custom self-written
copyleft Copyleft is the legal technique of granting certain freedoms over copies of copyrighted works with the requirement that the same rights be preserved in derivative works. In this sense, ''freedoms'' refers to the use of the work for any purpose ...
license, called the "MAME license" or the "MAME-like license", which was adopted also by other projects, e.g.
Visual Pinball Visual Pinball is a freeware and source available video game engine for pinball tables and similar games such as pachinko machines. The software is composed of an editor and the simulator part itself. It runs on Microsoft Windows. The program ...
. This license ensures the availability of the licensed program's
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the w ...
, whilst the redistribution of the program in commercial activities is prohibited. Due to this clause, the license is incompatible with the OSI's
Open source definition ''The Open Source Definition'' is a document published by the Open Source Initiative, to determine whether a software license can be labeled with the open-source certification mark. The definition was taken from the exact text of the Debian Free ...
and the FSF's
Free software definition The Free Software Definition written by Richard Stallman and published by the Free Software Foundation (FSF), defines free software as being software that ensures that the end users have freedom in using, studying, sharing and modifying that softwa ...
, and as such is not considered an open source, or
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
license, respectively. The non-commercial clause was designed to prevent arcade operators from installing MAME cabinets and profiting from the works of the original manufacturers of the games. The ambiguity of the definition "commercial" lead to legal problems with the license. Since March 2016 with version 0.172, MAME itself switched, by
dual licensing Multi-licensing is the practice of distributing software under two or more different sets of terms and conditions. This may mean multiple different software licenses or sets of licenses. Prefixes may be used to indicate the number of licenses ...
, to common
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
licenses A license (or licence) is an official permission or permit to do, use, or own something (as well as the document of that permission or permit). A license is granted by a party (licensor) to another party (licensee) as an element of an agreeme ...
, the BSD-3-Clause license, and the GPL-2.0-or-later license. However, old versions remain licensed under the original license.


See also

*
Arcade emulator The following is a list of notable video game console emulators. Arcade * Visual Pinball Atari ; Atari 2600 * Stella Nintendo Home consoles ; Nintendo Entertainment System * FCEUX * NESticle * Nestopia ; Super NES * Snes9x * ZSNES ; N ...
* MESS *
List of free and open-source software packages This is a list of free and open-source software packages, computer software licensed under free software licenses and open-source licenses. Software that fits the Free Software Definition may be more appropriately called free software; the GNU ...
*
List of video game console emulators The following is a list of notable video game console emulators. Arcade * Visual Pinball Atari ; Atari 2600 * Stella Nintendo Home consoles ; Nintendo Entertainment System * FCEUX * NESticle * Nestopia ; Super NES * Snes9x * ZSNES ; ...
*
List of computer system emulators This article lists software and hardware that emulates computing platforms. The host in this article is the system running the emulator, and the guest is the system being emulated. The list is organized by '' guest operating system'' (the syste ...


References


External links

*
MAMEworld
MAME resource and news site
Arcade Database
Database containing details of any game supported by Mame, including past versions. There are images, videos, programs for downloading extra files, advanced searches, graphics and many other resources. {{DEFAULTSORT:Mame 1997 software Amiga emulation software AmigaOS 4 software Arcade video game emulators Classic Mac OS emulation software Cross-platform software GP2X emulation software Linux emulation software Lua (programming language)-scriptable software MacOS emulation software Multi-emulators Nintendo Entertainment System emulators PlayStation emulators Windows emulation software Proprietary video game console emulators