Bon tuto effectivement
.
Juste une observation. Si l'on hexédite des images de disques plutôt que des EXEs, il faut garder à l'esprit qu'il y a des ECCs et adapter la longueur de la chaine hexadécimale à rechercher en conséquence. Plus elle est courte, mieux c'est. Mais bien entendu il faut aussi s'assurer que la chaine courte soit unique pour ne pas patcher une fonction non désirée.
Un exemple ici :
Code:
13 00 02 2A BD 0C 62 28 02 00 40 10 BC 0C 05 24 21 28 60 00 13 00 02 2A 06 00 40 14 21 18 A0 00
En cherchant cette chaine complète dans une image disque de Actua Ice Hockey 2 (SLES-01226), on ne la trouvera pas. À cause des ECCs qui se foutent en travers du code (la portion surlignée sur la capture d'écran).
C'est un cas d'école. CUE2POPS échouait à patcher le VMODE en NTSC sur certains dumps, à cause de la longueur de la chaine :
Code original :
Code:
?? ?? 02 3C ?? ?? 42 8C ?? ?? 01 3C 08 00 E0 03 ?? ?? 24 AC ?? ?? 02 3C ?? ?? 42 8C 08 00 E0 03
Code modifié :
Code:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 24 08 00 E0 03
Il m'avait fallu élaborer un système de saut d'ECC et le scan prenait beaucoup plus de temps
.
Edit : Au fait, le bug de Zapper pour les valeurs inférieures à zéro, c'est qu'il interprète les valeurs en 16 bits comme il faut, mais ne patche que 8 bits. Exemples :
Si on lui donne la valeur 256, il patche 0x
00 (0) au lieu de 0x01
00 (256).
Si on lui donne la valeur -2, il patche 0x
FE (254) au lieu de 0xFF
FE (-2).
Peut être que quelqu'un pourra corriger ce bug en lui faisant écrire un half-word plutôt qu'un byte.