Advanced Graphics Architecture (AGA): l’ultimo chipset degli Amiga

Conosciuto internamente col nome in codice “Pandora“, doveva chiamarsi AA (Advanced Architecture), ma alla fine Commodore optò per aggiungere il termine “Graphics”, che in effetti denota perfettamente l’area in cui sono stati apportati i cambiamenti: esclusivamente sul fronte della grafica, e più precisamente sulla sua visualizzazione (schermo e sprite).

Al posto di Agnus (uno dei chip custom dell’Amiga) troviamo adesso Alice a gestire i 27 (prima erano 25) canali DMA e a regolare, quindi, l’accesso alla memoria, che non avviene più esclusivamente a 16 bit, ma finalmente è possibile eseguire la lettura (o scrittura) dei dati a 32 bit, e addirittura a 64 bit. In realtà in quest’ultimo caso è possibile leggere due dati a 32 bit durante lo stesso accesso, ma gli indirizzi devono comunque essere allineati a 64 bit (8 byte) per poter sfruttare questa modalità.

Questo cambiamento è a dir poco fondamentale per rilanciare le capacità grafiche degli Amiga, rimaste al palo sostanzialmente dall’introduzione di queste meravigliose macchine, con la casa madre che è stata impegnata più a incassare soldi cullandosi del successo, che a consolidare il vantaggio pensando ad aggiornare adeguatamente il chipset.

Due sono i limiti più grossi evidenziati già nel precedente articolo sull’ECS: la risoluzione e il numero dei colori. Su entrambi, in particolare sul primo, pesa molto la banda verso la memoria a disposizione per prelevare i dati.

Questo perché, se è vero che è stata introdotta la programmabilità del segnale video superando il limite dell’alta risoluzione (640×200 per l’NTSC e 640×256 per il segnale PAL, e valori raddoppiati verticalmente sfruttando l’interlacciamento), con l’ECS ciò ha comportato una notevole riduzione del numero di colori visualizzabili, scesi a soltanto 4 per le nuove modalità (Super-Hires: 1280×256, VGA: 640×480@72Hz, e SVGA: 800×600@60Hz interlacciati).

Il motivo è presto detto: poiché la banda verso la memoria rimaneva sempre la stessa, all’aumentare della risoluzione e/o della velocità di refresh si era resa necessaria una proporzionale riduzione del numero di bitplane. Il limite precedente era rappresentato da 6 bitplane (perché la palette era di soli 32 colori, e 64 massimo con la modalità EHB, l’Extra Half-Brite; senza tener conto dell’HAM) in bassa risoluzione (320×200 NTSC, 320×256 PAL), oppure 4 bitplane in alta.

Per sottolineare l’importanza della banda e dell’enorme collo di bottiglia che rappresentava, aggiungo che mentre uno schermo in bassa risoluzione a 6 bitplane lasciava circa il 25% dei cicli di clock liberi per Copper e Blitter, e il 50% per la CPU (in futuro capiremo il perché di questi numeri, quando analizzeremo il preciso funzionamento interno dell’Amiga), uno in alta risoluzione a 4 bitplane non ne lasciava nessuno e questi dispositivi rimanevano completamente tagliati fuori dall’accesso alla memoria video (in pratica restavano “congelati” in attesa) per tutto il tempo relativo al tracciamento della grafica della riga di raster correntemente visualizzata.

In questo modo potevano lavorare sfruttando la memoria (risorsa indispensabile per i primi due, e molto importante per la terza) esclusivamente durante il breve periodo di horizontal retrace o il più lungo vertical retrace (si tratta degli intervalli di tempo in cui il pennello elettronico si spostava rispettivamente sulla successiva linea orizzontale, oppure tornava in alto per cominciare a disegnare il successivo fotogramma).

Si tratta di poca roba, purtroppo, perché il grosso del tempo a disposizione era quello che riguardava il disegno della grafica degli schermi. Questo era il motivo per cui molti giochi per Amiga sfruttavano la bassa risoluzione a 32 colori (che lasciava il 37% dei cicli di clock liberi per Copper e Blitter, e il 75% per la CPU), una parte consistente la modalità Dual Playfield (DP: due schermi scrollabili indipendenti, ognuno di 3 bitplane), e pochissimi l’EHB a 64 colori, limitando l’uso dell’alta risoluzione all’eventuale presentazione di immagini statiche.

