Bon, ça re-crashe plus loin...
Le bug de fond n'est donc pas résolu malgré tout.
Mais au moins vous pouvez avancer un peu...
hier, 23h35
Bon, ça re-crashe plus loin...
Le bug de fond n'est donc pas résolu malgré tout.
Mais au moins vous pouvez avancer un peu...
hier, 23h25
J'ai trouvé le bug!!! J'ai passé tellement de temps à le chercher, j'y croyais plus...
Sans rentrer dans le détail, je m'étais trompé dans le calcul de certaines tailles de section (mais juste certaines, c'est ça qui était dur à trouver...).
Effet collatéral positif : ça a réparé l'écran titre (le "Microcabin presents") !
Et deuxième effet collatéral positif (surtout pour moi) : j'ai considérablement simplifié le code de remplacement.
Je suis donc allé au-delà de la séquence à la gare avec Komatsu et Hatta, et j'ai pas mal avancé sans rencontrer d'autres problèmes. Il n'y a plus qu'à continuer dans la traduction et dans le jeu, en espérant pouvoir aller jusqu'à la fin sans autre souci.
25 mars 2024 - 01h02
Et là encore... ta sauvegarde risque de conserver une partie de la mémoire contenant le bug, donc il faudrait en créer une qui ne soit pas trop proche de la section corrompue.
Il est certainement envisageable de vérifier cela en testant la sauvegarde avec la version originale du jeu par contre !
Sinon pour trouver le bug tu as plusieurs avenues :
- Dumper la mémoire de chaque version, la japonaise et celle traduite, et observer s'il y a une divergence significative
- Comparer les instructions dans un débogueur entre la version japonaise et traduite
- Injecter uniquement une partie de la traduction avant cette section et vérifier si le jeu plante plus loin, et en fonction du résultat, en ajouter un peu plus et retester (sûrement le plus simple si tu n'es pas à l'aise avec l'assembleur x86)
- Ne pas traduire spécifiquement cette section et voir si le jeu plante toujours (en essayant si possible de ne pas changer le pointeur)
Oui, je vais essayer ça!
25 mars 2024 - 01h00
J'ai analysé tes modifications, et il semble que tu aies bel et bien cassé quelques pointeurs relatifs (notamment avec le byte 7B). En fait, tu peux considérer que tu as eu de la chance que le jeu ne soit pas plus endommagé que cela
(je n'ai regardé que cette portion là)
Je n'ai pas encore eu le temps d'examiner en profondeur ce segment du script engine, donc je ne peux pas garantir que le simple fait d'utiliser les valeurs de base résoudra tout... Il est possible qu'il soit nécessaire de les recalculer dynamiquement, c'est une occasion de valider une théorie
Code d'origine :
et dans celui que tu as modifié :
A priori, ce ne sont pas des erreurs : les tailles de ces sections ont été modifiées parce qu'elles contiennent du nouveau texte. Dans le jeu d'origine, la section qui commence 7B5605, de taille 556 octets (en hexa, 13666 octets en décimal) comporte plusieurs sous-sections incluant du texte modifié. Il faut donc recalculer la taille de la section de plus bas niveau, et celle de toutes ses parentes : d'où le "7B5605" changé en "7BBE05". Je pense que sur le principe, c'est bon, sinon ça aurait planté bien avant (cf.mes premiers essais)...
24 mars 2024 - 23h59
Pour tester la résolution du bug, il serait intéressant d'avoir une sauvegarde du jeu juste avant le plantage mais je n'ai pas le temps de la faire.
Je viens d'en faire une! (Pas long de parcourir le jeu une fois qu'on connait la soluce...). Reste plus qu'à trouver l'origine du bug et ça, ça n'est pas une mince affaire...
Community Forum Software by IP.Board
Licence accordée à : Forum francophone de Kimagure Orange Road