Text

aus RHWiki, der freien Romhacking-Enzyklopädie

Texte heißen die Folgen von Zeichen, die in Spielen manchmal auf dem Bildschirm zu sehen sind. Um diese Texte auszugeben, verwendet ein Spiel meistens eine komplexe Engine, die neben den eigentlichen Textzeichen (Buchstaben) auch Sonderbefehle (wie z.B. 'Neue Zeile', 'Zahl einfügen' usw.) unterstützt. Daher kann ein Textsystem oft schon als einfaches Script-System betrachtet werden.

Inhaltsverzeichnis

Textzeichen

Ungeachtet der Sonderbefehle unterstützt jede Textengine die Umsetzung bestimmter Bytes in direkte Zeichen auf dem Bildschirm.

Dabei ist es von Spiel zu Spiel unterschiedlich, welches Byte für die Ausgabe welches Zeichens sorgt. Man verwendet Tables um diese Zuordnungen zu definieren.

Technischer Hintergrund

Auf alten Systemen wurde für jedes Textzeichen einfach ein Tile verwendet. Da Tiles in der System-Hardware auch einfach nur durch Angabe von Nummern auf dem Bildschirm dargestellt werden, entsprechen in der Table einfach jeder dieser Nummern die entsprechenden Zeichen.

Daher ist es auch möglich, durch bloße Betrachtung des Tile-Rams (VRAM) eines Spiels die Zuordnungen der Tiles zu entschlüsseln.

Neuere Spiele können einen VWF (Variable Width Font = Schriftsatz mit variabler Zeichenbreite) verwenden, bei dem nicht mehr jedes Zeichen ein Tile verwendet, sondern weniger (oder selten mehr). Die Engine kombiniert dann verschiedene Zeichen auf einem Tile.
In diesem Fall gibt der VRAM keinen Aufschluss mehr über die Verteilung der Zeichen.

Man kann dann im Spiel nach der (grafischen) Zeichentabelle suchen. Wenn man Glück hat ist sie unkomprimiert und man findet sie... Dadurch kann man dann zumindest die Reihenfolge der Zeichen erkennen, aber in den meisten Fällen nicht welche Nummer das erste Zeichen (dieser Reihenfolge) hat.

Daher ist die allgemeintauglichste Methode zur Aufdeckung der Zuordnungen eine Relative Suche.

Dazu mehr im Artikel Table oder Texthacking.

Komprimierung

In nicht ganz so alten Spielen werden Komprimierungen für Texte verwendet, bei denen einfach bestimmte Bytes für ganze Wörter stehen. Oder Bytes stehen für mehrere Zeichen auf einmal (auch Buchstabenkombinationen, die allein keinen Sinn ergeben). Diese 'Einheiten' werden bei der Interpretation durch die Textengine zu ganzen Sätzen zusammengefasst.

Aktuelle Spiele auf Systemen mit genügend Leistung verwenden z.T. richtig komprimierte Texte, sodass (im Gegensatz zu obiger Methode) auch keine Table mehr funktioniert.
In solchen Fällen muss man zum Hacken der Texte diese erst komplett dekomprimieren, ändern und dann rekomprimieren.

Siehe Artikel Komprimierung für weitere Informationen.

Siehe auch

'Persönliche Werkzeuge