chunky
sabato 25 Marzo 2023 - Commenta

Nei precedenti tre articoli su s.o. & applicazioni, videogiochi 2D e videogiochi 3D mi sono focalizzato sull’Amiga originale (OCS), tralasciando l’ECS (cambia veramente pochissimo e assolutamente nulla rispetto all’argomento grafica planare vs packed), perché ho deciso di trattare separatamente i casi d’uso per l’AGA.

Il motivo principale è che, per quanto l’AGA abbia apportato degli innegabili miglioramenti (d’altra parte erano ben 7 anni che il chipset non veniva cambiato: l’ECS è pochissima roba che ha inciso per niente nei videogiochi e quasi nulla nel s.o. e le applicazioni dotate di interfaccia …

mercoledì 22 Marzo 2023 - Commenta

Dopo aver parlato dei giochi 2D veniamo, infine, a quelli 3D per “chiudere il cerchio”. I giochi AGA, che sono un argomento trasversale, verranno trattati a parte.

Non mi soffermerò in dettaglio su come funzioni il motore grafico di un gioco di questo tipo (anche perché non ne esiste uno soltanto, ma diversi, a seconda delle decisioni prese per certi aspetti, nonché le approssimazioni utilizzate), anche perché i concetti chiave si possono leggere ovunque (pure su Wikipedia).

Introduzione (molto veloce) alla rasterizzazione (3D -> 2D)

Ciò che è importante, ai fini di quest’articolo, …

sabato 18 Marzo 2023 - Commenta

Completata la panoramica dei casi d’uso per sistema operativo e applicazioni dotate di interfaccia grafica, passiamo adesso a un argomento più succulento: i videogiochi 2D.

Molte delle considerazioni già fatte per s.o. e applicazioni (dotate di interfaccia grafica, ovviamente) valgono anche per i giochi 2D (che rappresentano la stragrande maggioranza del parco Amiga. D’altra parte l’hardware è votato proprio a questo tipo di grafica), ma in questo caso le prestazioni e il consumo di memoria assumono un ruolo molto più importante a causa dell’impatto che hanno l’aggiornamento della grafica, la sua …

mercoledì 15 Marzo 2023 - Commenta

Con l’implementazione hardware del tracciamento delle linee è stato completato (per lo più) l’argomento Amiga “packed” dal punto vista tecnico, ma alcuni articoli erano ancora necessari, a mio avviso, per chiarire dei casi d’uso comuni per quanto riguarda l’elaborazione della grafica sia da parte del sistema operativo (e delle relative applicazioni che fanno uso dell’interfaccia grafica / GUI) sia, in particolare, nei giochi (che, comunque, condividono diversi scenari con s.o. e applicazioni con GUI), mostrando i rispettivi vantaggi e svantaggi di grafica planare e packed (ove ce ne siano. Scenari …

sabato 11 Marzo 2023 - Commenta

Dopo aver preparato il terreno spiegando con dovizia di particolari il funzionamento del tracciamento delle linee implementato nel Blitter per la grafica planare, adesso tocca esaminarne una soluzione hardware (che comunque consiste in pochissime modifiche a quanto già implementato) per la grafica packed.

Il Blitter – Tracciamento linee “packed” – Soluzione hardware

Come già anticipato, la stessa cosa si può fare tranquillamente con la grafica packed, ma con alcuni accorgimenti particolari, poiché si deve necessariamente tenere conto del fatto che l’indice di un pixel non è costituito da un solo bit, ma …

mercoledì 8 Marzo 2023 - Commenta

Il Blitter è stato il coprocessore delle meraviglie per chi ha avuto il piacere di programmarlo, grazie alla notevole flessibilità & programmabilità che offrì all’epoca (ricordo che parliamo dell’85!), il quale non si limitava soltanto alle primitive grafiche, seppur potenti (specialmente quella di cookie-cut!, di cui abbiamo completato l’analisi nel precedente pezzo), che abbiamo visto nei precedenti articoli. Infatti consentiva anche di disegnare linee e riempire aree… sempre in hardware!

Il Blitter – Tracciamento linee & riempimento “packed” – Soluzioni a costo zero (in hardware)

Ovviamente il problema di come implementare il …

sabato 4 Marzo 2023 - Commenta

Introdotta la meravigliosa primitiva grafica chiamata cookie-cut in gergo amighista, passiamo ad analizzare l’algoritmo centrale dell’implementazione packed.

Il Blitter – inserimento di un oggetto grafico “mascherato” – Generazione delle maschere

L’esempio esposto nel precedente articolo dovrebbe aver contribuito a far chiarezza, fatta eccezione sull’elemento cardine del meccanismo spiegato: la generazione delle maschere. A parole sembra molto semplice, ma il diavolo si nasconde nei dettagli, come si suol dire. Infatti la parte più complicata del nuovo algoritmo risulta proprio nell’implementazione di questo meccanismo e non è affatto chiaro come si dovrebbe procedere concretamente, …

mercoledì 1 Marzo 2023 - Commenta

Dopo aver discusso dell’implementazione delle primitive grafiche più semplici passiamo a quella più complicata, ma che ha dato lustro al coprocessore per eccellenza presente nell’Amiga.

Il Blitter – inserimento di un oggetto grafico “mascherato” – Prima soluzione “packed“

Questa primitiva grafica è un’estensione nonché generalizzazione di quella trattata nel precedente articolo e consente di gestire i casi più complessi, come quello che capita nei videogiochi quando bisogna disegnare la grafica dei personaggi o dei vari oggetti che devono sovrapporsi alla grafica del fondale, quindi mostrando la grafica di tali oggetti quando non …

sabato 25 Febbraio 2023 - Commenta

Il Blitter

Dopo l’articolo sugli sprite rimane adesso l’ultimo elemento da trattare nonché l’altro componente (assieme al controllore video) estremamente importante nel chipset dell’Amiga: il Blitter.

Una cosa da precisare immediatamente è che il Blitter non nasce per operare con (ed esclusivamente) coi bitplane (il che può sembrare strano), in quanto si tratta di un componente che, in realtà, opera sempre a livello di word (16-bit): legge delle word (usando fino a 3 sorgenti diverse, chiamate A, B e C), effettua delle operazioni su di esse (magari combinando in qualche modo i …

mercoledì 22 Febbraio 2023 - Commenta

Finito l’argomento controllore video, adesso trattiamo quello degli sprite. Sebbene siano ovviamente legati strettamente (gli sprite sono gestiti e usati sempre dal controllore video), ho preferito separarne la trattazione perché il controllore video non dipende da loro (ma è il contrario: gli sprite ne sono un’aggiunta) e per semplificare, in ogni caso, la lettura.

Gli Sprite – bitplane

L’Amiga mette a disposizione fino a 8 sprite a 4 colori larghi 16 pixel orizzontalmente e di altezza illimitata. Questi sprite risultano appaiati a due a due, in quanto è possibile combinarne due di …