MAME
.mw-parser-output .nota-disambigua{clear:both;margin-bottom:.5em;border:1px solid #CCC;padding-left:4px}.mw-parser-output .nota-disambigua i{vertical-align:middle}
MAME software | |
---|---|
Genere | Emulatore |
Sviluppatore | MAME Team |
Ultima versione | 0.207 (27 febbraio 2019) |
Sistema operativo | Multipiattaforma |
Linguaggio | C++ C |
Licenza | GNU General Public License (licenza libera) |
Sito web | mamedev.org/ |
MAME[1] (Acronimo di Multiple Arcade Machine Emulator) è un software sviluppato dapprima su Amiga ma rilasciato al pubblico inizialmente solo su MS-DOS e in seguito convertito per quasi tutte le macchine e sistemi operativi in circolazione, in grado di emulare varie piattaforme di gioco arcade. Lo scopo di tale emulazione è quello di documentare il funzionamento dei coin-op, preservare la storia dei videogame e di prevenire la scomparsa di vecchie rarità una volta che le macchine originali abbiano cessato di funzionare per motivi di obsolescenza.
Indice
1 Storia
2 Funzionamento
3 Architettura
4 ROMs
4.1 ROM Set
5 Sviluppo
5.1 Coordinatori
5.2 Team di sviluppo
6 Versioni
6.1 Versioni ufficiali
6.2 Versioni particolari
6.3 Portings e modifiche
7 Note etiche e legali
7.1 ROM
7.2 Licenza
7.3 Trademark
8 Note
9 Voci correlate
10 Altri progetti
11 Collegamenti esterni
Storia |
Il primo autore del progetto è stato Nicola Salmoria, che ha iniziato a lavorare all'emulatore il 24 dicembre 1996. Salmoria aveva avuto l'idea di unire più emulatori trovati in rete (tra i quali un primitivo emulatore di Pac Man) in un unico programma in grado di eseguire più giochi. La prima versione, la 0.1, è stata rilasciata il 5 febbraio 1997; funzionante in ambiente MS-DOS da riga di comando, questa versione è in grado di eseguire cinque titoli. In breve tempo il progetto ha cominciato ad attirare l'attenzione di altri sviluppatori, che hanno iniziato a collaborare inserendo nuovi driver per il funzionamento dei videogiochi, grazie ad una peculiare architettura del codice sorgente.
Nel 1997 è cominciato lo sviluppo parallelo di MAME32, una versione adattata all'ambiente Windows a 32 bit con l'aggiunta di una GUI (interfaccia grafica) che ne facilita notevolmente l'utilizzo, soprattutto per chi non conosce i comandi DOS.
Nel 1998 la versione 0.34 raggiunge la quota dei 1000 titoli supportati. Dal 2001 la versione ufficiale del MAME non viene più sviluppata sotto DOS ma sotto Microsoft Windows, sempre senza interfaccia grafica, come programma a riga di comando. L'ultima versione stabile di MAME è la 0.206, rilasciata il 30 gennaio 2019: sono supportati oltre 10.000 titoli, 32.000 contando anche i vari cloni.
Dal 2015 il progetto MAME ed il progetto MESS si sono fusi in un solo progetto mantenendo il nome MAME ma con la possibilità di poter compilare solo la parte arcade o quella MESS
Dal 30 novembre 2016 (versione 0.180) il progetto è coordinato da Vas Crabb.[2]
Funzionamento |
MAME è composto da varie parti in grado di emulare completamente le architetture tipiche delle macchine arcade che ad esempio si trovavano nei bar e nelle sale giochi. In pratica MAME ricostruisce via software tutte quelle circuiterie interne che permettono di gestire gli input dei joystick, la gestione del monitor e dei riproduttori di suoni. L'unica cosa che manca è la parte software delle macchine, cioè le ROM originali dei giochi, che per motivi di copyright non possono essere distribuite legalmente.
Fanno eccezione, al momento, alcuni titoli per i quali è stato concesso espressamente il permesso di distribuzione da parte dei detentori del copyright: in particolare Gridlee della Videa, Robby Roto di Bally/Midway, Alien Arena di Duncan Brown e una serie di 11 giochi prodotti da Exidy, per i quali il produttore ha concesso la libera distribuzione per scopi non commerciali. Anche la Gaelco ha "liberato" il suo World Rally.[3]
Architettura |
Da un punto di vista logico MAME può essere diviso in 3 livelli:
- Il primo livello si occupa dell'emulazione dell'hardware vero e proprio.
- Il secondo livello contiene tutte le funzioni generali e i moduli che fanno da collante tra il primo e il terzo livello.
- Il terzo livello è quello che "presenta" l'emulatore all'utente. È composto dall'interfaccia grafica (se presente) e da tutte quelle opzioni che permettono di avviare e pilotare l'emulatore.
I primi due livelli sono scritti in C in modo da avere maggior velocità e portabilità. Nessuna libreria esterna è richiesta e questo codice è compilabile per qualunque piattaforma da un compilatore standard, praticamente senza modifica alcuna. Il terzo livello è definito OSD (Operating System Dependent) e contiene tutto quel codice specifico per le varie piattaforme. Tutte le varie chiamate di sistema di Windows o di Linux si trovano in questo livello permettendo una facile migrazione del codice da una piattaforma all'altra modificando solo questo livello.
ROMs |
In quasi tutti i giochi arcade i dati (software, grafica, audio, ecc.) sono memorizzati in chip di memoria di sola lettura (Read Only Memory, ROM) sebbene in alcuni casi siano utilizzati anche floppy disk, CD-ROM o cassette. I dati contenuti in questi supporti vengono letti e riscritti in file contenenti l'esatta copia del chip da cui provengono attraverso un processo chiamato dumping. Tali file (indipendentemente dal supporto dal quale provengono) vengono chiamati ROM. Solitamente un gioco è composto da più ROM (alcune per l'audio, alcune per la grafica, ecc.). L'insieme di tutte le ROM di un gioco prende il nome di ROM Set.
Il MAME gestisce i ROM Set in 2 modi: file CHD (Compressed Hunks of Data) che contengono le immagini compresse di hard disk o compact disc oppure file ZIP contenenti tutte le ROM.
ROM Set |
I ROMSet sono gruppi di immagini delle ROM che compongono lo stesso gioco.
Ci sono 3 tipi principali di ROM Set:
ROM Set Originale: anche chiamato ROM Set Parent, questo set contiene tutte le ROM del gioco che il team di sviluppo del MAME ha definito come originale (alcune volte è la versione più recente e completa del gioco, altre volte è la prima e più tradizionale, altre volte ancora è la versione mondiale o la più famosa). Le ROM di questo set contengono tutte le informazioni per lanciare il gioco.
ROM Set Clone: sono varianti dei giochi originali, per esempio versioni precedenti o successive o localizzate, che usano svariate ROM identiche ad altre versioni dello stesso gioco. Per risparmiare spazio queste ROM duplicate vengono incluse una sola volta nel set Parent, mentre il set Clone contiene solamente le ROM che lo distinguono dalle altre edizioni del gioco.
BIOS ROM Set: non sono veri e propri giochi, contengono delle ROM necessarie ad altri giochi per poter essere eseguiti. Il BIOS (Basic Input/Output System) è un insieme di routine di base che gestiscono le varie componenti hardware della macchina del gioco. Queste immagini sono particolarmente importanti per sistemi che supportano più giochi quali il Neo Geo.
Sviluppo |
Coordinatori |
Nicola Salmoria (febbraio 1997-aprile 1997)- Mirko Buffoni (aprile 1997-agosto 1997) (Buffoni sostituì Salmoria mentre questi svolgeva il servizio militare)
- Nicola Salmoria (agosto 1997-2003)
- "Haze" David Haywood (2003-2005)
Aaron Giles (2005 - 2011)- "Kale" Angelo Salese (2011 - 2012)
- "Micko" Miodrag Milanovic (2012- ottobre 2016)
- Vas Crabb (novembre 2016- presente)
Team di sviluppo |
Attualmente MAME viene sviluppato attivamente da:
- Aaron Giles
- "Alex"
- Andreas Naive
- Andrew J. Gardner
- Angelo Salese "Kale"
- Bryan McPhail "Mish"
- Charles MacDonald
- Dave Widel
- David Haywood "Haze"
- Derrick Renaud
- Elsemi
- Frank Palazzolo
- "Guru"
- Luca Elia
- Manuel Abadia
- Mariusz Wojcieszek
- Nicola Salmoria
- Norbert Kehrer
- Paul Priest "Tourniquet"
- Philip J. Bennett
- Phil Stroffolino
- Pierpaolo Prazzoli "Reip"
- R. Belmont "Arbee"
- Roberto Fresca "Robbie"
- Roberto Zandonà "Robiza"
- "smf"
- "Stiletto"
- Jim Stolis "Stolistic"
- Tomasz Slanina "Dox"
- Ville Linde
Essendo comunque un progetto il cui codice sorgente è liberamente distribuibile, chiunque con le dovute conoscenze e capacità tecniche può inviare il proprio contributo.
Versioni |
Versioni ufficiali |
MAME viene sviluppato da programmatori esperti che scrivono codice per passione senza alcun compenso di denaro. Le release ufficiali, contraddistinte fino ad ora da un codice del tipo 0.X dove X è la versione (per esempio 0.89) vengono rilasciate, dopo anni di rilasci irregolari, ogni ultimo mercoledì di ogni mese (questo dal novembre 2014). MAME è liberamente scaricabile dal sito ufficiale.
Versioni particolari |
La 0.32 non fu mai rilasciata per evitare confusioni con il MAME32, la versione di MAME con interfaccia grafica Windows.
Della release 0.31 si iniziò a numerare le beta con numeri sempre più alti nella speranza di arrivare presto ad una versione 1.0. Ciò portò all'uscita di molte release nominate beta ma che in realtà erano versioni vere e proprie perfettamente funzionanti (0.35b13, 0.36b9 per esempio). Con la release 0.37 si iniziò ad utilizzare la numerazione attuale senza più sperare in una versione 1.0 tanto che alcuni sviluppatori pensano che probabilmente non ci sarà mai una vera e propria versione definitiva di MAME. In effetti la versione successiva alla 0.99 è stata rilasciata il 14 settembre 2005 con numerazione 0.100.
Le versioni dalla 0.36b10 alla 0.36b16 sono state ritirate in quanto contengono dei giochi definiti "gambling" (giochi in cui conta solamente la fortuna e non l'abilità del giocatore, come ad esempio le roulette). La loro rimozione è stata effettuata in base ad una scelta più filosofica che tecnica di Nicola Salmoria. Questi giochi sono stati poi reintrodotti ufficialmente in MAME con la versione 0.100. Dalla versione 0.143u2 inoltre, gli sviluppatori hanno iniziato ad aggiungere anche i drivers per emulare i flipper e molti altri giochi meccanici; codice proviene dal "Visual PinMAME".
Portings e modifiche |
La portabilità del MAME ha fatto sì che molti programmatori ne abbiano sviluppato versioni per varie piattaforme, alcune volte realizzando vere e proprie versioni modificate:
- QMC2: front-end con interfaccia grafica di MAME ed anche di MESS. Disponibile per diverse piattaforme hardware (Linux, UNIX[OpenSolaris,FreeBSD], Mac OS X e Windows)
- MAMEUI - IV/Play (precedentemente MAME32) : come già detto questa è una delle prime versioni modificate. È il porting per ambienti Windows a 32 bit e 64 bit con interfaccia grafica.
- Mame32 Plus!
- VCMAME: non è una vera e propria versione modificata, ma soltanto una serie di file che permettono a MAME di essere compilato con Microsoft Visual C++.
- SDLmam: versione di MAME per piattaforme che utilizzano librerie grafiche SDL, come Linux e macOS. Dalla versione 0.138 è stato direttamente integrato in MAME
- MAME OS X: è un porting nativo per Mac OS X progettato per avvantaggiarsi di tutte le ultime tecnologie MAC OS X come Core Video e Core Image.
- MacMAME: è il primo porting per piattaforma Apple. Non viene più sviluppato e quindi è fermo alla versione 0.103.
- XMAME: è il primo porting per piattaforme *nix (Linux, Unix, ecc.). Non viene più sviluppato (fermo alla versione 0.106) e SDLMAME è il suo "ufficiale" sostituto. Anche il sito di XMAME non è più disponibile.
- AdvanceMAME: è una versione modificata con delle opzioni particolari per poter utilizzare MAME con i monitor dei cabinet arcade originali (basato su MAME 0.106).
- MAMED: è il porting per Dreamcast e per qualche fotocamera digitale. Basato su MAME v0.37b6
- MAMEDC: è il porting ufficiale per Dreamcast. La v0.4 è basata su mame v0.37b15. Non è più presente sul sito mamedc.kaillera.
- MAME per OS/2: è il porting per OS/2 basato su MAME v.37b14.
- PhMAME: è il porting per il sistema operativo real-time QNX. Basato su XMAME.
- MAME for MorphOS PegasosPP: è il porting per il MorphOS (ultimo porting: Mame0.97).
- MAME per Amiga: è il porting per piattaforma Amiga (ultimo porting: MAME v0.37b2).
- MAME per ARM/RISC OS (Archimedes): è il porting per piattaforme ARM/RISC OS (Archimedes).
- BeMAME: è il port per BeOS. (Basato su MAME 0.36b15 ?)
- MAMEnet: una versione di MAME con l'aggiunta del gioco online.
- MAMECE3: porting per PocketPC.
- zMAME: porting per Sharp Zaurus basato su XMAME v0.57.
- EMAME: porting per EPOC32, palmari Psion e SonyEricsson P800/P900 basato su XMAME 0.37b7
- EMAME9210: porting per cellulare Nokia 9210 basato su EMAME
- E²MAME: porting per Symbian OS basato su EMAME.
- MAME4ALL GP2X/WIZ: porting per console portatile Linux GP2X realizzato da Franxis. Basato su vecchie versioni del mame(0.35-0.40)
- iMAME4all: è un porting per i dispositivi iOS jailbroken (iPad HD, iPhone 4G, iPod touch e precedenti) di David Valdeita; è un porting del MAME 0.37b5 basato su GP2X, WIZ MAME4ALL 2.5 di Franxis. Emula i giochi della 0.37b5 più alcuni giochi provenienti da versioni più nuove di mame.
- MAME4droid: è il porting di iMAME4all per Android (basato quindi su MAME4ALL a sua volta su MAME 0.139u1).
- MAME4droid Reloaded: porting del MAME 0.139 su Android, sviluppato da David Valdeita (Seleuco)
- MAMEoX: è il porting per Xbox.
Note etiche e legali |
ROM |
Il problema legale maggiore quando si parla del MAME è quello delle ROM. Dal punto di vista legale un ROM set altro non è che una copia del gioco originale. Per questo motivo s'incorre in violazione di copyright nel caso in cui non si abbia l'originale del gioco stesso che, nel caso delle piattaforme arcade, è la scheda con i chip. Online si trovavano siti da cui scaricare tutti i giochi emulati dal MAME sotto forma di download diretto di ogni singola rom aggiornata alla corrispondente versione mame. I giochi si possono trovare anche sulle reti peer-to-peer sottoforma di romset specifico per la versione attuale di MAME e attraverso sistemi di vendita on-line. La vendita di ROM è soggetta alle restrizioni sulla vendita di materiale coperto da copyright, ed il loro acquisto da venditori che non detengono il diritto alla vendita è legalmente perseguibile. È vietato (la licenza del MAME è piuttosto chiara in merito) distribuire il MAME sullo stesso supporto in cui si trovano i giochi copiati. Esistono però ROM che si possono tenere liberamente a fini personali, scaricabili dal sito del progetto MAME https://www.mamedev.org/roms/ le rom sono ad libero uso solo se scaricate dal sito mentre è vietato l'hosting su altri siti
Ecco la lista dei giochi resi disponibili al download dai rispettivi proprietari
Exidy Game
Circus ©1977 Exidy | Robot Bowl ©1977 Exidy | Car Polo ©1977 Exidy | Side Trak ©1979 Exidy | Rip Cord ©1979 Exidy |
Fire One ©1979 Exidy | Crash ©1979 Exidy | Star Fire ©1979 Exidy | Targ ©1980 Exidy | Spectar ©1980 Exidy |
Hard Hat ©1982 Exidy | Victory ©1982 Exidy | Teeter Torture ©1982 Exidy | Fax ©1983 Exidy | Top Gunner ©1986 Exidy |
Other Games
Robby Roto ©1981 Bally/Midway | Super Tank ©1981 Video Games GmbH | Looping ©1982 Video Games GmbH | Gridlee ©1982 Videa, Inc. | Alien Arena ©1985 Duncan Brown |
Licenza |
Sebbene il codice sorgente del MAME fosse disponibile, MAME non è stato considerato per un lungo periodo software libero nel senso più stretto del termine.
Secondo la licenza precedente, era vietato vendere MAME compilato o in forma sorgente, era espressamente vietato utilizzare MAME per fini di lucro e tutto il codice utilizzato per la compilazione (sia esso il cuore del MAME o le librerie esterne) doveva essere disponibile. Erano inoltre vietate versioni modificate del MAME in grado di emulare giochi recenti o appositamente disabilitati.
Dal 4 marzo 2016 il codice è distribuito sotto GNU General Public License, con alcune porzioni di codice pubblicate con la Nuova licenza BSD.[4]
Trademark |
Nel febbraio 2005 una piccola società californiana produttrice di cabinet arcade in grado di lanciare più giochi, la Ultracade, ha cercato di registrare il nome MAME per prevenire l'abuso di tale termine da parte di società concorrenti che invece usano MAME e copie pirata dei giochi nei loro cabinet. La comunità di utenti si è subito mobilitata e ha costretto il titolare della società a cedere inizialmente la registrazione a Nicola Salmoria[5].; il detentore attuale è invece Gregory Ember.[6]
Note |
^ L'autore, l'italiano Nicola Salmoria, ha indicato nella sua tesi di laurea sul MAME (Il progetto MAME: Reverse Engineering e macchine da gioco, Università di Siena, 2002, pag. 5), la pronuncia da lui seguita, ossia all'italiana ("mame"), non all'inglese ("meim" o "em ei em i").
^ MAME | Multiple Arcade Machine Emulator
^ ALREADY IN THE ARCADES! Archiviato il 18 maggio 2013 in Internet Archive.
^ (EN) MAME is now Free and Open Source Software, su mamedev.org, 4 marzo 2016.
^ MAME dovrà cambiare nome?, «Punto Informatico», 22 febbraio 2005
^ (EN) MAMEDEV.org | Home of The MAME Project, su mamedev.org. URL consultato il 13 febbraio 2018.
Voci correlate |
- Emulatore
- Read Only Memory
- Retrogaming
- MESS
Altri progetti |
Altri progetti
- Wikimedia Commons
Wikimedia Commons contiene immagini o altri file su MAME
Collegamenti esterni |
MameDev.org Sito ufficiale MAME (a riga di comando)(interfaccia grafica)[[Media:]]
MameUI Sito di MameUI (la versione di MAME con interfaccia grafica)
Mamechannel.it Sito italiano su MAME e derivati, artwork ed extra files.
Progetto EMMA Database contenente informazioni sui giochi emulati.
Wikicab, wiki dedicato ai cabinati MAME
progetto-SNAPS Il sito da cui è possibile scaricare le immagini utilizzabili con le versioni UI del MAME.
Arcade Database Database contenente i dettagli di qualsiasi gioco supportato dal Mame, incluse le versioni passate. A corredo si trovano immagini, video, programmi per il download dei file extra, ricerche avanzate, grafici e tante altre risorse.
Sito ufficiale, su mamedev.org.
Repository sorgenti di MAME, su github.com.