RETRODREAMSAMIGA & SPECTRUM
Menu

← Toutes les puces

denise.chip

DIP-48 · 8362R8 · dessin, pas une photo

Puces de l'AmigaCommodore (MOS / CSG)

1985

Denise / Lisa

La puce qui change les bits en couleurs : plans d'image, sprites, palette, HAM et même la souris.

Denise assemble les plans de bits de l'image et les sprites et les convertit en couleurs envoyées au moniteur, à partir d'une palette de 4096. Elle a donné à l'Amiga le HAM, avec les 4096 couleurs à l'écran en 1985, et a évolué vers Super Denise pour l'ECS et vers Lisa pour l'AGA, avec 256 couleurs parmi 16,8 millions.

bits de bus
16

De Daphne à Denise

Sur les prototypes de Lorraine, la puce vidéo s'appelait Daphne. Sous le nom de Denise, elle sortit avec l'Amiga 1000 en 1985, sous la référence 8362, dans un boîtier DIP de 48 broches. C'est la puce la plus proche du moniteur : tout ce que vous voyez sur l'écran d'un Amiga OCS est passé par elle.

Il y a une répartition du travail qu'il vaut la peine de comprendre. C'est Agnus qui sait où se trouve l'image en mémoire et qui va la chercher. Denise ne connaît aucune adresse : elle reçoit les données déjà lues, 16 pixels à la fois, mélange les plans d'image avec les sprites et choisit la couleur de chaque pixel.

Comment Denise peint l'écran

L'Amiga stocke l'image en plans de bits (bitplanes). Imaginez plusieurs feuilles transparentes, chacune avec un bit par pixel : avec 1 plan il y a 2 couleurs, avec 2 il y en a 4, et avec 5 plans il y en a 32. Denise lit le bit de chaque feuille pour le même pixel, les assemble en un nombre et utilise ce nombre pour choisir l'un des 32 registres de couleur. Chaque registre contient une couleur de 12 bits, 4 pour le rouge, 4 pour le vert et 4 pour le bleu : 4096 couleurs possibles.

En basse résolution, chaque pixel dure 140 nanosecondes et l'image fait 320 pixels de large ; en haute résolution, 70 nanosecondes et 640 pixels, avec jusqu'à 16 couleurs. En vertical, c'est 200 lignes en NTSC et 256 en PAL, le double en entrelacé, au prix du scintillement typique de l'époque. Avec l'overscan, l'image peut aller presque jusqu'aux bords du téléviseur.

L'avantage des plans, c'est l'économie : si un jeu n'a besoin que de 8 couleurs, il utilise 3 plans et économise mémoire et cycles. Le nombre de plans et la résolution peuvent même changer en milieu d'écran, sous la main du Copper.

Astuces de couleur : EHB, HAM et deux décors

Un sixième plan est réservé à des modes spéciaux. En Extra Half-Brite (EHB), ce bit dit à Denise d'afficher la couleur à mi-luminosité : 32 couleurs choisies plus leurs 32 versions sombres, 64 au total. Les jeux s'en servaient pour les ombres et les silhouettes.

Le HAM (Hold-And-Modify) est l'astuce la plus célèbre. Chaque pixel a 6 bits : 2 disent quoi faire et 4 sont la valeur. Soit le pixel utilise l'une des 16 couleurs de la palette, soit il copie la couleur du pixel de gauche et ne change que le rouge, que le vert ou que le bleu. Ainsi les 4096 couleurs tiennent à l'écran en même temps, du jamais vu sur un ordinateur domestique en 1985. Le prix, ce sont des franges de couleur sur les transitions brusques, car changer les trois composantes peut prendre trois pixels.

C'est pourquoi le HAM servit surtout aux photos numérisées, aux images 3D et aux logiciels de dessin, et très peu aux jeux. Il y a encore le mode double décor (dual playfield) : deux images de 8 couleurs chacune, superposées, qui défilent de façon indépendante, idéal pour un fond qui bouge plus lentement que le premier plan.

Sprites, collisions et la souris

Denise dessine 8 sprites par ligne, chacun de 16 pixels de large et de la hauteur voulue, avec 3 couleurs plus la transparence. Deux sprites voisins peuvent s'associer (attached) en un seul de 15 couleurs. Avec l'aide du Copper, le même sprite peut être réutilisé plus bas sur l'écran, et c'est ainsi qu'un jeu en affiche bien plus que 8. Le pointeur de souris du Workbench est le sprite 0.

