Editing MAME
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 3: | Line 3: | ||
|logo = Logo-mame.png | |logo = Logo-mame.png | ||
|logowidth = 254 | |logowidth = 254 | ||
− | + | |version = {{MAMEVer}} | |
− | |version = {{ | ||
|active = Yes | |active = Yes | ||
− | |platform = | + | |platform = Multi-platform |
|target = Thousands of electronics | |target = Thousands of electronics | ||
|developer = [https://github.com/mamedev/mame/graphs/contributors MAME Team] | |developer = [https://github.com/mamedev/mame/graphs/contributors MAME Team] | ||
Line 13: | Line 12: | ||
|source = [https://github.com/mamedev/mame GitHub] | |source = [https://github.com/mamedev/mame GitHub] | ||
}} | }} | ||
+ | '''[[wikipedia:MAME|MAME]]''' (originally an acronym for '''<u>M</u>ultiple <u>A</u>rcade <u>M</u>achine <u>E</u>mulator''') is a multi-platform, open-source, [[Multi-system emulators|multi-system emulator]] written in C++. The philosophy behind the project is to recreate the workings of machines through emulation, and thus the ability to actually play the games is "a nice side effect". MAME is incredibly large, [[MAME compatibility list|supporting thousands of machines and ROM sets]], though what is supported is not what's playable; your mileage may vary. In the event you don't like MAME's own interface, there are many alternative front-ends available. | ||
− | + | Much like the name says, MAME was supposed to be for arcade machines like Pac-Man back when it was released in 1997. A similar project called [[MESS]] was made to do essentially the same thing for home consoles and other esoteric devices that never got emulated, but it has since been merged into MAME by the end of May 2015 in version 0.162, and now it supports ''a whole lot more'' than arcade machines. | |
− | |||
− | Much like the name says, MAME was supposed to be for arcade machines like Pac-Man back when it was released in 1997. | ||
==Downloads== | ==Downloads== | ||
Line 26: | Line 24: | ||
|colspan="3"|<hr/> | |colspan="3"|<hr/> | ||
|- | |- | ||
− | |align=center|{{Icon|Lin|Mac|BSD | + | |align=center|{{Icon|Lin|Mac|BSD}} |
|[https://wiki.mamedev.org/index.php/SDL_Supported_Platforms SDL Supported Platforms] | |[https://wiki.mamedev.org/index.php/SDL_Supported_Platforms SDL Supported Platforms] | ||
− | |||
− | |||
− | |||
|- | |- | ||
|align=center|{{Icon|Win-big}} | |align=center|{{Icon|Win-big}} | ||
Line 37: | Line 32: | ||
==Overview== | ==Overview== | ||
− | MAME | + | MAME was first put out on February 5, 1997 by Nicola Salmoria as a Pac-Man emulator,<ref name="worldofstuart">[http://worldofstuart.excellentcontent.com/mameover.htm MAME OVER] (0.99)</ref><ref name="History">{{cite web|url=https://www.youtube.com/watch?v=VgJF18Pm7MA|title=A Brief History of Emulation: MAME|publisher=Youtube|accessdate=2018-09-14|date=2017-12-02}}</ref> but before he could do any more work on the project, he handed it over to Mirko Buffoni in April 1997 after requiring to do National Service in the Italian army.<ref name="worldofstuart"/> Since then, even as early as 2003, the emulator has become very extensive, with the majority of arcade system boards from the 1970's, 1980's and early 1990's supported. On February 2016 in version 0.171, a new GUI was integrated into MAME which allowed users to launch games in it without the need for a third-party GUI application. |
− | |||
− | |||
− | + | However... don't expect support for more recent boards like Atomiswave; the project and its team focuses on [[Emulation Accuracy|accuracy]] (preferably cycle-accuracy) and preservation, which often puts usability at a much lower priority for end users. The program is also '''very strict''' about what components of a ROM dump it needs to even function, and it may tell you if something is wrong with the files (i.e. a failed checksum); once developers know more about a system, they'll often have to dump more components like ROMs and BIOSes if necessary, and obtaining newer dumps from the boards isn't exactly the easiest thing in the world for users who only have traditional desktops, and the same goes for anyone with the actual arcade boards. Something as popular as Pac-Man will probably never need newer dumps beyond the current ones because it's been continually researched, and the dumps have been pretty widespread, but other machines you've probably only seen once at an arcade will probably need new dumps for a reason. Only ROM dumps with all the newest information will work in new versions of MAME. Even then, programmers may not have everything implemented. The native interface will tell you about the emulation status of the chosen romset, and whether the one you're using is even emulated at the current time. | |
− | + | Also see the incomplete [[MAME compatibility list]] internally here. And the latest in-progress [http://mameinfo.mameworld.info/ changelog update]. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===ROM dumps=== | ===ROM dumps=== | ||
− | + | MAME either has lots of standardization on how to organize the ROM dumps, or it has very little, and sometimes the given information can be vague and confusing. A single game may need lots of files for the dump to even register, and separate folders for the BIOS files of consoles. For machines that use stuff like hard drives and optical disks to store its data, MAME has a special format called Compressed Hunks of Data (CHD) which uses a number of compression methods to reduce the size of a raw image file. | |
− | + | It is highly recommended to use a ROM management tool such as RomCenter or ClrMamePro. Without all the required files and file versions, the game simply will not work. | |
− | + | ==How To== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ==How | ||
===Convert Bin/Cue files to CHD=== | ===Convert Bin/Cue files to CHD=== | ||
− | Many emulators other than MAME are beginning to support Compressed Hunks of Data, mainly because compared to the alternatives, it offers compression (or ''better'' compression) on all fronts. [[Libretro]] is making an initiative to support them thanks to a successful bounties initiative, and in many cores such as their [[Mednafen|Beetle]] fork, they've begun rolling it out for certain platforms like Saturn and PlayStation | + | Many emulators other than MAME are beginning to support Compressed Hunks of Data, mainly because compared to the alternatives, it offers compression (or ''better'' compression) on all fronts. [[Libretro]] is making an initiative to support them thanks to a successful bounties initiative, and in many cores such as their [[Mednafen|Beetle]] fork, they've begun rolling it out for certain platforms like Saturn and PlayStation so people can test it. |
− | If you're interested in trying it out for yourself, this guide will show you how to convert to the format using MAME's command-line tool called <code>chdman</code>. We'll warn you now that you will need to know how to use either a Unix shell or the command prompt in order to use it. The developers of MAME seemingly don't have plans to give <code>chdman</code> an interface | + | If you're interested in trying it out for yourself, this guide will show you how to convert to the format using MAME's command-line tool called <code>chdman</code>. We'll warn you now that you will need to know how to use either a Unix shell or the command prompt in order to use it. The developers of MAME seemingly don't have plans to give <code>chdman</code> an interface so if the thought of going back to the DOS days scares you too much, you may have to wait. |
{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;" | {| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;" | ||
− | |+How | + | |+How To <small>(Terminal)</small> |
| | | | ||
|- | |- | ||
Line 183: | Line 76: | ||
:''Note: If you're confident, you can delete files immediately instead of sending them to the recycle bin or trash bin using the keyboard shortcut <code>Shift</code> + <code>Delete</code>. Always back up the files if you're worried you might do it wrong.'' | :''Note: If you're confident, you can delete files immediately instead of sending them to the recycle bin or trash bin using the keyboard shortcut <code>Shift</code> + <code>Delete</code>. Always back up the files if you're worried you might do it wrong.'' | ||
− | MAME keeps a database of romsets including what each file should be named. If the ROM dump is obtained through a ZIP file, you can uncompress the files inside and transfer them to a 7-Zip file for better compression. The 7-Zip archive HAS to have the exact same name (not the same file extension | + | MAME keeps a database of romsets including what each file should be named. If the ROM dump is obtained through a ZIP file, you can uncompress the files inside and transfer them to a 7-Zip file for better compression. The 7-Zip archive HAS to have the exact same name (not the same file extension obviously). |
In case you're wondering why 7-Zip is supported in MAME and not RAR, it's because the LZMA development kit that's developed alongside 7-Zip is in the public domain, and the MAME team uses it for CHDs along with FLAC for audio and data compression; RAR is a proprietary format that can only be decompressed by 7-Zip, not compressed to, as per an agreement with both development teams. | In case you're wondering why 7-Zip is supported in MAME and not RAR, it's because the LZMA development kit that's developed alongside 7-Zip is in the public domain, and the MAME team uses it for CHDs along with FLAC for audio and data compression; RAR is a proprietary format that can only be decompressed by 7-Zip, not compressed to, as per an agreement with both development teams. | ||
{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;" | {| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;" | ||
− | |+How | + | |+How To |
| colspan=2 | | | colspan=2 | | ||
|- | |- | ||
Line 235: | Line 128: | ||
|} | |} | ||
− | == | + | ==List of Arcade systems emulated== |
− | + | * [http://unmamed.mameworld.info/ List of arcade games that DON'T work] Last updated February 2014. Don't expect the most recent games (like [[Sega NAOMI and variants|Sega Naomi]] ones) to run at full speed, MAME is very resource intensive. | |
− | + | * [http://nonmame.retrogames.com/ NonMAME] ([http://web.archive.org/web/20150306213522/http://consume.retrogames.com/ 2015 Mirror]) This is a list of arcade systems that currently are not emulated by MAME or are emulated better by other emulators. | |
+ | |||
+ | ==Frontends== | ||
+ | MAME has many third-party front ends. | ||
− | + | {{Main|Frontends#MAME}} | |
− | |||
− | == | + | ==List of forks== |
− | + | ;MAMEUI64: | |
+ | MAMEUI64 is the current name of MAME32, the original MAME GUI for Windows. As it traces its lineage to MAME32 0.27 from 1997, it has additional bugs compared to mainline MAME, lacks several features of modern MAME or makes it difficult to use them via GUI, and does not scale properly to high resolutions. The MAME developers do not recommend using any derivative of MAME32 for these reasons, instead suggesting mainline MAME with an external frontend if the internal MEWUI is not sufficient. | ||
− | + | ;GroovyMAME: | |
+ | {{Main|GroovyMAME}} | ||
+ | Also known as '''GroovyUME'''. It's a fork of MAME/UME made primarily to support arcade CRT monitors for AMD cards. It also includes input lag reductions that can be taken advantage of on CRTs or LCDs. | ||
− | + | http://forum.arcadecontrols.com/index.php/topic,128879.0.html?PHPSESSID=domm2c4q77esu0j9uohc5vrqn5 | |
− | |||
− | + | ;AGEMAME: | |
− | + | Years ago MAME used to exclude gambling games, this lead to a fork called ''Arcade Gambling Extensions for MAME (AGEMAME)'' being created for this specific purpose. Nowadays, it's since long integrated into MAME. | |
− | + | ;MESS: | |
− | + | {{Main|GroovyMAME}} | |
− | + | For many years, MESS was a separate project from MAME that emulated consoles, computers, and calculators using MAME's architecture and much of it's code. As of MAME 0.162, MESS merged with MAME. MAME now includes all MESS romsets and software lists and separate MESS builds are no longer distributed, although they can still be compiled from source. | |
− | |||
− | |||
− | + | ;PinMAME: | |
− | + | PinMAME is a fork of MAME32 0.76 that exclusively runs ROMs for pinball machines. It can be used to launch these ROMs standalone, like with MAME. However, unlike MAME, it also has a COM module called VPinMAME that can be used with the pinball simulator Visual Pinball, or to drive real hardware. | |
− | + | ;ARCADE: | |
− | + | [http://arcade.mameworld.info/ ARCADE] | |
− | + | ARCADE is a continuation (maintenance only) of the MAMEUIFX project, which was in turn forked from MAMEUI/MAME32. MAMEUIFX included unique drivers and games compared to mainline MAME, but these are now integrated into [[HBMAME]] instead. | |
− | |||
− | |||
− | + | Arcade games only | |
− | + | *NO mechanical games (pinball, crane games, etc) | |
+ | *NO poker, fruit, slot or gambling games | ||
+ | *NO computers, consoles, terminals, appliances, etc | ||
+ | *NO games that display a black screen (skeleton drivers etc) | ||
==Netplay== | ==Netplay== | ||
Line 293: | Line 189: | ||
*It's slightly (significantly still) prone to freezing | *It's slightly (significantly still) prone to freezing | ||
*Mapping controllers and binding keys can only be done in-game, which might be confusing to first-timers | *Mapping controllers and binding keys can only be done in-game, which might be confusing to first-timers | ||
− | *Incorrectly emulates many games, while outright not being able to emulate others | + | *Incorrectly emulates many games, while outright not being able to emulate others |
*Random, inconsistent FPS drops due to the server trying to keep everyone synched, sometimes stuttering. It's annoying, but rarely does it make it unplayable | *Random, inconsistent FPS drops due to the server trying to keep everyone synched, sometimes stuttering. It's annoying, but rarely does it make it unplayable | ||
*Everyone needs to have the exact same ROM version or Netplay won't work (if it somehow does, it'll desynch rather quickly) | *Everyone needs to have the exact same ROM version or Netplay won't work (if it somehow does, it'll desynch rather quickly) | ||
Line 318: | Line 214: | ||
<references/> | <references/> | ||
− | ==External | + | ==External Links== |
* [https://wiki.mamedev.org/index.php/Developer_WIPs Developer WIPs] (Official MAMEDEV.org page showcasing lists pointing to profiles and links of many MAME developers) | * [https://wiki.mamedev.org/index.php/Developer_WIPs Developer WIPs] (Official MAMEDEV.org page showcasing lists pointing to profiles and links of many MAME developers) | ||
* [https://mamedev.emulab.it/haze/ Developer coverage] from [https://wiki.mamedev.org/index.php/David_Haywood David 'Haze' Haywood]. (A media-heavy blog with few articles per month on average. Goes more in-depth than MAME's changelogs and can be fun to read. Also see his [https://www.youtube.com/user/ShootBoomBoom YouTube channel] & [https://twitter.com/MameHaze Twitter feed]. Former project coordinator, 2003-2005.) | * [https://mamedev.emulab.it/haze/ Developer coverage] from [https://wiki.mamedev.org/index.php/David_Haywood David 'Haze' Haywood]. (A media-heavy blog with few articles per month on average. Goes more in-depth than MAME's changelogs and can be fun to read. Also see his [https://www.youtube.com/user/ShootBoomBoom YouTube channel] & [https://twitter.com/MameHaze Twitter feed]. Former project coordinator, 2003-2005.) | ||
Line 326: | Line 222: | ||
* [https://mamedev.emulab.it/etabeta/ Dev coverage] from Fabio 'etabeta' Priuli | * [https://mamedev.emulab.it/etabeta/ Dev coverage] from Fabio 'etabeta' Priuli | ||
* [http://avoidspikes.blogspot.com/ Dev coverage] from Frank 'Knarfian' Palazzolo | * [http://avoidspikes.blogspot.com/ Dev coverage] from Frank 'Knarfian' Palazzolo | ||
− | * [ | + | * [http://members.iinet.net.au/~lantra9jp1_nbn/gurudumps/ Dev coverage] from Guru (Mainly repairs/decaps arcade boards and provides dumps of them for MAME. [http://members.iinet.net.au/~lantra9jp1_nbn/gurudumps/decap/index.html Decapping status page], [http://members.iinet.net.au/~lantra9jp1_nbn/gurudumps/DumpingProject/wantedlist/wanted.html Wanted dumps list].) |
* [http://www.lucaelia.com/mame.php Dev coverage] from Luca Elia | * [http://www.lucaelia.com/mame.php Dev coverage] from Luca Elia | ||
* [http://rbelmont.mameworld.info/ Dev coverage] from R. 'Arbee' Belmont (Worked often on Apple ][, /// and early Mac's emulation) | * [http://rbelmont.mameworld.info/ Dev coverage] from R. 'Arbee' Belmont (Worked often on Apple ][, /// and early Mac's emulation) | ||
Line 335: | Line 231: | ||
* [https://www.youtube.com/user/LambShanks YouTube channel] from [https://wiki.mamedev.org/index.php/Phil_B%27s_To-Do_List Philip Bennett] (His [http://philwip.mameworld.info/ website] is not updated anymore, but his [https://twitter.com/PhilBennett3D Twitter feed] is active. He tends to research early 3D arcade systems from the mid-1980's to 1990's, and uploads some dumps of machines and clones to MAME.) | * [https://www.youtube.com/user/LambShanks YouTube channel] from [https://wiki.mamedev.org/index.php/Phil_B%27s_To-Do_List Philip Bennett] (His [http://philwip.mameworld.info/ website] is not updated anymore, but his [https://twitter.com/PhilBennett3D Twitter feed] is active. He tends to research early 3D arcade systems from the mid-1980's to 1990's, and uploads some dumps of machines and clones to MAME.) | ||
* [https://m.youtube.com/channel/UCVnS-HQL-pzFku5ZVCGnvBA/videos YouTube channel] from [https://wiki.mamedev.org/index.php/MooglyGuy%27s_To-Do_List Ryan 'TheMogMiner' Holtz], [https://minecraft.gamepedia.com/Ryan_Holtz former Minecraft developer] (Note: His Twitter feed has lots of fillers unrelated to his MAME work) | * [https://m.youtube.com/channel/UCVnS-HQL-pzFku5ZVCGnvBA/videos YouTube channel] from [https://wiki.mamedev.org/index.php/MooglyGuy%27s_To-Do_List Ryan 'TheMogMiner' Holtz], [https://minecraft.gamepedia.com/Ryan_Holtz former Minecraft developer] (Note: His Twitter feed has lots of fillers unrelated to his MAME work) | ||
− | * [https://www.youtube.com/Sterophonick YouTube channel] from [ | + | * [https://www.youtube.com/Sterophonick YouTube channel] from [https://sterophonick.github.io/sites Sterophonick] (Began working on 2018 Gigatron TTL Microcomputer for MAME on [https://twitter.com/sterophonick/status/1290524729825062913 Aug 4, 2020].) |
* [https://twitter.com/aaronsgiles Twitter feed] from [https://aarongiles.com/ Aaron Giles] (His older [https://aarongiles.com/old/ Aaron's Almanac] website for MAME work was last updated in 2012. However, he "came back from the dead" to work on MAME again on [https://twitter.com/aaronsgiles/status/1286054480056786944 July 23, 2020]! Former project lead, 2005-2011. Wrote drivers for 11 CPUs, 7 sound chips, and 100+ arcade games.) | * [https://twitter.com/aaronsgiles Twitter feed] from [https://aarongiles.com/ Aaron Giles] (His older [https://aarongiles.com/old/ Aaron's Almanac] website for MAME work was last updated in 2012. However, he "came back from the dead" to work on MAME again on [https://twitter.com/aaronsgiles/status/1286054480056786944 July 23, 2020]! Former project lead, 2005-2011. Wrote drivers for 11 CPUs, 7 sound chips, and 100+ arcade games.) | ||
* [https://twitter.com/algestam Twitter feed] from Henrik 'algestam' Algestam (He is well noted for dumping and emulating those Nintendo [[Game & Watch]] LCD handheld titles to MAME) | * [https://twitter.com/algestam Twitter feed] from Henrik 'algestam' Algestam (He is well noted for dumping and emulating those Nintendo [[Game & Watch]] LCD handheld titles to MAME) | ||
− | |||
− | + | [[Category:Arcade emulators]] | |
− | |||
− | |||
− | |||
− | [[Category: | ||
[[Category:Multi-emulators]] | [[Category:Multi-emulators]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Category:Windows emulation software]] | [[Category:Windows emulation software]] | ||
[[Category:Linux emulation software]] | [[Category:Linux emulation software]] | ||
[[Category:macOS emulation software]] | [[Category:macOS emulation software]] | ||
− | [[Category: | + | [[Category:Emulators]] |
[[Category:Netplay]] | [[Category:Netplay]] |