J'ai un problème avec Trainer Maker Kit. Je me suis fait un trainer pour un rpg, avec plusieurs fonctions de bases comme HP illimités, objets illimités, etc...
Ces cheats là fonctionnent très bien (ce sont de simples valeurs modifiées et figées).
Mais un cheat un peu plus complexe, le multiplicateur d'xp ne veut pas fonctionner:
Je l'ai fait en code injection, en convertissant un code asm en script poke (que voici):
Code: Select all
offset 0x400019 //My code cave
push bx
mov bx,[esi+00470386]
shl bx,1
add ax,bx
pop bx
ret
offset 0x40D991
call 0x400019
nop
nop
Code: Select all
offset 0x40D991
add ax,[esi+00470386]
Quand j'utilise ce script dans TSearch, il fonctionne très bien, le jeu ne crash pas, et mon expérience est bien multipliée.
La conversion en Poke script se déroule aussi sans problème (enfin, j'ai pas vérifié si le script avait une erreur, mais je ne pense pas).
Avec mon trainer créé avec Trainer Maker Kit (v1.51) le cheat écrit bien mon "call 0x400019 nop nop" à l'offset 40D991, mais il n'écrit rien à l'offset 400019, et le debugger me donne le message "0 of 18 bytes wrote in memory".
Donc, je ne comprends pas du tout le problème Le trainer arrive à écrire des valeurs à des adresses utilisées par le jeu, mais pas dans les code cave ?? Ce n'est pas bien logique. Ou alors, le problème vient du fait que le code que je veux écrire est trop long (18 octets), mais je ne pense pas que TMK ait une limite à ce niveau là.
Merci à tous ceux qui pourront m'aider (si quelqu'un peut m'aider). Enfin, je n'aurai peut être jamais de réponse, parce que ce forum a l'air terriblement mort ^^".
Un petit screen pour illustrer le problème: