Aller au contenu


Photo de FrozenOwl

FrozenOwl

Inscrit(e) (le) 17 mai 2010
Déconnecté Dernière activité aujourd'hui, 07h04
-----

#51336 Les travaux de CyberFred

Posté par FrozenOwl on 31 mars 2024 - 21h15

Très sympa! C'est quand même incroyable ce que l'IA permet de faire... :)




#51293 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par FrozenOwl on 30 mars 2024 - 20h03

Vous allez avoir du mal à y croire mais... je viens de finir le jeu! :laugh6:

 

Petit récit de ces derniers jours (pour les archives). J'ai essayé pas mal de versions du jeu, avec ou sans menus traduits, pour essayer de localiser le bug qui faisait planter au cours d'une scène clé du premier tiers du jeu. C'était pénible parce que ça m'obligeait à recommencer le jeu à chaque fois pour arriver jusqu'au bug et... c'est long. Malheureusement les fichiers de sauvegarde contiennent des éléments du code qui sont très dépendants des traductions insérées dedans : pas possible d'utiliser une sauvegarde faite sur une version dans une autre version du jeu.

 

A moins que... de bricoler les fichiers de sauvegarde eux-mêmes! Ils n'étaient en fait pas si compliqués quand on a bossé sur le code. J'ai donc créé une nouvelle routine qui me permettait de convertir les sauvegardes dans toutes les versions du jeu, et j'ai ainsi pu utiliser la même sauvegarde (celle correspondant à l'instant qui précédait le bug) pour tester plusieurs versions modifiées, beaucoup plus rapidement. Finalement, il est apparu que ce qui faisait ainsi planter le jeu, c'était juste quelques caractères japonais encodés en UTF-8 qui étaient restés dans le script français!!

 

A partir de là, j'ai pu continuer le jeu : et comme je ne voulais pas crier à nouveau victoire trop vite, j'ai voulu aller jusqu'au bout, soluce à la main pour gagner du temps. Tant pis pour le spoil... (C'est un jeu de 1988 : au-delà de la nostalgie qu'il engendre, certaines de ses mécaniques sont particulièrement irritantes, comme faire cinq fois l'aller-retour entre le salon et l'école pour que le téléphone sonne la 6ème fois que l'on revient!!)

 

Enfin, jusqu'au bout.... Non, malheureusement parce que le jeu a crashé juste avant la scène finale!! :shoot2:

 

Mais ce bug-là ne m'a pas donné autant de fil à retordre que le précédent : un problème de pointeur vers la dernière séquence que j'avais déjà corrigé, mais je m'étais emmêlé entre les différentes versions de mon code de substitution de texte (je ne les compte même plus...). Après ça, la récompense : j'ai pu voir la dernière scène du jeu. The End!

 