L’introduzione dell’accesso a 32 e “64” bit con l’AGA innalza notevolmente questi limiti, lasciando moltissima banda a disposizione nelle basse risoluzioni, una discreta banda per l’alta risoluzione, ma divenendo il collo di bottiglia della Super-Hires e in generale degli schermi a risoluzioni più elevata introdotti dall’ECS.

Una buona situazione di cui approfitta Lisa, il nuovo chip che va a sostituire Denise (altro chip custom), che consente di estendere a qualunque risoluzione le modalità di visualizzazione prima disponibili esclusivamente per quella bassa. Adesso è, infatti, possibile visualizzare schermi a 32 colori, in EHB, HAM, o DP anche in alta risoluzione, Super-Hires, VGA o SVGA.

Non solo: dopo anni e anni di attesa, la palette viene estesa e arrivano finalmente gli schermi a 256 colori, questa volta non più limitati a una gamma cromatica di 4096 (16 gradazioni per ogni colore fondamentale), ma… di ben 16 milioni (256 gradazioni per colore fondamentale)! Allineando, quindi, l’Amiga a quanto aveva già offerto da tempo la concorrenza rappresentata principalmente da PC e Mac.

Al contempo si aggiunge una nuova modalità HAM, chiamata HAM-8 e dal cui nome si capisce che per lavorare impiega 8 bitplane (in precedenza soltanto 6), ma la cui meccanica è sostanzialmente identica, tranne per il fatto che questa volta la palette di base a disposizione è di 64 colori (prima erano 16), mentre è possibile cambiare i 6 bit alti di rosso, verde, oppure blu (prima erano i 4 bit “alti”, cioè gli unici).

HAM-8 consente, pertanto, di visualizzare immagini a 16 milioni di colori (in realtà molti meno, vuoi per il fatto che 16 milioni di colori diversi necessiterebbero di schermi da 4096×4096 pixel, ad esempio, per essere visualizzati; vuoi perché non c’è piena libertà di scelta dei colori) con un’ottima approssimazione, ma richiedendo soltanto 1/3 dello spazio rispetto a uno schermo a 24 bit.

Anche il DP ottiene una “promozione”, e adesso i due schermi indipendenti possono visualizzare fino a 16 colori ciascuno (4 bitplane), selezionabili da opportune porzioni della palette di 256. Di ciò ne hanno beneficiato molti giochi che facevano uso di questa modalità (fra i quali penso che molti ricorderanno Brian the Lion per il notevole impatto visivo), che permetteva all’Amiga di tornare competitivo con le console dell’epoca, SuperNintendo e Genesis in primis.

Per tutte le risoluzioni e modalità è possibile specificare uno scrolling orizzontale estremamente fine, che arriva a 1/2 o 1/4 di pixel. Tradotto in altri termini, mentre in precedenza uno schermo in bassa risoluzione poteva scrollare soltanto di valori interi di pixel, adesso lo scrolling più avvenire anche di mezzo o un quarto di pixel. Prima in alta risoluzione si poteva scrollare soltanto di due pixel alla volta, mentre adesso è possibile scrollare di un pixel, o di mezzo pixel. Infine con la Super-Hires si poteva scrollare soltanto di 4 pixel alla volta, mentre adesso di 2 oppure di uno singolo.

Ultimo componente a ricevere beneficio dalla raddoppiata e quadruplicata banda passante verso la memoria sono gli sprite, prima limitati a 16 pixel di ampiezza e visualizzati in bassa risoluzione anche se lo schermo sottostante era in alta o in Super-Hires. Adesso arrivano a 32 o 64 pixel di ampiezza a seconda del corrispondente tipo di accesso alla memoria selezionato, e inoltre possono essere visualizzati in alta risoluzione o Super-Hires a prescindere dalla definizione dello schermo visualizzato. Inoltre si può scegliere la parte della palette che dovranno utilizzare.

Si presenta, però, un grosso problema quando è abilitato lo scrolling orizzontale dello schermo e al contempo per questo viene fatto uso dell’accesso a 32 o 64 bit alla memoria. Nel primo caso (32 bit per i dati dello schermo), rimangono a disposizione soltanto 5 sprite a 4 colori (oppure 2 a 16 colori e uno a 4), mentre nel secondo (64 bit per i dati dello schermo) soltanto uno a 4 colori. Questo perché la logica di prefetch dei dati dello schermo ha bisogno di “rubare” la banda di memoria del DMA degli sprite per poter visualizzare poi correttamente i dati quando servono.

