MAME - MAME

MAME
Logo MAME
NewMAME.png
Hlavní nabídka MAME (od verze 0.209)
Původní autoři Nicola Salmoria
Vývojáři Nicola Salmoria a tým MAME
První vydání 5. února 1997 ; Před 24 lety ( 1997-02-05 )
Stabilní uvolnění 0,235 (27. srpna 2021 ; před 51 dny ) [±] ( 2021-08-27 )
Úložiště
Napsáno C ++ ( u některých ovladačů C a Python )
Operační systém Windows, macOS, Linux, BSD, Amiga atd.
Typ Emulátor
Licence GPL-2.0 nebo novější , u některých dílčích částí BSD-3-Clause
webová stránka www .mamedev .org

MAME (původně zkratka of Multiple Arcade Machine Emulator ) je zdarma a open-source emulátor navržen tak, aby obnovit hardware arkáda systémů softwaru na moderních osobních počítačů a dalších platforem. Jejím cílem je zachovat herní historii tím, že zabráníte ztrátě nebo zapomenutí historických her. Dělá to emulací vnitřního fungování emulovaných arkádových strojů; schopnost skutečně hrát hry je považována za „pěkný vedlejší efekt“. Joystiq uvedl MAME jako aplikaci, kterou by měl mít každý hráč Windows a Mac .

První veřejné vydání MAME bylo od Nicola Salmoria 5. února 1997. Nyní podporuje více než 7 000 unikátních her a 10 000 skutečných sad obrázků ROM , i když ne všechny hry lze hrát. MESS , emulátor mnoha videoherních konzolí a počítačových systémů, založený na jádru MAME, byl do MAME integrován v roce 2015.

Historie a přehled

Projekt MAME zahájila italská programátorka Nicola Salmoria . Začalo to jako projekt s názvem Multi-Pac, který měl zachovat hry v rodině Pac-Manů, ale název byl změněn, protože do jeho rámce byly přidány další hry. První verze MAME byla vydána v roce 1996. V dubnu 1997 Salmoria odstoupil ze svých závazků v oblasti národních služeb a předal správu projektu kolegovi italskému Mirkovi Buffonimu na půl roku. V květnu 2003 převzal David Haywood práci koordinátora projektu; a od dubna 2005 do dubna 2011 projekt koordinoval Aaron Giles. Jako nový koordinátor nastoupil Angelo Salese. V roce 2012 převzal vedení Miodrag Milanovic. Projekt podporují stovky vývojářů z celého světa a tisíce externích přispěvatelů.

Zpočátku byl MAME vyvinut výhradně pro MS-DOS , ale brzy byl přenesen do unixových systémů (X/MAME), Macintosh (MacMAME a později MAME OS X) a Windows (MAME32). Od 24. května 2001, ve verzi 0.37b15, dochází k hlavnímu vývoji MAME na platformě Windows a většina ostatních platforem je podporována prostřednictvím projektu SDLMAME , který byl integrován do hlavního zdrojového stromu vývoje v roce 2006. MAME byl také přenesen do jiných počítače, herní konzole, mobilní telefony a PDA a v jednu chvíli dokonce i digitální fotoaparáty. V roce 2012 přenesl Google MAME na Native Client , což umožňuje MAME běžet v Chromu .

Hlavní vydání MAME se vyskytuje přibližně jednou za měsíc. Spustitelné soubory Windows v 32bitové i 64bitové verzi jsou zveřejněny na oficiálních webových stránkách vývojového týmu spolu s kompletním zdrojovým kódem. Menší, přírůstkové „u“ (pro aktualizaci) zprávy byly zveřejněny týdenní (do verze 0.149u1) jako zdrojové porovnávání proti nejnovější hlavní verze, aby kód v synchronizaci mezi vývojáři. Zdrojový kód MAME je vyvinut na veřejném úložišti GitHub . To umožňuje osobám s požadovanými odbornými znalostmi a nástroji sestavit nejaktuálnější verzi kódu a přispět k vylepšení ve formě požadavků na vyžádání . Historická čísla verze 0,32 a 0,38 až 0,52 včetně neexistují; první z nich bylo přeskočeno kvůli podobnému pojmenování varianty MAME32 (která byla od té doby přejmenována na MAMEUI kvůli přechodu na 64bitové verze), zatímco druhá čísla byla vynechána kvůli četným vydáním v cyklu beta verze 0,37 (tyto verze čísla byla od té doby označena vedle jejich ekvivalentních 0,37 beta verzí na oficiálním webu MAMEdev).

