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

30 Mar 2023

It’s time for MAME 0.253, but before we start talking about all the exciting updates, there are a couple of things that will affect people compiling or packaging MAME. Firstly, libc++ 6 is no longer supported. You can still compile with clang 6, but you’ll need to use libc++ 7 or later, or GNU libstdc++ 7 or later, for the C++ standard library. Secondly, MAME now requires Lua compiled as C++ to work correctly. This prevents the use of Lua libraries from Linux distribution package repositories, as they are compiled as C. (The technical reason for this change is that MAME requires C++ stack frames to be unwound correctly, including destructor calls, when Lua errors are raised from C++ code. Using Lua compiled as C will cause resource leaks.)

We’ve updated to Lua 5.4, which comes with an all-new garbage collector, giving better performance. This should have minimal impact on people writing scripts and plugins. Two of the biggest visible changes are that unpack has been replaced with table.unpack and the deprecated bitlib has been removed. While we’re talking about Lua, we’d like to draw your attention to the new MAME Goodies repository, where we’ll be adding additional content for use with MAME. So far, there are two plugins. One of them is sure to be useful for fans of Konami’s arcade rhythm games. They also serve as example code for people looking to learn about some of the things you can do with MAME’s Lua scripting capabilities.

The long-rumoured microcode-based Motorola 68000 CPU core is finally here! It’s already delivering results, with a number of previously out-of-reach Atari ST demos now running. We’ve done some intensive testing, but there are probably still regressions lurking. Let us know if one of your favourite 68k-based games flakes out on you.

One of the more interesting systems to be dumped and emulated this month is Akazukin, a 1983 arcade game where you shoot wolves preying on a defenceless girl. There’s also a game bearing the rather generic title Heroes, an early version of Data East’s Mutant Fighter. We’ve added a few more electronic toys to play with, including Race Time from Bandai, Punch Your Lights Out from Tiger, and a trio of backgammon and chess games from Tryom. If you’re in a more serious mood, the Brother LW-30 and LW-840ic dedicated word processors are now supported. The Sony NWS-3410 UNIX workstation is now working (albeit without its frame buffer, so you’ll need to use a serial terminal), as is the ironically named Vector 4 S-100 bus computer (Vector Graphic never sold a system with vector graphics capabilities).

Building on the work in last month’s release, Hyper Neo Geo 64 games are looking better than ever. Numerous texturing and tilemap issues have been resolved. Taito F3 video emulation has had several effects fixed, with Land Maker in particular looking noticeably better. Switching from video to sound, the KC 85 computer family now has working audio output, some issues with looping and retriggered samples on the Apple IIgs have been fixed, and fixes for PC Engine CD audio playback issues have made some games go from crashing to playable. More subtly, correcting audio chip clock frequencies has fixed the pitch of sounds for several systems, including Snow Bros. 2 and Noboranka.

As always, there’s far more than we have time to talk about here, but you can read all about it in the whatsnew.txt file. The source code and 64-bit Windows binary packages are available from the download page.

Read the rest of this entry »

MAME 0.252

22 Feb 2023

After almost two months, we’re ready to release MAME 0.252, the first MAME release of 2023! As promised, there are some big updates, and some of them may require you to make a few adjustments to your MAME setups. In particular, the modules MAME uses to handle input and output (e.g. video, sound and controllers) have been cleaned up, fixing lots of bugs and resource leaks.

First of all, the BGFX video module has had a serious overhaul. Numerous issues affecting artwork rendering have been fixed, and toggling full-screen mode no longer crashes. MAME now saves many BGFX video settings to your CFG files for each emulated system.

Game controller handling has also been overhauled. The downside is that you may need to reconfigure inputs for MAME. The upside is that things should work better out-of-the-box, with better default input assignments for more controllers:

  • For Windows users, more XInput controllers are fully supported, including guitars, the DJ Hero turntable, and the Rock Band keyboard.
  • For people using SDL builds, like our lovely macOS and Linux users, there’s a brand new joystick input module using the SDL game controller API. This gives consistent assignments for popular gamepads, and allows you to supply your own button and axis assignment schemes if the defaults don’t suit you. If want the old behaviour, it’s still available: just set the joystickprovider setting to sdljoy in your mame.ini file.
  • For everyone, it should be easier to navigate MAME’s UI using a game controller, and MAME should choose better default game input assignments for more gamepads.

Of course, we haven’t stopped working on emulation. Newly supported systems include the NABU PC (a Canadian 8-bit home computer and cable network terminal), the I-Star Chess King (a Taiwanese hand-held chess computer of dubious quality), Computer Othello (one of Nintendo’s earliest video games), YoYo Spell (a prototype of the arcade game Little Robin), the very rare English language version of SegaSonic Cosmo Fighter (dumped from the unit previously operated at Sega World Sydney), and Saturn: Space Fighter 3D (a Space Invaders variant from Data East).