Questo è sicuramente un grosso limite, se pensiamo che lo scrolling orizzontale era presente e usato nella stragrande maggioranza dei giochi, come pure i comodissimi sprite a 16 colori da 16 pixel (se ne potevano usare 3, e ne rimaneva uno a 4 colori). Una soluzione poteva essere rappresentata dalla rinuncia agli accessi a 32 e 64 bit soltanto per gli schermi, sfruttandoli soltanto per gli sprite, e potendo a questo punto usarne 3 a 16 colori, ma da ben 64 pixel orizzontali ciascuno (e uno a 4 colori sempre da 64 pixel), oppure 7 a 4 colori da 64 pixel.

Soluzione discreta, ma non eccelsa, in quanto tagliava fuori buona parte dei BLOB (gli “sprite” realizzati, però, usando il Blitter), costringendo a ridurre il numero di colori a schermo per cercare di lasciare un po’ di banda a disposizione per Copper, Blitter e CPU.

Con gli AGA, però, i 256 colori finalmente a disposizione facevano particolarmente gola, per cui tante volte si preferiva rinunciare agli sprite per ottenere un risultato visivo decisamente più appagante alla vista, delegando al Blitter la realizzazione di personaggi e animazioni varie, grazie anche alla maggior banda di memoria disponibile adesso coi nuovi accessi.

Infine, l’arrivo dei monitor multisync a 31 o più Khz rende possibile l’uso di risoluzioni più elevate a quelle dei canonici monitor e televisori CRT ai tempi a disposizione, per cui Commodore aggiunge anche la possibilità di utilizzare, ove la banda di memoria l’avesse permesso, il cosiddetto “scan doubling” sia degli schermi che, eventualmente, degli sprite, e la relativa eliminazione del famigerato interlacciamento che tanto fastidio dava alle retini degli occhi (costringendo a utilizzarlo il meno possibile).

Per concludere veniamo alla note dolenti. Come dicevo all’inizio, le modifiche apportate hanno riguardato esclusivamente gli schermi e gli sprite: tutto il resto dell’hardware dell’Amiga è rimasto esattamente come prima. I floppy sono rimasti da 880KB, e quelli nuovi da 1,76MB richiedevano una velocità di lettura o scrittura dimezzata. I canali audio erano sempre 4 a 8 bit e massimo 28Khz. Copper e Blitter lavoravano a 16 bit.

Estendendo l’uso degli accessi a 32 e 64 bit si potevano facilmente portare benefici analoghi anche a questi componenti, che non erano meno importanti. Avremmo potuto avere floppy da 1,76 e 3,5MB funzionanti a piena velocità, e 4 canali audio a bit 8 bit fino a 112KHz oppure a 16 bit fino a 56Khz.

Il Copper già da prima richiedeva 2 word a 16 bit per le sue istruzioni, e sfruttando per lo meno l’accesso a 32 bit avrebbe dimezzato l’uso della banda di memoria e velocizzato il suo funzionamento. Idem per il Blitter: si sarebbe potuto sfruttare almeno l’accesso a 32 bit per dimezzare accessi e velocizzarne le operazioni.

La pecca più grossa rimaneva la mancanza delle modalità cosidette “chunky pixel, ossia non facenti uso di bitplane per i dati degli schermi, che erano ormai indispensabili per realizzare velocemente grafica 3D. Per lo meno una modalità chunky a 256 colori (8 bit, 1 byte, che conteneva il colore da selezionare nella palette) sarebbe stata utilissima (e quelle a 16, 24 e 32 bit una gradita aggiunta, specialmente per i programmi di fotoritocco, disegno pittorico, e grafica 3D).

Forse non dovrei parlare di pecche, ma di enormi lacune e di una generale miopia della dirigenza Commodore, che non è mai riuscita a captare per tempo i veloci, spesso repentini, cambiamenti del mercato. Il fallimento di questa gloriosa casa che ha fatto la storia dell’informatica è semplicemente la conseguenza prevedibile di una politica che definire avulsa dalla realtà era fargli un complimento, legata poi mani e piedi al mero profitto dei suoi due presidenti, ancora oggi odiati dagli amighisti di lunga data che li considerano soltanto due sanguisughe senz’anima.

L’AGA rimane pertanto un’opera incompiuta, sicuramente non in linea con quanto ci si aspettava, ma che nonostante tutto è stata apprezzata e, soprattutto, sfruttata da quanto di realmente buono c’era in quell’ambiente: i programmatori pieni di idee e di geniali trovate che hanno cercato di spremere come un limone quella che rimaneva comunque un’architettura con una “filosofia” che ancora oggi lascia l’amaro in bocca.

Grazie, Jay Miner, che hai permesso tutto ciò.

Press ESC to close