Denise signale aussi quand les choses se touchent. Un registre de collisions indique si une paire de sprites en a touché une autre, ou si un sprite a touché un plan d'image, sans que le processeur ait à comparer pixel par pixel.

Et, aussi étrange que cela paraisse, c'est dans la puce vidéo que se trouvent les compteurs de la souris et du joystick. La souris envoie des impulsions quand elle bouge, et Denise les compte dans des compteurs de 8 bits par axe, que le système lit au fur et à mesure. Les boutons sont confiés à d'autres puces.

Super Denise : l'ECS

L'ECS apporta Super Denise (8373), dans l'A3000, l'A500 Plus, l'A600 et certains A2000, et elle peut être montée en mise à niveau sur les A500 et A2000 qui ont déjà un Agnus ECS. Elle ajoute le SuperHires, avec des pixels de 35 nanosecondes et 1280 de large, et le Productivity, 640 × 480 non entrelacé, pour les moniteurs multisync. Le prix, c'est la couleur : dans ces modes il n'y a que 4 couleurs, et en SuperHires chaque composante n'a que 2 bits, ce qui laisse une palette de 64.

Elle apporta aussi des fonctions pour le genlock et la vidéo, comme rendre la bordure de l'écran transparente ou rendre une couleur transparente pour l'image extérieure, et un registre d'identification, DENISEID, qui permet au logiciel de savoir à quelle puce il a affaire.

Lisa : l'AGA

Dans l'AGA, la successeure s'appelle Lisa, dans un PLCC de 84 broches, dans l'A1200, l'A4000 et le CD32. Elle reçoit les données par mots de 32 bits et accepte jusqu'à 8 plans : 256 couleurs à l'écran, dans n'importe quelle résolution, choisies dans une palette de 24 bits, 16,8 millions de couleurs.

Le HAM gagna une version 8 bits, le HAM8 : 6 bits de valeur et 2 de contrôle, avec 64 couleurs de base, jusqu'à 262 144 couleurs à l'écran. Les deux HAM fonctionnent désormais dans toutes les résolutions, et plus seulement en basse résolution comme avant. Les sprites peuvent faire 16, 32 ou 64 pixels de large, apparaître dans la bordure de l'écran et utiliser leur propre zone de la palette, et le mode double décor passa à 16 couleurs par décor.

Il lui manqua une chose : un mode chunky, avec un octet par pixel, comme la VGA des PC. Avec l'arrivée des jeux 3D à la Doom, ce manque pesa lourd, et c'est pourquoi le CD32 reçut Akiko.

Le saviez-vous…

  1. Selon Jay Miner lui-même, le HAM a failli ne pas arriver dans l'Amiga. Il était né quand la vidéo était encore pensée en termes de télévision ; au passage au RGB, Miner demanda de le retirer. On lui répondit que cela laisserait un trou au milieu de la puce ou obligerait à trois mois de refonte. Il resta, et Miner admit plus tard s'être trompé sur son utilité.

  2. Certains des premiers A1000 vendus aux États-Unis n'ont pas le mode Extra Half-Brite. Tous les Amiga suivants l'ont.

  3. Denise d'origine n'a pas de registre d'identification : qui le lit reçoit des valeurs sans signification. Super Denise répond $FC et Lisa $F8, et c'est ainsi qu'un programme sait s'il tourne sur un Amiga OCS, ECS ou AGA.

  4. La Boing Ball de 1984 ne consomme presque pas de processeur : on raconte que la balle est dessinée une seule fois et que la rotation n'est qu'un échange de couleurs dans la palette, ce qu'on appelle le cycle de couleurs.

  5. On dit que Denise vient de « Display ENabler », un sigle forcé pour garder le prénom féminin.

  6. On compte une douzaine de jeux environ qui ont utilisé le HAM en cours de partie, à commencer par Pioneer Plague, de 1988.

  7. Denise n'a pas de mode texte. Chaque lettre du Workbench est dessinée en plans de bits, comme n'importe quelle image.

RUN "DEMO"

4096 couleurs au choix

Denise choisit ses couleurs dans une palette de 4096 (4 bits de rouge, de vert et de bleu). En mode normal, elle en affiche jusqu'à 32 à la fois, 64 en Extra Half-Brite et les 4096 en HAM. Lisa, sur l'AGA, est passée à une palette de 16,8 millions.

Où on la trouve