MAME (ursprünglich ein Akronym für Multiple Arcade Machine Emulator) ist ein kostenloser und Open-Source-Emulator, der die Hardware von Arcade-Spielsystemen in Software auf modernen Personalcomputern und anderen Plattformen wiederherstellt. [2] Es ist beabsichtigt, die Gaming -Geschichte zu bewahren, indem verhindern, dass Vintage -Spiele verloren gehen oder vergessen werden. Das Ziel von Mame ist es, ein Hinweis auf das Innenleben der emulierten Arcade -Maschinen zu sein. Die Fähigkeit, die Spiele tatsächlich zu spielen, gilt als "schöner Nebeneffekt". [3] Joystiq hat Mame als Anwendung aufgeführt, die jeder Windows- und Mac -Spieler haben sollte. [4]
Die erste öffentliche Mame -Veröffentlichung stammt von Nicola Salmoria am 5. Februar 1997. Der Emulator unterstützt nun über 7.000 einzigartige Spiele und 10.000 tatsächliche ROM -Image -Sets, obwohl nicht alle unterstützten Spiele spielbar sind. Mess, ein Emulator für viele Videospielkonsolen und Computersysteme, basierend auf dem Mame Core, wurde 2015 in Mame integriert.
MAME (Multiple Arcade Machine Emulator) ist ein kostenloser und Open -Source -Emulator, der die Hardware des Arcade -Spielesystems in Software auf modernen PCs und anderen Plattformen wiederherstellt. Mame.net ist ein C# -basierter Arcade -Emulator und unterhält die gleiche Architektur von MAME. Durch die Verwendung von C# und die leistungsstarke integrierte Entwicklungsumgebung - Microsoft Visual Studio gibt es kein Makro und Sie können das unterstützte Arcade -Spiel überall debuggen. Inzwischen werden einige klassische Boards unterstützt: M72, M92, CPS-1, CPS-1 (QSound), CPS2, Neo Geo, NAMCO-System 1, IGS011, PGM (Polygame-Master).
Mame.net läuft bei folgenden Schritten aus: Laden Sie die ROMs, initialisieren Sie die Maschine, setze die Maschine und loop "cpuexec_timeslice" -Operation. Die Operation "cpuexec_timeslice" bedeutet, dass jede CPU für eine Zeitscheibe nacheinander ausführen und Timer -Rückrufe ausführen. Timer -Rückrufe enthält: Video -Update, Soft Reset, CPU Interrupt, Sound -Update, Watchdog Reset und andere Interrupts. In diesen Schritten emuliert Mame.net das Arcade -Board erfolgreich. Mame.net hat mehr Funktionen: Speichern und Laden von Status, Datensatz und Wiederholung, Cheat, Cheat Search, IPS (Patch Main ROM), Board -Debugger, CPU -Debugger.



