RCP64, Nintendo 64 Machine

Introduzione

L scatola del N64.

Il Nintendo 64, nome abbreviato con N64, fu la terza console Nintendo per il mercato internazionale, chiamata così per il suo processore che raggiungeva, per la prima volta, i 64bit effettivi. La console è stata rilasciata nel mondo nelle seguenti date: 23 Giugno 1996 in Giappone, 29 Settembre 1996 nel nord America, 1 Marzo 1997 in Europa (la console fu disponibile in Francia il primo giorno di Settembre) e Australia. Il prezzo iniziale della console era di US$199.

Allo sviluppo della console collaborarono Nintendo, Silicon Graphics e MIPS Technologies. Tre enormi aziende che, Nintendo a parte, risultano sconosciute alla maggio parte della gente, quindi eccovi una breve presentazione.

La Nintendo è una dei più grandi (e vecchi) colossi che si occupa di videogiochi ed intrattenimento. Non credo abbia bisogno di presentazioni.

Con il nome Silicon Graphics intendiamo la grossa azienda che sviluppa super computer e workstation, principalmente per lo sviluppo di applicazioni 3D. Negli ultimi anni ha sfiorato la banca rotta, la politica dell'azienda è cambiata di molto da allora...

A questo punto mi devo scusare con i lettori. Nella versione precedente di questa pagina ho detto che la Silicon Graphics aveva prodotto i dinosauri di Jurassic Park.

Questa affermazione è inesatta, le immagini digitali sono state prodotte dalla Industrial Light & Magic che ha usato workstation della Silicon Graphics. Mi scuso ancora una volta con i lettori.

Ed infine MIPS Technologies, chi non ha mai sentito l'acronimo MIPS (a parte le persone normali)? Non mi riferisco a Million instructions per second, ma alla grossa compagnia che produce processori per workstation dalla omonima archittettura. Questa azienda fa parte ora della Silicon Graphics.

Il nome della console

Non tutti sanno che la console originariamente si chiamava Ultra 64, fu presentata al grande pubblico proprio con questo nome ma a distanza di alcuni mesi dal lancio Konami registrò l'elemento Ultra per la loro divisione Ultra Games. Questo ha costretto la casa di Kyoto a cambiare nome alla nascente console in Nintendo 64.

Cartucce vs. Cd-Rom

In rete esistono TeraByte di roba sull'argomento, quindi mi limiterò alla visione globale della questione.

Perché proprio le cartucce e non i CD-ROM?

Il discorso è leggermente più complesso ed articolato di quanto non si pensi. Per illustrare tale scelta dobbiamo andare indietro nel tempo quando il Super Nes dominava il mercato.

Un disegno del Super Famicom con l'unità CD-ROM.

Quando il Sega CD fu lanciato la Nintendo si mobilitò per progettare un prodotto simile per la sua console Super Nes. Philips e Sony collaborarono con Nintendo per creare un apparecchio in grado di far leggere i Cd-Rom al Super Nes. Ovviamente non mancarono le dispute tra le compagnie, prima Nintendo annunciò una collaborazione con Philips, poi lasciò il progetto e fece accordi con Sony.

La Nintendo era interessata al nuovo supporto ottico principalmente per il suo costo. Il conflitto di interessi tra Nintendo e Sony portò quest'ultima a progettare la propria console e lanciarla sul mercato con il nome di PlayStation, il resto come saprete è storia.

