GBA Pointer
aus RHWiki, der freien Romhacking-Enzyklopädie
Berechung von GBA Pointern
Um ein Offset in einen GBA Pointer umzurechnen, füllt man das Offset zunächst mit 0en auf, um eine 3 Byte lange Zahl zu erhalten. Dann fügt man eine 08 davor und kehrt die Reihenfolge byteweise um.
Beispiel: 123h -> 000123h -> 08000123h -> 23010008h
Weitere Beispiele:
Offset Pointer 0x1 01000008h 0x654321 21436508h
Technischer Hintergrund
Zunächsteinmal sollte man wissen, dass der GBA das ROM von 0x08000000 bis 0x09FFFFFF paged (lädt). So ist zu erklären, warum die Pointer in diesem Bereich liegen müssen.
Die Umkehrung der Reihenfolge hängt damit zusammen, dass der GBA das Little Endian (LE) Format für Zahlen verwendet. In diesem Format werden Zwecks Effektivität (z.B. für Rechenoperationen) alle Zahlen im Speicher in umgekehrter Bytereihenfolge abgelegt.

