Hallo!
Rechnen ist gar nicht mal so einfach, aber ich kann Dir ein wenig zu diesen Codes erzaehlen. Ich habe mich damit auch einmal auseinander gesetzt und teile Dir gerne mit, was ich da herausgefunden habe:
Zunaechst einmal gibt es ja diesen "MasterCode". In diesem ist (zur Sicherheit) einmal gespeichert, auf welches Spiel der Code angewendet werden soll (Scheinbar hat jedes Spiel eine eindeutige Kennung oder zumindest eine Checksumme) Außerdem teilst Du dem XPloder in diesem Code auch mit, an welcher Speicherstelle er sich "einhaken" kann. Das ist wichtig, da bei aktiviertem Modul ja Code des XPloders ausgefuehrt werden soll und damit der Prozessor den Code zu sehen bekommt, muss eine "Abfangroutine" irgendwohin geschrieben werden, wo der Prozessor auch "ab und zu" nachguckt.
Beispielsweise kann man sich hier in die Controller-Abfrage-Routine hängen - diese sollte ausreichend oft verwendet werden. Bei Pokemon könnte auch die "Wildes-Pokemon taucht auf"-Routine manipuliert werden... oder die "Spieler schaut sich PC an".
Anschließend kommt das darauf an, was Du machen willst. Die einfachste Variante ist sicherlich "setze eine Speicherstelle (z.B. die, wo mein Geld gespeichert ist) dauerhaft auf einen Wert (z.B. Maximum). Dazu schreibst Du dann in den eigentlichen Code eine Zeile, die genau dies bewirkt.
Beim XPloder faengt ein solcher Code mit 3 an (fuer ein Byte) bzw mit 8 (fuer zwei Byte). Es gibt dann noch Codes, mit denen man in einem Schub ganze Bereiche überschreiben kann (ohne ständig 8/3 und die Adresse mitzuliefern) aber so genau kenne ich mich da nicht aus.
Das XPloder-Modul prüft dann bei einer Adressanfrage vom GBA, ob die angeforderte Adresse mit einer übereinstimmt, die "überdeckt" werden soll, und wenn ja, liefert es als Daten nicht die im echten Speicher gespeicherten Daten, sondern die, die durch den Code angegeben werden.
Ich kann hier gerade nicht wirklich nachgucken, aber ich werde mal eine Seite (englisch) nachliefern, auf der das Format nochmal genauer erklärt wird.
Ich kann Dir auf jeden Fall versprechen, dass Dir die Begriffe "Byte" "Adresse" usw was sagen sollten... und Dir die Computerschreibweise von Zahlen (binär, octal, hexadezimal) sowie die Umrechnung bekannt sein sollten... sonst wird das Ganze wohl nicht wirklich einfach.
Grüße,
TCC
Rechnen ist gar nicht mal so einfach, aber ich kann Dir ein wenig zu diesen Codes erzaehlen. Ich habe mich damit auch einmal auseinander gesetzt und teile Dir gerne mit, was ich da herausgefunden habe:
Zunaechst einmal gibt es ja diesen "MasterCode". In diesem ist (zur Sicherheit) einmal gespeichert, auf welches Spiel der Code angewendet werden soll (Scheinbar hat jedes Spiel eine eindeutige Kennung oder zumindest eine Checksumme) Außerdem teilst Du dem XPloder in diesem Code auch mit, an welcher Speicherstelle er sich "einhaken" kann. Das ist wichtig, da bei aktiviertem Modul ja Code des XPloders ausgefuehrt werden soll und damit der Prozessor den Code zu sehen bekommt, muss eine "Abfangroutine" irgendwohin geschrieben werden, wo der Prozessor auch "ab und zu" nachguckt.
Beispielsweise kann man sich hier in die Controller-Abfrage-Routine hängen - diese sollte ausreichend oft verwendet werden. Bei Pokemon könnte auch die "Wildes-Pokemon taucht auf"-Routine manipuliert werden... oder die "Spieler schaut sich PC an".
Anschließend kommt das darauf an, was Du machen willst. Die einfachste Variante ist sicherlich "setze eine Speicherstelle (z.B. die, wo mein Geld gespeichert ist) dauerhaft auf einen Wert (z.B. Maximum). Dazu schreibst Du dann in den eigentlichen Code eine Zeile, die genau dies bewirkt.
Beim XPloder faengt ein solcher Code mit 3 an (fuer ein Byte) bzw mit 8 (fuer zwei Byte). Es gibt dann noch Codes, mit denen man in einem Schub ganze Bereiche überschreiben kann (ohne ständig 8/3 und die Adresse mitzuliefern) aber so genau kenne ich mich da nicht aus.
Das XPloder-Modul prüft dann bei einer Adressanfrage vom GBA, ob die angeforderte Adresse mit einer übereinstimmt, die "überdeckt" werden soll, und wenn ja, liefert es als Daten nicht die im echten Speicher gespeicherten Daten, sondern die, die durch den Code angegeben werden.
Ich kann hier gerade nicht wirklich nachgucken, aber ich werde mal eine Seite (englisch) nachliefern, auf der das Format nochmal genauer erklärt wird.
Ich kann Dir auf jeden Fall versprechen, dass Dir die Begriffe "Byte" "Adresse" usw was sagen sollten... und Dir die Computerschreibweise von Zahlen (binär, octal, hexadezimal) sowie die Umrechnung bekannt sein sollten... sonst wird das Ganze wohl nicht wirklich einfach.
Grüße,
TCC
Logge dich ein um einen Beitrag zu schreiben.