Inside Ps1 Parte 3: il sistema grafico

Un’analisi abbastanza completa del sistema grafico della Ps1 non è di facilissima comprensione, in virtù del fatto che essa si suddivide in 4 aree primarie con competenze specifiche. Mi spiego meglio: il sistema si compone di quattro “meccanismi” che operano coordinatamente per la rappresentazione di elementi 2d/3d e la riproduzione di filmati. Il primo “meccanismo” è rappresentato dai co-processori di controllo che abbiamo introdotto nella scorsa parte dell’analisi. Il loro compito è in realtà ridotto  ma, nello specifico, è significativo perchè coordinano il passaggio dei dati elaborati dalla Gpu (che ora vedremo) alla CPU e viceversa, passaggio necessario per alcune operazioni di sincronizzazione video.

Il secondo pezzo del sistema, molto più importante, risiede anch’esso nella CPU e corrisponde al nome di Geometry Transformation Engine. Questo sistema, che potremmo definire un modulo operativo insito alla Cpu stessa, è il cuore di tutti i calcoli relativi alla grafica 3d della Ps1. Il GTE può operare calcoli vettoriali e matriciali, rotazioni, prospettive, equazioni per la gestione dei colori. E’ progettata per essere molto più veloce della Cpu in queste operazioni. Non è realmente indirizzata dalla CPU in memoria tramite un indirizzo, per richiamarla in fase di programmazione è necessario usare istruzioni speciali, uniche solo e soltanto del GTE. Come una vera e propria “singola” CPU, il GTE ha 32 registri di sistema sui quali operare, suddivisi in registri per i dati di elaborazione e registri di controllo. Dovete sapere che la maggior parte dei calcoli su elementi tridimensionali viene fatta (sia in C che in linguaggio Assembly specifico per la Cpu) utilizzando calcoli di natura geometrica/matriciale, in virtù della relativa semplicità di programmazione in questa modalità e con l’enorme vantaggio di poter operare singolarmente su elementi delle matrici e sui vettori per variare facilmente le caratteristiche di ciò che andrà a video.

Un’analisi completa dei comandi del GTE risulterebbe noiosa ed eccessivamente tecnica, quindi passiamo al terzo pezzo del puzzle, il MDEC (Motion DeCoder Engine) un chip a parte demandato alla decompressione di file video letti dal CD. I formati video di base della Ps1 sono molteplici, molti di più dei soliti XA e Mpeg-1 che si crede propri del sistema Sony. Il chip è capace di decomprimere video a grande velocità, e per gestire lo stream (flusso) di dati continuo che giunge alla Cpu entrano in gioco i co-processori di cui abbiamo parlato all’inizio, il cui compito diventa allora quello di schedulare ossia mettere in ordine di esecuzione i frammenti di byte video decodificati per poter essere letti in serie. E’ compatibile anche il formato video H.261, ormai certamente desueto ma che rappresenta la base per tutti i successivi formati odierni, MPEG in primis.

L’ultimo e fondamentale elemento del complesso grafico è la vera GPU, una piccola perla di chip datata 1995. E’ principalmente demandata all’elaborazione della grafica bidimensionale, ma si occupa anche di coordinare l’output a video dei risultati del GTE. E’ capace di gestire fino a 16.7 milioni di colori, una risoluzione massima di 640×480, elabora un massimo di 4000 8×8 pixel con dimensionamento e rotazione individuali. Può gestire più sfondi contemporaneamente ed effetti di parallasse/scaling. Gestisce luci, ombre e texture risultati dai calcoli del GTE e dei coprocessori. Ha 1 Mb di Video Ram. Sebbene possa sostenere al massimo una risoluzione molto più bassa del concorrente Sega Saturn, la Gpu della Ps è capace di un notevole potenziale nel campo dell’elaborazione tridimensionale, con risultati mai reggiunti dalla sua avversaria, specie nella modellazione tridimensionale e nella raffinata gestione degli effetti lighting. Pensate a Vagrant Story e alla straordinaria capacità di illuminazione degli elementi a schermo, impressionante considerato tutto il sistema, non certo complesso nè rivoluzionario. Dove perdeva tutto questo sistema grafico era l’elaborazione 2d, inferiore al Saturn e capace di una limita nonchè eccessivamente complessa gestione di sprite e parallassi. E’ altresì vero che le intenzioni di Sony per la console erano chiare: stupire con la nuova era del 3d e quello era il riferimento. Il 2d fu una conseguenza, al contrario del Saturn dove il 2d raffinato fu la base di partenza (anche a livello di programmazione) della console a discapito del reparto 3d.

Ci si rivede per la prossima parte di Inside Ps1, stay tuned!!

Annunci
Articolo precedente
Lascia un commento

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: