GBC RGB
aus RHWiki, der freien Romhacking-Enzyklopädie
Der GBC lässt direkt in den Tiles nur die Angabe von 2bpp-Werten zu. Zusätzlich kann man für jedes Tile die Nummer der zu verwendenen Palette festlegen. In der Palette kann jeder Eintrag aus 32768 Farben (= 15bpp) wählen.
Das 15bpp-Format der Paletten ist im Folgenden erklärt:
| Inhaltsverzeichnis |
Farbaufbau
Jeder Farbwert verwendet 2 Bytes, wobei das 15-te Bit unbenutzt ist. Die übrigen 15 Bits sind gleichmäßig unternander zu R, G und B aufgeteilt. Bit 0-4 bilden Rot, 5-9 ist Grün und 10-14 ergibt den Blauanteil:
2-Byte-Farbwert: 0BBBBBGG GGGRRRRR X 0-31 0 -31 0-31
Umrechnung 15bpp (GBC) zu 24bpp (RGB)
1. Man nimmt 2 Bytes und konvertiert sie ins Binär-Format.
Zum Beispiel: 09 2A => 00001001 00101010 (Die führenden 0en werden gebraucht.)
2. Nun macht man Gruppen von 5 Bits:
(0) 00010 01001 01010 Das linke Bit wird nicht benützt.
3. Jetzt konvertiert man diese Bitfolgen wieder nach Dezimal:
2 9 10
4. Und multipliziert jede Zahl mit 8:
16 72 80
5. Man hat nun die Werte der Farbe in der Reihenfolge Blau/Grün/Rot:
Blau = 16 Grün = 72 Rot = 80
Umrechnung 24bpp (RGB) nach 15bpp (GBC)
1. Als erstes dividert man jede Zahl durch 8:
Beispiel: 34 62 200 => 4.25 7.75 25.0
2. Danach schneidet man alles nach dem "." ab:
4 7 25
3. Jetzt werden die Zahlen wieder ins Binär-Format konvertiert.
00000100 00000111 00011001
4.Wir brauchen nur die letzten 5 Bits jeder Zahl:
00100 00111 11001
5. Nun fügen wir eine 0 an den Anfang:
(0) 00100 00111 11001
6. Und machen 8er Gruppen:
00010000 11111001
7. Das Ergebnis konvertieren wir ins Hexadezimale Format:
10 F9
Nun hat man die neue Farbe die man ins Spiel einfügen kann.
Dabei sollte man nicht vergessen, dass aufgrund von Little Endian die Bytes vertauscht werden müssen.

