À propos

Ceci est une traduction de fan non-officielle. Elle n'a pas été approuvée, sponsorisée, ni validée par les développeurs, les ayants droit / éditeurs du jeu: Cyberdreams, The Dreamers Guild, QUByte Interactive, Acclaim Entertainment, Nightdive Studios, DotEmu

Compatibilité

DOSBox : compatible, y compris avec la Definitive Update disponible sur GOG et Steam.

ScummVM : compatible, en attente d'approbation pour fonctionner. [voir ticket sur ScummVM]

Le patch ne peut fonctionner que sur la version anglaise, quelques soit son édition (la Definitive Update comporte les différentes versions dont l'anglaise)

Télécharger

Download (placeholder)

Vous pouvez aussi télécharger l'archive zip contenant le patch et aussi les scripts qui m'ont permis de faire la traduction et des versions à appliquer manuellement avec zstd de la traduction [en cliquant ici]

Acheter le jeu sur les plateformes officielles

Steam

Lien Steam

Autres liens:

GOG
Humble Bundle

Informations

Notes de versions

v1.0
— Première release
v1.1
— Correction de traduction (mots, grammaires, ...)
— Traduction des actions combinés ("Donner ... à ..." et "Utiliser ... avec ...")
— Traduction de menu de chargement/sauvegarde
— Correction d'un glitch occurant lors du dernier niveau du jeu, lors du dialogue avec Surgat.
— Création d'un patch dédié à ScummVM distinct du patch pour DOSBox.
— Amélioration de l'outil d'installation du patch. (Détection de la présence de S.EXE ou S.prg pour les versions DosBox)
— Ajout d'une nouvelle version du script de traduction des textes avec déduplication des pointeurs pour le dernier niveau (pour la version DosBox du patch)

Making of cette traduction

Quelques anecdotes autour de cette traduction...
Ceci fait au moins 10 ans que je n'avais pas fait un patch de ce genre...
Lors de ma première traduction, je me souviens utiliser la calculatrice de Windows en mode scientifique pour calculer un par un des pointeurs !
Aujourd'hui, développeur, le monde du travail et mon emploi du temps ne me permettent plus de prendre mon temps pleinement sur ce genre de projet... Mais... savoir que cela fait depuis 2004 que des gens attendaient une traduction/dé-censure en français de ce jeu... M'a motivé à me lancer dans le défi, tout en ajoutant une touche d'IA dans l'histoire pour m'aider dans cette tâche qui serait difficile! (Après tout... Pour un jeu comme IHNM qui nous met face à une IA folle, une sorte de pré-GladOS, je trouve ça plutôt amusant et je l'assume)
Est-ce du vibe-romhacking? Je ne sais pas si c'est un terme pour le moment, mais je pense que ça pourrait définir la création de cette traduction... (j'ai une position relativement neutre sur le fait de coder avec une IA, j'ai besoin de comprendre ce qu'il en sort, mais parfois ça soulage le cerveau de suggérer une idée algorithmique et de voir l'IA faire du Python et nous proposer une implémentation, quitte à retoucher un peu derrière...)

Du coup, j'ai réussi à sortir ce patch en moins de 3 semaines, surtout sur mes weekends (et quelques nuits...)
J'ai commencé par faire des recherches sur les différents forums existants, en retrouvant des informations laissés par ceux qui m'ont précédés (j'ai cherché aussi un outil de français mais qui est finalement très difficile à trouver... Au point où j'ai décidé qu'il fallait de nouveaux scripts Python)
Il ne faut pas oublié que d'autres patches de traductions existent (allemands, hongrois, russe, ...), si cela a été fait avec succès, il n'y a pas vraiment de raison à ce que ça ne soit pas faisable...
De base, le gros de la modification des fichiers ne semble pas horriblement complexe... Que ça soit lors des niveaux de Gorrister, Hellen, Benny, Ted ou Nimdok... Les textes sont précédés d'une table de pointeur, les pointeurs ont un offset selon le début de leur table de pointeur, qui indique le début des textes, ... Et des pointeurs en bas de fichiers qui indiquent les positions des différents chapitres du jeu, ...
On trouve quelques bizarrerie dans le fichiers, des textes issues d'une démo du jeu, ... J'ai vu que la VF original contenait des portions du niveau de Nimdok... En espagnol... (la VF original serait-elle une traduction Anglaise -> Espagnol -> Française ?)
Et soudain arrive la fin du jeu... Le dernier chapitre... Et là se pose la question, que ce passe-t-il quand une table de pointeur 16bits doit regarder au-delà de 0xFFFF ?
Hey bien... On se retrouve avec 2 tables de pointeurs côte à côte... et après cette bascule on s'attends à ce que l'offset ait pris un +0x10000 , globalement c'est ce que fait la ScummVM pendant sa lecture (tout en considérant que si elle voit le moindre pointeur regardé en arrière par rapport au pointeur précédent, alors elle estime qu'il faut envoyer +0x10000 à l'offset...)
Cependant... Je n'ai pas le code source du binaire du jeu... Mais je sais que ce n'est pas vraiment la même logique que celle interprété par la ScummVM...
Pour le binaire, le fait qu'un pointeur regarde en arrière n'est pas le signal que l'on a changer de table (et heureusement), concrètement le jeu sais basculé d'une table à l'autre, mais à quelques moments, alors même qu'il affichait des textes aux 2ème offset, il va chercher ce que cible les pointeurs... avec le premier offset... et nous envoyer un peu de bouillie à l'écran le temps de 2 répliques. (c'est le glitch que j'ai connu dans la v1.0 du patch).
Je pense que changer de table "trop tôt" cause le soucis avec le binaire d'origine, car si le jeu a bien charger la table du nouvel offset, le moment où Surgat s'apprête à parler, le jeu oublie qu'il est à cet offset et repart sur le premier. Alors comme je n'ai pas la main sur l'ordre des pointeurs qui sont lu/... pour réorganiser tout ça... Je me suis dit instinctivement (même si tout sur la ScummVM tendais à dire "NON" à l'idée): "Et si... Je supprimais tout ces textes doublonnés et que les pointeurs dans ces cas là ne pointe que sur le premier texte, même si il se situe avant, au sein du même offset"... Une idée géniale, pas besoin de charcuter la traduction, et ça a réglé mes soucis sur la DOSBox! Inversement, comme c'était prédictible... La ScummVM n'a pas aimé et perdait des textes dans tout les sens à ce niveau tout en m'affichant une vague d'erreurs dans un terminal...
Ainsi, j'ai repris ma logique sans déduplication pour faire la forme ScummVM du patch, et j'ai appliqué cette déduplication pour les autres versions.
Comment j'ai traduit le gros du jeu ?
Deepl (concrètement c'est un service de traduction en ligne, qui s'aide un peu d'IA et s'en sort beaucoup mieux que ses rivaux en général)
J'ai passé pas mal de temps à relire (plusieurs fois), corriger, ... Je ne suis pas certains que ma traduction soit parfaite (je suis plus orienté techniques que littérature on va dire, même si j'ai une très bonne compréhension de l'anglais), puis finalement j'ai sortie la version 1.1 de la traduction que vous pouvez trouver ici.