Aller au contenu


Photo

Traduction du jeu MSX de KOR : Natsu no Mirage


  • Veuillez vous connecter pour répondre
284 réponses à ce sujet

#181 Nicolas

Nicolas

    Super Fan de KOR

  • Membres
  • PipPipPipPip
  • Réputation
    19
  • 295 messages
  • Genre:
  • Localisation:Montréal

Posté 23 mars 2024 - 22h37

C'est super que tu sois allé si loin! Je redoutais effectivement que mon bricolage finisse par faire planter le programme sur le long terme. Je vais regarder si c'est corrigeable, à moins que Nicolas n'ait une idée de ce que font les CC autour de la ligne que tu as indiquée.

 

 

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  :pirate20: (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 :D

Code d'origine :
 

 

7B05005B7D32325D5D7B24005B3A4038312C7B15005B223131302C5E4039322C7B06005B223131315D5D2C2F3138385D7B56055B7D31392C3F342C7BCD005B2135372C36352C36362C36372C212C3F35372C7B0D005B22322C2235352C2F3136385D2C3F36352C7B30005B2233332C2233342C2431352C2233352C2431352C2233362C2431352C2233372C234032312C223134342C2F3138395D2C3F36362C7B30005B2233332C2233342C2431352C2233352C2431352C2233362C2431352C2233372C234032302C223135302C2F3139305D2C3F36372C7B30005B2233332C2233342C2431352C2233352C2431352C2233362C2431352C2233372C234032352C223136302C2F3139315D5D2C3F352C7B0E045B5E4038312C7B07005B7D33332C2F5D2C3A4039322C7B33015B3D39325D

 

et dans celui que tu as modifié :
 

 

7B05005B7D32325D5D7B24005B3A4038312C7B15005B223131302C5E4039322C7B06005B223131315D5D2C2F3138385D7B56BE055B7D31392C3F342C7BCD005B2135372C36352C36362C36372C212C3F35372C7B0D005B22322C2235352C2F3136385D2C3F36352C7B30005B2233332C2233342C2431352C2233352C2431352C2233362C2431352C2233372C234032312C223134342C2F3138395D2C3F36362C7B30005B2233332C2233342C2431352C2233352C2431352C2233362C2431352C2233372C234032302C223135302C2F3139305D2C3F36372C7B30005B2233332C2233342C2431352C2233352C2431352C2233362C2431352C2233372C234032352C223136302C2F3139315D5D2C3F352C7B0E76045B5E4038312C7B07005B7D33332C2F5D2C3A4039322C7B339B015B3D39325D

 



#182 FrozenOwl

FrozenOwl

    Fan pour la vie

  • Membres
  • PipPipPipPipPip
  • Réputation
    225
  • 788 messages
  • Genre:
  • Localisation:Paris

Posté 24 mars 2024 - 01h04

J'ai fait un nouveau build du jeu avec la traduction améliorée jusqu'au moment du crash... Je suis aussi en train d'écrire la soluce en parallèle.

 

@Nicolas

J'avais cru comprendre que les bytes "7B" marquaient les débuts de CC/sections et qu'ils étaient suivis de deux octets indiquant la taille de la section (taille que j'ai du coup modifiée en remplaçant les chaines de kanji par des chaines d'ASCII) : c'est pas ça?



#183 CyberFred

CyberFred

    Modérateur

  • Modérateur
  • Réputation
    634
  • 6 794 messages
  • Genre:
  • Localisation:France

Posté 24 mars 2024 - 01h40

Merci, FrozenOwl, je vais essayer cela. Et voir si je peux dépasser la scène où il y a eu le crash. Sache qu'à chaque nouvelle mouture, il est impossible d'appliquer une sauvegarde car comme le code a changé, la sauvegarde ne reconnait plus l'environnement. au moins, cela permettra de savoir si avant la scène où il y a eu plantage, quelque chose avant aura changé. Je te tiens informé et merci encore.


banner_kor.jpg  logo_facebook_forum.jpg
 
 
 

#184 CyberFred

CyberFred

    Modérateur

  • Modérateur
  • Réputation
    634
  • 6 794 messages
  • Genre:
  • Localisation:France

Posté 24 mars 2024 - 02h22

Hélas, hélas, cher FrozenOwl, quand je me suis rendu à la scène où Komatsu présente à Kyosuke son carnet de filles, et au moment où Kyosuke continue le dialogue, l'écran plante. Exactement au même endroit que précédemment. Je te montre la capture d'écran au moment du plantage.

 

sdkl.jpg

 

De la couleur, l'écran prend d'autres tons (la capture) juste avant de devenir noir. Sans possibilité de revenir au jeu. pas de message d'erreur. C'est noir.

 

J'ai aussi remarqué quelque chose : certaines apostrophes ont disparu dans le jeu. Je pense que c'est dû au fait que comme nous utilisons Google Doc pour modifier le texte, certaines apostrophes utilisent une casse qui n'est pas celle admise par le jeu. 

Le caractère  (') est admis mais celui qui est tapé dans Google doc, plus au style typographie anglaise ( ’ ) est rendu invisible dans le jeu. Il faudra faire un rechercher remplacer dans le texte final.


banner_kor.jpg  logo_facebook_forum.jpg
 
 
 

#185 Nicolas

Nicolas

    Super Fan de KOR

  • Membres
  • PipPipPipPip
  • Réputation
    19
  • 295 messages
  • Genre:
  • Localisation:Montréal

Posté 24 mars 2024 - 02h57

J'ai fait un nouveau build du jeu avec la traduction améliorée jusqu'au moment du crash... Je suis aussi en train d'écrire la soluce en parallèle.

 

@Nicolas

J'avais cru comprendre que les bytes "7B" marquaient les débuts de CC/sections et qu'ils étaient suivis de deux octets indiquant la taille de la section (taille que j'ai du coup modifiée en remplaçant les chaines de kanji par des chaines d'ASCII) : c'est pas ça?

 

Le début d'une section est généralement marqué par 7B quand la valeur précédente est 5D qui lui indique la fin d'une section (ce n'est pas toujours 100% le cas). Si tu trouves d'autres 7B avec 2 bytes en avant, ce sont souvent des sous-sections liées à des embranchements (choix A ou B du joueur) et la logique est la même, si tu changes la longueur, il faut ajuster le calcul.

 

Mais oui c'est bien ce que je voulais dire, ce sont des pointeurs relatifs, c'est-à-dire qu'ils varient en fonction de la longueur de la section courante. Il est très probable que tu aies modifié des valeurs incorrectement ou qui ne devraient pas l'être... Je n'ai pas le dump de la table MSX comme je l'ai avec le PC-98, donc ce que j'ai souligné plus haut "pourrait" expliquer pourquoi le jeu crash là... Il faut que tu revérifies chaque valeur.
 

Quant au calcul, le bug peut être aussi simple que de compter un caractère Shift-JIS comme un byte alors qu'ils en comptent quasi tout le temps 2 (il y a des caractères Shift-JIS qui ne codent que sur un byte, il faut faire attention à ce point également :D) et cela revient à mon autre post où je te disais que tu avais laissé des caractères shif-jis parfois au début, il est possible que ton calcul soit en erreur dans ces là (et encore une fois, je ne fais que supposer).

Pour la soluce et d'autres éléments, tu peux aller lire ceci, point 4. SOLUTION SET (la liste des actions est en romaji ::malade:: (oui je déteste ce format d'écriture) mais tu peux faire un replace avec la traduction en anglais plus haut :
 

https://gamefaqs.gam...bMIbRUFAPlIqQ2U

Et le truc drôle à essayer :
 

 

- Hidden chara.

At Kasuga home, in sisters' room, when Manami chan
and Kurumi chan are present, talk persistently with them,
until the punishment.
After the back drop, go to living room, and examine
(shiraberu), to find the hidden chara Jingorou (cat).



#186 tcv

tcv

    KORiste

  • Modérateur
  • Réputation
    459
  • 7 544 messages
  • Genre:
  • Localisation:Région parisienne

Posté 24 mars 2024 - 08h00

C'est dommage qu'il y ait un plantage du jeu mais je ne sais pas si c'est une étape nécessaire pour arriver jusqu'à la fin du jeu. Mais je trouve que vous progressez super vite. Je pensais que vous auriez mis plusieurs mois à avoir une version traduite jouable du jeu mais actuellement c'est déjà pas mal même si on n'a pas encore atteint l'une des fins du jeu.
Sky is the only limit

#187 CyberFred

CyberFred

    Modérateur

  • Modérateur
  • Réputation
    634
  • 6 794 messages
  • Genre:
  • Localisation:France

Posté 24 mars 2024 - 10h17

Hélas, tcv, il est indispensable de passer l'étape du carnet de Komatsu pour aller vers les autres étapes. J'ai recommencé le jeu plusieurs fois, en trouvant deux méthodes pour sauver Hikaru, mais à chaque fois, Komatsu est un passage obligé pour présenter à Kyosuke la mystérieuse fille blonde aux longs cheveux.
banner_kor.jpg  logo_facebook_forum.jpg
 
 
 

#188 tcv

tcv

    KORiste

  • Modérateur
  • Réputation
    459
  • 7 544 messages
  • Genre:
  • Localisation:Région parisienne

Posté 24 mars 2024 - 10h47

Mince alors. Dans mon métier, on appelle cela un bug bloquant qui peut compromettre une livraison logicielle. J'espère que FrozenOwl pourra le résoudre. Mais on n'est pas pressé car cela fait des années que ce projet existe et était resté inachevé et non diffusé en langue anglaise. Je ne sais pas quel est le pourcentage actuel d'avancement dans le jeu mais grâce à FrozenOwl, on peut jouer à ce jeu. Quant à Nicolas, il a une autre approche et son adaptation semble encore plus ambitieuse.
Sky is the only limit

#189 CyberFred

CyberFred

    Modérateur

  • Modérateur
  • Réputation
    634
  • 6 794 messages
  • Genre:
  • Localisation:France

Posté 24 mars 2024 - 11h38

J'espère qu'une solution sera trouvée. 

J'ai tenté d'identifier avec un éditeur l'endroit où cela pêchait :

 

4i86.jpg

 

la chaine ["111,/],=81] ne semble pas avoir de crochets cohérents. Mais je ne suis pas assez spécialiste pour en être sur.


banner_kor.jpg  logo_facebook_forum.jpg
 
 
 

#190 Nicolas

Nicolas

    Super Fan de KOR

  • Membres
  • PipPipPipPip
  • Réputation
    19
  • 295 messages
  • Genre:
  • Localisation:Montréal

Posté 24 mars 2024 - 15h41

la chaine ["111,/],=81] ne semble pas avoir de crochets cohérents. Mais je ne suis pas assez spécialiste pour en être sur.

Le rendu ASCII ne veut strictement rien dire, il faut regarder au niveau des données binaires, ce n'est pas si simple qu'une histoire de crochet :smart4: Et le plantage peut être provoqué par tout autre chose que cette section là.



#191 FrozenOwl

FrozenOwl

    Fan pour la vie

  • Membres
  • PipPipPipPipPip
  • Réputation
    225
  • 788 messages
  • Genre:
  • Localisation:Paris

Posté 24 mars 2024 - 17h38

@Nicolas : j'avais effectivement repéré les sections par les pointeurs (qui commencent normalement par 7B... mais pas la dernière), et les sous-sections par des 7B qui suivaient des 5D ou des 2C : mais effectivement, peut-être qu'il y a des endroits où cette logique ne fonctionne pas.

Bon... je vais me les refaire à la main pour voir si les positions et les tailles des sections sont cohérentes, ou si j'ai oublié des sous-sections qui correspondraient à d'autres règles.



#192 CyberFred

CyberFred

    Modérateur

  • Modérateur
  • Réputation
    634
  • 6 794 messages
  • Genre:
  • Localisation:France

Posté 24 mars 2024 - 18h27

Je sais que c'est de l'hexadécimal à la base. Mais je ne faisais que remarquer que la traduction hexadécimale en caractères visibles à cet endroit, semble montrer quelque chose qui pourrait être des balises non refermées. Tout est possible, en effet.


banner_kor.jpg  logo_facebook_forum.jpg
 
 
 

#193 Nicolas

Nicolas

    Super Fan de KOR

  • Membres
  • PipPipPipPip
  • Réputation
    19
  • 295 messages
  • Genre:
  • Localisation:Montréal

Posté 24 mars 2024 - 20h32

Je sais que c'est de l'hexadécimal à la base. Mais je ne faisais que remarquer que la traduction hexadécimale en caractères visibles à cet endroit, semble montrer quelque chose qui pourrait être des balises non refermées. Tout est possible, en effet.

L'hexadécimal n'est qu'une représentation parmi d'autres. Concernant l'ASCII, si tu changes l'encodage tu ne verras d'ailleurs plus forcement ces caractères là, le pourquoi c'est trompeur, surtout si tu as l'habitude de programmer, tu pourrais avoir tendance à deviner un language qui n'en est pas un.

Ce que tu observes dans ton éditeur ne correspond pas à un langage conventionnel avec des balises d'ouverture et de fermeture. Les données binaires représentent une version compilée du moteur PIYO. Par chance, ils ont opté pour l'utilisation de l'encodage Shift-JIS pour l'affichage du texte plutôt que de recourir à une table de codage propriétaire, mais ce n'est pas toujours le cas.



#194 FrozenOwl

FrozenOwl

    Fan pour la vie

  • Membres
  • PipPipPipPipPip
  • Réputation
    225
  • 788 messages
  • Genre:
  • Localisation:Paris

Posté 24 mars 2024 - 23h35

He, mais la sauvegarde du jeu fonctionne, en fait! Mais il faut savoir s'en servir. C'est comme à l'ancienne, vous sauvegardez le jeu sur un autre disque.

 

La manip est la suivante :

- Sur l'écran TV dans le jeu, vous choisissez la sauvegarde sur disque.

- Sur BlueMSX, vous mettez "Lecteur de disquette A"-> "Insérez un nouveau disque". Ce sera votre disque vierge de sauvegarde. Vous pouvez le nommer save.dsk par exemple.

- Ensuite "Save", et vous devriez voir "Saving : done". (Au passage, le "Saving" du dessous est en fait un "Cancel", je corrigerai ça plus tard)

- Ensuite au prompt non traduit, vous remettez le disque du jeu pour continuer à jouer.

 

- Quand vous relancez le jeu, vous mettez "Continue".

- Vous insérez le disque de sauvegarde, puis "Continue". La sauvegarde se charge

- Et vous réinsérez le disque du jeu pour continuer à partir de là. Votre partie reprendra dans le salon, là où vous avez sauvegardé.

 

Je ne sais pas si je vais arriver à corriger le bug, mais ça facilitera considérablement de se retrouver là où ça plante. (Si ça plante au même endroit : Nicolas fait bien de souligner le caractère non prévisible du truc...)

 

Edit : ça plante bien au même endroit. En un sens, je préfère...



#195 tcv

tcv

    KORiste

  • Modérateur
  • Réputation
    459
  • 7 544 messages
  • Genre:
  • Localisation:Région parisienne

Posté 24 mars 2024 - 23h47

Cela fait longtemps que je n'ai plus joué à un jeu vidéo à l'ancienne. Je n'avais pas pensé à changer de disque pour faire ma sauvegarde disque. Toutefois je ne sais pas si la sauvegarde puis la restauration SRAM marchait sur le jeu d'origine.


Sky is the only limit

#196 tcv

tcv

    KORiste

  • Modérateur
  • Réputation
    459
  • 7 544 messages
  • Genre:
  • Localisation:Région parisienne

Posté 24 mars 2024 - 23h51

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.


Sky is the only limit

#197 FrozenOwl

FrozenOwl

    Fan pour la vie

  • Membres
  • PipPipPipPipPip
  • Réputation
    225
  • 788 messages
  • Genre:
  • Localisation:Paris

Posté 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...



#198 tcv

tcv

    KORiste

  • Modérateur
  • Réputation
    459
  • 7 544 messages
  • Genre:
  • Localisation:Région parisienne

Posté 25 mars 2024 - 00h22

Dans ce cas, tu as tout ce qui faut pour tester la résolution du bug, en espérant qu'il n'y en ait pas d'autres. Le but ultime est de pouvoir arriver à la fin du jeu.
Sky is the only limit

#199 Nicolas

Nicolas

    Super Fan de KOR

  • Membres
  • PipPipPipPip
  • Réputation
    19
  • 295 messages
  • Genre:
  • Localisation:Montréal

Posté 25 mars 2024 - 00h23

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)

 



#200 FrozenOwl

FrozenOwl

    Fan pour la vie

  • Membres
  • PipPipPipPipPip
  • Réputation
    225
  • 788 messages
  • Genre:
  • Localisation:Paris

Posté 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  :pirate20: (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 :D

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)...






5 utilisateur(s) li(sen)t ce sujet

0 membre(s), 5 invité(s), 0 utilisateur(s) anonyme(s)

  • Loading Countdowns