Culture et jeuxVrai ou mythe ?
1982
Huit couleurs ? Quinze, et parfois plus
On dit que le Spectrum n'avait que huit couleurs et que l'attribute clash était un défaut ; il y en avait quinze, et les bavures de couleur étaient un choix pour économiser de la mémoire et de l'argent.
En partieles couleurs de base sont huit, mais le Spectrum en affiche quinze, et l'attribute clash était un choix de coût et de mémoire, pas une erreur.
L'écran du Spectrum fait 256 × 192 pixels et n'occupe que 6912 octets : 6144 pour les pixels et 768 pour la couleur [1]. La couleur n'est pas définie pixel par pixel, mais par blocs de 8 × 8, sur une grille de 32 × 24. Chaque bloc a un octet d'attributs avec la couleur de l'encre, la couleur du papier, un bit de luminosité et un bit de clignotement, le FLASH [1].
De là vient la première demi-vérité. Les couleurs de base sont huit, mais chacune a une version normale et une version brillante, et comme le noir brillant est identique au noir, cela fait 15 couleurs différentes [1]. Ce qu'on ne peut pas faire, c'est mélanger les luminosités dans un même bloc : les deux couleurs d'une cellule partagent le bit de luminosité [1].
Un prix fixe : quatre fois le coût des composants.
Et de là vient aussi le fameux attribute clash : quand un personnage entre dans un bloc qui a déjà une autre couleur, l'un des deux « déteint » sur l'autre. Les programmeurs l'ont contourné de plusieurs façons : une aire de jeu en deux couleurs, la couleur étant réservée au cadre, comme dans Knight Lore (1984) ; des personnages énormes, dessinés par Don Priestley pour occuper des blocs entiers sans avoir l'air carrés, comme dans Popeye et The Trap Door ; ou des déplacements calés sur la grille de 8 × 8, comme dans Light Force [3]. Knight Tyme allait jusqu'à laisser le joueur choisir comment il voulait les couleurs [3].
Ce n'était pas une négligence. Avec si peu de mémoire consacrée à la couleur, ce schéma laissait plus de place aux programmes, ce qui comptait surtout sur le modèle 16 Ko [1]. Et il y avait l'argent. Dans les notes des entretiens des 40 ans du Spectrum, publiées par l'université RWTH d'Aix-la-Chapelle, Richard Altwasser, qui a conçu le matériel, explique qu'on aurait pu faire de la couleur complète et des sprites matériels, mais que la règle de Clive était un prix fixe de quatre fois le coût des composants [2].
Et le Spectrum affiche plus qu'il n'y paraît. L'ULA relit les attributs à chaque ligne de pixels, et un programme qui les change assez vite, ligne par ligne, obtient de la couleur par blocs de 8 × 1 ou 8 × 2, ce qu'on appelle le multicolor [1]. Il y a aussi le GigaScreen, qui alterne deux écrans 50 fois par seconde pour que l'œil mélange les couleurs [1]. Le NIRVANA ENGINE, d'Einar Saukas, offre des graphismes multicolor par blocs de 8 × 2 sur 30 colonnes de l'écran, et peut être utilisé gratuitement, même dans des jeux commerciaux, à condition d'indiquer qu'ils ont été faits avec lui [4].
Sources
- [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)