Pointer
aus RHWiki, der freien Romhacking-Enzyklopädie
| Inhaltsverzeichnis |
Was ist ein Pointer ?
Ein Pointer ist die auf die Hardware eines bestimmten Systems angepasste Form eines Offsets. Der Unterschied zum Offset besteht in der Regel darin, dass ein Pointer die Daten dort adressiert, wo sie im Speicher liegen, und ein Offset sie in der Datei adressiert (also nicht im Speicher).
Dies ist durchaus als Selbstverständlichkeit zu betrachten, da ASM-Code einer ausführbaren Datei (hier Rom) nur den Speicher kennt, in dem er geladen wird. Mit Offsets hingegen kann ASM-Code selten etwas anfangen.
Zweck von Pointern
Anschaulich beschrieben erfüllt ein Pointer etwa den Zweck eines Schlüssels für ein Schließfach (mit Nummer): Oft kommt es vor, dass man eine Menge von Daten hat, die aber so groß oder komplex ist, dass man sie nicht andauernd bei sich haben kann. Daher legt man die Daten an einer Speicherstelle (Schließfach) ab und behält nur den Pointer (Schlüssel).
Mit Hilfe des Pointers lässt sich nun diese große Menge an Daten ganz einfach wiederfinden. Verliert man hingegen den Pointer, so sind die Daten verloren.
Umpointen
„Umpointen” bezeichnet einfach das ändern eines bestehenden Pointers auf ein neues Offset. Es ist eine wichtige Grundlage im Grafik-, Text- und im Scripthacken. Um einen Pointer umzupointen muss man bloß wissen, wie er funktioniert und was seine Begrenzungen sind. Das entnimmt man meist dem System auf dem der Pointer verwendet wird, sowie an der Länge des Pointers und des daraus resultierenden „Addressierbereiches”.
Pointer auf verschiedenen Systemen
Unterschiedliche Systeme haben verschiedene Speicherstrukturen und somit auch unterschiedliche Pointerformate, die in folgenden spezialisierten Artikeln erläutert sind:
- Gameboy (Color)
- Gameboy Advance (GBA)
- Nintendo Entertainment System (NES)
- Super Nintendo Entertainment System (SNES)