The MSX updates haven’t stopped: this release includes support for MSX-DOS2 and RAM expansion cartridges. The Hyper Neo Geo 64 has had some welcome fixes for both 2D and 3D graphics, and there should be more coming in the next release. At the other end of the spectrum, Apple II video has seen a number of improvements, and somewhere in between, S3 ViRGE reached a point where 256-colour mode works in Windows 98.

That’s all we have time for here, but you can read about the whole two months’ worth of changes in the whatsnew.txt file, or download the source code and 64-bit Windows binary packages from the download page.

Read the rest of this entry »

Release Schedule Adjustments

17 Jan 2023

Hi everyone! Hopefully you all had a great New Year if you celebrate that kind of thing, and hopefully you’ve had some time to enjoy MAME 0.251 as well! All of us at MAMEdev agree 2022 was a massive year for MAME development, and we want to thank everyone who’s helped achieve that. MAME wouldn’t be what it is without all your contributions, whether it’s bug reports, pull requests, pre-release testing, helping out new users, or just letting us know that you appreciate our work.

We’ve got some really big stuff in the pipeline, but it’s going to take a bit longer than usual to make sure it’s ready for prime time. As such, there won’t be a January MAME release this year, but we’re fairly confident we can have MAME 0.252 out by the end of February. If you want a taste of some of the things that are coming, you can get the very latest source code from our repository on GitHub and compile it by following the instructions on our documentation site. Once again, thanks for your continued support, and have an awesome 2023!

MAME 0.251

31 Dec 2022

It looks like MAME 0.251 has made it out the door just in time for the end of 2022! December felt like a long month in MAME development, because so much happened! Nebula, an elusive DECO Cassette game, is now emulated. With working steering controls, Magical Pumpkin: Puroland de Daibouken is now playable. Two members of the HP 9825 family from the 1970s have been added, and issues with keyboard input on localised versions of the HP 86B have been fixed.

One of the most interesting systems added this month is the so-called Gerät 32620, make by the Institut für Kosmosforschung of the Deutsche Demokratische Republik. This device was used to read coded messages to be broadcast via shortwave radio numbers stations for reception by undercover agents. If a human were to read the numbers, they could inadvertently disclose knowledge about the nature of the messages or the coding scheme in their speech patterns. This device gives a small glimpse into the shadowy world of espionage.

Konami fans have a lot to be excited about. Firstly, two more hand-held LCD games have been added: Skate or Die, and Bill Elliott’s NASCAR Racing. Secondly, Windy Fairy has been making steady progress on the PowerPC-based arcade systems, with gun controls now working in Teraburst. Finally, various refinements and fixes to the CPU core for Konami’s custom 6809 processor have fixed a subtle parallax scrolling effect in the classic Padodius DA!

Several systems have been fleshed out noticeably this month, including the NEC PC-8801mkII SR family of Japanese computers, the 3com Palm IIIc and Palm m100 PDAs, and the Yamaha DX100 synthesizer. Additionally, the NEC PC-88VA2 can now boot most software, and the work on the Palm systems has allowed the VTech IQ Unlimited to show signs of life.

Quite a few systems have had pluggable controller support added this month, and support for some additional controllers has been added, including:

  • Pluggable controller support for consoles and computers from Sega, NEC and Sharp.
  • Sega Mega Drive mouse and 4-player adaptor support.
  • Support for an ATmega-based paddle controller that works with export versions of the Sega Master System.
  • NEC PC Engine mouse support.
  • Support for the Dempa Micom Soft XE-1AP, the first analog gamepad. Can be used with compatible software for the Sega Mega Drive, NEC PC Engine, Sharp X68000 and FM Towns families.

Of course, there are lots of other fixes and emulation improvements. The Apple IIgs has better ADB and real-time clock emulation. Sega’s Turbo and Buck Rogers: Planet of Zoom have better controls, and the latter has had graphical priority issues fixed. The NES APU frame counter interrupt is now emulated, fixing issues with dozens of games. For developers, debugger command and expression history is now saved between sessions.

As always, you can read about all the changes this month in the whatsnew.txt file, or download the source code and 64-bit Windows binary packages from the download page.

Read the rest of this entry »

MAME 0.250

30 Nov 2022

