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.

Siehe auch

'Persönliche Werkzeuge