Traduction d’Ultima Underworld
Réduire
X
-
Je ferai un essai ce soir ou demain, ça serait vraiment le plus confortable !Envoyé par Hrvg Voir le messageoui, c'est que je pensais. Je reconnais que ce n'est pas très facile de trouver le pointeur.
👍 1Commentaire
-
Ah ouais, là on passe au niveau professionnel !!! Je connaissais pas cet outil !Envoyé par Hrvg Voir le messageCa sera facile de trouver les pointeurs avec IDA Pro free pour le fichier uw.EXE.
Le pointeur de "You see" est à l'adresse : 0x27BC2 et sa valeur est : 02BD --> BD02.
J’aurais tenté en effet un « simple » Ctrl+F de l’adresse de la string, sur 4o il y aurait eu peu de chance d’avoir bcp de résultats. J’imagine qu’à côté de l’adresse doit se trouver la taille de la string. Merci infiniment pour ce savoir, on sent l’expérience ! Il me tarde d’aller faire des essais !!
J’ai l’impression qu’au final, je vais presque passé plus temps à la traduction de ces petites string que les 95% des phrases du jeu
Faudra peut être aussi que je vois si je peux pas modifier la taille de l’allocation mémoire lors de la lecture des blocks de strings du fichier pour éviter des débordements et être plus libre dans la traduction. Pour l’instant je m’en sors sans trop de compromis, mais ça rend la phase de test plus pénible, car je dois m’assurer d’aller trouver l’événement dans le jeu qui affiche la dernière string pour être sûr que ça dépasse pas, ou bien attendre la cinématique aléatoire qui m’intéresse, sans garanti de la retrouver rapidement pour faire d’autres essais.Dernière modification par Sylvain_rocher, 26 septembre 2024, 09h21.
👍 1Commentaire
-
En effet, ces morceaux de phrases sont galères et en plus c'est inversé en anglais par rapport au français.J’ai l’impression qu’au final, je vais presque passé plus temps à la traduction de ces petites string que les 95% des phrases du jeu
J'ai regardé un peu le fichier uw.EXE. Et c'est que des morceaux de phrases. Par contre, j'ai vu par exemple : <bh:00>That <bh:00>You read the <bh:00>
<bh:00>You read the <bh:00> Je supprimerai le "the" et attacher l’article au nom de l'objet ou autres.
De même, tu peux inverser l'affichage des mots en inversant les pointeurs. Par exemple ; A = pointeur BD02, B = pointeur CD02 et C = pointeur DD02... Et qu'on veuille que la phrase sorte A C B =
A= pointeur BD02 C = pointeur CD02 B = pointeur DD02
Evidemment,ce n'est pas toujours possible.
Je sais qu'on peut agrandir un EXE, mais des fois le jeu ne prend pas en charge l'ajout d'octets.Faudra peut être aussi que je vois si je peux pas modifier la taille de l’allocation mémoire lors le lecture des blocks de strings du fichier pour éviter des débordements et être plus libre dans la traduction. Pour l’instant je m’en sors sans trop de compromis, mais ça rend la phase de test plus pénible, car je dois m’assurer d’aller trouver l’événement dans le jeu qui affiche la dernière string pour être sûr que ça dépasse pas, ou bien attendre la cinématique aléatoire qui m’intéresse, sans garanti de la retrouver rapidement pour faire d’autres essais.
Commentaire
-
Je me rappelle plus ce que j’ai mis pour celle-la, mais ce que tu proposes n’est pas toujours possible sans effet de bord : ça dépend des string. Si j’ajoute l’article, il pourrait malheureusement s’afficher en double dans d’autres utilisation. Ici en l’occurrence le risque est de voir « Vous voyez 1 le livre ». Je ne vois pas où elle peut être utilisée dans le jeu pour le coup cette string … sûrement à un endroit spécial que je connais pas. Car il y a des strings équivalentes dans le fichier décoder pour la lecture de tous les objets type livre/ parchemin, et pour la lecture des plaques au mur par exemple, il y’a une string dans l’EXE que j’ai traduit par « Il est écrit », plutôt que « vous lisez »Envoyé par Hrvg Voir le message<bh:00>You read the <bh:00> Je supprimerai le "the" et attacher l’article au nom de l'objet ou autres.
Ce serait idéal, mais c’est plus dur à investiguer pour trouver les pointeurs. Peut être que ton outil aidera ? Et sûrement que cet ordre doit être défini à côté des adresses des fameuses string comme « you see ».Envoyé par Hrvg Voir le messageDe même, tu peux inverser l'affichage des mots en inversant les pointeurs. Par exemple ; A = pointeur BD02, B = pointeur CD02 et C = pointeur DD02... Et qu'on veuille que la phrase sorte A C B =
A= pointeur BD02 C = pointeur CD02 B = pointeur DD02
Evidemment,ce n'est pas toujours possible.
j’ai déjà essayé ça, et ça crash immédiatement au chargement du jeu. Donc je pense pas que ce soit possible. Mais comme les strings sont dans un fichier à part, j’imagine qu’ils sont chargés en RAM non ? Donc ça ne devrait pas influencer l’EXE si ? Ou alors je me plante dans ma vision du truc … si ça se charge dans l’EXE, j’aurais du mal à identifier une zone morte pour y déplacer les strings comme You see…Envoyé par Hrvg Voir le messageJe sais qu'on peut agrandir un EXE, mais des fois le jeu ne prend pas en charge l'ajout d'octets.
Dernière modification par Sylvain_rocher, 26 septembre 2024, 10h12.
👍 1Commentaire
-
IDA donne tous les pointeurs... Le problème (minime), c'est qu'il y a des fois plusieurs même valeurs et il peut y avoir une seule valeur qui est le pointeur ou plusieurs. Mais, avec des tests et les notes qu'on écrit... On trouve les vrais pointeurs. Je vais t'envoyer IDA en MP.Ce serait idéal, mais c’est plus dur à investiguer pour trouver les pointeurs. Peut être que ton outil aidera ? Et sûrement que cet ordre doit être défini à côté des adresses des fameuses string comme « you see ».
Tu as raison, je n'avais pas pensé au "un/1" et "le".Je me rappelle plus ce que j’ai mis pour celle-la, mais ce que tu proposes n’est pas toujours possible sans effet de bord : ça dépend des string. Si j’ajoute l’article, il pourrait malheureusement s’afficher en double dans d’autres utilisation. Ici en l’occurrence le risque est de voir « Vous voyez 1 le livre ». Je ne vois pas où elle peut être utilisée dans le jeu pour le coup cette string … sûrement à un endroit spécial que je connais pas. Car il y a des strings équivalentes dans le fichier décoder pour la lecture de tous les objets type livre/ parchemin, et pour la lecture des plaques au mur par exemple, il y’a une string dans l’EXE que j’ai traduit par « Il est écrit », plutôt que « vous lisez »
As-tu modifié les valeurs de la première ligne de uw.EXE ?j’ai déjà essayé ça, et ça crash immédiatement au chargement du jeu. Donc je pense pas que ce soit possible.
Les zones non utilisées, mais pas toujours, sont 00 00 00 00...Mais comme les strings sont dans un fichier à part, j’imagine qu’ils sont chargés en RAM non ? Donc ça ne devrait pas influencer l’EXE si ? Ou alors je me plante dans ma vision du truc … si ça se charge dans l’EXE, j’aurais du mal à identifier une zone morte pour y déplacer les strings comme You see…
Je voulais tester en écrivant "Vous voyez" sur les 00 à la fin du fichier. Le problème, c'est que le pointeur était sur trois octets au lieu de deux.
Commentaire
-
non, j’avais juste essayer brutalement d’ajouter un octet dans les strings trop courtes, j’ai pas cherché plus loin… tu me dis ça car tu penses qu’il y a la taille totale dans la 1ere ligne ? Après c’est quand même galère d’augmenter le fichier, sauf si c’est à la fin, sinon ça pete tous les pointeurs.Envoyé par Hrvg Voir le messageAs-tu modifié les valeurs de la première ligne de uw.EXE ?
J’avais déjà identifié qu’il y avait des grosses zones de 0, par qu’à la fin de l’exe il me semble. Du coup dans ton essai, tu as mis dans une zone accessible sur 3o c’est ça ?Envoyé par Hrvg Voir le messageLes zones non utilisées, mais pas toujours, sont 00 00 00 00...
Je voulais tester en écrivant "Vous voyez" sur les 00 à la fin du fichier. Le problème, c'est que le pointeur était sur trois octets au lieu de deux.
Mais question de noob : si dans l’exe, il y a des zones à 00, le seul risque est que le jeu interprète cette zone de 00 c’est bien ça ? Le risque est donc faible de l’altérer vu la nature des octets…
👍 1Commentaire
-
Trop chouette !! Tu as du modifier quelque part aussi la longueur de la string à lire à la nouvelle adresse non ? Ou bien de l’encadrer par des octets 00 suffit ?Envoyé par Hrvg Voir le messageC'est possible... Il suffit de trouver de l'espace et non utilisé par le jeu....
👍 1Commentaire
-
C'est à la fin du fichier, mais ça n'ira pas, car le pointeur sera sur 3 octets au lieu de 2.non, j’avais juste essayer brutalement d’ajouter un octet dans les strings trop courtes, j’ai pas cherché plus loin… tu me dis ça car tu penses qu’il y a la taille totale dans la 1ere ligne ? Après c’est quand même galère d’augmenter le fichier, sauf si c’est à la fin, sinon ça pete tous les pointeurs.
Je m'excuse, mais je ne comprends pas 3o. Je l'ai écrit à 68 octets de You see (le premier).J’avais déjà identifié qu’il y avait des grosses zones de 0, par qu’à la fin de l’exe il me semble. Du coup dans ton essai, tu as mis dans une zone accessible sur 3o c’est ça ?
Le problème, c'est qu'il y a des EXE avec des blocs, mais qui ont aussi des pointeurs et qui peuvent être modifié. Mais, je sais pas reconnaître ce genre d'EXE.Mais question de noob : si dans l’exe, il y a des zones à 00, le seul risque est que le jeu interprète cette zone de 00 c’est bien ça ? Le risque est donc faible de l’altérer vu la nature des octets…
D'autres EXE ne prennent pas en charge les 00, Ce qui est vraiment gênant. C'est impossible de tricher...
D'autres EXE prennent en charge les 00, même s'ils sont inutiles et là, c'est parfait. Mais, il y a des fois des 00 qui servent au jeu. Par exemple comme ce style jeu : Tu as les compétences qui augmentent, il y a aussi les sauvegardes qui s'inscrivent dans L'exe au lieu de fichiers. Et autres. On le voit parfois par l'affichage ou quand on joue. Le jeu change. On se dit : Tiens, je n'avais pas ceci ou cela...
Commentaire
-
J'ai remplacé une série de 00 00 par Vous voyez. Mais, il y avait des 00 qui étaient utilisés, j'ai dû le déplacer plus sur la droite. Non, juste la valeur du pointeur.Trop chouette !! Tu as du modifier quelque part aussi la longueur de la string à lire à la nouvelle adresse non ? Ou bien de l’encadrer par des octets 00 suffit ?
Commentaire
-
Désolé, je croyais que tu disais que le pointeur était sur 3o.Envoyé par Hrvg Voir le messageJe m'excuse, mais je ne comprends pas 3o. Je l'ai écrit à 68 octets de You see (le premier).
ah ouais, faut être prudent alors … ça peut être galère à identifier les zones…Envoyé par Hrvg Voir le messageLe problème, c'est qu'il y a des EXE avec des blocs, mais qui ont aussi des pointeurs et qui peuvent être modifié. Mais, je sais pas reconnaître ce genre d'EXE.
D'autres EXE ne prennent pas en charge les 00, Ce qui est vraiment gênant. C'est impossible de tricher...
D'autres EXE prennent en charge les 00, même s'ils sont inutiles et là, c'est parfait. Mais, il y a des fois des 00 qui servent au jeu. Par exemple comme ce style jeu : Tu as les compétences qui augmentent, il y a aussi les sauvegardes qui s'inscrivent dans L'exe au lieu de fichiers. Et autres. On le voit parfois par l'affichage ou quand on joue. Le jeu change. On se dit : Tiens, je n'avais pas ceci ou cela...
Commentaire


Commentaire