Architektura MAME byla v průběhu let výrazně vylepšena. V prvních šesti měsících projektu byla do MAME přidána podpora jak pro rastrové a vektorové displeje , tak pro více CPU a zvukových čipů. Byl implementován flexibilní systém časovače pro koordinaci synchronizace mezi více emulovanými jádry CPU a obrazy ROM se začaly načítat podle jejich hash CRC32 v souborech ZIP, ve kterých byly uloženy. MAME je průkopníkem zpětného inženýrství mnoha nezdokumentovaných systémových architektur, různých CPU (například M6809 -derivative vlastní Konami CPU s novými instrukcemi) a zvukové čipy (například zvukové čipy Yamaha FM ) a vývojáři MAME se podíleli na reverzním inženýrství mnoha proprietárních šifrovacích algoritmů používaných v arkádových hrách. Mezi tyto příklady patří Neo Geo , CP System II , CP System III a mnoho dalších.

Popularita MAME se od té doby dostala do hlavního proudu, kdy nadšenci stavěli své vlastní arkádové herní skříně, aby znovu prožili staré hry, a společnosti vyrábějící nelegální odvozená díla MAME, které mají být instalovány v arkádách . Skříně lze stavět buď od nuly, nebo rozebráním a úpravou originální skříně arkádových her, která byla kdysi používána se skutečným hardwarem uvnitř. Skříně inspirované klasickými arkádovými hrami lze také zakoupit a sestavit (s předinstalovaným volitelným a MAME).

Přestože MAME obsahuje základní uživatelské rozhraní, použití MAME v arkádových herních skříních a domácích kinech vyžaduje speciální spouštěcí aplikace zvané frontend s pokročilejšími uživatelskými rozhraními. Front endy poskytují různé stupně přizpůsobení - umožňují prohlížet obrázky skříní, historii her a tipy, jak hrát, a dokonce i video ze hry nebo režim přitahování hry.

Informace obsažené v MAME jsou zdarma k opětovnému použití a je známo, že společnosti využívají MAME při obnově své staré klasiky v moderních systémech. Někteří šli tak daleko, že najali vývojáře MAME na vytváření emulátorů pro jejich staré vlastnosti. Příkladem toho je balíček Taito Legends, který obsahuje ROM čitelné na vybraných verzích MAME.

Od roku 2012 MAME udržuje tehdejší vedoucí projektu MESS Miodrag Milanović.

27. května 2015 (0,162) je herní konzole a emulátor počítačový systém MESS byl integrován s MAME (takže MESS Uživatelská příručka je stále nejdůležitější instrukce použití pro non-arkádové části MAME).

V květnu 2015 bylo oznámeno, že vývojáři MAME plánují re-licenci softwaru pod běžnější bezplatnou a open-source licencí , mimo původní licenci MAME . Vývojář MAME Miodrag Milanovic vysvětlil, že cílem této změny je přilákat k projektu větší zájem vývojářů, umožnit výrobcům her distribuovat MAME k emulaci vlastních her a učinit ze softwaru „učební nástroj pro vývojáře pracující na vývojových deskách“ . V březnu 2016 byl dokončen přechod licencí MAME na licence BSD/GPL. Se změnou licence je většina zdrojového kódu MAME (90%+) k dispozici pod licencí BSD-3-Clause a celý projekt je pod GPL -2.0 nebo novější licence.

24. února 2016 (0,171) vložila MAME front-end MEWUI (a vývojář se připojil k týmu) a poskytl MAME flexibilní a plnohodnotnější uživatelské rozhraní.

Design

Jádro MAME koordinuje emulaci několika prvků současně. Tyto prvky replikují chování hardwaru přítomného v původních arkádových automatech . MAME může emulovat mnoho různých centrálních procesorových jednotek (CPU) a souvisejícího hardwaru. Tyto prvky jsou virtualizované, takže MAME funguje jako softwarová vrstva mezi původním programem hry a platformou MAME, na které běží. MAME podporuje libovolné rozlišení obrazovky, obnovovací frekvence a konfigurace displeje. Podporováno je také více emulovaných monitorů, jak požaduje například Darius .

Jednotlivé pasáž systémy jsou určeny řidičům , které mají podobu C preprocesoru makra . Tyto ovladače určují jednotlivé komponenty, které mají být emulovány, a způsob, jakým spolu komunikují. Zatímco MAME byl původně napsán v jazyce C , potřeba objektově orientovaného programování způsobila, že vývojový tým začal kompilovat veškerý kód jako C ++ pro MAME 0,136, přičemž v procesu využil další funkce tohoto jazyka.

