Quando c'è la passione, un progetto si autoalimenta di continuo, e lo sviluppo e l'affinamento del codice non conoscono sosta. Capita allora che M.A.M.E., dopo aver concluso l'anno con la notizia sorprendente dell'introduzione del supporto ai lasergame, inizi il 2007 con una nuova pietra miliare per la sua storia decennale: l'oscuro e apparentemente invincibile algoritmo di cifratura del CPS-2 è caduto sotto i colpi di genio di due tra i mamedev più dotati che, lavorando di concerto, hanno infine raggiunto l'obiettivo di trovare la chiave necessaria per far girare il codice delle ROM dei giochi esattamente nel modo in cui era solito fare negli arcade.
Capcom Play System 2, come ben sanno gli appassionati di videogame più informati, è in assoluto il sistema da sala più riuscito della premiata produttrice nipponica. Di potenza e caratteristiche non molto dissimili dalla precedente generazione CPS-1, CPS-2 ha visto la pubblicazione di alcuni tra i titoli più belli, coinvolgenti e rappresentativi della golden age degli arcade targata Capcom: menzioniamo, giusto per citarne alcuni, Dungeons & Dragons: Shadow over Mystara (1996), Alien Vs. Predator (1994), Marvel Vs. Capcom (1998), Street Fighter Alpha (1995), Darkstalkers (1994).
Al contrario di CPS-1, Capcom Play System 2 ha sempre potuto vantare una blindatura complessa, basata su un misto di protezione hardware (con i chip chiave sigillati in maniera tale da non essere estraibili senza danneggiamenti), una batteria impossibile da sostituire se non per il produttore, pena il "suicidio" della protezione e quindi dell'intera board, e un algoritmo estremamente efficace nella cifratura del codice contenuto nei chip ROM dei giochi.
Per lungo tempo si è pensato che l'emulazione di questo pezzo fondamentale della storia degli arcade fosse praticamente impossibile, anche considerando l'assoluta mancanza sul mercato nero di bootleg, cosa inusuale per gli arcade di successo dei'90. Questo almeno fino al 1999, quando Razoola e il team dietro Capcom's Play System 2 Decryption Team hanno cominciato a rendere disponibili le tabelle XOR per i titoli CPS-2: la protezione rimaneva sconosciuta, ma grazie alle XOR era possibile far comunque girare i giochi in MAME (le cui ROM erano già state "dumpate").
Per la sua mancanza di trasparenza, e per la scarsa collaborazione con il core degli sviluppatori dietro M.A.M.E., Razoola è divenuto un personaggio controverso nel settore: osannato dagli utenti per aver permesso loro di giocare a titoli storici su PC, bistrattato e stigmatizzato da Haze, Guru e gli altri per la volontà di offrire solo informazioni parziali circa il funzionamento del codice di CPS-2.
Tuttavia, negli ultimi anni i progressi (anche senza l'aiuto di Razoola) sul fronte della fedeltà emulativa ci sono comunque stati, e hanno infine portato in dote il bellissimo regalo indicato nel titolo della news: Nicola Salmoria, il papà di M.A.M.E., e lo spagnolo Andreas Naive, hanno lavorato duramente con calcoli e teorie matematiche con le tabelle da 4 Gigabyte estratte da tempo dai titoli CPS-2 dal duo Salmoria/Charles MacDonald (che i lettori più attenti ricorderanno per essere il responsabile della decrittazione del chip FD1094, M68000 modificati su cui era basato il mitico System16 di SEGA), e hanno finalmente estratto una chiave da 196 bit con cui sostituire le voluminose tabelle in M.A.M.E.
La faccenda è molto complessa, e non basterebbe un libro a tema per svelare i tanti retroscena e le numerose tappe che hanno portato al breakthrough finale: chi scrive segue la vicenda CPS-2 da anni, e ha partecipato con viva emozione, nella prima decade di gennaio, al brainstorming matematico (capendo ben poco di tutto il discorso, in effetti) e al botta e risposta quotidiano tra i blog di Nicola e Andreas, discorso che si è infine arrestato il 9 gennaio, quando Nicola ha inviato il codice sorgente del nuovo CPS-2 ai MAMEDEV, codice già incluso nell'ultima build intermedia 0.111u3.
Telenovela finita dunque? Quasi, perché sebbene le nuove conoscenze sull'algoritmo permettano una fedeltà emulativa enormemente superiore rispetto alle XOR di Razoola, rimane ancora ignota qualche tessera del puzzle CPS-2. In più, a causa del comportamento del suddetto Razoola, si prospetta la necessità di dover ricomprare tutte le board CPS-2 già emulate per estrarre le tabelle da 4 Giga, da cui ricavare poi le chiavi a 196 bit (pare non servano, a tale scopo, le XOR finora impiegate per l'emulazione).
Ma M.A.M.E. non significa solo CPS-2 o grafica raster: il blog di Aaron Giles riporta gli ultimi progressi sull'implementazione dei lasergame nell'emulatore. Il lavoro sulla struttura dati da usare per stoccare i flussi audiovisivi dei giochi è sostanzialmente pronto, così come le routine per convertire i file-contenitore AVI nel formato CHD e viceversa.
Sebbene il lavoro da fare sia ancora tanto, Dragon's Lair comincia a mostrare le prime sequenze animate nel codice preliminare di Giles (com'è possibile verificare da uno degli screenshot allegati).
Arbee (altro storico mamedev), dal canto suo, mostra sul blog i risultati della compilazione della 0.111u3 sotto la distro Linux Fedora 5, fatta girare su PlayStation 3. Basta modificare una semplice flag durante la generazione del binario, dice Arbee, e anche PlayStation 3 diventa una MAME-machine pienamente operativa.
MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .
Copyright 2008 MegaLab.it - Tutti i diritti sono riservati