Alors bien sûr, la traduction est toujours aussi pourrie (c'est la prochaine étape, et vous pouvez toujours y contribuer en ligne!) et il y a encore des caractères japonais qui se baladent par ci par là, mais c'est très facile à corriger. L'important est que nous avons levé les derniers obstacles bloquants!

 

La version qui marche est ici.

 

Au passage, je suis critique sur le gameplay mais sinon le jeu est quand même bien sympa. Plusieurs moments emblématiques de la série sont repris, quelques séquences m'ont bien fait marrer et le final est mémorable! Vu que j'y ai quand même passé pas mal d'heures, je suis content que ce soit pour un jeu qui en valait la peine!

 

Par contre, je vous fais pas Maison Ikkoku dans la foulée... :D




#51250 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par FrozenOwl on 28 mars 2024 - 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. :P

 

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.




#51199 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par FrozenOwl on 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!




#51081 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par FrozenOwl on 20 mars 2024 - 23h47

Salut Cyb, comme je l'ai indiqué dans mon post, c'est un problème qui est apparu avec la traduction et le moyen temporaire pour avancer dans le jeu est de savoir qu'avec un nouvel affichage, le curseur est positionné en haut du menu : il faut donc compter le nombre de fois où on tape sur la touche bas pour savoir où on est.
C'est bien pour le test d'une version prototype mais on est bien d'accord que ce n'est pas satisfaisant sur le long terme : Nicolas a donné de nouvelles indications dans son dernier post (merci à lui!) donc je vais essayer de résoudre le problème.




#51059 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par FrozenOwl on 19 mars 2024 - 22h05

Les amis, j'ai le plaisir de vous annoncer une première version jouable et compréhensible (mais moche) du jeu sur MSX.

 

- Vous pouvez utiliser BlueMSX pour y jouer.

- Grâce à l'aide précieuse de Nicolas, et pas mal de transpiration, j'ai réussi a saisir des textes de taille variable dans la version MSX du jeu. J'ai dû me débarrasser des accents parce qu'ils ne sont pas lus par le jeu de base.

- Pour les menus, c'est plus sioux, j'ai dû garder "double du nombre de caractères" en utilisant des termes anglais. C'est compréhensible mais pas très beau. L'autre inconvénient est que le passage du japonais au français fait perdre les couleurs de sélection : il faut donc partir du principe qu'à l'affichage, c'est la ligne du haut qui est sélectionnée, et compter le nombre de fois où vous appuyez sur la flèche du bas pour savoir où vous en êtes. J'espère que les travaux de Nicolas sur le langage de script permettront de résoudre ce problème à terme.

- Et puis bien sûr, c'est de la traduction Deepl : il va falloir que les japanophones du forum se mettent au boulot!

 

Essayez un peu le jeu pour voir, mais attendez qu'on ait peaufiné tout ça pour en profiter vraiment! :)




#50958 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par FrozenOwl on 15 mars 2024 - 21h49

Je crois que je vais te laisser bosser, j'avance moins vite!

 

Ceci dit, j'arrive maintenant à jouer l'intro en entier avec les textes traduits sans limite de nombre de caractères. Ça bloque après parce qu'il faut corriger toutes les tailles de chaînes de caractères qui sont incluses dans le script... ce qui nécessite de bien le comprendre, repérer les débuts et fins de chaînes, etc.




#50948 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par FrozenOwl on 15 mars 2024 - 09h20

Non mais ça bosse, vous inquiétez pas!

Avec les indications très utiles données par Nicolas, je suis en train de faire des tests pour insérer des chaînes de longueur variable dans le script : je ne fais juste pas trop d'annonces parce que difficile de savoir à l'avance si les tests seront concluants ou si ça va provoquer un gros bug... Je saurai probablement en dire plus ce week-end!




#50704 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par FrozenOwl on 09 mars 2024 - 12h18

558w.png

 

J'ai terminé le script d'injection du texte français dans le code!

 

Alors, j'ai une bonne et une mauvaise nouvelle.

Commençons par la mauvaise : comme je m'en doutais, on ne peut pas caser plus d'octets dans le code que la place laissée par les textes japonais.

La bonne nouvelle, cependant, c'est que dans l'encodage SJIS, les caractères et la ponctuation latines peuvent rentrer dans un octet, au lieu de 2 pour les kanas et kanjis! Donc, en gros, on peut mettre deux fois plus de caractères latins que de kanas.

 

Alors, bien sûr, c'est une contrainte forte, mais probablement pas insurmontable, et ce serait quand même génial d'avoir une vraie version du jeu MSX en français! La plus grande partie du texte est écrite en kanas, c'est une très bonne chose : il faudra peut-être sacrifier quelques kanjis isolés. Et simplifier la traduction : on fera pas du Zola!

 

J'ai refait une extraction du script japonais. Il y a maintenant 3 champs :

- la position du texte dans le code,

- le nombre max de caractères latins dans la traduction (à ne pas dépasser, sinon, ça tronque!)

- les textes japonais.

 

L'exercice consiste à remplacer le texte japonais par le français sans toucher au deux premiers champs. Je vous sens motivés, les amis : à vos claviers!




#50658 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par FrozenOwl on 08 mars 2024 - 21h43

Les amis, j'ai fini l'extraction et la mise au propre du script japonais!

 

Chaque ligne est numérotée, le nombre correspond à la position de la phrase dans le code.

 

- Version japonaise

 

- Version anglaise (pas complète parce que j'ai atteint la limite du forfait gratuit...)

 

Ce week-end, passage aux tests d'insertion de caractères latins dans le code!




#50584 Anime - Episode 48 - Les dimensions temporelles

Posté par FrozenOwl on 08 mars 2024 - 08h48

Je ne savais pas qu'on avait inventé un "KOR Award"! C'est la saison, vous me direz... :D

Allons, allons, tout le monde est "le meilleur contributeur de ce forum", sinon il n'existerait pas! :)




#50563 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par FrozenOwl on 08 mars 2024 - 01h00

- L'inconvénient de la méthode de comparaison est que dès que deux caractères dont les encodages sont identiques dans les versions japonaises et coréennes, ils sont ignorés. Il a donc fallu que je développe un petit programme en Python pour être un peu plus tolérant dans les comparaisons (garder les caractères s'ils sont au milieu d'un bloc qui est "manifestement" du texte même s'ils sont identiques entre les deux versions)

- J'obtiens un gros fichier en vrac au format Shift JIS qui contient les blocs de textes du jeu.

- A partir de là je convertis le fichier de Shift-JIS en UTF-8 pour que ce soit lisible par un européen, grâce à ceci (https://www.motobit....-conversion.asp)

 

Et voilà!

- le script du jeu en japonais totalement bordélique

- et une très mauvaise traduction en anglais sous Deepl, tout aussi bordélique.

 

Moi content! :)

 

Dans les jours qui viennent, je vais m'efforcer de ranger et nettoyer un peu tout ça pour que ce soit plus facilement utilisable.




#50553 Anime - Episode 48 - Les dimensions temporelles

Posté par FrozenOwl on 07 mars 2024 - 17h34

Merci, merci, MERCI pour vos paroles chaleureuses et vos encouragements ! :) Que ce soit le podcast et les documentaires de Kody, les images et fan fics de Cyb, les dessins de Youvi, et toutes vos contributions à vous tous, cest incroyable de voir ce forum autant actif et une communauté aussi soudée pour les 40 ans de KOR! Le plus bel hommage dont le Maître aurait pu rêver.