Il nome PlayStation ` stato oggetto di disputa tra Sony e Nintendo in tribunale, dopo una battaglia durata anni la Nintendo ha vinto la causa.

Ritorniamo alle scelte fatte da Nintendo per la sua console. Succesivamente la casa di Kyoto abbandonò il progetto complice il lancio del nuovo chip Super-FX che rendeva i videogiochi capaci di grafica 3D.

La Nintendo alla fine non ha scelto il supporto ottico ed il Nintendo 64, utilizza le cartucce. La casa di Mario si giustifica affermando che i tempi di caricamento del supporto ottico sono troppo elevati ed il sistema anticopia è troppo blando.

A conti fatti un software su cartuccia, in balia di un bimbominkia, dura molto più a lungo di un CD-ROM. La cartuccia è chiusa e fatta in modo che l'utente non possa accedervi, al contrario un CD-ROM è più esposto a questo genere di rischi e può riportare graffi sulla superficie dati in modo permanente.

I tempi di accesso sono molto inferiori rispetto ad un CD-ROM e non c'è bisogno di una meccanica e di un'ottica per poter leggere il supporto, semplicemente si inserisce la cartuccia nello slot e si accende la console.

A questo punto devo dire una cosa a riguardo le cartucce del N64: è vero che in generale i tempi di accesso ad una cartuccia sono molto ridotti ma alla Nintendo, per ridurre il numero di PIN al bus, hanno utilizzato uno speciale chip per la memorizzazione dei dati. Questo ha provocato un elevato tempo di accesso ai dati persino superiore a quello di uno SNES o di un NES.

In sostanza, per poter accedere ad una porzione di dati su cartuccia, un Super Nes è molto più veloce di un Nintendo 64. Al nintendone servono più o meno 300ns per poter accedere ai dati. Questa è la fonte dell'informazione, attendibile visto che a parlare è Valey Pudov, una persona che ha creato l'omonimo sistema di backup per N64: il PV-Backup.

Un supporto ottico, grazie alla sua tecnologia, può immagazinare molti più dati rispetto ad una cartuccia. La grandezza massima di una cartucia per N64 che sia mai registrata è di 512Mbit, ovvero 64MB. Sono pochissimi rispetto ai 650-700 MB di un ordinario CD-ROM.

Caratteristiche fisiche

La console ha una forma più e meno regolare, principalmente di colore nera ma esistono delle varianti di colori differenti. Esiste una versione speciale dedicata ai pokémon. La console permette l'inserimento di quattro Joypad contemporaneamente.

Il sistema presenta quattro porte di espansione di cui tre situate sulla console: lo slot dedicato all'inserimento delle cartucce, l'Extension Port situato sotto la console ed il Memory Expansion che permette l'inserimento dell'Expansion Pack (per raddoppiare la RAM totale) e del Jumper Pack.

Infine sul Joypad c'è il Pack Holder che permette l'inserimento del Memory Pack, Rumble Pack e del Transfer Pack.

Il controller

Il Joypad

Il Joypad del N64 può risultare un po' strano a primo impatto. Impugnandolo si ci rende conto del buon lavoro di ergonomia, non è possibile utilizzare contemporaneamente la croce direzionale e la levetta analogica.

Questa caratteristica ha forzato molte volte il giocatore ad utilizzare la levetta analogica anche in quelle situazioni in cui si rilevava un sistema di controllo impreciso e scomodo. Penso che questo è più un problema imputabile ai programmatori che alla Nintendo, ma è anche vero che non sarebbe stata una cattiva idea avvicinare i due sistemi di controllo come avviene nelle console odierne.

Il controller presenta nove tasti fuoco di cui uno situato sotto la levetta analogica come un grilleto, infatti è stato nominato Z-Trigger. I quattro tasti C sono stati ideati per poter muovere la telecamera, ma questa funzionalità è a discrezione dei sviluppatori.

Accessori Secondari

Una cartuccia, joypad e console rappresentano il kit essenziale per poter giocare con il sistema, la Nintendo nel corso negli anni della console ha sviluppato altre periferiche per poter usufruire di determinate caratteristiche del parco software.

Memory/Controller Pack

Il Memory PAck

Con questo accessorio possiamo (gioco permettendo) salvare i nostri progressi quando il salvataggio su cartuccia non è consentito. Molti giochi di terze parti utilizzano questo sistema per ammortizzare il costo dei supporti. Sfortunatamente la console non mette a disposizione un sistema per la gestione standard dei dati come avviene nella PlayStation. Quindi dobbiamo affidarci al gioco di turno per poter gestire i salvataggi e questo spesso non è il miglior modo. La memoria standard di un Memory Pack è di 256KB, esistono anche non ufficiali da 1MB che presentano dei dip switch per selezionare il banco di memoria interessato.

Rumble Pack

Il Rumble PAck

Con questo particolare accessorio, uscito per la prima volta al lancio di StarFox 64/Lylat Wars, potete fare vibrare il joypad. Sfortunatamente richiede l'uso di due pile AA visto che il N64 fornisce una linea 3.3V per la sola circuteria del controller.

Molti giochi supportano questo accessorio e spesso ne consentono l'inserimento dopo che la console è stata accesa. Non ho mai avuto modo di provare ma penso che la capacità sismica sia molto blanda a causa della posizione remota del motore elettrico.

Expansion Pack

Expansion Pack

Accessorio che non dovrebbe mai mancare per ogni possessore del Nintendo 64. Alcuni giochi richiedono memoria extra per poter essere giocati in fondo, alcuni di questi titoli sono Donkey Kong 64, Perfect Dark e Zelda: Major's Mask.

Al contrario di come spesso si crede l'expansion pack non altera in alcun modo la grafica dei giochi che non richiedano espressamente tale acessorio. Super Mario 64 avrà lo stesso aspetto con o senza expansion pack. Tutto quello che accade alla console è solo un aumento della memoria RAM, poi è discrezione dei programmatori prevedere o meno l'uso di tale memoria extra.

Transfer Pack

Il Transfer Pack

Sfruttato da pochi giochi, questo accessorio permette di far comunicare il Nintendo 64 con una cartuccia del GameBoy, ma niente di particolare. In Perfect Dark è utilizzato per poter sbloccare caratteristiche extra mentre con Pokémon Stadium potete giocare con i personaggi della varie versioni portatili dei giochi degli stessi Pokémon.

Questo rappresenta uno dei primi tentativi di Nintendo di avere tra i suoi prodotti un ponte tra le console portatili e quelle casalinghe. Successivamente è stata ritentata una cosa simile con il GameBoy Advanced, in cui era possibile utilizzare il piccolo schermo della console portatile ai fini del gioco.

Nintendo 64 Disk Drive

Il Nintendo 64 Disk Drive è una unità per poter leggere speciali dischi magnetici (e non magneto-ottici) al Nintendo 64, commercializzato solo in Giappone verso il tramonto della console. I giochi disponibili sono circa una dozzina ma molto interessanti, solo ultimamente sono stati eseguiti backup di questi supporti aprendo la strada all' emulazione di questo particolare add-on.

Nintendo 64 Disk Drive

La capacità dei dischi è di 64MB, ma il sistema permette la lettura e la scrittura dei dati sulla maggior parte della superficie del disco. L'utilizzo dell'Expansion Pack è strettamente necessario. Il 64DD integra una speciale memoria rom dove sono presenti dati extra (come set di caratteri ed immagini) per i videogiochi in modo da poter risparmiare spazio nel disco, in oltre possiede un proprio orologio interno.

Molti giochi sono stati annunciati per 64DD ma spesso sono stati cancellati o dirottati sul formato cartuccia.

Mouse e Tastira

La prima cosa che viene in mente guardando questi due accessori è la possibilità di usare il Nintendo 64 come un PC. In parte questo era possibile. Il N64DD aveva software capace di andare in internet: il RanDNet!

La Tastiera

Una speciale cartuccia permetteva il collegamento alla linea telefonica permettendo al Nintendo 64 di andare in internet. Sembra una buona cosa non trovate? La Nintendo ha promesso caratteristiche come il beta-testing, possibilitá di ascoltare musica ad alta qualità, scambio messaggi e così via...

Il servizio era piuttosto scadente e poco aggiornato, nel 2001 furono chiusi i battenti. Secondo il mio parere questa cosa poteva essere gestita meglio, aveva grandi potenzialità ma la nuova generazione di console era ormai alle porte. Peccato che i giochi on-line per GameCube si contino sulle dita di una mano mozzata...

Caratteristiche Hardware

L'archittetura del Nintendo 64 è costruita principalmente su quattro componenti: la CPU NEC VR4300 (la versione a 64bit del processore della PlayStation), il CoProcessore RCP, la memoria volatile RAMBUS e l'interfaccia con le periferiche (PIF, peripheral interface).

Un processore a 64bit

Il Processore del N64

Una CPU MIPS da 64bit che gira alla frequenza di clock di 93.75MHz, troppo bello per essere vero? Non proprio.

Secondo questa fonte il software per N64 gira a 32bit su un processore a 64bit. Sembra che a primo impatto la Nintendo ci abbia preso per il culo, ed invece no. Il software scritto non è così bisognoso da richiedere la modalità a 64bit e non deve esserlo, altrimenti sarebbe solo uno spreco di RAM perchè le modalità di gestione dei dati a 64bit richiede risorse che il N64 non può soddisfare.

Il motivi per cui è stato adottato un procesore a 64bit sono molto sommariamente; un maggiore numero di registri disponibili rispetto ad un sistema a 32bit e la possibilità di usare una cache più ampia.

Sostanzialmente questa CPU è studiata per eseguire programmi scritti con linguaggi ad alto livello, come tutte le architetture MIPS. Se siete in grado di programmare in assembler date uno sguardo a qualche sorgente, potete fare salti, somme, operazioni algebriche con una sola riga di codice.

Questa parte di hardware si occupa principalmente della gestione di calcoli numerici non particolarmente legati alla grafica, questo compito è per il Reality Co-Processor.

RCP, Reality Co-Processor

Il Processore del N64

Componente molto particolare che mi ha fatto apprezzare particolarmente l'architettura del Nintendo 64. Ritengo questo componente semplicemente fantastico!

Vive ad una frequenza di 62.5MHz e gestisce tutti i compiti audiovisivi assegnati dal processore, esegue il rendering delle immagini per poi mandarle al convertitore di segnali video, similmente fa lo stesso con l'audio.

Questo componente si divide in due sottosezioni chiamate; RSP (Reality Signal Processor) e RDP (Reality Drawing Processor). Passiamo ora ad una descrizione più dettagliata di queste sezioni.

Reality Signal Processor

L'RSP sostanzialmente prende le informazioni sulla scena di gioco e si prende cura della loro aspetto. Gli oggetti sono composti da triangoli, ne deriva che ogni oggetto è composto da moltissimi triangoli per poter creare una forma.

Questo componente cura la posizione, la dimensione, il colore e l'illuminazione di questi triangoli. Alcuni compiti specializzati che esegue sono; vertex shader, correzione della prospettiva (cura la dimensione degli oggetti distanti) e cambia i colori ai triangoli quando questi sono illuminati. Il tutto viene poi mandato al RDP.

Ma la peculiarità di questo componente è la possibilità di essere completamente programabile attraverso i microcode. Sono delle istruzioni che il programmatore da in modo da poter cambiare l'architettura interna del componente. Questo permette di la creazione di nuove tecniche grafiche e di riprodurre potenzialmente qualsiasi formato audio.

In questo modo è possibile scrivere un motore grafico altamente ottimizzato, software house come RareWare, Factor5 e naturalmente Nintendo si sono avvalsi di tale tecnologia scrivendo i più bei motori grafici mai visti su questa console.

La Silicon Graphics fornisce due librerie di microcode, Fast3D e Turbo3D (quest'ultima sconsigliata da Nintendo). Sfortunatamente tale caratteristica era molto basilare e non aveva alcun tipo di debugger, questo poteva causare problemi molto insidiosi allungando i tempi di sviluppo.

Reality Drawing Processor

L'RDP prende i dati ricevuti dall'RSP e si prende cura di come verranno mostrati sullo schermo i triangoli, questa unità effettua tutte quelle operazioni grafice al "livello dei pixel" come: anti-aliasing, texture mapping, interpolazione tri-lineare e Z-Buffer.

L'audio viene invece relegato alla CPU e l'RSP. Presumibilmente usando la CPU per procurare i dati e decodificarli, mentre l'RCP attua la generazione di segnali audio. E' possibile produrre un suono a 16bit stereo fino a 48KHz ad un massimo di 64 canali. Nonostante l'hardware sia capace di riprodurre audio di alta qualità, le cartuccie impediscono lo sfruttamento di questa risorsa a causa del poco spazio messo a disposizione. Il massimo che si può sperare è inserire dei brani in MP3.

La Memoria RAM

La RAM del N64

L'architettura scelta per la memoria del Nintendo 64 è molto usata nelle console di nuova generazione ma non era così per gli anni 90', infatti la PSX ed il Sega Saturn non adottavano questo sistema. Il sistema utilizzato si chiama UMA (Unified Memory Architecture), l'Atari Jaguar è stata la prima console ad adottare questo sistema, sostanzialmente si tratta di un unico banco di RAM nel sistema che il programmatore dovrà suddividere per i suoi scopi.

Questo permette molta flessibilità al sistema permettendo di stabilire la quantità di memoria da dedicare al video, ai dati ed altre sezioni facendo in modo da non avere sprechi di RAM.

Il quantitativo di memoria installato sul Nintendo 64 ammonta a 36Mbit. Per ogni byte è associato un bit extra, presumibilmente usato per effettuare un controllo di parità, ma è più probabile che sia un flag per disinguere il contenuto da indirizzi di memoria e dati, in questo modo il lavoro del processore viene agevolato.

A questi 4.5MB è possibile aggiungere un banco di memoria, tramite l'Expansion Pack raddoppiando la capacità di RAM disponibile.

Concludendo

L'architettura del Nintendo 64 è molto interessante, specialmente la parte riguardante i microcode. Software House come Nintendo e RareWare hanno reso questa console un gioiello, non basta l'hardware per fare grande una console ma occorno bei giochi ed esclusive.

Con queste ultime parole finisce questo articolo, ho volutamente tralasciato la tabella con tutte le caratteristiche hardware perchè ritengo tale pratica poco utile al lettore medio, molto spesso con la console ci gioca e non ci programma, andate altrove per questo.