MAME

Last updated

Original author(s) Nicola Salmoria
Developer(s) The MAME community
Initial release5 February 1997;26 years ago (1997-02-05)
Stable release 0.261 (November 29, 2023;44 days ago (2023-11-29) [1] ) [±]
Repository
Written in C++ (C and Python for some drivers)
Operating system Windows, macOS, Linux, BSD, Amiga, etc.
Type Emulator
License GPL-2.0-or-later, with some sub-parts BSD-3-Clause.(for versions since 0.172) Original MAME license (for versions prior to 0.172)
Website www.mamedev.org

MAME (formerly 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. [2] 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". [3] Joystiq has listed MAME as an application that every Windows and Mac gamer should have. [4]

Contents

The first public MAME release was by Nicola Salmoria on 5 February 1997. It now supports over 7,000 unique games and 10,000 actual ROM image sets,[ citation needed ] 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.

With OTVDM (WineVDM) a version of MAME is available to emulate 16-Bit DOS and Windows applications on x64 and AArch64 versions of Windows. The NTVDM from Microsoft is only supported for the 32-bit versions of Windows. [5] [6]

History and overview

The MAME project was started by 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. [7] 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 as project coordinator; and from April 2005 to April 2011, the project was coordinated by Aaron Giles; [8] then Angelo Salese stepped in as the coordinator; [9] and in 2012, Miodrag Milanovic took over. [10] 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 it 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, [8] 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. [11] MAME has also been ported to other computers, game consoles, mobile phones and PDAs and, at one point, even to digital cameras. [12] In 2012, Google ported MAME to Native Client, which allows MAME to run inside Chrome. [13]

Major releases of MAME occur approximately once a month. Windows executables in both 32-bit and 64-bit fashion are released on the development team's official website, along with the complete source code. [14] 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. [15] MAME's source code is developed on a public GitHub repository, [16] 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 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 on the official MAMEdev website). [17]

MAME's architecture has been extensively improved over the years. Support for both raster and vector displays, 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. [8] 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, Yamaha FM sound chips). MAME developers have been instrumental in reverse engineering many proprietary encryption algorithms utilized in arcade games, including Neo Geo, CP System II and CP System III.[ citation needed ]

MAME's popularity has gone mainstream, with enthusiasts building their own arcade game cabinets to replay old games and even 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. [18] [19] Cabinets inspired by classic games can also be purchased and assembled (with MAME optionally preinstalled). [20]

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 .

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 pack, with ROMs readable on select versions of MAME. [21]

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). [22] This also led 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ć. [10]

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. [23] [24] Most of MAME's source code (90%+) is now available under the BSD-3-Clause license, and the complete project is under the GPL-2.0-or-later license. [23] [25]

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. [26]

On 30 December 2021, exA-Arcadia, the Western copyright holders of the games Akai Katana and DoDonPachi SaiDaiOuJou had their lawyers file a cease and desist notice to the MAME developers over those games being included in the emulator. [27] MAME complied with the request a day later, making both unplayable on the emulator outside of command line, as of version 0.240. [28]

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) and associated hardware. These elements are virtualized so that 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 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++ 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 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 discs 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 images or ROMs regardless of the kind of storage they came from. A game usually consists of multiple ROM and PAL images; these are collectively stored inside a single ZIP file, 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 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: [29]

Hard disks, compact discs and laserdiscs are stored in a MAME-specific format called CHD (Compressed Hunks of Data). [30] 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 or extra physical aspects such as slot machines usually require extra image files for backgrounds or other aspects of the games.

