Il mondo dell’emulazione – Sotto la Scocca

Condividi l'articolo

Condividi su facebook
Condividi su linkedin
Condividi su twitter
Condividi su email

L’emulazione è un argomento scottante. Sempre foriero di forti diatribe, raramente viene compresa nel profondo ed è una materia difficile per qualsiasi sito, in quanto soggetto potenzialmente scomodo e da trattare con molta cautela. Con l’avvento del mini-SuperNES e con la retrocompatibilità di tre generazioni di Xbox One fatta via software, oltre che per volere del pubblico, credo sia giunto il momento di toccare l’argomento anche in questa rubrica. L’emulazione è definibile nel seguente modo: replicare le funzioni di un sistema su un secondo sistema differente dal primo. Per fare questo occorre capire a fondo come lavora il sistema da emulare. Si tratta di un lavoro di retroingegnerizzazione.

Normalmente quando si vuole far girare un gioco su una macchina diversa dall’originale le strade sono due: o lo si riscrive per la nuova macchina o si crea un emulatore che ricrei il comportamento dell’hardware originale. Nel primo caso otteniamo dei port, spesso trasformati in remake o enhanced remake. Nel secondo caso abbiamo prodotti come il mini-SNES, la Virtual Console o la retrocompatibilità di Microsoft.

1280x720-uWe
Molte console android vendono per la loro natura di “macchine per emulatori”.

L’emulazione è un mondo molto complesso. In generale si può dire che più una macchina è complessa, più sarà difficile da emulare su un altro sistema. Purtroppo, per come sono scritti i videogiochi, anche il contrario può essere vero. Le prime console da gioco, come NES e SuperNES erano sì meno potenti e relativamente semplici, ma proprio per questo motivo i codici dei giochi erano estremamente dipendenti da tutte le piccolezze dell’hardware. Replicarle a modo è complesso.

L’emulazione si prefigge due scopi estremamente diversi ed ogni casa produttrice o gruppo di sviluppo amatoriale ha i propri obiettivi. Il primo è la fruibilità, ovvero rendere giocabile un gioco del passato su una piattaforma moderna. Non importa se tutto sia perfetto, l’importante è che il gioco sia godibile. Dall’altra faccia della medaglia abbiamo la volontà di preservare l’esperienza originale. Perché è irragionevole pensare che le vecchie console con i rispettivi giochi rimangano funzionanti per l’eternità. Esattamente come i vecchi classici del cinema vengono digitalizzati per renderli fruibili sui mezzi moderni e per preservarli, così fanno gli emulatori che mettono l’accuratezza sopra ogni cosa, come il famoso MAME.

Molti emulatori si accontentano di avere una precisione sufficiente e di aggiustare eventuali errori attraverso trucchi o escamotage. Perché i giochi più richiesti su emulatori sono sempre i “soliti noti”. Emulatori amatoriali hanno un elenco interno con gli aggiustamenti da fare per ogni titolo famoso. Emulatori ufficiali possono essere fatti con qualche accorgimento in meno perché tanto ci sono solo 21 giochi nello SNES mini. E i giochi sconosciuti? Potrebbero essere ingiocabili.

cicli gamecube
Cicli di lavoro dei componenti del GameCube (by phire). I cicli determinano le tempistiche di lavoro e comunicazione tra i componenti.

L’emulazione ha sostanzialmente due approcci: un’analisi a basso livello ed una ad alto livello. Quest’ultima non si preoccupa di guardare al funzionamento di una macchina nelle minuzie, ma ne guarda solo i risultati. Quindi si procede nel ricreare in maniera più accurata possibile i risultati e li si combina per ricreare i calcoli della macchina. Questo approccio è praticamente l’unico possibile con macchine dal N64 in poi. Il primo approccio, quello a basso livello, è conosciuto anche come emulazione “ciclo-accurata”, dove si va a vedere cosa accede in ogni ciclo per ogni componente della macchina.

