35Fermer37
dd-Le 09/04/2012 à 15:05
J'utilise d'abbord Cheat Engine sur l'émulateur, ensuite je cherche dans la mémoire du jeu en changeant les valeurs avec Cheat Engine pendant que l'ému est en pause, donc elles apparaissent. Et j'ai réussi à choper deux choses :
- Une valeur qui détermine l'écran où on se trouve. Mais la plupart du temps, si je change, le jeu plante. Y'a que de rares fois où ça fonctionne, qu'il se croit sur le dernier logo alors qu'il est sur le logo SEGA, et qu'il m'amène alors directement au menu.
- Une valeur qui se met à 150 lorsque le logo a finit son fondu d'entrée, puis descend, et à 0 le logo commence à disparaitre. Si lorsque le logo apparait je met moi-même cette valeur à 1, le logo repart aussitot.

Donc j'ai mis Gen en slow-mode et j'ai tracé uniquement la frame où la valeur passe de 0 à 150, pouvant la surveiller dans Cheat Engine qui était resté ouvert juste à côté.
Puis j'ai mis des breakpoints au hasard sur quelques mov que je voyais dans le traçage, surveillant quand la valeur changeait, et ainsi j'ai cerné petit à petit la ligne qui donnait cette valeur.

23 FC MOVE.L #$000FE426,$00FF1634
Il la met bien dans une adresse, mais juste après il met cette valeur dans SP (c'est quoi ?) puis efface cette adresse :
2F 39 MOVE.L ($00FF1634),-(SP)
23 FC MOVE.L #$00000000,($00FF1634)

Probleme, la valeur est 150, ou 96 en hexa, donc je ne comprend pas ce FE426. Et sa taille n'est-elle pas trop grosse pour tenir dans une adresse ?
En tout cas, si je modifie, ça plante.