[Pokémon 6th Gen] Das GARC-Format erklärt

  • Hi, Leute :thumbsup:
    Ich hatte mal wieder Bock, mich an 6thGen Pokémon-Hacking zu setzen und habe den ersten Schritt vom Programmieren schöner Tools für das 3DS-ROMHacking herangewagt und zwar folgendes:
    Das Lesen und Schreiben des GARC-Formats!


    Ausdruck "GARC"


    Für die verschiedenen Abkürzungen sind noch keine ausgeschriebenen Versionen bekannt.
    Ich gehe von einem Namen wie "GameArchive" oder "GamefreakArchive" aus.
    However: Ihr werdet feststellen, dass die Auflistung nicht ganz vollständig ist.
    Falls ihr Zeit zum researchen habt - fühlt euch frei, es zu tun :thumbsup:


    Was ist GARC?


    GARC-Dateien sind Container, welche wiederum Dateien, wie Texturen, Bilder, Texte, 3D-Modelle etc. beinhalten.
    In ihnen ist also quasi das drin, was das Pokémon-Spiel eigentlich ausmacht.


    Woher kriege ich so eine GARC?


    Die GARC-Dateien findet ihr, indem ihr eine Pokémon 6th-Gen-ROM entpackt und den Ordner "a" durchsucht.
    Wie ihr eine ROM entpacken könnt, kann man in StuntHacks und meinem Tutorial [Grundkenntnisse] Grundlagen des Nintendo 3DS-Hackings nachlesen.


    An dieser Stelle nochmals besten Dank an StuntHacks für diese grossartige Arbeit! :thumbsup:


    Das Game-Archive [GARC]


    Somit präsentiere ich euch also hier: Der Aufbau einer GARC-Datei für euch auseinandergenommen!



    Schlusswort
    An dieser Stelle würde ich mich gerne bei Sturmvogel bedanken, welcher mir Tipps gab, wie man die Struktur für's menschliche Auge lesbar machen kann. Die JSON-Version war nämlich zunächst die einzige, die existierte.


    Basierend auf diese Daten werde ich ein GameArchive-Tool und eine GameArchive-Library erstellen, mit wessen Hilfe ich vielleicht sogar in Zusammenarbeit mit anderen RH-User den einen oder anderen Editor erstellen kann!


    Schon mal an dieser Stelle an die Leute, welche meinten, dass das eine coole Idee sei, an der man mitarbeiten oder helfen könnte.
    Ich alleine würde das wahrscheinlich nie schaffen!


    MfG


    Manu


    FAQ
    Q: Die Zahlen, die in den Standard-Werten stehen, stimmen doch gar nicht? Oo
    A: Da hat wohl jemand versagt, dir das Zählen beizubringen.
    A - jetzt aber wirklich: Die Daten werden alle Byte-Verkehrt gelesen. So wie die Pointer in einer GBA-Rom
    D.h.: Das erste Byte kommt an letzter Stelle, das 2. Byte an zweit-letzter usw.


    Q: Die MagicBytes stehen doch gar nicht verkehrt herum in der Datei drin, Diggah? Oo
    Sofern man die Magic-Bytes verkehrt herum ausliest (1. Byte an letzter Stelle, 2. Byte an zweitletzter usw.) so sind sie tatsächlich nicht verkehrt herum!