12 Things You Didn t Know You Could Do With MAME Aaron Giles
What is MAME? Never heard of it? See http://mamedev.org MAME = Multiple Arcade Machine Emulator Emulates most arcade hardware in software Simulates the CPUs, sound chips, and video h/w Uses original ROMs and discs Developer-focused (not super user friendly) Really two projects in one: Reverse engineering arcade hardware Designing a software architecture for emulation
What Can You Do With MAME? Most people tend to think of MAME as a means of running games Developers think in terms of using it as a tool to reverse engineer games BUT There s more to MAME thank you might think Plus, some people are really creative!
Look at the Source Code (Yes, even if you re not a programmer!) http://mamedev.org/source/mame/drivers Key things to look for: Comments (in bright red at the link above) ADDRESS_MAP (describe memory layouts) ROM_LOAD (describes ROMs needed)
Look at the Source Code
Look at the Source Code
Look at the Source Code
Identify Your PCBs (Yes, without dumping the whole thing!) MAME s romident option is your friend: Simply dump 1 or more ROMs More than 1? Place them in a directory or ZIP file From the command line run: mame romident <file directory zipfile> This will compare your ROMs against every ROM known to MAME (and that s a lot these days)
Identify Your PCBs
Identify Your PCBs romcmp (included with MAME) also helpful: romcmp <directory zipfile> [<dir2 zipfile2>]
Backup & Repair Your Hard Disks (Yes, you can recover your arcade hard disks!) MAME s CHD format designed for hard disks chdman utility is included with MAME Easy to find USB-to-IDE adapters To create a hard disk image in Windows (CHD): chdman createhd \\.\physicaldrivex filename.chd To put a CHD back onto a hard disk: chdman extract filename.chd \\.\physicaldrivex Move to solid state (CF) via an IDE adapter
Backup & Repair Your Hard Disks
Cheat! (Yes, you can beat the game with brute force!) http://cheat.retrogames.com/ The MAME Cheat Engine: Need to be explicitly enabled (via cheat option) Was recently rewritten and modernized Now supports cheats in XML format Now better integrated with the debugger Has a large group of people finding new cheats
Cheat
Cheat
Fix Bugs in Old Games (Yes, because they re just not hard enough!) http://donhodges.com/ Using only MAME s built-in debugger, reverse engineering, and logic, Don has fixed: Kill screens in Donkey Kong, Dig-Dug, and more Pac-Man split screen (level 256) Galaga playable demo Even created cheats for some of them.
Fix Bugs in Old Games
Record and Play Back Your Game (Yes, you can show off your moves!) http://replay.marpirc.net MAME supports built in input recording To record from the command line: mame <game> record <filename>.inp And to play it back: mame playback <filename>.inp Key to remember: Emulation must not have changed timings or input Format changed a little while back (built-in compression) Not sufficient for Twin Galaxies
Record and Play Back Your Game (But wait, there s more!) MAME also supports recording in several formats To record an AVI/MNG/WAV: mame <game> aviwrite <filename>.avi mame <game> -mngwrite <filename>.mng mame <game> -wavwrite <filename>.wav To take an in-game snapshot press F12 (configurable) You can control the size of snapshots and movies via the snapsize and snapview options. By default, it is the native screen size
Record and Play Back Your Game (But wait, there s more!) Keys to remember about making movies: AVIs are uncompressed, huge, and slow to create You will need to post-process them for compression Tip: record to an INP, then make AVI from playback MNGs are compressed, a bit less huge, but no sound If your game changes resolutions, specify a snapsize
Ditch Your Front-End (Yes, slightly more user-friendly!) In the old days, MAME would just error if you double-clicked it or specified no game to run Today, you actually get a mini front-end Picks random list by default As you type, recomputes list of best matches When you quit, you can select a new game
Ditch Your Front-End
Ditch Your Front-End
Create a Database (Yes, MAME is a database of arcade history!) http://maws.mameworld.info/maws Internally MAME has standard information about: ROMs and other media CPUs, sound chips, and clock speeds Controls, inputs, and DIP switches Video displays Game manufacturers and years All accessible via the listxml option
Drive Real Arcade Hardware (Yes, you can make it real!) http://www.byoac.com MAME can be made to work in a real cabinet: Not an official goal of the project, however! Can wire up real arcade controls Can connect real arcade monitors Can put it all in a real wood box Several companies produce the necessary adapters But don t abuse this remember this is just for fun!
Incorporate Game Art (Yes, the artwork was part of the allure!) http://mrdo.mameworld.info/mame_artwork.html MAME supports bezels, overlays, and backdrops All are optional, and individually selectable High-quality scaling to your screen resolution Community-wide effort to get nice, high resolution scans (see above link) All artwork is stored losslessly No cabinet or marquee art yet (3D models anyone?)
Incorporate Game Art
Incorporate Game Art
Turn Your LCD into a CRT (Yes, you can sort of simulate old school!) MAME s artwork system supports overlays Small repeated patterns overlaid on screen areas Relies on high-res LCD versus low-res game Lowers the overall brightness a bit Several good ones included with MAME Try this at home: mame <game> effect aperture1x2rb (for low res displays) mame <game> -effect aperture2x4rb (for high res displays)
Turn Your LCD into a CRT
Turn Your LCD into a CRT
Turn Your LCD into a CRT
Play Free Games (Yes, I know we said that wasn t the goal ) http://mamedev.org/roms Some companies have done the right thing! Many early Exidy ROMs available Several developers who own the rights have given us permission to redistribute their games Gaelco released World Rally for free http://www.gaelco.com/english/pages/hablando/frhablan.htm
The 12 Things You Now Know 1. Look at the source 2. Identify your PCBs 3. Repair your hard disks 4. Cheat! 5. Fix original bugs 6. Record & play back 7. Ditch your front-end 8. Create a database 9. Drive real hardware 10. Incorporate game art 11. Simulate an old CRT 12. Play free games
Some Additional Things You Can Do Run MAME on almost any platform (SDLMAME) Fast-forward through the boring parts (Ins key) Use nicer fonts in the MAME UI http://mrdo.mameworld.info/mame_artwork_supp.html Choose your own crosshairs for gun games Same site Save/restore in some games (automatically)
Q&A