MAME
From Kick Off World of Soccer - wikickoff
Il MAME è un software per personal computer in grado di emulare varie piattaforme di gioco arcade. Lo scopo di tale emulazione è quello di preservare la storia dei videogames e di prevenire la sparizione di vecchie rarità . In nome è l'acronimo di Multiple Arcade Machine Emulator.
Contents |
Storia
Secondo quanto si legge sul sito ufficiale[1] Nicola Salmoria iniziò a lavorare all'emulatore il 24 dicembre 1996 e rilasciò la prima versione, la 0.1 il 5 febbraio 1997 che funzionava in ambiente DOS da linea di comando (CLI). Nicola in realtà aveva avuto la brillante idea di unire più emulatori trovati in rete (tra i quali un primitivo emulatore di PacMan) in un unico programma in grado di eseguire più giochi (6 nella versione 0.1). In breve tempo MAME iniziò a crescere e sempre più giochi furono aggiunti anche grazie ad un'archittettura ben studiata che aiutava molto la programmazione. Nell'agosto del 1997 appariva MAME32, la versione di MAME adattata all'ambiente Windows a 32 bit con l'aggiunta di una GUI che rendeva più facile l'utilizzo. Nel 1998 la versione 0.30 già supportava oltre 300 giochi e con la 0.34 ci fu il sorpasso della simbolica quota 1000. Dal 2001 la versione ufficiale del MAME non viene più sviluppata sotto DOS ma sotto Windows come programma a linea di comando. Oggi MAME 0.100 (la 144esima relase) supporta 3166 giochi differenti e 5778 ROM set.
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 sono le immagini originali dei giochi, che per motivi di copyright non possono essere distribuite.
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 d'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.
ROM
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) vengoni 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
Ci sono 3 tipi principali di ROM Set:
- ROM Set originale: 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.
- BIOS ROM Set: non sono veri e propri giochi, contengono delle ROM necessarie ad altri giochi per poter essere eseguiti
Sviluppo
Team di sviluppo
Attualmente MAME viene sviluppato attivamente da:
- Nicola Salmoria (WIP)
- David "Haze" Haywood (WIP)
- Aaron Giles (WIP)
- R. "Arbee" Belmont (WIP)
- Frank Palazzolo (WIP)
- Charles MacDonald (WIP)
- Bryan McPhail (WIP)
- Pierpaolo "Reip" Prazzoli (WIP)
- Tomasz Slanina (WIP)
- Angelo Salese (WIP)
Coordinatori
- Nicola Salmoria (1997-1998)
- Mirko Buffoni (1998-2001)
- David "Haze" Haywood (2001-2005)
- Aaron Giles (2005 - presente)
Versioni
Rilasci ufficiali
MAME viene sviluppato da programmatori esperti che scrivono codice per passione senza alcun compenso di denaro. Le relase ufficiali (contraddistinte fino ad ora da un codice del tipo 0.X dove X è la versione) vengono rilasciate piuttosto regolarmente ogni 3-4 settimane. Circa ogni settimana poi vengono rilasciate delle versioni intermedie con codice 0.X.u.Y dove X rappresenta ancora la versione e Y il livello di patch. MAME è liberamente scaricabile dal sito ufficiale [2].
La versione 0.100 è stata rilasciata il 14 settembre 2005.
Rilasci particolari
La relase 0.32 non fu mai rilasciata per evitare confusioni con il MAME32, la versione di MAME per Windows. Della relase 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 relase nominate beta ma che in realtà erano versioni vere e proprie perfettamente funzionanti (0.35b13, 0.36b9 per esempio). Con la relase 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.
Porting e modifiche
La portabilità del MAME ha fatto si che molti programmatori ne abbiano sviluppato versioni per varie piattaforme, alcune volte realizzando vere e proprie versioni modificate:
- MAME32[3]: come già detto questa è una delle prime versioni modificate. È il porting per ambienti Windows a 32 bit con interfaccia grafica. I rilasci seguono di poco le versioni ufficiali.
- VCMAME[4]: non è una vera e propria versione modificata, ma soltanto una serie di file che permettono a MAME di essere compilato con Microsoft Visual C++.
- MacMAME[5]: è il porting per piattaforma Apple. È curata da Aaron Giles.
- XMAME[6]: è il porting per piattaforme *nix (Linux, Unix, ecc.).
- AdvanceMAME[7]: è una versione modificata con delle opzioni particolari per poter utilizzare MAME con i monitor dei cabinet arcade originali.
- MAMEoX[8]: è il porting per Xbox.
- MAMED[9]: è il porting per Dreamcast e per qualche fotocamera digitale.
- MAMEDC[10]: è il porting ufficiale per Dreamcast.
- MAME per OS/2[11]: è il porting per OS/2.
- PhMAME[12]: è il porting per il sistema operativo real-time QNX.
- MAME for MorphOS PegasosPPC[13]: è il porting per il MorphOS.
- MAME per Amiga[14]: è il porting per piattaforma Amiga.
- MAME per RISC[15]: è il porting per piattaforme RISC.
- BeMAME[16]: è il port per BeOS.
- MAMEnet[17]: una versione di MAME con l'aggiunta del gioco online.
- MAMECE3[18]: porting per PocketPC.
- zMAME[19]: porting per Sharp Zaurus.
- EMAME[20]: porting per palmari Psion.
- EMAME9210[21]: porting per cellulare Nokia 9210.
- EMAME[22]: porting per Symbian OS
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 ma dopo varie pressioni legali questi siti han dovuto eliminare il servizio. Attualmente i giochi si possono trovare sulle reti peer-to-peer e attraverso sistemi di vendita on-line. Resta comunque vietato (la licenza del MAME è piuttosto chiara in merito) distribuire il MAME sullo stesso supporto in cui si trovano i giochi copiati.
Emulazione
Tolto ogni dubbio sulla legalità delle copie dei giochi, rimane il dubbio sulla legittimità etica dell'emulazione di piattaforme che ancora oggi si trovano comunque in bar e sale giochi. Lo spirito del MAME non è comunque quello di evitare ai giocatori di pagare per giocare, ma solo quello di preservare questi giochi e di documentarne l'hardware.
Licenza
Sebbene il codice sorgente del MAME sia disponibile, MAME non è software libero nel senso più stretto del termine. È vietato vendere MAME compilato o in forma sorgente, utilizzare MAME per fini di lucro è espressamente vietato, tutto il codice utilizzato per la compilazione (sia esso il cuore del MAME o le librerie esterne) devono poter essere disponibili. Sono inoltre vietate versioni modificate del MAME che facciano funzionare giochi recenti o appositamente disabilitati.
Trademark
Nel febbraio 2005 una piccola società californiana produttrice di cabinet arcade in grado di lanciare più giochi, la Ultracade[23] 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 infiammata e ciò ha costretto il titolare della società a cedere la registrazione a Nicola Salmoria che ora detiene il trademark del nome MAME.
Collegamenti esterni
- MAME Home Page
- MAMEWorld
- MameDev
- Progetto EMMA
- Per informazioni sulla questione del trademark si veda qui
- Per informazioni tecniche sul MAME si veda qui
Link
- Forum Italiano di KOW - Il forum ufficiale degli appassionati di simulazioni calcistiche e di emulazione.
- Gruppo Italiano KOW - Gruppo di condivisione dedicato a tutti i giochi calcistici del passato, del presente e gli attuali remake. Tutto il calcio simulato ed emulato e i classici Kick Off 2 + Player Manager.



