Cultura e giochiVero o mito?
1982
Otto colori? Quindici, e a volte di più
Si dice che lo Spectrum avesse solo otto colori e che l'attribute clash fosse un difetto; erano quindici, e la macchia di colore fu una scelta per risparmiare memoria e denaro.
In partei colori base sono otto, ma lo Spectrum ne mostra quindici, e l'attribute clash fu una scelta di costo e di memoria, non un errore.
Lo schermo dello Spectrum ha 256 × 192 pixel e occupa appena 6.912 byte: 6.144 per i pixel e 768 per il colore [1]. Il colore non è assegnato pixel per pixel, ma a blocchi di 8 × 8, in una griglia di 32 × 24. Ogni blocco ha un byte di attributi con il colore dell'inchiostro, il colore della carta, un bit di luminosità e un bit di lampeggio, il FLASH [1].
Da qui viene la prima mezza verità. I colori base sono otto, ma ognuno ha una versione normale e una brillante, e siccome il nero brillante è uguale al nero, i colori diversi sono 15 [1]. Ciò che non si può fare è mescolare luminosità nello stesso blocco: i due colori di una cella condividono il bit di luminosità [1].
Un prezzo fisso: quattro volte il costo dei componenti.
E da qui viene anche il famoso attribute clash: quando un personaggio entra in un blocco che ha già un altro colore, uno dei due "attacca" il colore all'altro. I programmatori lo aggirarono in vari modi: un'area di gioco a due colori con il colore riservato alla cornice, come in Knight Lore (1984); personaggi enormi, disegnati da Don Priestley per occupare blocchi interi senza sembrare squadrati, come in Popeye e The Trap Door; oppure movimenti vincolati alla griglia di 8 × 8, come in Light Force [3]. Knight Tyme arrivava a lasciar scegliere al giocatore come voleva i colori [3].
Non fu una svista. Con così poca memoria per il colore, lo schema lasciava più spazio ai programmi, il che contava soprattutto nel modello da 16 KB [1]. E c'erano i soldi. Negli appunti delle interviste per i 40 anni dello Spectrum, pubblicati dall'Università RWTH di Aquisgrana, Richard Altwasser, che progettò l'hardware, spiega che si sarebbero potuti fare colore completo e sprite in hardware, ma che la regola di Clive era un prezzo fisso di quattro volte il costo dei componenti [2].
E lo Spectrum mostra più di quanto sembri. La ULA rilegge gli attributi a ogni riga di pixel, e un programma che li cambi in fretta, riga per riga, ottiene colore in blocchi di 8 × 1 o 8 × 2, il cosiddetto multicolor [1]. C'è poi il GigaScreen, che alterna due schermi 50 volte al secondo perché l'occhio mescoli i colori [1]. Il NIRVANA ENGINE, di Einar Saukas, offre grafica multicolor in blocchi di 8 × 2 su 30 colonne dello schermo, e può essere usato gratis, anche in giochi commerciali, a patto di dichiarare che è stato fatto con esso [4].
Fonti
- [1]ZX Spectrum graphic modes · Wikipedia
- [2]Sinclair ZX Spectrum at 40: Interviews with Crispin Sinclair, Richard Altwasser, and Steven Vickers · Media Computing Group, RWTH Aachen University, 2022
- [3]Attribute clash · Wikipedia
- [4]NIRVANA ENGINE: instruções (Einar Saukas) · Spectrum Computing (ZXDB)