pokecomp - Building Tool 1.0.0

Dieses Tool soll einem die Kompilierung von C Code für den GBA erleichtern.

pokecomp - Building Tool

» Was?

Dieses Tool soll einem die Kompilierung von C Code für den GBA erleichtern. Der Name ist zwar etwas misleading, mir ist aber auf die Schnelle nichts Besseres eingefallen. Es vereinfacht den Prozess des Kompilierens aller C files, des Linkens der Outputfiles sowie anschließend des Generierens des Maschinencodes und Schreiben von dessen in das ROM. Das Tool ist mithilfe des Qt C++ Frameworks geschrieben, mit dem man plattformübergreifende Userinterfaces erstellen kann.

» Warum?

Es gibt viele Python-Scripts im Netz, die versuchen, diesen Prozess zu automatisieren. Was sie aber alle nicht können, ist das dynamische und einfache Generieren eines Files, das dafür verantwortlich ist, den Code auf ein bestimmtes Offset im ROM auszulagern (Beispiel: Du hast im Code einen Pointer zu einer Struktur im Code selbst. Relativ geht hier nicht, also muss das Offset, bei dem der Code startet, genau definiert sein). Außerdem werden die Source-files rekursiv und relativ zu dem geöffneten Ordner gesucht und kompiliert, bei den Scripts musste man sonst immer eine Target-Datei erstellen. Kurzum: Irgendwann wird es unübersichtlich! Dieses Tool soll Abhilfe schaffen.

Eines hatte ich noch vergessen zu erwähnen: Keiner der zurzeit existierenden Scripts kann wirklich genau kontrollieren, welche Funktion am Anfang des generierten Binaryblob steht, auch wenn sie "main" heißt! Aber das Tool hat auch hier ein Ass im Ärmel: Man kann eine Funktion (per Namen) auf den Anfang des Kompilats setzen und sie somit sofort per Script aufrufen, ohne sie zuerst suchen zu müssen.

» Features

  • Einfache Kompilierung von C files in einem Ordner und seinen Sub-Ordnern
  • Automatisches Linken, Korrigieren der Offsets und Zuweisen der Funktionsoffsets
  • Direktes Einfügen ins ROM; bricht ab, falls nicht genug Freespace vorhanden ist
  • Zuweisen einer Startfunktion, die relativ zum Blob Offset 0x0 hat

» Prärequisiten

Ihr müsst euch das devkitPro herunterladen und installieren und den Pfad {devkitPro}/devkitARM/bin zu den Umgebungsvariablen hinzufügen. Den Downloadlink dazu wird es im Tool selbst geben.

» Pokelib

Später wird es, passend zu diesem Tool, eine Library geben, die euch die Arbeit mit Pokémon ROMs ansich extrem vereinfacht. Es wird Funktionen geben, die euch in einer Codezeile ein Objekt, einen Hintergrund, eine Palette, oder sonst etwas laden. Hintergründe können einfach gescrollt werden, Objekte in verschiedenen Arten modifiziert und Strings sowie Textboxen ausgegeben werden. Es wird später noch einen eigenen Thread zu "pokelib" mit all den Features geben.

» Screenshot

» Downloads

Vorerst gibt es noch keinen Download. Das Tool ist zwar schon fertig, allerdings muss ich es noch auf Bugs überprüfen und der Schreibevorgang für das ROM muss auch noch fertiggestellt werden. Es wird aber in Bälde (für Windows und Linux) released werden!

~Laz0r