Wenn die ROMs eines Spiels geladen sind, wird der Emulator automatisch angehalten. Drücken Sie P, um fortzufahren.
*Gelegentlich tritt GDI+ -Fehler auf und ein rotes Kreuz wird angezeigt. Sie können auf "Datei-Reset PictureBox" klicken, um den Fehler zu verarbeiten.
1 Geschichte und Übersicht 2 Design 2.1 Spieldaten 3 Philosophie und Genauigkeit 4 Rechtsstatus 5 Original Mame-Lizenz 6 Siehe auch 7 Referenzen 8 Externe Links
Das Projekt wurde vom italienischen Programmierer Nicola Salmoria gestartet. Mame verfolgt seine Wurzeln zu einem früheren Emulatorprojekt namens Multi-PAC, aber der Name wurde geändert, als immer mehr Spiele im Mame-Framework emuliert wurden. Die erste Version wurde 1996 veröffentlicht. [5] Im April 1997 trat Salmoria für seine nationalen Dienstverpflichtungen zurück und übergab für einen halben Jahr an die italienische Italiener -Mirko Buffoni die Verantwortung des Projekts. Im Mai 2003 übernahm David Haywood den Job des Koordinators. Von April 2005 bis April 2011 wurde das Projekt von Aaron Giles koordiniert. [6] Angelo Salsse trat als neuer Koordinator ein. [7] Im Jahr 2012 übernahm Miodrag Milanovic. [8] Das Projekt wird von Hunderten von Entwicklern auf der ganzen Welt und Tausenden von externen Mitwirkenden unterstützt.
Zunächst wurde Mame ausschließlich für MS-DOS entwickelt, aber bald auf Unix-ähnliche Systeme (X/MAME), Macintosh (MacMame und später Mame OS X) und Windows (Mame32) portiert. Seit dem 24. Mai 2001 mit Version 0.37B15 [6] erfolgt die Hauptentwicklung auf der Windows -Plattform, und die meisten anderen Plattformen werden durch das SDLMAME -Projekt unterstützt, das 2006 in den Quellbaum der Hauptentwicklung integriert wurde. [9] Darüber hinaus wurden verschiedene Versionen von MAME auf andere Computer, Spielekonsolen, Mobiltelefone und PDAs und an einem Punkt sogar auf Digitalkameras portiert. [10] Im Jahr 2012 hat Google MAME mit dem nativen Client portiert, mit dem Mame in Chrome ausgeführt werden kann. [11]
Die Hauptveröffentlichungen von MAME treten ungefähr einmal im Monat auf. Windows Executables in 32-Bit- und 64-Bit-Mode werden auf der offiziellen Website des Entwicklungsteams zusammen mit dem vollständigen Quellcode veröffentlicht. [12] Kleinere, inkrementelle "U" (für Update) wurden wöchentlich (bis Version 0.149U1) als Quelldifferenz gegen die neueste Hauptversion veröffentlicht, um den Code unter den Entwicklern synchronisieren zu lassen. [13] Der Mame -Quellcode wird in einem öffentlichen Github -Repository entwickelt. [14] Auf diese Weise können diejenigen mit dem erforderlichen Know-how und Tools die aktuellste Version des Codes erstellen und Verbesserungen in Form von Pull-Anfragen beibehalten. Historische Versionsnummern 0,32 und 0,38 bis 0,52 inklusiven existieren nicht; Ersteres wurde aufgrund einer ähnlichen Benennung der MAME32-Variante (die inzwischen aufgrund des Umzugs zu 64-Bit-Builds in Mameui umbenannt wurde) übersprungen, während die letzteren Zahlen aufgrund der zahlreichen Veröffentlichungen in der Beta-Zyklus von 0,37 übersprungen wurden (diese Versionszahlen wurden seitdem neben ihren entsprechenden 0,37-Veröffentlichungen auf der offiziellen aufgewachsenen Website markiert.
Die Architektur von Mame wurde im Laufe der Jahre ausführlich verbessert. In den ersten sechs Monaten des Projekts wurden sowohl Raster- als auch Vektor -Displays sowie mehrere CPUs und Soundchips zu MAME hinzugefügt. Ein flexibles Timer -System zur Koordinierung der Synchronisation zwischen mehreren emulierten CPU -Kernen wurde implementiert, und ROM -Bilder wurden gemäß ihrem CRC32 -Hash in den von ihnen gespeicherten Zip -Dateien geladen. [6] MAME hat die Reverse Engineering vieler undokumentierter Systemarchitekturen, verschiedene CPUs (wie die M6809-Derivationskunden-Konami-CPU mit neuen Anweisungen) und Soundchips (z. Beispiele hierfür sind das NEO GEO, das CP -System II, das CP -System III und viele andere. [Zitat erforderlich]
Die Popularität von Mame ist seitdem gut in den Mainstream gebrochen. Enthusiasten bauen ihre eigenen Arcade -Spielschränke auf, um die alten Spiele noch einmal zu erleben, und Unternehmen, die illegale Derivatwerke von Mame produzieren, um in Arkaden zu installieren. Schränke können entweder von Grund auf neu oder durch auseinander nehmen und einen echten Arcade -Spielschrank ändern, der einst mit der realen Hardware im Inneren verwendet wurde. [16] [17] Schränke, die von klassischen Arcade -Spielen inspiriert sind, können ebenfalls gekauft und zusammengestellt werden (mit optionalem und mame vorinstalliertem). [18]
Obwohl Mame eine rudimentäre Benutzeroberfläche enthält, erfordert die Verwendung von Mame in Arcade -Spielschränken und Heimkinos spezielle Launcher -Anwendungen, die als Frontends mit erweiterten Benutzeroberflächen bezeichnet werden. Die Frontends bieten unterschiedliche Anpassungsgrade - sodass eins Bilder der Schränke, die Geschichte der Spiele und Tipps zum Spielen sehen und sogar ein Video des Spielspiels oder der Anziehung des Spiels anziehen.
Die in MAME enthaltenen Informationen sind für die Wiederverwendung kostenlos, und es ist bekannt, dass Unternehmen MAME nutzen, wenn sie ihre alten Klassiker auf modernen Systemen nachbauen. Einige sind so weit gegangen, Mame -Entwickler einzustellen, um Emulatoren für ihre alten Eigenschaften zu schaffen. Ein Beispiel hierfür ist das Taito Legends Pack, das ROMs enthält, die auf ausgewählten Versionen von Mame lesbar sind. [19]
Seit 2012 wird MAME vom damaligen Messprojektleiter Miodrag Milanović unterhalten. [8]
Am 27. Mai 2015 (0.162) wurde das Mess der Spielekonsole und des Computersystems in MAME integriert (daher ist das Mess-Benutzerhandbuch nach wie vor die wichtigste Verwendungsanweisung für die Nicht-Arcade-Teile von MAME). [20]
Im Mai 2015 wurde bekannt gegeben, dass die Entwickler von MAME planen, die Software unter einer gängigeren freien und open-Source-Lizenz, abseits der ursprünglichen Mame-Lizenz, neu zu lizenzieren. Mame -Entwickler Miodrag Milanovic erklärte, dass die Änderung das Projekt mehr Entwickler interessieren soll, den Herstellern von Spielen die Verbreitung von MAME ihre eigenen Spiele verteilt und die Software zu einem "Lernwerkzeug für Entwickler, die an Entwicklern arbeiten", um ihre eigenen Spiele zu emulieren. Der Übergang der Lizenzierung von MAME zu den BSD/GPL -Lizenzen wurde im März 2016 abgeschlossen. [21] [22] Mit der Lizenzänderung ist der größte Teil des Quellcodes von MAME (90%+) unter einer BSD-Lizenz mit drei Klausel verfügbar, und das vollständige Projekt unter der GNU General Public Lizenz Version 2 oder höher. [21] [23]
Am 24. Februar 2016 (0,171) eingebettete Mame, das Mewui Front-End (und der Entwickler dem Team beigetreten) eingebettet und MAME eine flexible und mehr vollständige Benutzeroberfläche zur Verfügung stellte. [24]
Dieser Abschnitt enthält möglicherweise Originalforschung. Bitte verbessern Sie es, indem Sie die erhobenen Behauptungen überprüfen und Inline -Zitate hinzufügen. Aussagen, die nur aus Originalforschung bestehen, sollten entfernt werden. (Juli 2019) (Erfahren Sie, wie und wann diese Vorlagennachricht entfernen soll) Die Mame -Kern koordiniert die Emulation mehrerer Elemente gleichzeitig. Diese Elemente replizieren das Verhalten der in den ursprünglichen Arcade -Maschinen vorhandenen Hardware. Mame kann viele verschiedene zentrale Verarbeitungseinheiten (CPUs) und zugehörige Hardware emulieren. Diese Elemente werden virtualisiert, sodass Mame als Software -Ebene zwischen dem ursprünglichen Programm des Spiels fungiert und die Plattform Mame läuft. Mame unterstützt beliebige Bildschirmauflösungen, Aktualisierungsraten und Anzeigenkonfigurationen. Mehrere emulierte Monitore, wie es beispielsweise von Darius erforderlich ist, werden ebenfalls unterstützt.
Einzelne Arcade -Systeme werden von Treibern angegeben, die in Form von C -Präprozessor -Makros angewendet werden. Diese Treiber geben die einzelnen Komponenten an und wie sie miteinander kommunizieren. Während Mame ursprünglich in C geschrieben wurde, führte die Notwendigkeit einer objektorientierten Programmierung dazu, dass das Entwicklungsteam den gesamten Code als C ++ für MAME 0.136 erstellt und zusätzliche Merkmale dieser Sprache im Prozess nutzte.
Obwohl eine große Mehrheit der CPU -Emulationskerne interpretierend ist, unterstützt Mame auch die dynamische Neukompilation durch eine mittlere Sprache, die als Universal Machine Language (UML) bezeichnet wird, um die Emulationsgeschwindigkeit zu erhöhen. Die unterstützten Back-End-Ziele sind X86 und X64. AC -Backend steht auch zur weiteren Unterstützung der Richtigkeit zur Verfügung. Auf diese Weise emulierte CPUs sind SH-2, MIPS R3000 und PowerPC.
Der ursprüngliche Programmcode, die Grafiken und die Tondaten müssen vorhanden sein, damit das Spiel emuliert werden kann. In den meisten Arcade-Maschinen werden die Daten in schreibgeschützten Speicherchips (ROMS) gespeichert, obwohl auch andere Geräte wie Kassetten, Disketten, Festplatten, Laserdiscs und Kompakt-Discs verwendet werden. Der Inhalt der meisten dieser Geräte kann in einem Prozess mit dem Namen "Dumping" in Computerdateien kopiert werden. Die resultierenden Dateien werden oft generisch als ROM -Bilder oder -ROMs bezeichnet, unabhängig von der Art von Speicher, aus denen sie stammen. Ein Spiel besteht normalerweise aus mehreren ROM- und PAL -Bildern; Diese werden gemeinsam in einer einzelnen Zip -Datei gespeichert, die einen ROM -Set bildet. Zusätzlich zum "Eltern" -ROM -Set (normalerweise als die neueste "Welt" -Version des Spiels ausgewählt) haben Spiele möglicherweise "Klon" -R -Sätze mit unterschiedlichem Programmcode, unterschiedlicher Sprachtext für verschiedene Märkte usw. Systemplatten wie das Neo Geo, in dem die ROMs zwischen mehreren Spielen geteilt werden, müssen die ROMs in "BIOS" -ROM -Sets gespeichert und entsprechend benannt werden.
Festplatten, Kompaktplätze und Laserdiscs werden in einem Mame-spezifischen Format namens CHD (komprimierte Datenhänge) gespeichert. [25] Einige Arcade -Maschinen verwenden analoge Hardware wie Laserdiscs, um Audio-/Videodaten wie Soundtracks und Kinos zu speichern und zurückzuspielen. Diese Daten müssen in digitale Dateien erfasst und codiert werden, die von Mame gelesen werden können. Mame unterstützt nicht die Verwendung externer analoge Geräte, die für eine 100% treue Reproduktion der Arcade -Erfahrung (zusammen mit identischen Sprecher- und Sprecher -Gehäusen) erforderlich sind. Eine Reihe von Spielen verwenden Soundchips, die noch nicht erfolgreich emuliert wurden. Diese Spiele erfordern Tonmuster im WAV -Dateiformat für die Soundemulation. Mame unterstützt zusätzlich Kunstdateien im PNG -Format für Lünette und Overlay -Grafiken.
Das angegebene Ziel des Projekts ist es, Hardware zu dokumentieren, und so nimmt Mame eine etwas puristische Sicht der Emulation ein und verbietet Programmierhacks, die ein Spiel auf Kosten der Emulationsgenauigkeit schneller laufen oder schneller laufen. Komponenten wie CPUs werden nach Möglichkeit auf niedrigem Niveau (dh einzelne Anweisungen werden emuliert) emuliert, und eine hochrangige Emulation (HLE) wird nur verwendet, wenn ein Chip vollständig undokumentiert ist und nicht im Detail umgekehrt werden kann. Die Emulation der Signalpegel wird verwendet, um Audioschaltung zu emulieren, die aus analogen Komponenten besteht.
Wir möchten die Hardware dokumentieren. Jetzt werden viele Leute sagen; "Wo ist dein Dokument? Sie schreiben nur eine Reihe von Quellcode." Und ja, das stimmt. Eine Sache, die ich gelernt habe, ist, dass das Halten der Dokumentation mit Quellcode nahezu unmöglich ist. Der beste Beweis dafür, dass Ihre Dokumentation richtig ist, lautet "Funktioniert dieser Code".
- Aaron Giles, California Extreme 2008 [26] Mame emuliert weit über tausend verschiedene Arcade -Systemplatten, von denen eine Mehrheit vollständig ohne Papiere und individuell für ein einziges Spiel oder eine sehr kleine Anzahl von ihnen ausgelegt ist. Der Ansatz, den Mame in Bezug auf Genauigkeit verfolgt, ist inkrementell; Systeme werden so genau nachgeahmt, wie sie vernünftigerweise sein können. Bootleg -Kopien von Spielen sind häufig die ersten, die nachgeahmt werden, mit ordnungsgemäßen (und kopierten) Versionen, die später emuliert sind. Neben der Verschlüsselung wurden Arcade -Spiele normalerweise mit benutzerdefinierten Mikrocontroller -Einheiten (MCUs) geschützt, die einen Teil der Spiellogik oder einige andere wichtige Funktionen implementierten. Die Nachahmung dieser Chips wird bevorzugt, auch wenn sie nur wenig oder nicht sofort sichtbare Auswirkungen auf das Spiel selbst haben. Zum Beispiel wurde das Monsterverhalten in Bubble Bobble nicht perfektioniert, wenn der Code und die Daten, die mit der benutzerdefinierten MCU enthalten waren, durch die Entkappung des Chips abgeladen wurden. [27] Dies führt dazu, dass sich die ROM -Set -Anforderungen ändern, wenn die Spiele in immer genauerer Grad emuliert werden, was dazu führt, dass ältere Versionen des ROM -Sets in neueren Versionen von MAME unbrauchbar werden.
Portabilität und Generalizität sind auch für MAME wichtig. In Kombination mit der kompromisslosen Haltung zur Genauigkeit führt dies häufig zu hohen Systemanforderungen. Obwohl ein 2 -GHz -Prozessor ausreicht, um fast alle 2D -Spiele durchzuführen, können neuere Systeme und insbesondere Systeme mit 3D -Grafiken selbst auf den schnellsten Computern unvergleichlich langsam sein. Mame nutzt derzeit keine Hardwarebeschleunigung, um das Rendern von 3D-Grafiken zu beschleunigen, teilweise aufgrund des Fehlens einer stabilen plattformübergreifenden 3D-API und teilweise, weil die Software-Rendering theoretisch eine genaue Reproduktion der verschiedenen benutzerdefinierten 3D-Rendering-Ansätze sein kann, die in den Arcade-Spielen verwendet wurden.
Der Besitz und Vertrieb von Mame selbst ist in den meisten Ländern legal, da es sich lediglich um einen Emulator handelt. Unternehmen wie Sony haben vor Gericht versucht, andere Software wie Virtual Game Station zu verhindern, dass ein Sony Playstation -Emulator verkauft wird, aber sie waren letztendlich erfolglos. [28] Mame selbst war bisher nicht Gegenstand von Gerichtsverfahren.
Die meisten Arcade -Spiele sind immer noch vom Urheberrecht abgedeckt. Das Herunterladen oder Vertrieb von urheberrechtlich geschützten ROMs ohne Erlaubnis von Urheberrechtsinhabern ist fast immer ein Verstoß gegen Urheberrechtsgesetze. In einigen Ländern (einschließlich der USA) [29] kann der Eigentümer eines Vorstands jedoch in seinen ROM -Chips auf einen Personalcomputer oder ein anderes Gerät übertragen werden, das er besitzt. Einige Inhaber von Urheberrechten haben untersucht, dass Arcade -Spielroms durch Lizenzierung der Öffentlichkeit zur Verfügung stehen. Zum Beispiel machte Atari 2003 Mame-kompatible ROMs für 27 seiner Arcade-Spiele, die auf der Internet-Site Star ROMS erhältlich sind. Bis 2006 wurden die ROMs dort jedoch nicht mehr verkauft. An einem Punkt wurden verschiedene Capcom -Spiele mit dem von Hanaho hergestellten Hotrod Arcade Joystick verkauft, aber diese Anordnung wurde ebenfalls eingestellt. Andere Inhaber von Urheberrechten haben Spiele veröffentlicht, die für die Öffentlichkeit im Rahmen von Lizenzen, die die kommerzielle Nutzung der Spiele verbieten, nicht mehr kommerziell tragfähig sind. Viele dieser Spiele können legal von der offiziellen Mame -Website heruntergeladen werden. [30] Der spanische Arcade Game-Entwickler Gaelco hat auch die Weltrallye für den nicht kommerziellen Gebrauch auf ihrer Website veröffentlicht. [31]
Die MAME -Community hat sich von anderen Gruppen distanziert, die ROMs über das Internet oder die physischen Medien umverteilt und behauptet, sie verletzen offensichtlich das Urheberrecht und schädigen das Projekt möglicherweise, indem sie es möglicherweise in Verruf bringen. [32] Trotzdem sind illegale ROMS -Verteilungen im Internet weit verbreitet, und es gibt auch viele "vollständige Sets", die eine vollständige Sammlung der ROMs einer bestimmten Version enthalten. [33] [34] Darüber hinaus verwenden viele Bootleg -Spielesysteme, wie Arcade -Multi -Carts, häufig Versionen von Mame, um ihre Spiele durchzuführen.
Mame wurde früher unter einer benutzerdefinierten eigenen CopyLeft-Lizenz mit dem Titel "Mame-Lizenz" oder "Mame-ähnliche Lizenz" verteilt, die auch von anderen Projekten, z. B. visueller Flipper, übernommen wurde. Diese alte "MAME -Lizenz" sorgt für die Verfügbarkeit von Quellcode, während die Umverteilung in kommerziellen Aktivitäten verboten ist. Aufgrund dieser Klausel ist die Lizenz mit der Open -Source -Definition des OSI und der kostenlosen Softwaredefinition des FSF unvereinbar. Die nichtkommerzielle Klausel wurde entwickelt, um zu verhindern, dass Arcade-Operatoren Mame-Schränke installieren und von den Werken der Originalhersteller der Spiele profitieren. [22] Die Mehrdeutigkeit der Definition "kommerziell" führte zu rechtlichen Problemen mit der Lizenz. [35] [36]
Seit März 2016 mit Version 0.172 wechselte Mame selbst zu Common Free und Open Source -Software -Lizenzen, die BSD- und GPL -Lizenzen. [37]