Spritedefinitionslisten PKMN GSK
aus RHWiki, der freien Romhacking-Enzyklopädie
| Inhaltsverzeichnis |
In den drei Gameboy-Pokémon-Editionen Pokémon Gold, Silber, Kristall wird für alle Ingame-Sprites, d.h. Sprites, die auf den Maps mit umherlaufen, reden etc. eine Liste verwendet. Diese Spritedefinitionsliste steuert unter anderem, woher die Grafiken kommen, wieviele Tiles ein Sprite besitzt und mit welcher Palette der Sprite standardmäßig dargestellt wird.
| Offset 1. und 2. Spritedefinitionsliste | Spritenummern in jew. Liste | Offset Minibild-Zuordnungsliste | Offset Minibild-Pointertabelle | |
| Gold/Silber | 1. 05:47DE 2. 05:4669 | 0x01 bis 0x5F 0x80 bis 0xA2 | 23:6977 | 23:6A72 |
| Kristall | 1. 05:4736 2. 05:4495 | 0x01 bis 0x66 0x80 bis 0xA2 | 23:6AC4 | 23:6BBF |
1. Spritedefinitionsliste
Der Aufbau der ersten Spritedefinitionsliste ist wie folgt:
[2byte-Pointer zu Grafik][Länge der Daten][Rombank der Grafik][Bildtyp][Standard-Palette]…
2byte-Pointer zu Grafik
- Pointet in der gegebenen Rombank auf die Bilddaten.
Länge der Daten
- Gibt die Länge in Tiles für die einfachen Daten an, d.h. für die Daten vom unbewegten Sprite. Es wird zusätzlich noch einmal dieselbe Datenlänge für die Bewegung kopiert. Wichtig ist, dass das Byte erst "gedreht" werden muss, d.h. das erste und zweite 4bit-Paar vertauscht werden muss, um die Tileanzahl zu kriegen.
- Beispiele: 0x01 --> 0x10 Tiles, 0xC0 --> 0x0C Tiles.
Rombank der Grafik
- Die Rombank in der die Grafik liegt.
Bildtyp
- Der Typ des geladenen Bildes. Es gibt nur drei Typen, 0x01, 0x02 und 0x03, obwohl alle anderen auch möglich wären.
Beispiel: Der weibliche Hiro aus Pokémon Kristall, der Bilder für Bewegung und für Stehen hat (jeweils 0x0C Tiles)
- Typ 0x01 steht für Bilder, die Personen stehend und in Bewegung abbilden.
- Das sind meisten 0x0C Tiles für Stehen und 0x0C Tiles für Gehen mit Blickrichtungen unten, oben, links - jeweils 0x04 Tiles.
Beispiel: Der Ballmacher Kurt für Celebi-Event aus Pokémon Kristall, der nur Bilder für Stehen hat (gesamt 0x0C Tiles)
- Typ 0x02 steht für Bilder, die nur stehende Personen abbilden.
- Das sind meist 0x0C Tiles für Stehen (wieder in 3 Richtungen) und 0x0C sonstige Tiles, die aus technischen Gründen mitkopiert werden anstelle der Bewegungsbilder. Da diese Bewegungsbilder etwas anderes darstellen können, z.B. "Datenmüll" aus dem Rom, sollten Sprites, die Bilder diesen Bildtyp verwenden, nicht gehen!
Beispiel: Ein Buch-Sprite aus Pokémon Kristall, der nur ein Bild für Blickrichtung unten benutzt (gesamt 0x04 Tiles)
- Typ 0x03 steht für Bilder, die bloß eine Frontdarstellung haben, Front-Sprites.
- Das sind meist 0x04 Tiles, die nur eine Blickrichtung, z.B. unten, wiedergeben. Diese Sprites sollten nur die Blickrichtung Unten benutzen, da sonst wie bei Typ 0x02 Grafikfehler auftreten können, da trotzdem mehr Tiles in den Ram geladen werden.
- In Pokémon Gold & Silber werden diese Sprites extra geladen und es gibt eine Begrenzung von maximal 0x02 Sprites dieser Art auf einer Außenmap.
- Siehe Spritesets in Gold, Silber & Kristall.
- Für eine gesonderte Auflistung der Bildtypen siehe Liste der Bildtypen.
Standardpalette
- Die ersten 3 Bits geben die Standardpaletten-Nummer für den Sprite an. Die restlichen Bits sind unbenutzt.
2. Spritedefinitionsliste
Die 2. Spritedefinitionsliste wird bloß für Pokémon-Minibilder benutzt. Ihr Aufbau ist simpel, da immer nur Pokémon-Nummern hintereinander stehen. Die Minibilder (wie z.B. aus dem Pokémon-Menu) der Pokémon werden dann als Sprites genommen.
Aufbau der Liste:
[Pokémon-Nummer]…
Anhand der Pokémon-Nummer wird dann in der Minibild-Zuordnungsliste die entsprechende Minibild-Nummer herausgesucht. Die Zuordnungsliste startet bei Index 0x01 für Pokémon 0x01. Für die Pokémon-Nummer 0xFD (das Ei) gilt Minibild-Nummer 0x1C in allen Versionen.
Die Minibild-Nummer wird dann in die Minibild-Pointertabelle (Start bei Index 0x00) eingesetzt und der entsprechende 2byte-Pointer zeigt auf eine Grafik in Rombank 0x23 mit 0x08 Tiles. Auch hier werden wieder fehlerhafte Gehbilder geladen, darum sollten Sprites nur nach unten und oben gucken. Diese Sprites gelten alle nicht als Front-Sprites im Sinne der Spritesets in Gold, Silber & Kristall und werden in einen normalen "Slot" geladen.
Sondersprite-Nummern
Es gibt insgesamt 0x12 Sondersprite-Nummern. Das sind die Sprite-Nummern 0xE0, 0xE1 und 0xF0 bis 0xFF. 0xE0 und 0xE1 sind die Pokémon beim Pokémon-Züchter unter Dukatia City. Ab 0xF0 sind Sprites für Hiros Zimmer, obwohl von der Dekoration nicht alles über Sprites gesteuert wird, sondern lediglich 0xF0 bis 0xF3 benutzt werden.
0xE0 kriegt seinen Wert aus 0xDC57 in Gold & Silber, bzw. 0xDF0C in Kristall.
0xE1 kriegt seinen Wert aus 0xDC90 in Gold & Silber, bzw. 0xDF45 in Kristall.
Bei beiden wird nach der 2. Spritedefinitionsliste verfahren, d.h. sie können bloß Sprites ab 0x80 ansteuern. Beispiel: 0x01 im Register --> Sprite 0x81.
0xF0 bis 0xFF nehmen ihre Sprite-Nummer aus 0xD555 bis 0xD564 in Gold & Silber bzw. 0xD82E bis 0xD83D in Kristall entsprechend, also 0xF1 aus 0xD556 etc. Sie können jedoch alle Sprites ansteuern, also von 01 bis FF.
Liste der Bildtypen
Anschauliche Darstellung
| Gold & Silber | Kristall | |
| Typ 0x01 | 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 2C, 2D, 2E, 2F 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 3A, 3B, 3C, 3D, 3E, 3F 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4A, 4B, 4C, 4D, 4E, 4F 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 5A, 5B, 5C, 5D, 5E, 5F 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 6A, 6B, 6C, 6D, 6E, 6F 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 7A, 7B, 7C, 7D, 7E, 7F 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 8A, 8B, 8C, 8D, 8E, 8F 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 9A, 9B, 9C, 9D, 9E, 9F A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, AA, AB, AC, AD, AE, AF | 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 2C, 2D, 2E, 2F 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 3A, 3B, 3C, 3D, 3E, 3F 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4A, 4B, 4C, 4D, 4E, 4F 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 5A, 5B, 5C, 5D, 5E, 5F 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 6A, 6B, 6C, 6D, 6E, 6F 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 7A, 7B, 7C, 7D, 7E, 7F 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 8A, 8B, 8C, 8D, 8E, 8F 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 9A, 9B, 9C, 9D, 9E, 9F A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, AA, AB, AC, AD, AE, AF |
| Gold & Silber | Kristall | |
| Typ 0x02 | 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 2C, 2D, 2E, 2F 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 3A, 3B, 3C, 3D, 3E, 3F 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4A, 4B, 4C, 4D, 4E, 4F 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 5A, 5B, 5C, 5D, 5E, 5F 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 6A, 6B, 6C, 6D, 6E, 6F 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 7A, 7B, 7C, 7D, 7E, 7F 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 8A, 8B, 8C, 8D, 8E, 8F 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 9A, 9B, 9C, 9D, 9E, 9F A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, AA, AB, AC, AD, AE, AF | 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 2C, 2D, 2E, 2F 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 3A, 3B, 3C, 3D, 3E, 3F 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4A, 4B, 4C, 4D, 4E, 4F 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 5A, 5B, 5C, 5D, 5E, 5F 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 6A, 6B, 6C, 6D, 6E, 6F 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 7A, 7B, 7C, 7D, 7E, 7F 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 8A, 8B, 8C, 8D, 8E, 8F 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 9A, 9B, 9C, 9D, 9E, 9F A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, AA, AB, AC, AD, AE, AF |
| Gold & Silber | Kristall | |
| Typ 0x03 | 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 2C, 2D, 2E, 2F 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 3A, 3B, 3C, 3D, 3E, 3F 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4A, 4B, 4C, 4D, 4E, 4F 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 5A, 5B, 5C, 5D, 5E, 5F 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 6A, 6B, 6C, 6D, 6E, 6F 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 7A, 7B, 7C, 7D, 7E, 7F 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 8A, 8B, 8C, 8D, 8E, 8F 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 9A, 9B, 9C, 9D, 9E, 9F A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, AA, AB, AC, AD, AE, AF | 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 2C, 2D, 2E, 2F 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 3A, 3B, 3C, 3D, 3E, 3F 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4A, 4B, 4C, 4D, 4E, 4F 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 5A, 5B, 5C, 5D, 5E, 5F 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 6A, 6B, 6C, 6D, 6E, 6F 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 7A, 7B, 7C, 7D, 7E, 7F 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 8A, 8B, 8C, 8D, 8E, 8F 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 9A, 9B, 9C, 9D, 9E, 9F A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, AA, AB, AC, AD, AE, AF |
Listendarstellung
Typ 0x01
- Gold & Silber: 01, 02, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 10, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1C, 1D, 1E, 1F, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 2C, 2D, 2E, 2F, 30, 31, 32, 34, 35, 36, 38, 39, 3A, 3B, 3C, 3D, 3E, 40, 41, 42, 43, 44, 46, 48, 49, 4A, 4B, 4C, 4D, 4E, 4F, 53
- Kristall: 01, 02, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 10, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1C, 1D, 1E, 1F, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 2C, 2D, 2E, 2F, 30, 31, 32, 34, 35, 36, 38, 39, 3A, 3B, 3C, 3D, 3E, 40, 41, 42, 43, 44, 46, 48, 49, 4A, 4B, 4C, 4D, 4E, 4F, 53, 60, 61
Typ 0x02
- Gold & Silber: 03, 11, 1B, 33, 37, 3F, 47, 50, 52, 58
- Kristall: 03, 11, 1B, 33, 37, 3F, 47, 50, 52, 58, 62, 66
Typ 0x03
- Gold & Silber: 45, 51, 54, 55, 56, 57, 59, 5A, 5B, 5C, 5D, 5E, 5F
- Kristall: 45, 51, 54, 55, 56, 57, 59, 5A, 5B, 5C, 5D, 5E, 5F, 63, 64, 65