Philosophy, accuracy and quality

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 (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.

We want to document the hardware. Now a lot of people will say; "Where's your document? You just write a bunch of source code." And yes, that's true. One thing I've learned is that keeping documentation synced with source code is nearly impossible. The best proof that your documentation is right is "does this code work".

Aaron Giles, California Extreme 2008 [31]

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 units (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 was not perfected until the code and data contained with the custom MCU was dumped through the decapping of the chip. [32] 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,[ citation needed ] 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.

Owning and distributing MAME itself is legal in most countries, as it is merely an emulator. Companies such as Sony have attempted in court to prevent other software such as Virtual Game Station, a Sony PlayStation emulator from being sold, but they have been ultimately unsuccessful. [33] 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) [34] 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. [35] The Spanish arcade game developer Gaelco has also released World Rally for non-commercial use on their website. [36]

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. [37] 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. [38] [39] In addition, many bootleg game systems, such as arcade multi carts, often use versions of MAME to run their games.[ citation needed ]

Original MAME license

MAME was formerly distributed under a custom self-written copyleft license, called the "MAME license" or the "MAME-like license", which was adopted also by other projects, e.g. Visual Pinball. This license ensures the availability of the licensed program's source code, whilst the redistribution of the program in commercial activities is prohibited. [40] Due to this clause, the license is incompatible with the OSI's Open Source Definition and the FSF's Free Software Definition, and as such is not considered an open source, or free software 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. [24] The ambiguity of the definition "commercial" led to legal problems with the license. [41] [42]

Since March 2016 with version 0.172, MAME itself switched, by dual licensing, to common free software licenses, the BSD-3-Clause license, and the GPL-2.0-or-later license. [43] [44] However, old versions remain licensed under the original license.

See also

Related Research Articles

<span class="mw-page-title-main">Vectrex</span> Vector display-based home video game console

The Vectrex is a vector display-based home video game console - the only one ever designed and released for the home market, that was developed by Smith Engineering and manufactured and sold by General Consumer Electronics. It was first released for the North America market in November 1982 and then Europe and Japan in 1983. Originally produced by General Consumer Electronics, it was later licensed to Milton Bradley after they acquired the company. Bandai released the system in Japan.

<span class="mw-page-title-main">UAE (emulator)</span> Computer emulator which emulates Commodore Internationals Amiga.

UAE is a computer emulator which emulates the hardware of Commodore International's Amiga range of computers. Released under the GNU General Public License, UAE is free software.

<span class="mw-page-title-main">Visual Pinball</span>

Visual Pinball ("VP") is a freeware and source available video game engine for pinball tables and similar games such as pachinko machines. It includes a table editor as well as the simulator itself, and runs on Microsoft Windows. It can be used with Visual PinMAME, an emulator for ROM images from real pinball machines.

<span class="mw-page-title-main">ZSNES</span> Emulator for the SNES video game console

ZSNES is a free software Super Nintendo Entertainment System emulator written mostly in x86 assembly with official ports for Linux, DOS, Windows, and unofficial ports for Xbox and macOS.

UltraHLE is a discontinued emulator for the Nintendo 64. Emulating the Nintendo 64 made it the first of the N64 emulators to run commercial titles at a playable frame rate on the hardware of the time, and the first emulator for a currently-sold console system, which drew Nintendo to seek legal action against the developers.

<span class="mw-page-title-main">NEC V20</span> 16-bit microprocessor introduced by NEC in 1984

The NEC V20 is a microprocessor that was designed and produced by NEC. It is both pin compatible and object code compatible with the Intel 8088, with an instruction set architecture (ISA) similar to that of the Intel 80188 with some extensions. The V20 was introduced in March 1984.

<span class="mw-page-title-main">ROM image</span> Data dump from a ROM chip

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 frequently used in the context of emulation, whereby older games or firmware are copied to ROM files on modern computers and can, using a piece of software known as an emulator, be run on a different device than which they were designed for. ROM burners are used to copy ROM images to hardware, such as ROM cartridges, or ROM chips, for debugging and QA testing.

Multi Emulator Super System (MESS) is an emulator for various consoles and computer systems, based on the MAME core. It used to be a standalone program, but is now integrated into MAME. MESS emulates portable and console gaming systems, computer platforms, and calculators. The project strives for accuracy and portability and therefore is not always the fastest emulator for any one particular system. Its accuracy makes it also useful for homebrew game development.

<span class="mw-page-title-main">Gravis UltraSound</span> Sound card for IBM PC compatibles

The Gravis UltraSound or GUS is a sound card for the IBM PC compatible system platform, made by Canada-based Advanced Gravis Computer Technology Ltd. It was very popular in the demoscene during the 1990s.

The CP System II 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 hardware in 1996, of which the CPS-2 would outlive by over four years. The arcade system had new releases for it until the end of 2003, ending with Hyper Street Fighter II.

The CP System III or CPS-3 is an arcade system board that was first used by Capcom in 1996 with the arcade game Red Earth. It was the second successor to the CP System arcade hardware, following the CP System II. It would be the last proprietary system board Capcom would produce before moving on to the Dreamcast-based Naomi platform.

<span class="mw-page-title-main">DOSBox</span> Free DOS emulator

DOSBox is a free and open-source emulator which runs software for MS-DOS compatible disk operating systems—primarily video games. It was first released in 2002, when DOS technology was becoming obsolete. Its adoption for running DOS games is widespread, with it being used in commercial re-releases of those games as well.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one architecture to run on another.

<span class="mw-page-title-main">Retrogaming</span> Cultural activity with old video games

Retrogaming, also known as classic gaming and old school gaming, is the playing and collection of obsolete personal computers, consoles, and video games. Usually, retrogaming is based upon systems that are outmoded or discontinued, although ported retrogaming allows games to be played on modern hardware via ports or compilations. It is typically for nostalgia, preservation, or authenticity. A new game could be retro styled, such as an RPG with turn-based combat and pixel art in isometric camera perspective.

<span class="mw-page-title-main">NEC V60</span> CISC microprocessor

The NEC V60 is a CISC microprocessor manufactured by NEC starting in 1986. Several improved versions were introduced with the same instruction set architecture (ISA), the V70 in 1987, and the V80 and AFPP in 1989. They were succeeded by the V800 product families, which is currently produced by Renesas Electronics.

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 laurea in mathematics, with a thesis written about MAME.

higan (emulator) Multi-system emulator

Higan is a free and open source emulator for multiple video game consoles, including the Super Nintendo Entertainment System. It was developed by Near. Originally called bsnes, the emulator is notable for attempting to emulate the original hardware as accurately as possible through low-level, cycle-accurate emulation and for the associated historical preservation efforts of the Super NES platform.

<span class="mw-page-title-main">Video game console emulator</span> Program that reproduces video game consoles behavior

A video game console emulator is a type of emulator that allows a computing device to emulate a video game console's hardware and play its games on the emulating platform. More often than not, emulators carry additional features that surpass limitations of the original hardware, such as broader controller compatibility, timescale control, easier access to memory modifications, and unlocking of gameplay features. Emulators are also a useful tool in the development process of homebrew demos and the creation of new games for older, discontinued, or rare consoles.

<span class="mw-page-title-main">Emulator</span> System allowing a device to imitate another

In computing, an emulator is hardware or software that enables one computer system to behave like another computer system. An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate another program or device.

<span class="mw-page-title-main">Video game preservation</span> Form of preservation in video gaming

Video game preservation is a form of preservation applied to the video game industry that includes, but is not limited to, digital preservation. Such preservation efforts include archiving development source code and art assets, digital copies of video games, emulation of video game hardware, maintenance and preservation of specialized video game hardware such as arcade games and video game consoles, and digitization of print video game magazines and books prior to the Digital Revolution.

References

  1. "Releases - mamedev/mame" . Retrieved 22 December 2023 via GitHub.
  2. Herz, J.C. (5 March 1998). "With Software Sleight of Hand, Video Ghosts Walk". The New York Times . Archived from the original on 14 April 2019. Retrieved 3 July 2013.
  3. "MAME | About MAME". Mamedev.org. Retrieved 11 April 2011.
  4. Quilty-Harper, Conrad (16 December 2005). "PC and Mac Applications that Every Gamer Should Have". Joystiq . Archived from the original on 6 January 2006. Retrieved 3 July 2013.
  5. "Virtual DOS machine", Wikipedia, 8 March 2023, retrieved 25 March 2023
  6. "WineVDM - Emulation General Wiki". emulation.gametechwiki.com. Retrieved 25 March 2023.
  7. Maragos, Nich (25 July 2015). "Afterlife: The World of Console Game Emulation". 1UP.com . Archived from the original on 25 July 2015. Retrieved 21 August 2018.
  8. 1 2 3 "MAME Project History" . Retrieved 23 April 2011.
  9. Giles, Aaron (5 April 2011). "Regime Change". Mamedev.org. Retrieved 3 July 2013.
  10. 1 2 Milanovic, Miodrag (26 April 2012). "Passing the torch". Mamedev.org. Retrieved 26 April 2012.
  11. "The SDLMAME Homepage". Rbelmont.mameworld.info. 13 October 2006. Retrieved 11 April 2011.
  12. IGN Staff (3 November 1999). "But Wait, That's a Camera..." IGN . Archived from the original on 22 February 2014. Retrieved 3 July 2013.
  13. Wawro, Alex (3 January 2012). "MAME Runs In Google Chrome, Plays All Your Favorite Arcade Games". PC World . Archived from the original on 7 September 2013. Retrieved 3 July 2013.
  14. "MAME Latest MAME Release" . Retrieved 23 April 2011.
  15. "MAME Source Updates". Archived from the original on 20 April 2011. Retrieved 23 April 2011.
  16. "GitHub - mamedev/mame: MAME - Multiple Arcade Machine Emulator". GitHub . Retrieved 19 May 2016.
  17. "MAME Previous Releases".
  18. St. Clair, John (2004). Project Arcade: Build Your Own Arcade Machine. Indianapolis, IN: Wiley. ISBN   0764556169.
  19. Roush, George (16 April 2008). "Build Your Own MAME Machine". IGN . Archived from the original on 16 December 2012. Retrieved 3 July 2013.
  20. Harris, Craig (30 November 2005). "Dream Arcade Cocktail Kit". IGN . Archived from the original on 22 February 2014. Retrieved 3 July 2013.
  21. "Taito Legends manual" (PDF). Sega. Archived (PDF) from the original on 4 October 2011. Retrieved 23 April 2011.[ permanent dead link ]
  22. "MAME 0.162". MAMEDEV.org.
  23. 1 2 Wawro, Alex (4 March 2016). "10 months later, MAME finishes its transition to open source". Gamasutra . Archived from the original on 22 April 2016. Retrieved 5 March 2016.
  24. 1 2 Wawro, Alex (15 May 2015). "MAME is going open source to be a 'learning tool for developers'". Gamasutra . Archived from the original on 16 May 2015. Retrieved 27 May 2015.
  25. "MAME is now Free and Open Source Software". MAMEdev.org. Retrieved 5 March 2016.
  26. http://mamedev.org/releases/whatsnew_0171.txt [ bare URL plain text file ]
  27. "You wanted the C&D, you got it".
  28. "MAME SVN History".
  29. "About ROMs and Sets". MAME Documentation. Retrieved 11 November 2022.
  30. "MAME | src/lib/util/chd.h". Mamedev.org. Archived from the original on 4 July 2013. Retrieved 20 December 2012.
  31. Giles, Aaron (17 July 2009). "Aaron Giles at California Extreme 2008 – Part 2". YouTube. Archived from the original on 11 December 2021. Retrieved 20 December 2012.
  32. Salmoria, Nicola. "Nicola's MAME Ramblings" . Retrieved 3 July 2013.
  33. Glasner, Joanna (10 February 2000). "Court Upholds PlayStation Rival". Wired . Archived from the original on 18 June 2001. Retrieved 26 September 2006.
  34. "17 U.S. Code § 117 (a)". U.S. Copyright Office. Retrieved 8 February 2014.
  35. "MAME ROMs for Free Download" . Retrieved 3 July 2013.
  36. "Gaelco Games at Home!". Archived from the original on 18 May 2013. Retrieved 3 July 2013.
  37. "FAQ: Roms". MAME development site. Retrieved 28 December 2013.
  38. "Make The Most of It". PC Magazine . Vol. 26, no. 17. 4 September 2007. p. 61. Retrieved 28 December 2013.
  39. "Game On". Popular Science . Vol. 270, no. 4. April 2007. p. 78. Retrieved 28 December 2013.
  40. "MAME | Legal Information". 3 January 2016. Archived from the original on 3 January 2016. Retrieved 25 June 2022.
  41. "David Haywood's Homepage » The 'Already Dead' Theory." 31 October 2013. Archived from the original on 31 October 2013.
  42. "So why did this annoy me so much?". mameworld.info. 22 October 2013. Retrieved 29 October 2017.
  43. "MAME is now Free and Open Source Software". MAMEDEV.org.
  44. "MAME | Legal Information". www.mamedev.org. Retrieved 25 June 2022.