#50525 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par FrozenOwl on 07 mars 2024 - 00h26

J'ai un peu avancé :

- J'ai voulu comprendre ce que contenait mon fichier contenant les zones qui différaient entre les version japonaises et coréennes.

 

- J'en ai extrait cette chaîne d'hexa "82 ED 82 C8 82 A2 82 C5 82 AB 81 5B 82 C4 82 AD 82 BE 82 B3 82 A2 82 CB 81 42 82 C7 82 A4 82 A9 8D A1 93 FA 88 EA 93 FA 81 41 82 A0 82 BD 82 B5 82 C6 83 66 81 5B 83 67 82 B5 82 C4 82 AD 82 BE".

 

Elle avait une bonne tête et je vais vous expliquer pourquoi.

 

Le codage le plus couramment utilisé sur les ordis japonais est le Shift-JIS (JIS pour "Japanese industrial standards") : c'est un peu l'équivalent de l'UTF-8 utilisé chez nous. Le SJIS est un standard plus compliqué que le UTF-8 et je ne l'ai pas encore complètement étudié : mais j'ai compris que la plupart des caractères dont les hiraganas, katakanas et kanjis étaient stockés sur deux octets (par exemple "82 ED"). Et l'encodage SJIS de la plupart des hiraganas commence par 82 : vous comprenez maintenant pourquoi cette chaîne m'a bien plu.

 

- En utilisant un convertisseur SJIS -> japonais comme celui-ci (http://freaka.freeho...com/charset.php), la chaîne SJIS ci-dessus s'écrit : "わないできーてくださいね。どうか今日一日、あたしとデートしてくだ"

 

Un petit coup de Deepl, et on obtient une traduction approximative (j'ai choisi l'anglais parce que la traduction est meilleure) : "Please don't be afraid to ask me out on a date. Please go on a date with me for the rest of the day."

 

Ce qui non seulement à du sens, mais ressemble bien à une réplique de KOR! :)

 

Conclusion : le texte japonais est bien en clair dans le code, et il est possible de le récupérer!




#50493 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par FrozenOwl on 06 mars 2024 - 14h27

Je ne sais pas pour Baltique, mais pour ma part, je dois dire que le challenge m'a un peu attisé alors j'ai commencé à regarder hier soir...

- J'ai cherché les différences versions disponibles du jeu. Abandonware a la version PC-88 et PC-98, et j'ai découvert hier que Cyb avait mis la version MSX sur son site.

- En testant les versions sur différents émulateurs, l'émulation MSX était celle qui m'a paru la plus qualitative, principalement du point de vue sonore (après pour les machines d'origine, je ne sais pas laquelle était la plus performante.

- Dans un autre fil de discussion évoqué hier, il était fait mention d'une version coréenne du jeu : il s'avère qu'il s'agit de la version MSX. J'ai réussi à la récupérer en regardant le code source d'une page qui proposait d'y jouer en ligne.

- J'ai ensuite utilisé un outil de comparaison de fichiers hexa pour voir où se situaient les différences entre les versions MSX japonaise et coréenne.

- Les deuxièmes disques sont identiques, toutes les différences sont dans le premier : c'est donc là que se situe le texte traduit du japonais et coréen. Mieux, les différences sont très localisées, par gros blocs qu'il serait peut-être possible de remplacer sans avoir besoin de décompiler le fichier. Le logiciel permet aussi de faire une extraction des différences sous format txt : donc si mes calculs sont bons, j'ai maintenant une extraction en format "hexa" des textes du jeu.

- Il y aussi le risque que le texte soit sous un format archivé/compressé cryptique, et pas "en clair", ce qui serait le cas sur un logiciel récent. Mais sur la page d'un développeur qui a tenté la traduction anglaise il y a presque 20 ans (toujours "work in progress"...), il disait qu'il était satisfait de ne pas avoir à décompresser le texte, donc je suis assez optimiste.

- Ma dernière interrogation (en date...) porte sur le fait que les blocs de textes japonais et coréens semblent être de taille identique alors qu'il n'y a pas vraiment de raison que ce soit le cas. A explorer...

 

Bref, "work in progress" (et ce sera peut-être le cas encore dans 20 ans :P)...






  • Loading Countdowns