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

02 Jun 2005

MAME 0.97 is now available for download. Check out the Latest Releases page for the source, or for precompiled binaries (may not be available right away).

MAME 0.96u4

30 May 2005

The diff update to MAME 0.96u4 is now available on the Latest Releases page.

MAME 0.96u3

24 May 2005

A new diff has been posted to the Latest Releases page.

MAME 0.96u2

16 May 2005

Another MAME update has been posted on the Latest Release page.

MAME 0.96u1

05 May 2005

Now available on the Latest Release page.

About the Code Cleanup

05 May 2005

For the MAME 0.96 release, I added a step to the build process which runs a little tool over all the source code to ensure some consistency. A lot of people are freaking out about this in ways that are really unwarranted. You have to keep in mind that code is submitted from many people running on various platforms, and certain things like line-endings are not necessarily consistent between platforms.

For example, the file drivers/laserbas.c has had screwed up line endings for who knows how long. Diff is not the most robust tool when creating diffs against files with inconsistent line endings. When I tried to create a diff against this particular file, diff freaked, and I had to hand-modify the final patch to make it work. This was the impetus to writing the tool.

Since there seems to be a lot of paranoia about what this tool does, let me make it 100% perfectly clear. The tool does three things and only three things:

1. It makes sure all line endings are DOS/Windows standard CR/LF.
2. It removes any extra spaces/tabs at the end of each source line.
3. It converts tabs to spaces (assumes 4-character tabs) within comments. It leaves all other tabs alone.

That's it. The tool is also smart enough not to touch the file if nothing needs to be changed so that the datestamps remain consistent.

Since all the files in MAME 0.96 were updated with this tool, they will all pass unscathed when I run it before releasing 0.96u1. Which means this is really the only time you will see a significant number of changes resulting from the use of the tool. Going forward into the future, you probably won't even notice.

MAME 0.96 Released

03 May 2005

The latest version of MAME is now 0.96. I won't have time to update the official releases page until later this evening, but if you use your incredible powers of induction, you can guess what the URL of the source most likely is. Updates to should happen soon as well.

And hey, look, it appears that a MAME32 build is already available. :-)