====== field -section4- : palettes ====== ===== Organisation : ===== ^Position^Longueur^Description^^ ^0|4 octets|Taille de la partie palette|| ^4|2 octets|Position X de la palette (inutile sur PC)^Constant = 0| ^6|2 octets|Position Y de la palette (inutile sur PC)^Constant = 480| ^8|2 octets|Nombre de couleurs par palette (deux octets par couleur)^Constant = 256| ^10|2 octets|Nombre de palettes -**nbPal**-|| ^12|512***nbPal**|Les données des palettes|| Dans les données des palettes, il y a **nbPal** * 512 octets. Une palette contient 256 couleurs. Il peut n'y avoir aucune palette ! Dans ce cas on a juste un header. ===== Couleurs ===== Chaque couleur est codée sur deux octets :\\ **abbbbbvv vvvrrrrr** Avec : * a : transparence par addition. Si =1 : la "transparence" est active. Ne faites pas trop attention à ça pour l'instant. * b : Bleu * v : Vert * r : rouge Vous voyez que la couleur est codée sur 15 bits (5+5+5 + la transparence), donc pour transformer la couleur 15 bits en couleur 24 bits, il faut faire ça (et arrondir) : bleu = b * 255 / 31; vert = v * 255 / 31; rouge = r * 255 / 31; ===== À retenir ===== Pour la suite il vous faut stocker les informations suivantes : * **Les données des palettes** (de la position 12 jusqu'à **nbPal** * 512). * Et c'est tout ! le reste est là pour faire joli. ===== Utiliser la palette ===== Quand vous lisez les données du background, à chaque octet vous devez chercher la couleur à la position indiquée par l'octet dans la palette choisie. Exemple : si vous tombez sur l'octet 0x05, vous devez aller chercher la sixième couleur de la palette. (car si vous tombez sur 0x00, vous devez aller chercher la première couleur de la palette, enfin y'a des exceptions avec le 0x00...) -> [[bg#sprites_zone_1|Comment construire une image]]