Ačkoli velká většina emulačních jader CPU je interpretačních , MAME také podporuje dynamickou rekompilaci prostřednictvím prostředního jazyka nazývaného Universal Machine Language (UML) pro zvýšení rychlosti emulace. Podporované cíle typu back-end jsou x86 a x64. K dalšímu ověření správnosti je také k dispozici AC back end. Takto emulované CPU jsou SH-2, MIPS R3000 a PowerPC.

Údaje o hře

Aby bylo možné hru emulovat, musí být k dispozici původní kód programu, grafika a zvuková data. Ve většině arkádových strojů jsou data uložena v paměťových čipech (ROM) pouze pro čtení , ačkoli se používají i jiná zařízení, jako jsou kazety , diskety , pevné disky , laserové disky a kompaktní disky . Obsah většiny těchto zařízení lze zkopírovat do počítačových souborů v procesu zvaném „dumping“. Výsledné soubory se často obecně nazývají obrazy ROM nebo ROM bez ohledu na typ úložiště, ze kterého pocházejí. Hra se obvykle skládá z více obrázků ROM a PAL ; ty jsou souhrnně uloženy v jednom souboru ZIP , což tvoří sadu ROM. Kromě „rodičovské“ sady ROM (obvykle zvolené jako nejnovější „světová“ verze hry) mohou mít hry „klonové“ sady ROM s odlišným kódem programu, odlišným jazykovým textem určeným pro různé trhy atd. Například Street Fighter II Turbo je považován za variantu Street Fighter II Champion Edition . Systémové desky, jako je Neo Geo, které mají ROMy sdílené mezi více hrami, vyžadují, aby byly ROMy uloženy v sadách ROM „BIOS“ a příslušně pojmenovány.

Pevné disky, kompaktní disky a laserové disky jsou uloženy ve formátu specifickém pro MAME, který se nazývá CHD (Compressed Hunks of Data). Některé arkádové stroje používají k ukládání a přehrávání audio/video dat, jako jsou zvukové stopy a kinematika, analogový hardware, například laserové disky. Tato data musí být zachycena a zakódována do digitálních souborů, které lze přečíst pomocí MAME. MAME nepodporuje použití externích analogových zařízení, která (spolu se stejnými reproduktory a kryty reproduktorů) by byla nutná pro 100% věrnou reprodukci arkádového zážitku. Řada her používá zvukové čipy, které ještě nebyly úspěšně emulovány. Tyto hry vyžadují pro emulaci zvuku ukázky zvuku ve formátu WAV. MAME navíc podporuje soubory uměleckých děl ve formátu PNG pro bezel a překryvnou grafiku.

Filozofie a přesnost

Uvedeným cílem projektu je zdokumentovat hardware, a tak MAME zaujímá poněkud puristický pohled na emulaci a zakazuje programovací hacky, které by mohly způsobit nesprávné spuštění hry nebo rychlejší běh na úkor přesnosti emulace. Komponenty, jako jsou CPU, jsou emulovány na nízké úrovni (což znamená, že jsou emulovány jednotlivé instrukce), kdykoli je to možné, a emulace na vysoké úrovni (HLE) se používá pouze v případě, že je čip zcela bez dokumentace a nelze jej podrobně zpětně navrhnout. Emulace úrovně signálu se používá k emulaci zvukových obvodů, které se skládají z analogových komponent.

Chceme dokumentovat hardware. Nyní mnoho lidí řekne; „Kde máš dokument? Prostě napíšeš hromadu zdrojových kódů.“ A ano, to je pravda. Jedna věc, kterou jsem se dozvěděl, je, že udržovat synchronizaci dokumentace se zdrojovým kódem je téměř nemožné. Nejlepším důkazem, že je vaše dokumentace správná, je „funguje tento kód“.

-  Aaron Giles, California Extreme 2008

MAME emuluje více než tisíc různých arkádových systémových desek , z nichž většina je zcela bez dokumentů a je vytvořena na míru pro spuštění jedné hry nebo jejich velmi malého počtu. Přístup MAME s ohledem na přesnost je přírůstkový; systémy jsou emulovány tak přesně, jak rozumně mohou být. Kopie bootlegů her jsou často první emulované, správné (a chráněné proti kopírování) verze jsou emulovány později. Kromě šifrování byly arkádové hry obvykle chráněny vlastními mikrokontrolérovými jednotkami (MCU), které implementovaly část logiky hry nebo některé další důležité funkce. Emulace těchto žetonů je upřednostňována, i když mají malý nebo žádný bezprostředně viditelný účinek na samotnou hru. Chování příšer v Bubble Bobble nebylo například zdokonaleno, dokud nebyl kód a data obsažená ve vlastním MCU vyhozena pomocí dekapitace čipu. To má za následek změnu požadavků na sadu ROM, protože hry jsou emulovány ve stále přesnější míře, což způsobuje, že starší verze sady ROM se stávají nepoužitelnými v novějších verzích MAME.