Il problema principale è che un’emulazione accurata ha bisogno di tantissime risorse, per la combinazione di due effetti. Il primo è che l’emulazione è un processo fortemente sequenziale di macchine con diversi componenti. Quindi spesso un singolo processore si ritrova a dover emulare più componenti della macchina originale. Se su SuperNES in un singolo ciclo lavorano tutti i componenti contemporaneamente, su emulazione bisogna eseguirli in sequenza. Passare da un componente all’altro introduce altre perdite di tempo e potenza. Inoltre al termine di ogni ciclo, bisogna sincronizzare tutte le operazioni eseguite per far sì che il sistema stia operando correttamente. È come dover fermare una catena di montaggio per controllare tutti i passaggi e poi ripartire da capo. Ecco perché gli emulatori accurati hanno bisogno di potenze anche nell’ordine dei 3Ghz. Si consumano tanti cicli per controllare che tutto funzioni ad ogni singolo passo dell’emulazione.

halo reach framerate
La complessità del lavoro implica che non tutti i giochi funzionino bene al primo colpo.

Le case produttrici hanno accesso a tutta la documentazione necessaria per creare strumenti possibilmente migliori di quelli amatoriali ma il loro impiego dipende sempre dalla finalità del progetto. Il mini-NES non ha un’emulazione corretta. Ha artefatti grafici, inaccuratezze sonore e distorsioni delle immagini. Ma i giochi non ne sono inficiati a livello di gameplay e il progetto è intrinsecamente economico.

Microsoft con la sua Xbox One ha intrapreso un progetto interessante. Sull’Xbox One gira una macchina virtuale del sistema operativo dell’Xbox 360. La macchina virtuale crede di trovarsi sull’hardware originale e quindi “tutto funziona come dovrebbe” grazie a questo inganno. I giochi vengono preparati per l’emulatore attraverso un wrapper, un rivestimento che aiuta l’identificazione del gioco per l’emulatore ed eventualmente abilita caratteristiche aggiuntive per farlo girare. Questo approccio però porta una bassa consistenza nelle performance dell’emulatore. Alcuni giochi possono girare meglio su Xbo One, con framerate più alti o più consistenti, altri possono essere quasi ingiocabili. Alla preparazione di ogni gioco per l’emulatore si aggiungono poi tutti i cavilli legali legati alla ripubblicazione del gioco, che spesso sono il problema maggiore da superare.

Mario Kart DS upscaled
L’aumento di risoluzione è uno dei possibili vantaggi dell’emulazione. Ma è corretto cambiare così il feel del gioco originale?

In tutto questo si incastra il discorso di come rendere i giochi disponibili su una piattaforma d’emulazione. Le famose ROM sono così chiamate perché sono la copia dei dati contenuti all’interno di una memoria di sola lettura delle cartucce. Sono necessari macchinari appositi per leggere i dati e trasformarli in un formato digitale utilizzabile dagli emulatori di tutti i formati. Qualcuno forse ricorderà il pacco con 100 cartucce di giochi SNES perse dal servizio postale statunitense, fortunatamente ritrovato, mentre stavano raggiungendo casa di Byuu. Lo scopo era quello di scannerizzarli per preservarli. Una volta che si è passati a tecnologie CD ed alla distribuzione digitale, preservare e ridistribuire giochi è diventato più semplice.

Spero che questo breve riassunto abbia fatto capire quali siano le problematiche intorno all’emulazione, uno dei tanti metodi che abbiamo per preservare i titoli del passato rendendoli fruibili su piattaforme del presente che per forza di cose cambiano e si evolvono nel tempo. Un libro, che sia stato prodotto nel 1500 o nel 2017 (e lasciando da parte il problema dell’usura), sarà sempre fruibile per come è stato concepito in origine. I videogiochi mancano di questa trascendenza temporale e gli emulatori sono ad oggi l’unico modo per ottenere l’immortalità.

Potrebbero interessarti

No more posts to show