Emuliamo il Nintendo64
A cura di Francesco Celli e Gabriele Favrin
Articolo pubblicato su Amiga Life 112 (luglio/agosto 2000)
Nota bene: l'articolo proposto in questa pagina è
proprietà degli autori e non può essere distribuito o
riutilizzato in alcun modo o forma senza il loro consenso scritto.
Le informazioni qui riportate risalgono alla data di pubblicazione
dell'articolo e non è detto che siano ancora valide o
che rispecchino lo stato attuale dei programmi, le posizioni delle persone
interpellate o degli autori stessi.
Iniziamo da questo numero di Amiga Life una serie di mini speciali monotematici relativi ai vari prodotti emulabili ed alla relativa situazione su Amiga e non solo. Questo mese parliamo di N64, la "console delle meraviglie" Nintendo.
All'inizio del ‘99 la scena emulatoria è stata
scossa da un evento del tutto inatteso: l'uscita di UltraHLE, un
emulatore che, in meno di 400 k, permetteva di giocare, su un Pentium
233 MHz con scheda 3DFX, a titoli come Mario64 e Zelda64, portabandiera
del N64.
Eh sì, perché dai tempi del NES (che tuttora
qualcuno in TV prova a vendere!) ne è passata di acqua sotto
i ponti. Ora le console usano CD o cartucce da vari MB, ed integrano
hardware modernissimo, come fa, appunto, il N64, all'interno del quale
trova alloggio un concentrato di tecnologia: processore centrale RISC
R4300i a 93.75 MHz, bus custom per l'accesso ad alta
velocità (fino a 562.5 MB/s) alla RAM (4 MB espandibili),
sistema di gestione audio 16 bit stereo 48 KHz con effetti speciali in
hardware e 100 canali separati.
Ma il punto di forza della console, ciò che ne rende i
giochi tanto spettacolari, è il coprocessore grafico, un
RISC custom da 62.5 MHz denominato "Reality Immersion". Supporta il
texture mapping, con una serie di optional degna delle migliori schede
video. Fra le altre, sono disponibili in hardware: "MIP-map
interpolation" (capacità di migliorare la resa delle texture
applicate ad un poligono quando ci si avvicina o allontana da esso;
è una delle tecniche utilizzate per evitare l'effetto "pixel
grossi" dei vecchi Doom e Quake), "Perspective correction" (resa
realistica di un poligono da qualunque prospettiva), "Blending"
(sovrapposizione di due oggetti con possibilità di vedere
l'uno attraverso l'altro), "Z-Buffering" (velocizzazione display
tramite rimozione delle parti di poligono invisibili), 256 livelli di
trasparenze e varie altre soluzioni atte a migliorare la resa
dell'immagine, costruita tramite "Phong" e "Shade" (alternative veloci
al Ray-Tracing). E tutto questo va emulato, per poter giocare ai titoli
N64.
Qualsiasi cosa si voglia emulare ci sono due approcci per farlo:
partire dal basso, creando un programma che simuli l'hardware registro
per registro, oppure emularne solo la API (l'interfaccia software per i
programmatori) ed il set di istruzioni del processore. UltraHLE segue
la seconda strada (che abbiamo semplificato), una scelta che riduce i
tempi di sviluppo a scapito della compatibilità: il
programma fa girare i giochi più "system friendly", ma
presenta problemi con molti altri titoli.
Dall'altra parte troviamo una nutrita serie di emulatori che, solo ora,
iniziano a mostrare i primi risultati concreti. L'approccio,
penalizzante relativamente ad impegno e tempi di sviluppo,
ripagherà nel lungo termine con una maggiore
compatibilità. Fra i prodotti di questo tipo c'è
True Reality, il cui port Amiga è aggiornato
dall'instancabile AmiDog. Se le prime versioni erano
pressoché inutilizzabili, l'integrazione del supporto MiniGL
ha cambiato le cose.
OpenGL è una API pubblica per la sviluppo di software 2D e
3D. Su Amiga ne esistono due implementazioni, rispettivamente di Haage
& Partner e della Hyperion (MiniGL). Purtroppo non sono
complete quanto l'originale, e ciò penalizza port come True
Reality. Ma il problema maggiore è l'hardware: viste le
caratteristiche del N64, per emularlo è necessario un
sistema dotato di PPC e scheda grafica 3D (sarebbe folle emulare via
software funzionalità hardware di quel livello). Al momento
in cui scriviamo, le uniche configurazioni con i requisiti descritti
sono quelle dotate di BVision/CVisionPPC (la C643D ha un chip troppo
vecchio) e anche così l'architettura interna può
risultare penalizzante. La situazione però non è
disperata: i requisiti base di UltraHLE, citati in precedenza, non sono
tanto superiori, segno che la combinazione hardware (CPU e scheda 3D)
può reggere il compito. E poi va ricordato che True Reality
già oggi riesce a far partire Mario64. L'avreste mai
immaginato, all'uscita del N64?