Per un appassionato di emulazione non conoscere il MAME sarebbe come non conoscere il David di Michelangelo per un amante della scultura, perché rappresenta senza ombra di dubbio il progetto assunto ad autentico simbolo di riferimento in questo settore.
L’acronimo sta per Multiple Arcade Machine Emulator e nasce dal lavoro di un italiano, Nicola Salmoria, già noto ai tempi delle mitiche BBS per la frequentazione dell’allora più grande rete mondiale dell’epoca, Fidonet.
Come si può intuire già dal nome, nasce per emulare macchine che fanno girare i videogiochi arcade (detti anche coin-op). Il plurale segna un distacco da quanto generalmente era disponibile all’epoca, cioè la presenza di un singolo emulatore per una specifica macchina.
Col tempo ai primi sistemi se ne sono aggiunti tantissimi altri, fino ad arrivare, con le ultime versioni, all’emulazione di migliaia e migliaia di giochi, compresi cloni e “hack” (modifiche al gioco originale) per i sistemi più disparati.
Com’era prevedibile, l’architettura dell’emulatore ha subito numerose modifiche per meglio strutturare il progetto in base alle sfide che via via si sono presentate, e ciò ha comportato anche ottimizzazioni, come pure decadimenti prestazionali da una versione alle successive.
Una che è decisamente saltata all’occhio di recente è stata quella apportata al driver “Galaxian” (hardware realizzato da Namco) che gestisce giochi risalenti al primo periodo d’oro, a cavallo fra le fine degli anni ’70 e i primi ’80.
In particolare è stato aperto di recente un “ticket” nel sistema di segnalazione dei bug del progetto, che riguarda un gioco mitico, Frogger della Konami, che a quanto pare non riesce più a girare bene nelle ultime versioni del MAME, mentre fino alla 0.122 tutto filava liscio.
Il ticket è stato chiuso quasi subito, nemmeno mezz’ora dopo che era stato aperto, in quanto non considerato un bug. In sintesi, la motivazione è che dopo la 0.122 il driver è stato riscritto per essere più accurato nell’emulazione del sistema, soprattutto nei riguardi del sottosistema video e audio, per cui viene richiesta più potenza di calcolo.
Infatti il computer su cui l’utente aveva provato il gioco è stato ritenuto vecchio e inadeguato agli standard più recenti del MAME. Se si fosse trattato di un 80486 clockato a qualche decina di Mhz, un sorriso sarebbe scappato sicuramente. Ma un Athlon Thunderbird da ben 1,2Ghz di clock tacciato di inadeguatezza non può che lasciare l’amaro in bocca.
Stiamo parlando di un processore in grado di eseguire un picco di 3 istruzioni intere per ciclo di clock, quindi con prestazioni teoriche nell’ordine dei 3600 MIPS.
Per confronto, l’hardware su cui gira Frogger consta di due CPU Z80, una a 3Mhz in qualità di processore principale, e una a 1,78Mhz per la gestione del suono (affidata a uno AY-3-8910 della General Instrument), con un controller video in grado di generare una risoluzione di 224 x 256 pixel per un massimo di 99 colori visualizzabili.
Difficile credere che un sistema spannometricamente 1000 volte più potente non sia in grado di gestire con scioltezza quello che, dati alla mano, appare come un giocattolino. Eppure se i risultati dipinti da chi ha aperto il ticket sono quelli, c’è poco da girarci attorno e non resta che prenderne atto.
Tutto ciò perché il MAME partendo dalla mera emulazione ha poi preso la strada della “preservazione” dell’arcade, intendendo con ciò la necessità di ottenere un’emulazione quanto più fedele possibile dell’originale, con tutti i costi che una decisione del genere implica.
Il fine è encomiabile, senza alcun dubbio, perché quelle “infernali” macchinette rappresentano un pezzo di storia, della nostra storia perché abbiamo passato giornate felici in loro compagnia, ma ciò si scontra con l’esigenza di chi, proprio perché vuol semplicemente rinvangare i vecchi tempi, non deve farlo per forza affidandosi a un sistema che è l’esatta replica dell’originale (anche perché, a un certo punto, potrebbe anche procurarselo, visto che le vecchie schede sono accatastate nei magazzini di chi le aveva comprate, e si trovano generalmente a poco prezzo).
L’emulazione non ha mai preteso di essere accurata al 100%, cercando, anzi, di permetterne la fruizione su macchine non proprio dotate, con un occhio di riguardo all’ottimizzazione.
Ma non solo. Grazie alla non perfetta aderenza all’originale, si è trovato modo di godere di quei giochi in una forma diversa, tante volte anche migliore e superando i limiti intrinseci dell’hardware ufficiale.
Pensiamo, ad esempio, a un Double Dragon 2, che con diversi personaggi sullo schermo rallentava vistosamente. Aumentando il clock virtuale della CPU si può giocare in scioltezza anche con numerosi character.
Oppure, per fare un altro esempio, si può rivisitare Mario 64, a risoluzioni ben superiori all’originale 640×480. Chi ha avuto modo di provare UltraHLE, il primo emulatore per il mitico Nintendo 64, sa bene cosa intendo. E sa pure che quella HLE sta per High Level Emulation, cioè un’emulazione non fedele all’originale, ma che fa uso di trucchetti per accelerarne notevolmente l’esecuzione proprio per rendere “potabile” l’emulazione anche su macchine poco “pompate”.
Il team del MAME ormai da tempo ha deciso di seguire una strada completamente diversa, che si addice più a un simulatore che a un emulatore, senza alcun compromesso (infatti non offre opzioni di “fallback” a soluzioni algoritmiche meno precise, ma più veloci), segnando sempre più un distacco con gli appassionati che, a questo punto, penso farebbero meglio a rivolgersi ad altri progetti.