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.

Siehe auch

'Persönliche Werkzeuge