Fork me on GitHub

Welcome to The Official Site of the MAME Development Team

What is MAME

MAME is a multi-purpose emulation framework.

MAME's purpose is to preserve decades of software history. As electronic technology continues to rush forward, MAME prevents this important "vintage" software 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 software is usable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully?). Over time, MAME (originally stood for Multiple Arcade Machine Emulator) absorbed the sister-project MESS (Multi Emulator Super System), so MAME now documents a wide variety of (mostly vintage) computers, video game consoles and calculators, in addition to the arcade video games that were its initial focus.


The MAME project as a whole is distributed under the terms of the GNU General Public License, 2 (GPL-2.0), since it contains code made available under multiple GPL-compatible licenses. A great majority of files (over 90% including core files) are under the BSD-3-Clause License and we would encourage new contributors to distribute files under this license.
Please note that MAME is a registered trademark of Gregory Ember, and permission is required to use the "MAME" name, logo or wordmark.

MAME 0.129u2

22 Jan 2009

A new update to MAME 0.129 is now available on the Source Updates page. Have fun!

MAME 0.129u1

15 Jan 2009

The first update to MAME 0.129 is now available over at the Source Updates page.

MAME 0.129

04 Jan 2009

After two and a half long months of significant internal changes, we finally have a new full release to play with: MAME 0.129. Have fun! And don't forget to check the exhaustive whatsnew file for the lowdown on all the great fixes and new additions since the last update.

MAME 0.128u7

21 Dec 2008

As of this release, we have two more major changes. These should be the last "huge" changes of this dev cycle.

The most major change is the final retirement of the global Machine pointer, which has been part of MAME for many years. Frankly, I never thought we'd hit this point so quickly, so my hats off to Atari Ace who helped push through the final round of changes needed to make this happen finally. As a result of this change, it should be possible in the coming year to finally write a driver that runs two full machines simultaneously.

The second big change is that the CPUs are now full-fledged devices, and participate like all other devices in the system configuration. This is mainly an internal structural change, but in the end removes some redundant code and behavior. In a future dev cycle, a similar thing will happen with the sound cores.

Starting now, the focus for MAME will be to iron out remaining issues and release a 0.129 sometime around the 1st of the year. Please keep reporting bugs to MAMETesters as you find things.

MAME 0.128u6

14 Dec 2008

With this latest release, we have managed to successfully remove the CPU and memory context switching. This was not without some amount of effort and churn, so be on the lookout for bugs. On the plus side, though, I would say that this release does not appear to suffer from a large number of issues, so don't be afraid to give it a try!

The next step is to continue cleaning up from the rather frenzied set of changes, and to iron out the remaining bugs. I'm hoping to hit 0.129 sometime shortly before the 1st of the year.

MAME 0.128u5

06 Dec 2008

Time for MAME 0.128u5, over at the Source Updates page. This build fixes a number of problems, but likely introduces a few more. If you see anything strange, please report it over at MAMETesters. As you can see from the whatsnew.txt, we fixed a lot of MAMETesters-reported issues this time around, so rest assured we are watching closely to see what comes in!

MAME 0.128u4

23 Nov 2008

After two weeks, it is finally time for MAME 0.128u4. But be warned: this version contains some significant changes internally. The end goal is to make MAME more "object-oriented" which in turn will allow MAME to context switch between CPUs at a faster clip. Unfortunately, due to MAME's legacy architecture, this ends up being a somewhat painful change.

If you're brave, want to help out, or at least want to be in sync with the latest code, grab it from the Source Updates page. Please make sure bugs are reported to MAMETesters.

If you're a coder and inclined to make or suggest sweeping changes, this would be a bad time. However, if you'd like to help out in the changeover, you can help out by working on removing all references to the "active" CPU, as mentioned in the whatsnew.txt file. If you do opt to pitch in here, please coordinate with the rest of the developers by submitting your intentions ahead of time, to avoid duplication of effort.