Changes

Jump to navigation Jump to search

MAME

12,641 bytes added, 20 March
m
no edit summary
{{Infobox Software<br />emulator| name title = MAME<br />| logo=[[Image:Logo-mame.png|logowidth = 254|screenshot = MAMEscreenshot.jpg|300pxversion = {{Version|MAME Logo}}|active = Yes|platform = [[Emulators on Windows|Windows]]<br />| developer = [[Nicola SalmoriaEmulators on Linux|Linux]] and the MAME Team<br />[[Emulators on macOS| released = {{Release date and age|mf=yes|1997|02|05}}macOS]]<br />| frequently_updated = yes <!-- New version ? Don't edit this page, just click on the version number located in the infobox. -->BSD<br />| programming language = [[C++Emulators on DOS|DOS (Up until 0.37b14/0.50)]]<ref name/br>|target ="C++">{{cite webThousands of electronics|urldeveloper =http[https://github.com/mamedev.org/devwikimame/index.phpgraphs/MAME_0.136u1 |title=contributors MAME 0.136u1 – DevWiki |publisher=Mamedev.org Team]|date=2010prog-01-15 |accessdatelang =2012-12-20}}</ref><br />C++ (C & Python for some drivers)| operating_system = [[Cross-platform]]<br />| genre = [[Emulator]]<br />| license website = [http://www.mamedev.org/legalMAMEDev.html MAME Licenseorg]<br />| website source = http[https://mamedevgithub.orgcom/<br mamedev/>mame GitHub]}}
'''[[wikipedia:MAME|MAME]]''' (originally an [[acronym]] of for '''Multiple Arcade Machine Emulator<u>M</u>ultiple <u>A</u>rcade <u>M</u>achine <u>E</u>mulator''') is an a multi-platform, open-source, [[Multi-system emulators|multi-system emulator]] application designed to recreate the hardware of [[arcade game]] systems written in [[software]] on modern personal computers and other platformsC++. The intention philosophy behind the project is to preserve gaming history by preventing vintage games from being lost or forgotten.  The aim of MAME is to be a reference to focus on recreating the inner workings of the emulated arcade various machines; through emulation, with the software's ability to actually play the console games is considered being described as "a nice side effect".<ref>{{cite webMAME is incredibly large, [[MAME compatibility list|url=http://mamedevsupporting thousands of machines and ROM sets]], though what is supported is not what's playable; your mileage may vary.org/about.html |title=In the event you don't like MAME &'s own interface, there are [[Frontends#124; About MAME |publisher=Mamedevmany alternative frontends]] available.org |date= |accessdate=2011-04-11}}</ref>
The first public Much like the name says, MAME release (0.1) was on February 5, supposed to be for arcade machines like Pac-Man back when it was released in 1997. Over time, by [[Nicola Salmoria]]. The emulator now supports over seven thousand unique games MAME has incorporated similar projects out of a necessity to keep development active and ten thousand actual [[ROM image]] sets, though not all prevent duplication of work (as some arcade machines often shared hardware with consoles to ease development of games); the supported games are playable. The first project is currently maintained by to be merged was [[MESS]] at the end of May 2015 starting with version 0.162 and it functioned almost exactly like MAME but for home consoles and other esoteric devices that never got emulated elsewhere. MAME also had a policy against emulating gambling machines, but that decision has since been reversed and the project leaderthat aimed to get them working, Miodrag Milanovic.<ref nameabbr title="angeloArcade Gambling Extensions for MAME">{{cite web|url=http:AGEMAME<//mamedevabbr>, has also been merged.org/?p=362 |title=Passing Gaelco Futbol 3 hardware (their rides had nothing to do with soccer), Falgas M89 and Happy Video are only "very small" motion simulators added to the torch; Multiple Arcade Machine Emulator |publisher=MamedevMAME.org |date=2012-04-26 |accessdate=2012-04-26}}</ref>
== History and overview Downloads==<br />{| cellpadding="4"|-|align=center|{{Icon|Win-big}}|[[Filehttps:Mame1//www.mamedev.png|thumb|MAMEorg/release.php '''Official release'''s main menu]]<br />The project was started by the Italian programmer Nicola Salmoria. MAME traces its roots to an earlier emulator project called Multi<small>Stable</small>|-Pac, but the name was changed as more and more games started to be emulated within the MAME framework. In April 1997 Salmoria stepped down due to his [[military service#Italy|national service]] commitments, handing stewardship of the project to fellow Italian Mirko Buffoni for a period of half a year.<ref namecolspan="mamehistory3"|<hr/>|-|align=center|{{cite webIcon|url=httpLin|Mac|BSD|RiscOS|AmigaOS}}|[https://wiki.mamedev.org/historyindex.htmlphp/SDL_Supported_Platforms SDL Supported Platforms]|-|titlealign=MAME Project Historycenter|{{Icon|Win|Lin|accessdate=2011-04-23Mac}}|<abbr title="Latest development version">git artifacts</refabbr> In May 2003, David Haywood took over the job of the coordinator: [https://nightly. From April 2005 the project was coordinated by Aaron Giles, who stepped down in April 2011 with Angelo Salese stepping in as the new coordinatorlink/mamedev/mame/workflows/ci-windows/master CI-Windows] [https://nightly.link/mamedev/mame/workflows/ci-linux/master CI-Linux] [https://nightly.link/mamedev/mame/workflows/ci-macos/master CI-Macos]<ref name/br>|-|align="angelo" center|{{Icon|Win-big}}|[http://ashura.mameworld.info/nightlybuilds/builds.html Nightly builds]<br> The project is supported <small>Compiled by hundreds of developers around the world and thousands of outside contributors.Ashura-X</small>|}
At first, ==Overview==MAME was developed exclusively for MS-DOS, but is the prime example of a jack of all trades; it was soon ported to can technically emulate consoles like the [[Unix-likePlayStation emulators|PlayStation]] systems (X/MAME), Macintosh (MacMAME and later MAME OS X) and Windows (MAME32). Currently, the main development occurs on the [[Microsoft WindowsNintendo 64 emulators|WindowsNintendo 64]] platform, and most other platforms are supported through the but for those consoles you're better off going with our [[Simple Directmedia LayerRecommended Emulators|SDLMAMErecommended emulators]] project, which has recently been integrated into the main development source tree.<ref>{{cite web|url=http://rbelmont.mameworld.info/?page_id=163 |title=Arbee’s WIP Emporium » SDLHome x.y.z – the SDLMAME Homepage |publisher=Rbelmont.mameworld.info |date= |accessdate=2011-04-11}}</ref> In addition, different versions of as they may be more performant or more compatible than MAME have been ported to other computers, game consoles, mobile phones and PDAs, and at one point even to digital cameras's own drivers.<ref>{{cite web|url=http://www.videogameobsession.com/videogame/kodak.html |title=Kodak DC-260 running MAME! @ Video Game Obsession (c) Matthew Henzel |accessdate=2011-04-23}}</ref>
Major releases of MAME occur approximately once a month. Windows executables in both 32-bit The project and 64-bit fashion are released its team focuses on the official web site of the development team, along with the complete source code.<ref>{{cite web[[Emulation Accuracy|url=http://mamedev.org/release.html |title=MAME Latest MAME Release |accessdate=2011accuracy]] (preferably cycle-04-23}}</ref> Smalleraccuracy) and preservation, which often puts usability at a much lower priority for end users, incremental "u" (so don't expect support for update) releases are released weekly as source [[diff]]s against the most more recent major versionboards like Atomiswave. For some systems, to keep code in synchronization among the developersmay not have everything implemented.<ref>{{cite web|url=http://mamedev.org/updates.html |title=MAME Source Updates |accessdate=2011-04-23}}</ref> The up-to-date MAME source code is kept on native interface will tell you about the emulation status of the public mess.org [[Subversion (software)|Subversion]] server for those who wish to access it. This is intended only for those who have access to [[compiler]] tools chosen driver, and feel comfortable building software from source codewhat components are considered lacking.
The architecture of MAME has been extensively improved over the yearsRead this official [https://wiki.mamedev.org/index. Support php/FAQ:Performance FAQ page] for both [[Raster graphics|raster]] and [[vector display]]the reasons on why it is so hard to run many emulated systems usably on an user'scomputer or device that supports MAME, as well as multiple CPUs its derivatives and sound chips, found its way into MAME in the first six months /or cores inside frontends or certain kinds of the projectsoftware (eg. A flexible timer system to coordinate the synchronization between multiple emulated CPU cores was implemented, and ROM images started to be loaded according to their [[CRC32RetroArch]] hash in the [[ZIP (file format)|ZIP files]] they were stored in.<ref name="mamehistory" />It also has helpful tips to try to get better performance from some systems.
The MAME has pioneered developers do not recommend using MAME through libretro/RetroArch unless it is the reverse engineering of many undocumented system architectures, various CPUs only option (such as the [[M6809]]-derivative custom [[Konami]] CPU with new instructions) and sound chips (for example the [[List of Yamaha products#Sound chips|Yamaha FM sound chips]]on Android), as it is an unofficial port with poor UI integration and additional bugs compared to mainline MAME developers have been instrumental in . Those who still wish to use the reverse engineering libretro core should ensure they are using a recent core instead of many proprietary encryption algorithms utilized in arcade gamesone based on a very old version (MAME 2003 etc. Examples of these include the [[Neo Geo]]), [[CP System II]], [[CP System III]] and many othersunless older versions are necessary for performance reasons.
The popularity of MAME has well since broken through to the mainstream, with enthusiasts building their own ===Compatibility===We have an outdated compatibility list [[Video game arcade cabinetMAME compatibility list|arcade game cabinetshere]] . Although, it focuses on arcade machines, and popular computer & console platforms, it is worth updating. It is highly recommended to relive instead check the old gameshome page on this wiki for any listed computer, and with companies producing illegal derivative works of console or other gaming device that may have emulation in MAME to be installed in [[Video arcade|arcades]]. Cabinets You can be built either from scratch or taking apart and modifying a genuine arcade game cabinet that was once used with see the real hardware insideupcoming version's changelog [http://mameinfo.<ref>J Wiley, Project Arcade, Build Your Own Arcade Machine, 2004 – ISBN 0-7645-5616-9<mameworld.info/ref>here]. Other compatibility lists:
Although MAME contains a rudimentary user interface, the use * [http://unmamed.mameworld.info/ List of MAME in arcade game cabinets and [[home theater PCgames that DON'T work]]s necessitates special launcher applications called ''front ends'Last updated February 2014. Don' with more advanced user interfaces. Front ends provide varying degrees of customization – allowing one to see images of the cabinets, history of t expect the most recent games (like [[Sega NAOMI and tips on how variants|Sega NAOMI]] ones) to playrun at full speed, and even video 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 the game play arcade systems that currently are not emulated by MAME or ''attract mode'' of are emulated better by other emulators. This list has been criticized by MAMEDevs for being overly biased towards RetroArch.* [https://wiki.mamedev.org/index.php/Non-Working_Drivers Non-Working Drivers] under the gameMAMEDev Wiki.* [http://adb.arcadeitalia.net/mame.php ArcadeItalia: MAME Database]
The information contained within MAME is free for re-use, and companies have been known to utilize MAME when recreating their old classics on modern systems. Some have gone as far as to hire MAME developers to create emulators for their old properties. An example of this is the ''[can currently [Taito Legends]]'' pack.<ref name="taitolegendsmanual">{{cite web|url=httphttps://www2docs.segamamedev.comorg/supportinitialsetup/manuals/taitolegends_pc_manualmameintro.html# emulate over 32000 individual systems from the last 5 decades].pdf |title=Taito Legends manual |publisher=Sega |date= |accessdate=2011-04-23}}</ref>
== Design =Categories===The MAME emulator covers a wide assortment of different types of emulated systems including, but not necessarily limited to:<br /div class="wikitable mw-collapsible mw-collapsed">The MAME core coordinates {|width="100%"|- valign="top"|- '''Arcade''' ''(See Main page, & Compatibility list above)'':Where it all started, and by far the emulation most popular and widely utilized purpose of several elements at MAME.:These arcade cabinets usually contain video & audio outputs.:{Info needed) Perhaps Redemption Games, aka Medal games, should be in a separate category (They are usually arcade-style cabinets with electro-mechanical parts. Some may even use the same timePCBs as normal arcade cabs. These elements replicate the behavior )- '''Board Game (Electronic)''':This sort of game in real life is typically played on a tabletop.:This category especially covers chess game systems from the hardware present 20th century.- '''Calculator''':Is not a pocket computer.:Does not have additional functions as portable organizer, etc.- '''Casino''':A casino games is an arcade-type game, but primary purpose is for gambling.:A typical casino game likely does not have electromechanical parts.:Fruit machines can be included in this category, probably.- '''Compilation''':Example: Original game was an Arcade game. Game was released as a port or part of a game compilation for PC or a Game Console.:It is unclear if files of such games from these compilations (That may have a self-contained MAME build) can be ported to a PC/console and booted with the original user's own MAME build (Info needed).- '''Computer''' ''(See Main page, [[arcade cabinetList of computers]], & [[Desk-Size_Computers_/_Supercomputers_/_Mainframes|arcade machinesHuge Computers]])'':Typically requires loading external software (games or applications) from a MAME Software List. :Hardware in real life typically requires external AC power.:Not a handheld computer.:Not a game console.- '''EM Reels''':An EM Reels game is an arcade-type game, but primary purpose is gambling.:Game includes electromechanical external artwork required to properly emulate the game.- '''Game Console''' ''(See Main page)'':Typically requires loading external software for games from a MAME can emulate many different Software List.:Hardware in real life is required to be attached to an external display.:Hardware in real life requires an external AC power.:Hardware in real life requires an external controller plugged into the main console.:Not a computer.|- '''Handheld Computer''' ''(See [[central processing unitPortable Computers (Miscellaneous)|Portable Computers]]s )'':Primary purpose of hardware is a portable computer.:Can run multiple software applications, compared to a typical calculator.:Not a laptop computer.- '''Handheld Console''' ''(CPUsSee Main page)'':Primary purpose of hardware is a game console.:Typically requires loading external software for games from a MAME Software List.:Hardware in real life completely portable, with a self-contained display, both battery, and controls.- '''Handheld Game''':Primary purpose of hardware is a single portable game.:All game software is self-contained within the physical unit.:Does not utilize MAME Software Lists.:Hardware in number or typesreal life is completely portable, with a self-contained display, including processorsbattery, audio and video specific chips, controls.- '''[[integrated circuitHBMAME]]s, microcontrollers, etc''':Game is a homebrew or hack variant of another Arcade or Handheld Console game.:Game is not emulated in regular MAME; only found in HB MAME., including - '''[[Pinball]]''':Game includes electromechanical external artwork required to properly emulate the needed game.:Game may include digital elements for them scoring or other gameplay features.- '''Plug and Play''':Primary purpose of hardware is to communicate together such as memory regions, RAM, data buses, peripherals, storage devices, etcplay games. These elements Best examples are virtualized so MAME acts as a software layer between the original program of the Plug and Play TV game, and devices.:Game software is self-contained within the platform physical unit.:May utilize MAME runs onSoftware Lists for adding additional games.:Hardware in real life is required to be attached to an external display.:Hardware in real life has self-contained controls.|}
MAME supports arbitrary screen resolutions, refresh rates '''Note:''' Some of the aforementioned categories may have their own pages with compatibility and display configurations. Multiple emulated monitors, as required by for example [[Darius (video game)|Darius]], are supported other information as welldesired.</div>
Individual arcade systems are specified by ''drivers'' which take the form of [[Macro (computer science)|C macros]]. These drivers specify the individual ===ROM dumps===When developers know more about a system, they often have to dump more components to be emulated like ROMs and how they communicate with each otherBIOSes if necessary. While MAME was originally written in [[C (programming language)|C]], the need for object oriented programming caused the development team It's highly recommended to begin to compile all code use a ROM management tool such as [[C++]] for MAME 0RomCenter or ClrMamePro.136Without these programs, taking advantage of additional features of that language in it'll take you a lot longer to find the processnecessary files for a game.<ref name="C++" />
Although a great majority of Something as popular as Pac-Man will probably never need newer dumps beyond the CPU emulation cores are [[Interpreter (computing)|interpretive]]current ones because it's been continually researched from the beginning, and the ROMs have been pretty widespread, but for very rare machines, MAME also supports [[dynamic recompilation]] through an intermediate language called will see continuous changes in the Universal Machine Language (UML) to increase files it needs as more information is discovered about the emulation speedsystem. Back-end targets supported are x86 and x64. A C backend is also available You can expect these ROMs to further aid verification of the correctness. CPUs emulated surface online in this manner are SH-2some form, MIPS R3000 and PowerPCbut you may as well never get them directly from the developers themselves.
=== Game data ===<br />The original program code MAME is '''very strict''' about what components of a ROM dump it needs to even function, and graphics and sound data need to be present so that it may tell you if something is wrong with the game can be emulatedfiles (i. In most arcade machines, e. a failed checksum); only a ROMset with all the data is stored newest information will work in read-only memory chips (ROMs), although other devices such as [[cassette tape]]s, [[floppy disk]]s, [[recent versions of MAME. For machines that use stuff like hard disk]]s, [[laserdisc]]s, drives and [[compact disc]]s are also used. The contents of most of these devices can be copied optical disks to computer filesstore its data, in a process MAME has its own format called "dumping". The resulting files are often generically called [[ROM image]]s or ROMs regardless of the kind of storage they came from. A game usually consists Compressed Hunks of multiple ROM and [[Programmable Array Logic|PAL]] images; these are collectively stored inside a single [[ZIP Data (file formatCHD)|ZIP file]], constituting which uses a ROM set. In addition number of compression methods to reduce the "parent" ROM set (usually chosen as the most recent "World" version size of the game), games may have "clone" ROM sets with different program code, different language text intended for different markets etc. For example, ''[[Street Fighter II|Street Fighter II Turbo]]'' is considered a variant of ''Street Fighter II Champion Edition''raw image file. System boards like the [[Neo Geo (console)|Neo Geo]] that have ROMs shared between multiple games require the ROMs This format also allows MAME to be stored use 7-Zip archives for ROMsets in "BIOS" ROM sets and named appropriatelyplace of Zip files.
Individual ROM files are often named after labels found on the ROM chips and the position they are located on the board in the format "label.position". [[Sega]] for example use ===Frontends===MAME used to be a standard labeling scheme for all the ROMs found on their arcade boards giving each unique ROM chip command line application that was launched by a unique labelseparately licensed frontend. "mpr12380.b2" is a ROM from However, with MAME relicensing as open source in 2016, the Golden Axe romset. This implies that the ROM was labeled "mpr12380" and located developers have since incorporated MEWUI as its built-in position "b2" on the [[Printed circuit board|PCB]]interface. By using such a naming scheme However, it makes it easy to use MAME still accepts command-line parameters, allowing most frontends to identify, and often help repair, non-keep working . You can see a list of them '''[[Printed circuit boardFrontends#MAME|PCBshere]]'''.
Hard disks===History===MAME was first released on February 5, CDs and laserdiscs are stored in 1997 by Nicola Salmoria as a Pac-Man emulator,<ref name="worldofstuart">[http://worldofstuart.excellentcontent.com/mameover.htm MAME-specific but documented format called the CHD OVER] (Compressed Hunks of Data0.99).</ref><refname="History">{{cite web|url=httphttps://mamedevwww.orgyoutube.com/source/src/lib/util/chd.h.html watch?v=VgJF18Pm7MA|title=A Brief History of Emulation: MAME &#124; src/lib/util/chd.h |publisher=Mamedev.org Youtube|dateaccessdate= 2018-09-14|accessdatedate=20122017-12-2002}}</ref> Some arcade machines use analog hardwarebut before he could do any more work on the project he handed it over to Mirko Buffoni in April 1997 after being required to do National Service in the Italian army.<ref name="worldofstuart"/> Since then, such even as laserdiscsearly as 2003, to store and play back audio/video data such as soundtracks and cinematics. This data must be [[Video capture|capture]]d and [[codec|encoded]] into digital files that can be read by MAME. Although MAME supports [[lossless compression]] of laserdisc datathe emulator has become very extensive, it can be argued that with the digital copy is not a perfect reproduction majority of arcade system boards from the analog source1970s, 1980s and early 1990s supported.
A number MAME originally used a custom BSD license that prohibited commercial use in a few ways. This was mainly used to deter arcade operators from monetizing an emulated version of games use sound chips that a widely available commercial title like Pac-Man. However, the MAME team didn't have not yet been emulated successfullythe funds to afford prosecutors, so this was never effectively enforced. These games require sound samples Through an extensive relicensing process in WAV file format 2016, the project completely changed to a combination of GPL/BSD where applicable. This allowed them to merge the codebase for sound emulationthe MEWUI frontend into the main application starting with version 0.171 (February 2016).
===Support===You can support the efforts of MAME additionally supports developers, dumpers and other stakeholders with donations or resources to procure PCBs (Printed Circuit Boards) of arcade games, and all other computing or electronic devices that have digital screen output and in most cases, audio support; upload materials such as artwork files of arcade cabinets, special handheld units and pinball tables, among other hardware examples.* [https://smitdogg.mameworld.info/du/donate.html The Dumping Union] (Based in the USA. Monthly donations start from $10 US.):[https://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=311481 The Dumping Union Info Page] (Info and an alternative PayPal link to send custom one-off donations with option to make it monthly.)* [https://web.archive.org/web/20230711205725/http://members.iinet.net.au/~lantra9jp1_nbn/gurudumps/thanks.html Guru] (Top-quality [https://web.archive.org/web/20230522164442/http://members.iinet.net.au/~lantra9jp1_nbn/gurudumps/forsale/index.html dumper and repairer of arcade PCBs from Western Australia]. He also repairs many other electronic equipments. Better reliability than The Dumping Union. Important pages: [https://web.archive.org/web/20160331200139/http://members.iinet.net.au/~lantra9jp1_nbn/gurudumps/faq.html FAQ], [https://web.archive.org/web/20160331200505/http://members.iinet.net.au/~lantra9jp1_nbn/gurudumps/decap/index.html Decapping Status Page], [https://web.archive.org/web/20160331200203/http://members.iinet.net.au/~lantra9jp1_nbn/gurudumps/DumpingProject/wantedlist/wanted.html Wanted Dumps List], all links under 'Guru Status' drop-down menu. For custom one-off PayPal donations with option to make it monthly.)* [https://www.patreon.com/user?u=4805718 CAPS0ff] (High quality chip decapping specialist. [Portable Network Graphics|PNG formathttps://twitter.com/Caps0xff He]and other people get rare, security protected arcade boards, shave the tops off the security chips, and do stuff like point lasers at them to get them to spit out the keys. Sometimes they use microscopes to read the keys off the die. 6 Patreon tiers from $1 US to $300 US, or custom amount monthly.)* [https://team-europe.blogspot.com/ TeamEurope] (High quality decappers on same level as the 'Guru' guy. Probably based in Austria, also cooperates regularly with dumper Sean Riddle from the UK. Does a lot of dumping of non-arcade stuff (especially cartridges for bezel weird / obscure systems) as well as stuff specific to European regions. Occasional [https://www.reddit.com/r/emulation/comments/9txdsz/mame_team_europe_would_like_help_funding_some/ fundraisers] occur with them. Contact by writing an email to te@crazy#2001#.33mail#.com (remove all # from the address) with the words "[Contact TE]" in the message-header.)* [https://www.patreon.com/moogly Patreon] account of MAMEDev Ryan 'MooglyGuy' Holtz (It's to support the expenses of acquiring computers and overlay graphicsother electronic hardware for MAME work.)
== Philosophy and accuracy ==<br '''Non-monetary:'''* [https://mrdo.mameworld.info/>The stated aim of the project is to document hardware, and so mame_artwork.php Mr. Do!'s MAME takes a somewhat purist view of emulation, prohibiting programming [[hack Artwork] (technology slang)|hacks]] that might make a game run improperly or run faster at Artwork uploads submitted by many archivists and device owners for use within the expense of emulation accuracyMAME Artwork System. Components such as CPUs are emulated at The site's navigation requires a low level (meaning individual instructions are emulated) whenever possible, and small-ish learning curve. The [[high-level emulation]https://mrdo.mameworld.info/links.php Links] (HLE) page is only used when a chip is completely undocumented and cannot nice. He can be reverse-engineered in detailcontacted on [https://www.mameworld.info/ubbthreads/showprofile. Signal level emulation is used to emulate audio circuitry that consists of analog componentsphp?Cat=&User=54&Number=387561&Board=news&what=showthreaded&page=&view=&sb=5&o=&fpart=&vc=1 MAMEWorld].)
{{Quotation|We want ==How to=====Convert Bin/Cue files to CHD===Many emulators other than MAME are beginning to support Compressed Hunks of Data, mainly because compared to document the hardware. Now a lot of people will say; "Wherealternatives, it offers compression (or ''s your document? You just write a bunch of source code." And yes, thatbetter's true. One thing I've learned is that keeping documentation synced with source code is nearly impossiblecompression) on all fronts. The best proof that your documentation [[Libretro]] is right is "does this code work".|Aaron Giles|California Extreme 2008<ref>{{cite web|author=Log nu making an initiative to support them thanks to a successful bounties initiative, and in om een reactie te plaatsen. many cores such as their [[Mednafen|url=http://www.youtubeBeetle]] fork, they've begun rolling it out for certain platforms like Saturn and PlayStation, so people can test it.com/watch?v=Ek2ZGYv__IA |title=Aaron Giles at California Extreme 2008 – Part 2 |publisher=YouTube |date=2009-07-17 |accessdate=2012-12-20}}</ref>}}
If you're interested in trying it out for yourself, this guide will show you how to convert to the format using MAME emulates well over a thousand different [[arcade system board]]'s, a majority of which are completely undocumented and custom designed command-line tool called <code>chdman</code>. We'll warn you now that you will need to know how to run use either a single game Unix shell or a very small number of them. The approach MAME takes with regards to accuracy is an incremental one; systems are emulated as accurately as they reasonably can be. Bootleg copies of games are often the first command prompt in order to be emulated, with proper (and copy protected) versions emulated lateruse it. Besides encryption, arcade games were usually protected with custom [[microcontroller unit]]s (MCUs) that implemented a part The developers of the game logic or some other important functions. Emulation of these chips is preferred even when they MAME seemingly don't have little or no immediately visible effect on the game itself. For example, the monster behavior in [[Bubble Bobble]] was not perfected until the plans to give <code and data contained with the custom MCU was dumped through the [[decapping]] of the chip.<ref>{{cite web|url=http://mamelife.blogspot.com/2006_08_01_archive.html |title=Nicola's MAME Ramblings}}chdman</refcode> This results in an interface, so if the ROM set requirements changing as thought of going back to the games are emulated DOS days scares you too much, you may have to a more and more accurate degreewait.
Portability and genericity are also important {| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;"|+How to MAME. Combined with <small>(terminal)</small>||-|:''Note: Unless explicitly stated, don't type the uncompromising stance on accuracy, this often results in high system requirements. Although a 2&nbsp;GHz processor is enough commands word for word because you'll need to run almost all 2D games, more recent systems and particularly systems replace some values with 3D graphics can be unplayably slow even on your own.'':''Also: Make sure the fastest computers. MAME does not currently take advantage of hardware acceleration cue sheet points to speed up the rendering of 3D graphics, in part because relative location of the lack of a stable cross-platform 3D API,{{Citation needed|reason=This claim needs a reliable source; OpenGL is a stable cross-platform 3D API since 1997|date=August 2012}} binary and in part because software rendering can in theory be an exact reproduction of the various custom 3D rendering approaches that were used in the arcade gamesit works.''
== Legal status ==On Windows, download MAME from the official website (linked above). The Linux guides on emugen will usually provide these locations. <!-- todo: macOS instructions -->
Owning and distributing MAME itself is legal in most countriesOn Windows, as it is merely there should be an emulatorexecutable in the main directory called <code>chdman</code>. Companies such as [[Sony Computer Entertainment|Sony]] have attempted in court If you don't intend to prevent emulators from being soldkeep MAME on your drive, but they have been ultimately unsuccessfulyou should type out the full path of the folder.<ref>{{cite web |url= httpIf you intend to keep MAME, [https://www.wiredhowtogeek.com/news118594/businesshow-to-edit-your-system-path-for-easy-command-line-access/0,1367,34281,00add its directory to your path].html |title= Court Upholds PlayStation Rival |publisher= ''[[Wired (magazine)|Wired]]'' |first= Joanna |last= Glasner |date= 10 February 2000 |accessdate= 24 September 2006}}</ref> MAME itself has thus far not been Because Linux packages insert shortcuts into folders assigned to the subject of environment path, we can call it from any court casesfolder.
However, most arcade games are still covered by copyright. While it is arguably legal Open up the terminal and navigate to transfer the data contained in ROM chips from a board you own to a personal computer, both downloading from and distributing ROMs on folder containing the Internet without permission from copyright holders is a violation of copyright lawsBIN/CUE files.
Some copyright holders have been indecisive regarding making licensed arcade game ROMs available to the public. For example, in 2003 Atari made MAME-compatible ROMs for 27 of its arcade games available through the internet site $ cd "''Star ROMspath/to/folder''. However, by 2006 that decision had been reversed, and the ROMs are no longer being sold there. At one point, various [[Capcom]] games were sold with the HotRod arcade joystick manufactured by [[Hanaho]], but this arrangement was discontinued as well."
Other copyright holders have released games which are no longer commercially viable free of charge to the public. ''Alien Arena'', ''[[Gridlee]]'', ''Looping'', ''[[Robby Roto]]'', ''Super Tank'' and <code>chdman</code> has a number of early games by [[Exidy]] (''Car Polo'', ''[[Circus (video game)|Circus]]'', ''Crash'', ''Fax'', ''Fire One'', ''Hard Hat'', ''Rip Cord'', ''Robot Bowl'', ''Side Trak'', ''[[Spectar]]'', ''[[Star Fire]]'', ''[[Targ (video game)|Targ]]'', ''[[Teeter Torture]]'', ''Top Gunner'' and ''Victory'') have been released by their copyright holders under non-commercial licenses. These games may be downloaded legally from the official MAME web site.command called <refcode>{{cite web|title=MAME ROMs for Free Download|url=http://mamedev.org/roms/}}createcd</refcode> The Spanish arcade game developer [[Gaelco]] has also released that we''World Rally'' for nonll use to create a CD-commercial use on their websitetype CHD.<ref>{{cite web | title = Gaelco games at home! | url = http://wwwmanpages.gaelcoubuntu.com/englishmanpages/pagestrusty/hablandoman1/frhablanchdman.1.html, see createcd.htm }}</ref>Note that in the example below, "test (!)" is a placeholder and should be renamed to the name of the file.
== License == >''C:\path\to\''chdman createcd -o "test (!).chd" -i "test (!).cue" $ chdman createcd -o "test (!).chd" -i "test (!).cue"
MAME is available at no cost, including its [[source <code>chdman</code]]. Its [[software license]] is a BSD-derivative [[copyleft]] license in that redistributions of modified versions (derivative works) must include > will now compress the cue file, and it should complete corresponding source code. Howeverwith just one CHD for you to use, the license states that "redistributions may not be sold, nor may they be used either in a commercial product MAME or activity"an emulator that supports it. The main goal of this is to prevent arcade operators from installing MAME cabinets and profiting from the works of the original manufacturers of the game.<ref>{{cite web |url= http://mamedev.org/legal.html |title= MAME Legal Information |publisher= The MAME Development Team |first= Nicola |last= Salmoria |accessdate= 22 March 2009}}</ref> Due to the prohibition on commercial distribution MAME does not fulfill the criteria of [[free software]] as defined by the [[Free Software Foundation]]; nor does it meet the conditions of the [[Open Source Definition]].
The MAME development team encourages people to submit their work back to the main source tree; however changes that are viewed as detracting from emulation accuracy (hacks) are not accepted. Experimental features such as [[netplay]] are also not accepted yet. Derivative builds such as MAMEUIFX<ref>{{cite web|author=Mamesick |url=http://mame32fx.altervista.org/ |title=Mameuifx |publisherRecompressing ZIPs to 7-Zip=Mame32fx.altervista.org |date= |accessdate=2012-12-20}}:''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</refcode> and MAMEHub/ClientServerMAME+ <refcode>{{cite web|url=http://www.mamehub.info/ |title=MAMEHub Homepage |publisher=Mamehub.info |date= |accessdate=2012-12-20}}Delete</refcode><ref>{{cite web|author=Jason Gauci |url=http://10ghost.blogspotAlways back up the files if you're worried you might do it wrong.com/ |title=DigitalGhost's Blog |publisher=10ghost.blogspot.com |date= |accessdate=2012-12-20}}</ref> have been developed to cater for users desiring such features.'
== See also ==<br />{{portal|Video games}}<br />* [[Arcade emulator]]<br />* [[MESS]]<br />* [[List MAME keeps a database of video game console emulators]]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).
== References ==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.
{{Reflist}}| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;"|+How to| colspan=2 ||-! Graphical|Take the zip file:
== External links ==<br roms/>{{wikibooks|transwiki:MAME arcade cabinet}} (romset).zip/ (game).(rom) (lle1).(rom) (lle2).(rom)
<!-- please do not add links And uncompress it to ROMs/bios repositories, as these most likely contain copyright violations and linking to them in Wikipedia is therefore not allowed; see [[WP:EL]] for details --><br />* {{Official website|http://mamedev.org/}}<br />* [http://www.mameworlda folder of the same name.info/ MAMEworld] MAME resource and news site
roms/ (romset).zip/ (game).(rom) (lle1).(rom) (lle2).(rom) (romset)/ (game).(rom) (lle1).(rom) (lle2).(rom) At this point, you can safely delete the zip file. Go into the folder, select all the files, and add them to a .7z archive using 7-Zip. Assuming you've installed 7-Zip with the default settings on Windows, the option to do this should come up when you right-click the files. The name of the archive must be the romset's name. The config screen may show an option to "delete files after compression". You can safely select this and, assume you do, the archive will now appear in the folder (unless you've specified a different location):  roms/ (romset)/ (romset).7z Take the 7-Zip archive, move it into the roms folder, and you can safely delete the romset's folder. It should look like this.  roms/ (romset).7z Rinse and repeat for any other romsets you want to do. MAME should be able to read it.|-! Terminal|The following is a non-destructive one-liner to decompress and recompress your files from zip to 7z. '''Please account for at least a 3:1 space requirement, and about 3 seconds time per file (give or take). Keep in mind, if you have any other folders present in the working directory it'll snag those too during the second step.'''  for y in *.zip; do 7z x "${y%}" -o*; done && for i in */; do 7z a "${i%/}".7z "./${DEFAULTSORTi%}*"; done After it's done, be sure to check and make sure the 7z and zip files' contents match before deleting both the zips and their extracted folders.|} ==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. :Collection of [http://www.progettosnaps.net/mameui_en.html all versions].:MameUNOFFICIAL BUILDS − [http://www.t2e.pl/pl/466/134/466/Automatyczne-edycje?tsearch=mameui,not|plus,not|mewui,not|mameuifx MAMEUI x86/x64 unofficial builds]. ===[[GroovyMAME]]===GroovyMAME (or GroovyUME) is 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. However, now that modern MAME versions support variable refresh rate monitors and the "-lowlatency" flag, there is less of a need for GrooveMAME or for other lag-reducing builds such as Shmupmame. http://forum.arcadecontrols.com/index.php/board,52.0.html ===PinMAME===[https://github.com/vpinball/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] is a maintenance-only continuation 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) ===[[HBMAME]]===HBMAME (HomeBrew MAME) is a derivative of MAME 0.245, and contains various hacks and homebrews. *Homebrew games meant for arcade hardware, or emulators of arcade hardware*Hacks of arcade games*Test roms and similar that do not generate revenue*Selected bootlegs that are not in MAME*Games that are enhanced or improved but not suitable for MAME  ===NegaMAME===[https://babelsoft.net/products/negatron.htm#download NegaMAME] adds a command to interact with Negatron, a frontend that lets you unlock all the possibilities of machine configurations available in MAME when used with frontends (otherwise broken since 0.186). It's irrelevant for arcades emulation, but useful for emulating consoles and computers. ==Netplay=====Downloads===*[http://www.kaillera.com/files/mameppk_bin_gcc-0.119-20070914.zip MAME32 Plus Plus]*[http://www.kaillera.com/download.php Kaillera]{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;"! colspan=2 width="250"|Review|-| '''PROS''' ||*Support for up to 4 simultaneous people playing*No fiddling with router settings and port forwarding*Despite being old, many consider it being able to handle Kaillera the best*Netplay traffic is handled by a central dedicated server that helps keep things synched*Robust library of games*Extremely configurable*Private game chat support and public chat to speak people outside your game room*Being able to drop out of a game at any time without disrupting (much) your teammate(s).*Kicking/banning/muting people from your room*It's a matchmaking service where you can join other people's rooms, too|-| '''CONS''' ||*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*Incorrectly emulates many games, while outright not being able to emulate others, due to being based on a very old MAME version. Even MAME Kaillera builds labeled with recent MAME versions are actually very old and inaccurate versions with only the game list updated.*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 save file, or no save file at all. Else, it desynchs*You need to constantly switch focus back and forth between chat and emulator window in order to chat.*You will hear no sound while the window is unfocused.|}{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;"! colspan=1 |How to|-|#Replace the kailleraclient.dll inside the "kaillera" folder in the emulator directory#Place your game(s) ZIPPED inside the "roms" folder in the emulator directory#Run the emulator, then press F5 to refresh your ROM list#Go to file, click Kaillera Netplay...In order to configure your controllers, you need to press TAB once the game is running. Clear every key for Player 1 using "Esc", and only map the directional buttons, and buttons number 1 through 8, which should cover most standard games. You may also chat in-game by pressing Home twice. Also, you have to restart the emulator EVERY TIME you load a new game, or attempt to restart the current one. Else, you'll get a black screen.|==References==<br references/> ==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)* [Categoryhttps://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/kale/ Developer coverage] from [https://wiki.mamedev.org/index.php/Angelo_Salese Angelo 'Kale' Salese]. (Former project coordinator, 2011-2012. He mainly developed the ST-V arcade core. Also see his more regularly updated [https://www.youtube.com/user/LordKale4 YouTube channel].)* [http://www.bryanmcphail.com/wp/?cat=25 Dev coverage] from Bryan 'Mish' McPhail* [https://redump.net/ Dev coverage] from [http://mess.redump.net/people/duke Dirk 'Duke' Best]* [https://mamedev.emulab.it/etabeta/ Dev coverage] from Fabio 'etabeta' Priuli* [http://avoidspikes.blogspot.com/ Dev coverage] from Frank 'Knarfian' Palazzolo* [https://web.archive.org/web/20230710083327/http://members.iinet.net.au/~lantra9jp1_nbn/gurudumps/ Dev coverage] from Guru (Mainly repairs/decaps arcade boards and provides dumps of them for MAME. [https://web.archive.org/web/20230711205654/http://members.iinet.net.au/~lantra9jp1_nbn/gurudumps/decap/index.html Decapping status page], [https://web.archive.org/web/20230522164427/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://rbelmont.mameworld.info/ Dev coverage] from R. 'Arbee' Belmont (Worked often on Apple ][, /// and early Mac's emulation)* [http://robbie.mameworld.info/ Dev coverage] from Roberto 'Robbie' Fresco (He usually reverse-engineers boards of old gambling games (casino/cards and pokies-style) and some arcade games, especially in foreign languages. He often works with other programmers like Grull Osgo, and occasionally with Andreas Naive, ElSemi, Tomasz Slanina, etc.)* [https://mamedev.emulab.it/robiza/ Dev coverage] from Roberto 'Robiza' Zandonà (Italian blog)* [http://slanina.pl/mame.html Dev coverage] from Tomasz 'Dox' Slanina* [http://rants.vastheman.com/category/technology/mame/ Dev coverage] from Vas 'cuavas' Crabb (Few posts)* [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://www.youtube.com/Sterophonick YouTube channel] from [https://web.archive.org/web/20210606211134/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/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:1997 software//forums.launchbox-app.com/topic/54987-autoboot-command-script-for-mame-swl-computer-systems Autoboot commands for both libretro core and standalone MAME'''Third-Party:'''* [https://www.youtube.com/channel/UCuCqiFa48-8uJF2zvXR9nig YouTube channel]<br of Bob Zed (It shows many news and demonstration videos of MAME'S major updates, working hardware & software, audio & music playbacks, tutorials, among other misc topics. Many videos are grouped into playlists divided by MAME's major releases. First video on MAME coverage started in Nov 2020.)* [https://www.youtube.com/channel/>UC-bPUTexHdVt57iY_pnPCjA YouTube channel] of MAME Favorite Playlists (It shows simple videos on MAME's major updates, working hardware & software, artwork, control guides, and other misc topics. First video on a major MAME update started in Jul 2021.) [[Category:Arcade emulatorsEmulators]]<br />[[Category:Multi-emulators]]<br />[[Category:Arcade emulators]][[Category:GP2X emulation softwareComputer emulators]]<br />[[Category:Linux emulation softwareConsole emulators]]<br />[[Category:Amiga emulation softwareHandheld console emulators]]<br />[[Category:Mac OS emulation softwareHome console emulators]]<br />[[Category:OS X Windows emulation software]]<br />[[Category:Windows Linux emulation software]]<br />[[Category:AmigaOS 4 macOS emulation software]]<br />[[Category:RetrocomputingBSD emulation software]]<br />[[Category:Cross-platform softwareNetplay]]
424
edits

Navigation menu