Traduction d'Ultima V Warriors of Destiny

Réduire
X
 
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages
  • Sylvain_rocher
    Paladin


    • septembre 2024
    • 708

    #1

    Traduction d'Ultima V Warriors of Destiny

    Bonjour à tous,

    J'espère que vous avez passé de bonnes vacances d'été Comme prévu, je me lance dans la traduction du 5ème opus de la série Ultima.
    J'ai commencé à décortiquer les différents formats de fichiers et à développer les outils pour la traduction. Pour cet épisode, AUCUN texte dans le fichier EXE. Pourtant, ce n'est pas synonyme de facilité pour autant. J'ai relevé pour le moment 2 difficultés techniques majeures :

    - la première concerne justement les font (les polices) pour l'ajout des caractères accentués : au vue de la façon dont sont construits les textes du jeu, aucun code au-delà du 127 n'est possible sans une altération très profonde des structures de données du jeu. En effet, le système de dialogues du jeu est entièrement scripté (ça veut dire que ce n'est pas qu'un enchaînement de caractères, mais à chaque code correspond une lettre, un mot, une phrase ou une action). Et tous les codes au-delà de 127 sont utilisés dans les scripts, et toutes les lettres accentuées du français ont bien sûr un code dans ces eaux-là. Mais j'ai ma petite idée pour contourner ça
    - la seconde concerne justement les fichiers contenant les dialogues. Pour faire rapide, chaque dialogue début à une certaine adresse dans le fichier (codé sur 2 octets), mais le français étant beaucoup plus long, je dépasse les capacités de codage sur 2o ... donc il faut que je modifie le format de fichier des dialogues pour coder les adresses sur 4 octets, mais ça demandera une modification du code assembleur de l'EXE. Je sais qu'oFF_rus ferait ça les doigts dans le nez, mais je vais essayer d'y arriver par moi-même

    Bref, voilà, je débute tranquillement, et cette traduction va me prendre bien plus de temps que les précédentes, car je vais aussi découvrir le jeu en même temps que je le traduis Donc la phase de test sera nécessairement longue.

    A bientôt pour vous donner quelques nouvelles !
  • Snow
    Roi de la Glande


    • décembre 2003
    • 7693

    #2
    Je ne sais pas si cela pourra te servir, mais Ultima V Lazarus, remake basé sur le moteur de Dungeon Siege, a été traduit dans la langue de Molière (mais dure demain).

    En tout cas, bon courage pour cette nouvelle trad !
    Dernière modification par Snow, 22 août 2025, 21h18.
    La vitesse de la lumière est supérieure à celle du son !
    C'est pourquoi bien des gens ont l'air brillant jusqu'à ce qu'ils ouvrent la bouche !

    ​

    Commentaire

    • Sylvain_rocher
      Paladin


      • septembre 2024
      • 708

      #3
      Envoyé par Snow Voir le message
      Je ne sais pas si cela pourra te servir, mais Ultima V Lazarus, remake basé sur le moteur de Dungeon Siege, a été traduit dans la langue de Molière (mais dure demain).

      En tout cas, bon courage pour cette nouvelle trad !
      Merci
      Oui, je connais cette version de réputation, mais je n'ai pas Dungeon Siege donc je ne peux pas l'installer pour accéder aux données en VF. Le patch n'est qu'un exe, donc pas de fichiers de données à côté. Et quand bien même, il faudrait connaître le format de fichier de données de Dungeon Siege pour les décoder, car ce sera certainement pas identique à la version d'origine. Je n'y suis pas encore, mais ce sera peut-être plus galère de décoder, faire la correspondance et reconduire.

      Chaque chose en son temps

      Commentaire

      • Guybrush02
        320x200x256


        • avril 2001
        • 6835

        #4
        Bravo (et courage) pour ce nouveau chantier !

        Dommage de ne pas avoir les sources décompilées cette fois comme avec ergonomy_joe
        Tu dois déjà connaitre mais le site https://wiki.ultimacodex.com/wiki/Ul...ternal_formats donne pas mal d'infos sur les différentes formats de données dans les fichiers du jeu.

        Commentaire

        • Sylvain_rocher
          Paladin


          • septembre 2024
          • 708

          #5
          Envoyé par Guybrush02 Voir le message
          Bravo (et courage) pour ce nouveau chantier !

          Dommage de ne pas avoir les sources décompilées cette fois comme avec ergonomy_joe
          Tu dois déjà connaitre mais le site https://wiki.ultimacodex.com/wiki/Ul...ternal_formats donne pas mal d'infos sur les différentes formats de données dans les fichiers du jeu.
          Merci beaucoup !
          Oui, évidemment, sans ce site je n’aurais traduit aucun des Ultima il faut parfois compléter avec d’autres sources mais c’est le site de référence

          Commentaire

          • Sylvain_rocher
            Paladin


            • septembre 2024
            • 708

            #6
            Je viens donner quelques nouvelles. Je viens de finir la première phase : mes outils permettent de lire et réécrire l'ensemble des fichiers contenant du texte dans le jeu ... enfin presque. Je n'ai trouvé nulle part les textes qui s'affichent au lancement du jeu "Origin System presents" et "a lord british production". Ce sont des textes graphiques mais qui ne sont dans aucun fichier graphique.

            La structure du programme utilise des "overlays", ce sont des surcouches de code ou de données que le jeu va chercher quand il en a besoin. Je suspecte donc que ces données soient dans un des fichiers d'overlay (en l'occurence INTRO.OVL), mais le soucis est que ce fichier doit mélanger à la fois du code et des données graphiques ... données compressées par un algorithme LZW, donc c'est beaucoup plus difficile de repérer les zones binaires qui pourraient correspondre à des images ...

            Je vais donc commencer à avancer dans la traduction, et je verrai peut-être à la fin pour réinvestiguer ces quelques bouts de textes. Le fait que le jeu utilise des overlay va aussi rendre la modification de code bien plus difficile (notamment les commandes du jeu ! Je ne vois pas encore comment je vais m'en sortir). Bref, cette traduction ne va pas être facile du tout

            Mais chaque chose en son temps, je vais commencer à m'attaquer à la première difficulté : l'ajout des accents

            Commentaire

            • Sylvain_rocher
              Paladin


              • septembre 2024
              • 708

              #7
              Quelques nouvelles : c'est beaucoup plus galère techniquement que ce que je pensais. Donc je n'ai pas encore commencé la traduction à proprement parler.
              Mon gros problème ? J'ai des fichiers qui contiennent des chaînes de caractères à traduire. Si je modifie la taille d'une de ces chaînes, tout se décale. Ca veut juste dire qu'il y a bien des adresses (pointeurs) en dur dans le code pour aller chercher ces textes. Jusque là, c'est la même chose que toutes mes traductions précédentes. Il suffit de trouver les pointeurs et les modifier à la main. Le problème : le jeu utilise des "overlay", donc impossible de remonter aux pointeurs avec IDA avec une simple analyse statique du code. Donc j'ai du passer à la vitesse supérieure et me lancer dans le debogage dynamique sous DosBOX en analysant pas à pas chaque instruction assembleur pour traquer les endroit où se trouvent les adresses. Et aucun document sur internet ne référence ces adresses.

              J'ai plusieurs milliers de lignes de textes, et la structure globale du code ont la bonne idée de ne pas avoir mis les pointeurs les uns à côtés des autres (bon, c'est parfois le cas). Donc je dois me faire ch*** à espionner chaque chaîne de caractères pour comprendre comment le jeu va chercher son adresse pour la noter, pour pouvoir la modifier quand je me lancerai dans la traduction. J'ai trouvé 152 adresses sur plusieurs miliers. Bref, ça va être un travail de TITAN !! Mais au moins ça me permet de progresser dans mon travail de traducteur en me formant au débogage dynamique sous DosBox Il va donc falloir être bien patient pour cette traduction ahah

              Commentaire

              • Godcedric
                Bob le bio-couleur


                • mai 2001
                • 13355

                #8
                Là tu es parti sur du costaud. C'est là qu'on voit aussi que les jeux évoluent avec des moteurs et techniques différentes d'une version à l'autre.
                POUR LES CHANGEMENTS DE CD DANS UN JEU EN INSTALLATION FACILE (et pour Dosbox en général), IL FAUT FAIRE LA COMBINAISON DE TOUCHES CTRL F4.

                NOTEZ QU'A CHAQUE DÉMARRAGE D'UN JEU INSTALLATION FACILE, UNE AIDE S'AFFICHE. MERCI DE LIRE AVANT D'APPUYER DIRECTEMENT SUR UNE TOUCHE POUR JOUER. CA PREND 5 SECONDES A LIRE ET CA ÉVITE DE CHERCHER UNE DEMIE JOURNÉE POUR TROUVER LA RÉPONSE.

                Merci.

                Commentaire

                • Sylvain_rocher
                  Paladin


                  • septembre 2024
                  • 708

                  #9
                  Envoyé par Godcedric Voir le message
                  Là tu es parti sur du costaud. C'est là qu'on voit aussi que les jeux évoluent avec des moteurs et techniques différentes d'une version à l'autre.
                  C’est clair ! Hrvg m’avait parlé qu’il existait ce système « d’overlay », et c’est la première fois que j’y suis confronté. Je comprends en effet la galère supplémentaire que ça représente. Mais c’est l’occasion d’en apprendre d’avantage, donc ça me motive grave

                  Mais c’est sûr que je vais avoir besoin de temps d’assimilation et de rodage avant d’être efficace dans l’exercice

                  Commentaire

                  • willow2
                    Elite Soldier


                    • août 2012
                    • 1458

                    #10
                    Bon courage à toi Sylvain en espérant que tu y arrives.

                    Commentaire

                    • Sylvain_rocher
                      Paladin


                      • septembre 2024
                      • 708

                      #11
                      Envoyé par willow2 Voir le message
                      Bon courage à toi Sylvain en espérant que tu y arrives.
                      Je vais y arriver !!
                      Maintenant que j’ai compris comment sont structurés les overlay, je suis en train de faire des outils pour chercher les pointeurs automatiquement. Les premiers essais ont bien marché sur les 3200 phrases du premier fichier les chercher tous un par un à la main, ça aurait beaucoup trop long …

                      Commentaire

                      • Godcedric
                        Bob le bio-couleur


                        • mai 2001
                        • 13355

                        #12
                        Bah dit donc. Chapeau.
                        POUR LES CHANGEMENTS DE CD DANS UN JEU EN INSTALLATION FACILE (et pour Dosbox en général), IL FAUT FAIRE LA COMBINAISON DE TOUCHES CTRL F4.

                        NOTEZ QU'A CHAQUE DÉMARRAGE D'UN JEU INSTALLATION FACILE, UNE AIDE S'AFFICHE. MERCI DE LIRE AVANT D'APPUYER DIRECTEMENT SUR UNE TOUCHE POUR JOUER. CA PREND 5 SECONDES A LIRE ET CA ÉVITE DE CHERCHER UNE DEMIE JOURNÉE POUR TROUVER LA RÉPONSE.

                        Merci.

                        Commentaire

                        • Sylvain_rocher
                          Paladin


                          • septembre 2024
                          • 708

                          #13
                          Envoyé par Godcedric Voir le message
                          Bah dit donc. Chapeau.
                          Merci, mais il ne faut pas crier victoire trop tôt. Je dois maintenant faire une vérification manuelle avec IDA car mon outil se contente de chercher et comparer des valeurs d’octets, mais ces valeurs peuvent correspondre à du code. Je dois donc trier à la main ensuite les occurrences aberrantes.

                          Puis il faudra chercher à savoir si ce sont des pointeurs simples, ou s’il faut chercher des pointeurs vers ces pointeurs (et donc réitérer l’étape précédente).

                          Viendra ensuite le codage de l’outil pour reconstituer tous les pointeurs proprement quand je modifierai les tailles. Et je ne saurais que ça marche que quand je pourrais tester en jeu. De belles galères en perspective mais c’est stimulant !!

                          Sauf erreur de ma part, je n’ai trouvé aucune traduction de ce jeu dans sa version d’origine (j’en ai trouvé pour le projet Lazarus). Je dois être le seul maso à m’être infligé cette recherche faudra que je vois si je peux partager tout ce que j’aurais fait pour que ça puisse servir à d’autres.

                          Commentaire

                          • Godcedric
                            Bob le bio-couleur


                            • mai 2001
                            • 13355

                            #14
                            J'ai faillit te dire ça dans le message précédent : mettre des outils à disposition serait un plus. Autant de travail et de recherches, ça serait dommage de laisser ça dormir si ça permet à d'autres de s'en servir pour des traductions.
                            POUR LES CHANGEMENTS DE CD DANS UN JEU EN INSTALLATION FACILE (et pour Dosbox en général), IL FAUT FAIRE LA COMBINAISON DE TOUCHES CTRL F4.

                            NOTEZ QU'A CHAQUE DÉMARRAGE D'UN JEU INSTALLATION FACILE, UNE AIDE S'AFFICHE. MERCI DE LIRE AVANT D'APPUYER DIRECTEMENT SUR UNE TOUCHE POUR JOUER. CA PREND 5 SECONDES A LIRE ET CA ÉVITE DE CHERCHER UNE DEMIE JOURNÉE POUR TROUVER LA RÉPONSE.

                            Merci.

                            Commentaire

                            • Sylvain_rocher
                              Paladin


                              • septembre 2024
                              • 708

                              #15
                              Envoyé par Godcedric Voir le message
                              J'ai faillit te dire ça dans le message précédent : mettre des outils à disposition serait un plus. Autant de travail et de recherches, ça serait dommage de laisser ça dormir si ça permet à d'autres de s'en servir pour des traductions.
                              Je m’étais déjà posé la question pour les autres jeux Ultima, mais l’envers du décors est que les outils sont « degueulasses », dans le sens où j’ai pas fait un truc pensé pour être partagé, c’est sur mesure avec des paths en dur sur mon PC de travail, codé de manière non optimisée en VBA … et je me suis pas beaucoup amélioré au fur et à mesure des autres traductions, je reprenais ce que j’avais fait en l’adaptant.

                              Bref, si je devais partager les outils, il faudrait a minima recoder proprement en python des scripts de lecture / écriture. Mais ça n’éviterait pas tout le travail à faire à la main (je pense aux pointeurs, à l’arbre des caractères dans les Underworld). Peut être que je le lancerai la dedans quand je serai au bout de mon marathon. Ce qui a le plus de valeurs dans l’exercice de traduction reste l’identification des formats des fichiers, la localisation des textes, ici la structure des overlay et de leurs adresses etc.

                              Commentaire

                              Chargement...