1. Inhalt
1.1 Inhalt
1.2 Vorwort
1.3 Was ihr braucht
1.4 Lasst uns anfangen!
1.5 Nachwort
2. Vorwort
Hallo erst mal. Okay, mein
letztes Tutorial war nicht wirklich das nützlichste hier, aber ich denke, dass
dieses Tut öfter genutzt wird. Ich schreibe es, weil viele Knöpfchendrücker
gefragt haben wie das geht. Ich habe also mal im Hex-Editor gesucht, und hier
meine Funde:
3. Was ihr braucht
3.1 Einen Hex-Editor (ich benutze den MX, der ist recht gut)
3.2 Einen Pokémon-Rom (hier FR/BG, R/S/Sm sollten auch gehen)
3.3 Einen Emulator (ich benutze VBA)
3.4 Einen Spielstand bei dem wir eine TM besitzen (zum testen, hier TM01 Power-Punch)
3.5 Kenntnisse im Umgang mit dem Hex-Editor
4. Lasst uns anfangen
Zunächst fangen wir damit an, den Rom im Hex-Editor zu
öffnen, ich denke ihr wisst wie das geht. Okay, zunächst müssen wir erst mal
den Header lokalisieren. Dazu benötigen wir die Attacken-Nummern der TMs.
Zunächst reichen die ersten vier TMs:
Danach suchen wir im
Hex-Editor… mh… keine Ergebnisse? Habe ich mir gedacht. Es liegt daran, dass
der GBA ein System zur Speicherung von Daten nutzt, das Little-Endian genannt
wird. Dieses System liest und schreibt alle Daten Byteverkehrt, das kennen wir
von Pointern:
0xABCD -> 0xDCAB
Wenden wir das jetzt
auf unsere Werte an, dann ergibt sich folgendes:
0x0801510160015B01
Wenn wir danach im Hex-Editor suchen, dann kriegen wir gleich mehrere Ergebnisse.
Wir werden einfach alle Testen. Spaßeshalber ersetzen wir Power-Punch durch Pfund,
diese Attacke hat die Nummer 1, also ersetzen wir
0x0801
ganz am Anfang unseres Fundes durch
0x0100
Jetzt testen wir mit unserem oben erwähnten Spielstand… mh… ich habe immer
noch Power-Punch, und ihr? Wir werden vorsichtshalber unsere Änderung rückgängig
machen. Wir gehen zu unserem nächsten Suchergebnis und nehmen die gleiche
Änderung vor. Jetzt testen wir wieder. Wenn nötig wiederholen wir das immer
wieder, bis wir Erfolg haben. Ich hatte allerdings schon beim zweiten Mal Erfolg.
5. Nachwort
Okay, weiter im
Text: ich könnte jetzt meinem Zwirrklop Pfund beibringen – ja, klar…
Um diesen seltsamen Fehlern vorzubeugen, nehmen wir ein Programm wie
CPE oder Amplifier (ich empfehle den 2005er bzw. 2006er, den 2007er habe
ich noch nicht zum laufen gekriegt) zur Hand und gehen zu den Pokémon
die Power-Punch lernen konnten, Pfund aber nicht lernen sollen bzw. solchen,
die Pfund lernen sollen, aber Power-Punch nicht lernen konnten, und ändern
dies. Wie das in Hex geht werde ich vielleicht auch mal schreiben, aber bis dahin…
Vielen Dank an Zel, durch den ich diese Tricks gelernt habe. Außerdem danke ich euch, den
Lesern, dass ihr bis hier hin durchgehalten zu haben^^. Wenn sich mein C++ mal
in entsprechendem Maße verbessert hat, werde ich dazu ein Tool programmieren,
denn: Solange ihr wisst, wie es funktioniert, habe ich nichts gegen
Klickibunti-Tools!
Dieses Tutorial ist (C) 2010 by DARKSHARK und darf ohne meine ausdrückliche Erlaubnis
nicht kopiert werden. Verlinken ist natürlich erlaubt.