Přenositelnost a obecnost jsou pro MAME také důležité. V kombinaci s nekompromisním postojem k přesnosti to často vede k vysokým systémovým požadavkům. Přestože procesor 2 GHz stačí ke spuštění téměř všech 2D her, novější systémy a zejména systémy s 3D grafikou mohou být nehratelně pomalé, a to i na těch nejrychlejších počítačích. MAME v současné době nevyužívá hardwarovou akceleraci ke zrychlení vykreslování 3D grafiky, částečně kvůli nedostatku stabilního multiplatformního 3D API a částečně proto, že vykreslování softwaru může být teoreticky přesnou reprodukcí různých vlastních Přístupy 3D vykreslování, které byly použity v arkádových hrách.

Právní status

Vlastnit a distribuovat MAME je ve většině zemí legální, protože jde pouze o emulátor. Společnosti jako Sony se pokusily u soudu zabránit prodeji jiného softwaru, jako je Virtual Game Station , emulátor Sony PlayStation , ale nakonec neuspěly. Samotný MAME dosud nebyl předmětem žádných soudních případů.

Většina arkádových her je stále chráněna autorskými právy. Stahování nebo distribuce ROM chráněných autorskými právy bez svolení držitelů autorských práv je téměř vždy porušením autorských práv. Některé země (včetně USA) však umožňují majiteli desky přenášet data obsažená v jejích čipsech ROM do osobního počítače nebo jiného zařízení, které vlastní. Někteří držitelé autorských práv prozkoumali zpřístupnění ROM arkádových her veřejnosti prostřednictvím licencování. Například v roce 2003 Atari zpřístupnilo ROM-ROM kompatibilní s MAME pro 27 svých arkádových her na internetových stránkách Star ROM . Do roku 2006 se tam však ROMy již neprodávaly. V jednom okamžiku byly různé hry Capcom prodávány s arkádovým joystickem HotRod vyráběným společností Hanaho , ale toto uspořádání bylo také ukončeno. Ostatní držitelé autorských práv vydali hry, které již nejsou komerčně životaschopné, zdarma pro veřejnost na základě licencí, které zakazují komerční použití her. Mnoho z těchto her lze legálně stáhnout z oficiálních webových stránek MAME. Španělský vývojář arkádových her Gaelco také vydal World Rally pro nekomerční použití na svých webových stránkách.

Komunita MAME se distancovala od ostatních skupin redistribuujících ROM prostřednictvím internetu nebo fyzických médií a tvrdila, že očividně porušují autorská práva a poškozují projekt tím, že jej potenciálně mohou zneuctít. Navzdory tomu jsou na internetu rozšířené nelegální distribuce ROM a existuje také mnoho „úplných sad“, které obsahují úplnou sbírku ROM konkrétní verze. Navíc mnoho bootleg herních systémů, jako například arkádové multi carts, často ke spuštění svých her používají verze MAME.

Původní licence MAME

MAME byl dříve distribuován na základě vlastní autorské licence copyleft , nazývané „licence MAME“ nebo „licence podobná MAME“, která byla přijata i jinými projekty, např. Visual Pinball . Tato licence zajišťuje dostupnost zdrojového kódu licencovaného programu , zatímco redistribuce programu v komerčních aktivitách je zakázána. V důsledku tohoto ustanovení, že licence je nekompatibilní s OSI ‚s definicí s otevřeným zdrojovým kódem a FSF ‘ s rozlišením software zdarma , a jako takový není považován za open source nebo svobodného software licence, resp. Nekomerční doložka byla navržena tak, aby zabránila provozovatelům arkád instalovat skříně MAME a těžit z děl původních výrobců her. Nejasnost definice „komerční“ vedla k právním problémům s licencí.

Od března 2016 s verzí 0,172, MAME sám přešel , by dvojí licencí , společných bezplatných softwarových licencí , na BSD-3-Clause licence, a GPL-2,0-or-pozdější licence.

Viz také

Reference

externí odkazy

  • Oficiální webové stránky
  • MAMEworld MAME zdroj a zpravodajský web
  • Arcade Database Database obsahující podrobnosti o jakékoli hře podporované Mame, včetně předchozích verzí. K dispozici jsou obrázky, videa, programy pro stahování dalších souborů, rozšířené vyhledávání, grafika a mnoho dalších zdrojů.