YI Cheats

aus RHWiki, der freien Romhacking-Enzyklopädie

Hier mal eine kleine Erläuterung zu kleineren Hacks bzw. Cheats.

Unendlich Zeit für Mario

Durch mehrere Möglichkeiten lässt sich das hinablaufen der Zeit für die Rettung von Mario deaktivieren.

Eine dauerhafte Lösung ist das editieren der ROM. An Offset 0x000E30D6 sollten folgende 2 Byte stehen: 0x01 0x38. Durch das bearbeiten dieser Stelle wird das hinabzählen der Zeit verhindert, denn 0x3801 bedeutet soviel wie SUB r0, #1, was nichts anderes bedeutet, als dass die gespeicherte Zeit im Register 0 um eins herunter gezählt wird. Wenn wir diese zwei Byte durch 0-Bytes ersetzen (also 0x00 0x00) bekommen wir einen Befehl der keinerlei Wirkung hat. Dadurch wird die Zeit nie wieder herunter gezählt.

Die einfachere Möglichkeit ist es natürlich einfach in VisualBoyAdvance einen Cheat einzufügen, mit Address 03006ACE - Value 006D - Description "Unendlich Mario-Zeit", Size 16-Bit und Number format auf Hexadecimal. Das setzt die Restzeit jedesmal wieder auf 10 Sekunden zurück, wenn etwas daran geändert wird.

Die Theorie - Unendlich Zeit für Mario

Hier möchte ich kurz beschreiben, wie man diese Hack finden kann. Jedoch nur theoretisch, da in der Orginal-Version der VBA-SDL Version ein paar wichtige Funktionen fehlen. Anfangs sieht man, dass sich im "Tile Viewer" diese "10" befindet, die zu dem Zähler gehört. Wenn man nun mit einem Debugger mit Hilfe eines Breakpoints die Stelle im ASM Code findet, an der diese Grafik geändert wird, kann man nach und nach zurückverfolgen aus welchen Speicheradressen er welche Informationen läd. Letzendlich findet man so heraus, dass sich an Offset 0x03006ACE der aktuelle Zählerstand befindet. Darüber lässt sich wiederum herausfinden, an welcher Stelle im Quellcode dieser Zähler hinabgezählt wird.