Je commence la traduction de Dizzy Prince of the Yolkfolk.
Résumé:
J'ai décompressé le fichier .exe de 139639 octets avec UNP v4.12 béta.
UNP a correctement décompressé le fichier -> 428844 octets.
Le jeu continue à fonctionner normalement une fois décompressé (comme prévu par Dorian Gray (rien à voir avec O. Wilde, c'est un pseudo que vous connaissez surement)).
Les textes de objets transportables par Dizzy, ainsi que les noms de lieux apparaissent en clair dans ce nouveau fichier.
Je vais tenter de les traduire simplement (en hexa) en longueur constante, sans modifier les pointeurs (la table d'index des textes).
SUITE:
A première vue, tous les textes sont en MAJUSCULES.
Le jeu n'affiche pas les minuscules.
NOM DES LIEUX: 100% TRADUITS LE 23 JUILLET 2005
--------------
le nom des lieux commence, dans le fichier décompressé,
à l'offset 0x55D9 et fait 23 caractères en fixe,
c'est à dire que, au début par exemple, qui s'appelle "TRAPPED!",
soit 8 caracteres, les programmeurs ont ajouté 7 espaces (0x20) devant
et 7 espaces derrière, soit bien 7 espaces + 8 lettres + 7 espaces
= 22 caractères.
Ca permet une certaine lattitude de traduction, j'ai ainsi choisi
de traduire TRAPPED! non par PIEGE ! mais par PRIS AU PIEGE !
A noter que cela permet (mais nécessite) un centrage manuel du texte en jouant sur les espace de bourrage.
Il ne semble pas y avoir de caractère de séparation pour discriminer le nom d'un lieu d'un autre tangent, ce qui semble conforter l'hypothèse d'une table d'index.
EDIT: plutôt d'un calcul d'adresse de type tableau classique. @=base+index x longueur constante de string.
Il faut, de fait, bien être attentif lors de la traduction,
car deux noms de lieux ne sont séparés que par une succession
ininterrompue d'espaces.
Le plus simple est d'afficher 22 octets par ligne dans l'éditeur hexa.
MESSAGES DU JEU:
----------------
les messages du jeu, qui s'écrivent dans une fenêtre de rondins de bois
commencent à l'offset 0x5966 du fichier décompressé.
Le caractère 0x00 sert de saut ligne.
Il faut respecter le nombre de ligne du message initiale,
sinon la ligne supplémentaire s'écrit dans le rondin de bois,
chaque ligne ne pouvant contenir plus de 16 caractères.
EDIT: non, les dimensions et la position de la fenêtre sont décrits
dans une entête spécifique pour chaque fenêtre,
par 8 octets comme suit :
posX_01_etant_la_gauche_-00
-pos_01_etant_le_haut-00
-nb_colonne-00
-nb_ligne-00
=> exemple: 0C00-1100-1000-0300
donne position 13 gauche, 17 haut, 16 caracteres, 3 lignes
On peut les réduire pour ajuster la taille de la fenêtre à celle du texte,
en longueur et en hauteur, MAIS il vaut mieux ne pas les augmenter, car cela décalerait tous les octets suivants !!!
Les lignes sont automatiquement centrées.
Le caractère de fin d'affichage de message est 0xFF.
L'apostrophe (') est le caractère 0x27 (normal).
OBJETS DE L'INVENTAIRE: 100% TRADUITS LE 23 JUILLET 2005
-----------------------
les textes des objets de l'inventaire commencent à l'offset 0x7793 du fichier décompressé
Comme pour les noms de lieux, pas de séparateur mais une taille fixe de 20 octets
et des espaces de remplissage pour centrer le texte.
Ne pas hésiter à mettre un ou deux espaces de plus devant que derrière car
l'espace de devant est déjà rempli par l'icone de l'objet
A suivre.
Aggelon.
Edit de aggelon (22/07/2005 23h23)
J'ai mis à jour le POST au dessus.
Les premiers tests sont concluants : super !!!
Edit de aggelon (23/07/2005 23h49)
Je viens de finir la traduction de tous les noms des objets de l'inventaire, ainsi que ceux des lieux. J'ai commencé les messages.





Commentaire