2D Sprites aus ROMs Rippen

Verzeichnis:

  1. Erster Teil
  2. Zweiter Teil
  3. Dritter Teil
  4. Vierter Teil

In diesem Artikel geht es darum 2-dimensionale Bilder aus Nintendo DS Spielen zu "rippen". Damit ist das Extrahieren originaler Quelldateien gemeint, wobei diese nicht an Qualität verlieren.

1. Erster Teil


Man nennt ein Nintendo DS Spiel eine "ROM" (Read Only Memory, deu.: Nur-Lese-Speicher), welche praktisch immer die Dateiendung *.nds besitzt. Eine ROM ist mit RAR- und ZIP-Dateien zu vergleichen; es sind viele Ordner und Dateien komprimiert in eine einzige, was praktischer ist und nebenbei auch noch Speicherplatz spart. Um mit der ROM zu arbeiten, müssen wir diese vorher zurückdekomprimieren. Das machen wir mit einem Programm namens Tahaxan.

Download Tahaxan

Beim Starten Tahaxans werden normalerweise Fehlermeldungen erfolgen. Das kann schnell und leicht behoben werden.

  • Ladet euch Tahaxan-Runtimes runter. [Download]
  • Extrahiert daraus alle Inhalte in folgenden Ordner hinein: c:\windows\system32\
Ihr benötigt Programme wie WinRAR, um beide Downloads zu dekomprimieren.

Jetzt brauchen wir eine ROM (da das Herunterladen von ROMs illegal ist, müsst ihr selber danach im Internet suchen). Nehmt beispielsweise eine Version von Pokémon Diamant oder Perl. Startet Tahaxan.exe und öffnet mit dem Knopf oben links eure ROM. Sie wird nun automatisch dekomprimiert und bald sind auch schon Ordner/Dateien sichtbar, in denen das ganze Spiel verteilt ist. Mit einem simplen Doppel-Klick können Daten gerippt werden. Oft findet man Dateien mit der Dateiendung *.narc (Nintendo Archive). Es sind untergeordnete Komprimationen, welche per Doppel-Klick dekomprimiert und per Rechts-Klick gerippt werden können.


Ein Bild im Nintendo DS Format besteht grundsätzlich aus mehreren Elementen, wobei es sehr seltene Fälle gibt, in denen das ganze Bild in nur 1 Datei eingepackt ist.

Bild: *.rgcn - Nintendo Character Graphics Resource
Palette: *.rlcn - Nintendo Colour Resource
Tiles Information: *.rcsn - Nintendo Screen Resource

An einem Beispiel lassen sich oben genannte Punkte am einfachsten erklären. Es ist jetzt an der Zeit unsere Sprites zu suchen, dafür ist nur menschliche Logik gefragt: Ordner aufmachen, reinschauen.

2. Zweiter Teil


Begebt euch in den Ordner /itemtool/itemdata/ und dekomprimiert item_icon.narc. Nun werdet ihr dies erhalten:


Schon ist alles voll mit Bildern, Paletten, und anderen unwichtigen Dateien. Wir werden jetzt ein Item-Sprite öffnen, hierfür müssen wir Bild und Palette kombinieren (momentan brauchen wir noch nicht die Tiles Information-Datei).

Bspw. enthält eine Bild-Datei nur:
00, 01, 02, 00, 00, 01, 02, ...

Sowie eine Paletten-Datei nur dies enthält:
00 = schwarz, 01 = blau, 02 = rot, ...

Obige Beispiele würden kombiniert dieses "Bild" erzeugen:
???????

Ohne Palette ist eine Bild-Datei also völlig nutzlos, eine Palette selbst kann man allerdings ohne Problem öffnen. Nehmen wir mal die Palette 003.rlcn.


Wir wollen aber Bild und Palette zusammen kombinieren, das machen wir mit einem Doppel-Klick auf das Bild 002.rgcn und dann auf die Palette 003.rlcn. Das Ergebnis sieht so aus:


Ein Meisterball! Hätten wir eine andere Palette ausgewählt, hätte der Meisterball jetzt vielleicht eine ganz andere Farbe.

3. Dritter Teil


Folgt mir nun in den Ordner /graphic/ und dekomprimiert dort f_note_gra.narc. Wir werden diesmal mit der Tiles Informationen-Datei () arbeiten. Öffnet 2.rgcn mit 4.rlcn, um das Quellbild zu sehen.


Hier haben wir ein zerstückeltes Bild, man kann praktisch nichts erkennen. Es sind Tiles, die von Mappern genutzt werden können. Dieses System hat den Vorteil, dass es Speicherplatz spart. Durch die Tiles-Informations-Datei werden die Tiles wieder so verteilen, sodass das "richtige" Bild angezeigt wird.

Kombiniert 0.rcsn () mit 2.rgcn () mit 4.rlcn (). Ihr werdet folgendes Ergebnis erhalten:


Das gleiche machen wir mit 1.rcsn, 3.rgcn und 5.rlsn und bekommen die Mädchen-Version des Bildes:


Beide Versionen haben andere Farben und andere Muster. Testen wir mal was geschieht, wenn wir 0.rcsn mit 2.rgcn mit 5.rlsn kombinieren:


Wir haben jetzt wieder die Jungen-Version des Bildes, nur diesmal in rosa. Shiny Pokémon werden mit der gleichen Methode erzeugt; die Bild-Datei bleibt die gleiche, nur die Palette wird gewechselt.

4. Vierter Teil


Manche Sprites haben keine Tiles-Informationen, müssen aber trotzdem richtig zusammen gesetzt werden; das müssen wir demnach manuell erledigen. Diesmal werden wir im Ordner /poketool/icongra/ unser Glück finden. Dekomprimiert dort poke_icon.narc. Wir haben dort eine einzige Palette für all diese Bilder, was die Sache nicht schwerer macht. Öffnet 491.rgsn mit 000.rlsn, diese Gestalt wird sichtbar werden:


Man merkt schnell, dass es ein zerstückeltes Palkia, mit leicht anormalen Farben, ist.


Setzen wir es erst mal wieder zusammen. Das machen wir mit Image Size:, einfach ein bisschen mit den Größen spielen, bis das Bild korrekt angezeigt wird. In diesem Fall brauchen wir 32 x 64. Nun adaptieren wir noch die Farben, indem wir Palette: durchgehen. Die richtige Nummer ist in diesem Fall die 2.

Das Meisterwerk ist fertig!

Vielen Dank an ShinyPalkia für seine Mitarbeit.
Vielen Dank an ShinyPalkia für seine Bilder.