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.

License

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.113u3

22 Mar 2007

A new release of MAME is now available on the Latest Release page. This release features a number of significant updates, including full MC8123 emulation from Nicola, allowing a few thought-to-be-lost-forever Sega games to be emulated at last. Haze also incorporated a prelminary version of his Megadrive code to get the Sega System E games up and running. Ville corrected a few bad bugs in the SHARC core, curing a number of issues in the Konami and Sega Model 2 drivers. Ernesto submitted a WIP version of the Model 2 TGP (MB86233) DSP core. Derrick added proper sound to Sprint 4. Zsolt rewrote the vic dual driver with proper video timing, along with some additional fixes and updates to video timing in other drivers. And a sudden influx of Korean and Chinese games has appeared, with a bunch of new skeleton drivers and a couple of new working games.

All in all, a lot of stuff is happening!!

MAME 0.113u2

15 Mar 2007

Today marks the release of MAME 0.113u2. Please note that there is an updated uismall.png file included with the diff which includes a number of improvements to the built-in font, including an expanded set of characters and some improvements to the existing design.

Other improvements in this release include work from Zsolt Vasvari to push more drivers over to the updated (and more accurate) video timing routines, some nice Ultra Tank and Sprint 4 improvements from Stefan Jokisch, the first multi-core aware driver (gaelco3d), and a bunch of internal changes that moves more code into the core so that each port of MAME doesn't need to copy and paste nearly identical code.

Two New Exidy ROMs Posted

12 Mar 2007

Head on over to the ROM Images page and check out our two latest additions: Car Polo and Robot Bowl. Thanks once again to H. R. Kauffman for allowing us to host these ROMs for legal download!

MAME 0.113u1 -- Oops

09 Mar 2007

Oops, I forgot when building last night's update that the PNG representing the new font would not be included in the diff. I have updated the 0113u1_diff.zip file to include uifont.png. Place this file in your source directory under src/emu and you should be able to build. Sorry about that! Fortunately, I don't see that file changing too frequently, so it should not be a common issue.

MAME 0.113u1

08 Mar 2007

A new 'u' release of MAME is now available. The biggest underlying change in this round is some internal code movement. In previous versions of MAME, the OS-specific code was responsible for all the frameskipping, throttling, fast forwarding, and timing behavior. What ended up happening is that most ports simply copied the Windows code, made a couple of tiny tweaks, and left it as-is. As of this version of MAME, all that logic has moved into the core video system, which means that there is less work for the OS-specific port maintainers to do. This is the first of a series of changes in this direction, which will mean that ports like SDLMAME and MAME OS X have less code to maintain.

As a side-effect of this change, the "frames_to_run" command line parameter has changed to "seconds_to_run", which is the same concept but uses the more neutral concept of time rather than frames. This is in preparation for a future time when games like the vector games will use asynchronous frame updating instead of using the frame rate hack we currently use.

In addition to this change, Zsolt Vasvari has been taking on the task of cleaning up the usage of video parameters in MAME. This involves converting older drivers to using the new, more accurate video timing functions. It's possible there will be some regressions as a result of this, so be on the lookout and report bugs to MAMETesters. Sebastien Volpe also submitted an improved Kaneko driver which brings several of those games closer to playable.

And finally, you may notice a slightly different look to the default font. I have been wanting to replace the default fixed-width font with a proportional font ever since the new video code went in, but have been finding it difficult to find a good BDF font editor (or a font that I liked that was compatible with the MAME license). I finally got fed up with this situation and threw together a quick PNG to BDC font converter (BDC is the binary cached version of BDF files that MAME can read) and designed a basic low-resolution font. As always, if you have a high resolution display, you are better off converting a TrueType font at high point size to BDF and using that, but for those using DirectDraw, the new font should be a good legible default, and the proportional sizing means more text will fit on those cramped game screens.

MAME 0.113

05 Mar 2007

Lucky 113! There have been a lot of changes this time around, so make sure you look over the whatsnew file to see what's been going on.

If you haven't been following the news until recently, be aware that this release contains a number of updates to both the input and sound code. The sound code in particular bears mentioning because its new behavior has tripped up a few people. Sound output is now exclusively controlled by the emulation, not by the OS layer. This means that it is very important to have accurate timing and throttling. Because of this, the throttling code has been rewritten to be more forgiving of "hiccups" and other anomalies.

One non-obvious side effect is that if you are running your games with -triplebuffer or -waitvsync on a system with a 60Hz video mode (like most LCDs have), and you are running a game with a framerate greater than 60fps (any of the common older Namco titles will do fine), then you will experience sound hiccups unless you enable a little bit of frameskipping, either automatic or a frameskip of 1. This is because you are hard-limiting the game to run at 60Hz due to your monitor's refresh, but it needs to produce more than 60 frames per second, so you are always running behind the emulation.

On the input front, Derrick Renaud has done a lot of work to try and normalize the behavior of analog inputs across the project. He has fixed and tweaked quite a number of analog controls in the system. Because of this, you may find that you need to throw away your existing calibrations and re-calibrate with the new settings. The advantage of the new system is that it fixes a number of inaccuracies in the behavior of the controls and allows games to have more flexible options when it comes to mapping controls on your PC to the controls the game used.

In addition to these changes there are quite a lot of new unplayable Bemani games that have come out of the woodwork over the past week or so, as well as an implementation of the long-desired (by pinball guys anyway) BSMT2000 ADPCM code. For this release I've also enclosed some regression testing tools I've been using for the past few months to help catch problems introduced between versions of MAME. You can see an example of the progress between 0.112 and 0.112u4 by looking here. Note that there are still a few glitches in the system, but I felt it was worth providing the code.

MAME 0.112u4

01 Mar 2007

Today we have a new update to MAME 0.112. You can grab the diff file from the Latest Release page. The sound changes have mostly settled now and this build should be a good one to test with. In fact, it would be great to get feedback on how sound and throttling are working across a number of systems before we move to a 0.113 release, which should follow soon. Please give it a try and report your bugs to MAME Testers.

Other significant improvements this time around include some more input port fixes from Derrick; discrete sound in Checkmate, again from Derrick; support for the T5182 sound MCU from Nicola, Ernesto, and Lord Nightmare, giving sound in The Lost Castle in Darkmist, Mustache Boy, and Panic Road; and tweaks to many sound cores to make them generate audio at their native frequency. Note that this latter change may have some negative performance impact, but I didn't see anything too significant in limited testing.