November has passed us by, and it’s time for MAME 0.250, with a distinct Konami flavour! On the arcade side, the third and fourth player positions are supported in NBA Play By Play, and lots of regional variants have been added for games running on Hornet hardware. We’ve also added support for a Konami hand-held LCD game, a Tiger LCD game based on a popular Konami franchise, and a prototype of an unreleased Game.com title in the same series. In addition to the Castlevania-themed LCD game, we’ve added licensed Tiger LCD games featuring Mega Man, Ninja Gaiden, Superman and Gargoyles characters, although the latter two are different skins for the same game.

MSX computer emulation has had a major overhaul, with more supported systems and peripherals, including lots of cartridge port floppy drives. As a bonus, the Fujitsu FM Towns family gained support for more controllers, including the Marty Pad and the twin-stick Libble Rabble joypad. Hard disk issues affecting the FM Towns family were also tracked down and fixed. Atari 8-bit computer cartridge emulation has been modernised, and a few more unlicensed Game Boy cartridges are supported (you can now play some very famous unauthorised translations in MAME). The Quantel DPB-7000 is looking much better, with lots of progress on video output and peripheral support.

Namco’s Alpine Surfer is now playable in MAME, and several graphical glitches that had plagued System 22 emulation have been banished. Support for Italian versions of Quizard has been added, and German versions of Quizard 3 and Quizard 4 Rainbow are now working, as well as a Czech version of Quizard 4 Rainbow. A missing line scroll effect in Seta’s Caliber 50 is now emulated, and some flickering graphics in Atari’s Return of the Jedi have been fixed.

Other improvements include lots of fixes for invalid memory accesses, function keys for the Franklin Ace (Apple II clone) computers, proper DIP switch labels for Nintendo Vs. Mahjong, and much, much more. You can read about all the changes this month in the whatsnew.txt file, and you can download the source code and 64-bit Windows binary packages from the download page.

Read the rest of this entry »

MAME 0.249

27 Oct 2022

After a whirlwind four weeks of development, MAME 0.249 is ready for release! Highlights this month include improved Atari 8-bit family emulation, a newer version of Kyukyoku Tiger with a two-player cooperative mode, another version of The Crystal Maze promoted to working, and lots of prototype cartridge dumps for consoles including the Atari Lynx, Nintendo Game Boy and Super Nintendo Entertainment System. There are also eight e-kara cartridges, including a rare e-kara Web cartridge containing twelve youth-oriented songs.

The modernisation of Apple II and Macintosh emulation is progressing steadily. This month, the last of the legacy floppy devices were phased out; various ADB emulation issues were resolved, making mouse/keyboard input more reliable; and the Apple IIe standard 80-column card now works properly. Brian Johnson has added some hard disk and sound cards for the Epson QX-10 and improved the keyboard support. Thanks to holub, MAME now emulates the ZX Evolution: BASECONF, another successor to the Sinclair ZX Spectrum. As an added bonus, there’s also better I/O emulation for the ATM-Turbo family.

All the little fixes and newly supported features this month add up to make this a must-have release. There’s better display emulation for the Victor 9000, data cassette support for the Casio RZ-1, proper emulation for the K051316 tile flip configuration flags (allowing an old hack to be removed), better video emulation in Jaleco’s Field Combat, fixes for sample playback on the Yamaha MU-5, and the German UI translation has been brought up to date.

Of course, there’s far more than we have time to mention here, but you can read all about it in the whatsnew.txt file. As always, you can download the source and 64-bit Windows binary packages from the download page.

Read the rest of this entry »

MAME 0.248

28 Sep 2022

It must be that time of month again – time for MAME 0.248! The Hartung Game Master was one of several hand-held game consoles positioned as low-cost alternatives to the Nintendo Game Boy. It was notable for its somewhat unconventional choice of an NEC µPD78C11 CPU, its low screen resolution, and the poor quality of its software library. And now, for the first time, you can relive the disappointment of all eighteen games released for the system in emulation!

Speaking of hand-held consoles, MAME now supports more Game Boy cartridges, including the Pocket Camera, the EEPROM and two-axis accelerometer used by Kirby Tilt ’n’ Tumble and Command Master, and several memory controllers used for unlicensed games and compilations.

Still on the topic of Nintendo, MAME now emulates the earliest version of the RP2A03 audio processing unit, used on arcade boards as well as early production runs of the Famicom console. Several games play sounds incorrectly with the later RP2A03G used in the NES and the majority of Famicom consoles. Several issues with Famicom peripherals have been fixed, too.

MAME’s Win32 debugger can now save your window arrangement, and there’s an option to use light text on a dark background. On recent versions of macOS, MAME’s Cocoa debugger now follows the system colour scheme.

You can read about all the exciting development this month in the whatsnew.txt file, or download the source and 64-bit Windows binary packages from the download page.

Read the rest of this entry »