Sortie des informations de couleur :
Les bits RGB ainsi qu'un bit de réduction d'intensité pour le vert, tous issus de la PROM µPB426 en 86, sont latchés par le 74S175 en 79. Trois des sorties de ce latch sont directement raccordées au connecteur de la carte (
n° des contacts illisibles sur le schéma "F" ). Le quatrième bit, celui de réduction d'intensité, met en service une résistance (
R33/D1 ) en // sur la sortie du vert réalisant ainsi un pont diviseur de tension, l'intensité du vert se retrouve abaissée sensiblement quand ce dernier bit est à "1".
Ainsi la carte peut générer les 8 couleurs de base : noir, bleu, rouge, magenta, vert, cyan, jaune et blanc. Plus 4 autres couleurs intermédiaires quand le bit de réduction d'intensité du vert est activé, ce qui porte le nombre de couleurs possibles à 12.
Signaux "CELL A" à "CELL D"Comme expliqué
plus en avant, Le latch 74LS174 en 67 de la page vidéo "B" mémorise temporairement les bits de poids fort du n° de sprite auquel on veut accéder (
fils CA3 à CA7 ). Un deuxième latch connecté à la suite du premier, le 74LS175 en 88, en mémorise quatre à nouveau quelques cycles plus tard sur le front ascendant du signal "COLOR" issu du séquenceur.
A partir des 4 fils "CA3" à "CA7" sont ainsi créés en ligne directe et dans le même ordre quatre nouveaux signaux "CELL A" à "CELL D".
Cela revient à fractionner les 256 sprites appartenant à la page vidéo "B" en 16 groupes (
adressables à partir des fils "CELL" de A à D ) de 16 sprites (
adressables avec les fils "CA0" à "CA3" ). Ainsi une couleur spécifique peut être affectée à chaque groupe, ce qui a permis de réduire de 4 le nombre de fils d'adresse nécessaire sur la PROM PR-54.
Création des couleurs à partir de la PROM PR-54Il ne faut pas oublier qu'à l'époque où ce jeu a été créé, la taille des mémoires RAM disponibles était limitée et que celles-ci coutaient relativement cher, les moniteurs couleur n'étaient pas non plus légion!
Ainsi, par souci d'économie, les signaux issus des différentes pages ne pouvaient être que monochrome : le pixel extrait ne pouvait être que soit éclairé soit éteint, un point c'est tout. La mémoire PROM PR-54 est donc l'artifice qui va permettre de colorer les pixels monochromes en fonction de la page vidéo d'où ils ont été extraits.
La PROM PR-54 est alors adressée par :
- Le n° de groupe de sprites appartenant à la page vidéo "B" : fils "CELL A" à "CELL D"
- Dans l'ordre des adresses croissantes : le pixel extrait des pages : "B", "F", "E" puis "D".
- Deux signaux "FLM COL 0" et "FLM COL 1" dépendant directement du µP 8080 et qui lui permettent de modifier le jeu de couleurs probablement en fonction du contexte ou du niveau atteint par le joueur.
Un tableau a été réalisé à partir du contenu de cette PROM afin de comprendre comment la programmation des couleurs a été effectuée par Sega.
- Il est constituées de 4 bandes horizontales de 16 lignes :
- A chaque bande horizontale correspond un des 4 contextes imposé par le µP 8080 (FLM COL : 0 et 1 ).
- A chaque ligne correspond un groupe de sprites appartenant à la page "B" (CELL : A, B, C et D ).
- Chaque bande horizontale est divisée en 16 bandes verticales de 4 colonnes :
- A chaque bande verticale correspond une combinaison des pixels extraits simultanément des différentes pages. A raison d'un pixel par page, il y a 16 possibilités donc 16 bandes verticales ou blocs. Chaque pixel a été baptisé avec la lettre de la page vidéo dont il est issu (B, F, E et D), n'est affichée la lettre dans les entêtes bleu sombre que quand le pixel correspondant est éclairé.
- Chaque bande verticale ou bloc regroupe 4 colonnes, chacune correspondant à une des sorties de la PROM PR-54 baptisées : "R", "G" et "B" pour les trois couleurs primaires et "½" pour le bit de réduction d'intensité du vert.
Le tableau réalisé à partir du contenu de PR-54 avec le tableur Calc d'OpenOffice :
Affiché avec cette organisation, rien ne se dégage de trivial. Par contre le tableau devient limpide et intuitif dés qu'on affiche le contenu de la PROM PR-54 en inversant l'ordre des pixels qui assurent en partie son adressage.
Ainsi les bandes verticales ou blocs qui auraient dû normalement être affichés de gauche à droite dans l'ordre croissant (
de 00 à 15 ) si l'on avait respecté le même adressage "
DEFB" que celui de la PROM, sont avec cette en inversion de pixels en "
BFDE" maintenant affichées avec ce nouvel ordre : 00, 08, 04, 12 , 02, 10, 06, 14, 01, 09, 05, 13, 03, 11, 07 et 15.
Le nouveau tableau après réorganisation :
Avec cette réorganisation, le tableau apparait constitué en deux parties :
- La moitié droite où la page "B" impose ses couleurs quand ses pixels sont éclairés.
Que les pixels des autres pages soient éclairés ou éteints, les 8 bandes verticales dans chaque bande horizontale restent toujours identiques et d'une bande horizontale à l'autre le contexte ne modifie que les 4 lignes surlignées en plus clair.
Cela signifie que la page "B" est une page d'avant plan ou d'avant scène, ses pixels éclairés sont prépondérants et masquent tous ceux des 3 autres pages. - La moitié gauche, ou première moitié, où la page "B" n'interagit pas avec les 3 autres quand ses pixels sont éteints.
Cette première moitié apparait aussi scindée en deux zones :
- Le quart droit où la page "F" est prédominante et impose ses couleurs par dessus les deux autres quand ses pixels sont éclairés.
- Le quart gauche, ou premier quart, où la page "F" n'interagit pas avec les autres quand ses pixels sont éteints.
Ce premier quartier apparait aussi découpé en 2 nouvelles zones :
- Le huitième droit où la page "E" est prédominante et impose ses couleurs par dessus la dernière page quand ses pixels sont éclairés.
- Le huitième gauche, ou premier huitième, où la page "E" n'interagit pas avec la dernière quand ses pixels sont éteints.
Ce premier huitième de tableau apparait aussi composé de deux zones, ce sont les deux derniers seizièmes :
- Le seizième droit où il n'y a que le seul pixel de la page "D" d'éclairé.
- Le seizième gauche, ou premier seizième, où tous les pixels sont éteints quelque soit la page.
Il est à noter que les couleurs associées aux pixels des pages "D", "E" et "F" sont indifférentes au N° de groupe de sprites de la page "B" et qu'elles ne dépendent que du contexte généré par le µP 8080.
Ainsi selon le contexte :
- Tous les sprites appartenant à la page "D", celle de niveau le moindre, apparaissent uniformément d'une couleur jaune (G + R), verte, cyan (B + G) ou à nouveau verte.
- Tous les sprites appartenant à la page "E", de rang immédiatement supérieur, apparaissent uniformément d'une couleur verte, magenta (B + R, à noter que le bit de demi-teinte est ici incongru car il n'agit que sur le vert ), rouge ou orange (½ G + R).
- Tous les sprites appartenant à la page "F", de rang immédiatement inférieur à celui du premier plan, apparaissent uniformément d'une couleur rouge, orange (½ G + R), jaune ou magenta (B + R).
- La couleur des sprites appartenant à la page "B", la page d'avant scène, est ici fonction du contexte, bien sûr, mais aussi du groupe (de 00 à 15 ) auxquels ils appartiennent. Ainsi les sprites de cette page pourront être affichés avec pratiquement toute la gamme de couleurs qui peuvent être synthisées.