MAME32 Arcade Collection (originally an acronym of Multiple Arcade Machine Emulator) is a free and open-source emulator designed to recreate the hardware of arcade game systems in software 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 has listed MAME as an application that every Windows and Mac gamer should have.
The first public MAME release was by Nicola Salmoria on February 5, 1997. It now supports over 7,000 unique games and 10,000 actual ROM image sets, though not all of the games are playable. MESS, an emulator for many video game consoles and computer systems, based on the MAME core, was integrated into MAME in 2015.
History and overview
The MAME project was started by the Italian programmer Nicola Salmoria. 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.[5] In April 1997, Salmoria stepped down for his national service commitments, handing stewardship of the project to fellow Italian Mirko Buffoni for half a year. In May 2003, David Haywood took over the job of project coordinator; and from April 2005 to April 2011, the project was coordinated by Aaron Giles.[6] Angelo Salese stepped in as the new coordinator.[7] In 2012, Miodrag Milanovic took over.[8] 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, but was soon ported to Unix-like systems (X/MAME), Macintosh (MacMAME and later MAME OS X) and Windows (MAME32). Since 24 May 2001, with version 0.37b15,[6] 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.[9] MAME has also been ported to other computers, game consoles, mobile phones and PDAs, and at one point even to digital cameras.[10] In 2012, Google ported MAME to Native Client, which allows MAME to run inside Chrome.[11]
Major releases of MAME occur approximately once a month. Windows executables in both 32-bit and 64-bit fashion are released on the official web site of the development team, along with the complete source code.[12] Smaller, incremental “u” (for update) releases were released weekly (until version 0.149u1) as source diffs against the most recent major version, to keep code in synchronization among developers.[13] The MAME source code is developed on a public GitHub repository.[14] This allows those with the required expertise and tools to build the most up-to-date version of the code and contribute enhancements in the form of pull requests. Historical version numbers 0.32, and 0.38 through 0.52 inclusively, do not exist; the former was skipped due of similar naming of the MAME32 variant (which itself has since been renamed 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 in the official MAMEdev website).[15]
The architecture of MAME has been extensively improved over the years. Support for both raster and vector displays, as well as multiple CPUs and sound chips, were added to MAME in the first six months of the project. A flexible timer system to coordinate the 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.[6] MAME has pioneered the reverse engineering of many undocumented system architectures, various CPUs (such as the M6809-derivative custom Konami CPU with new instructions) and sound chips (for example the Yamaha FM sound chips), and MAME developers have been instrumental in the reverse engineering of many proprietary encryption algorithms utilized in arcade games. Examples of these include the Neo Geo, CP System II, CP System III and many others.[citation needed]
The popularity of MAME has well since broken through to the mainstream, with enthusiasts building their own arcade game cabinets to relive the old games, and with companies producing illegal derivative works of MAME to be installed in arcades. Cabinets can be built either from scratch or by taking apart and modifying a genuine arcade game cabinet that was once used with the real hardware inside.[16][17] Cabinets inspired by classic arcade games can also be purchased and assembled (with optional and MAME preinstalled).[18]
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 user interfaces. Front ends provide varying degrees of customization – allowing one to see images of the cabinets, history of the games and tips on how to play, and even video of the game play or attract mode of the game.
The information contained within MAME is free for re-use, and companies have been known to utilize MAME when recreating their old classics on modern systems. Some have gone as far as to hire MAME developers to create emulators for their old properties. An example of this is the Taito Legends pack which contains ROMs readable on select versions of MAME.[19]
Since 2012, MAME is maintained by then MESS project leader Miodrag Milanović.[8]
On May 27, 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).[20]
In May 2015, it was announced that MAME’s developers were planning 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 is intended to draw more developer interest to the project, allow the manufacturers of games to distribute MAME to emulate their own games, and make the software a “learning tool for developers working on development boards”. The transition of MAME’s licensing to the BSD/GPL licenses was completed in March 2016.[21][22] With the license change, most of MAME’s source code (90%+) is available under a three-clause BSD license and the complete project is under the GNU General Public License version 2 or later.[21][23]
On Feb 24, 2016 (0.171), MAME embedded MEWUI front-end (and developer joined the team), providing MAME with a flexible and more full-featured UI.