La traduction française de Zelda: Link’s Awakening a un charme particulier. Le texte de Véronique Chantel est plein de rimes, raccourcis, bizarreries et étrangetés, qui collent parfaitement à l’esprit « Twin Peaks » du jeu. Tout cela en respectant les contraintes techniques de la Game Boy, qui obligeait par exemple le texte français à être à peu près de la même longueur que le texte anglais ou japonais – d’où la nécessité de faire passer les informations essentielles en peu de mots.
« Vis ta vie ! Sois un peu plus motivé ! » Ce pêcheur m’a longtemps fasciné.
Mais le texte français comporte malgré tout une imperfection : les lettres majuscules n’ont pas d’accent. C’est dommage, car au delà de la lisibilité, le sens de certains mots change parfois en fonction des accents : « OEUF SACRE » n’est pas la même chose que « OEUF SACRÉ », ni « NAUFRAGE » que « NAUFRAGÉ ».
Un Œuf Sacre, c’est quand même pas la même chose.
Cette omission est dûe à un compromis technique.
Pour chaque traduction, les programmeurs du jeu ont ajusté le code du jeu aux nécessités typographiques de chaque langue. Par exemple, la version japonaise permet d’afficher des diacritiques sur certains caractères ; et la version allemande gère les lettres comportant des trémas. Et le code utilisé pour afficher les diacritiques sur les lettres majuscules peut utiliser au maximum deux signes différents (par exemple un tréma et un accent).
Mais le script français aurait besoin de trois accents : aigu, grave et circonflexe. Plutôt que de passer un temps précieux à supprimer cette limitation, l’équipe de traduction a donc préféré désactiver la gestion des accents sur les majuscules. Vu les contraintes de temps de développement, on les comprend.
Toutefois, en explorant le script français, il s’avère qu’une unique ligne de texte comporte une majuscule sur un accent : il est écrit « NAUFRAGÉ ». Et de fait, dans les graphismes stockés en mémoire, on trouve bien deux accents : ◌́
et ◌̀
.
Comme la gestion des diacritiques est désactivée pour le français, dans le jeu cette lettre est simplement affichée comme un « E » majuscule, sans accent. Mais cette lettre est un vestige des tentatives d’intégrer la gestion des diacritiques à la version française, avant que soit finalement entérinée l’absence d’accents sur les majuscules.
Heureusement, en utilisant le code-source restauré de Zelda: Link’s Awakening, il est possible de compiler une version française qui ré-active la gestion des diacritiques. Cela permet à cet accent de s’afficher dans le jeu.
Cet accent, désactivé dans le jeu original, n’avait pas été vu depuis 29 ans.
En modifiant le reste du texte, pour ajouter des accents aux autres majuscules, il devient alors possible d’afficher des accents sur toutes les majuscules du jeu !
Toutes ? Presque. La limitation technique originale, qui empêche de gérer plus de deux types d’accents, est toujours présente. Comme les accents aigus et graves sont déjà présents, il manque l’accent circonflexe – ce qui empêche d’écrire un mot comme « POISSON-RÊVE ». Fâcheux.
La solution serait de trouver un espace inutilisé dans la mémoire graphique où stocker les pixels de l’accent circonflexe. Ce n’est pas simple : sur la Game Boy, la mémoire graphique est très limitée – et les accents doivent occuper le précieux espace des graphismes qui sont chargés en permanence en mémoire.
Comment faire ? Après quelques recherches, il s’avère qu’un emplacement n’est utilisé par le jeu que lorsque l’inventaire est ouvert. Il serait donc théoriquement possible, quand le jeu ouvre l’inventaire, de remplacer l’accent circonflexe par le graphisme dont l’inventaire a besoin – puis de restaurer l’accent circonflexe à la fermeture de l’inventaire.
Et ça marche ! Grâce à cette astuce, il est maintenant possible d’afficher les trois types d’accents dans le jeu.
Avec de bon yeux, on peut voir dans la mémoire graphique l’accent circonflexe être remplaçé par un autre symbole lorsque l’inventaire s’ouvre.
Il est donc enfin possible d’afficher correctement le texte ci-dessous :
Hourra !
Un autre souci de la version originale est que les e-dans-l’o est affiché comme deux lettres séparées. Le jeu affiche donc par exemple « Coeur » et « Oeuf », sans faire la ligature.
Techniquement, il est relativement facile d’ajouter un caractère supplémentaire à la fonte du jeu. Reste à dessiner le nouveau caractère dans une police similaire à celle du jeu – ce qu’a fait avec brio merwok sur Discord.
Une fois ce nouveau caractère intégré, on peut facilement afficher le mot « cœur » correctement.
Haut les cœurs !
Le cas du « Œ » majuscule est un peu plus délicat : chaque lettre doit s’inscrire dans une case de 8x8 pixels – et le Œ majuscule est un peu trop large pour ça.
Heureusement il est possible d’ajouter à la fonte non pas un, mais deux caractères supplémentaires – ce qui rend donc 8x16 pixels disponibles pour dessiner la majuscule correctement.
Ce « Œ » utilise deux tuiles de 8x8 pixels.
Le résultat, c’est le mod le plus futile de tous les internets.
Zelda: Link’s Awakening Turbo-Français ajuste le script français de Zelda DX, pour ajouter des accents et des ligatures partout où cela est nécessaire. Parfaitement in-dis-pen-sable pour les fans français du jeu.
Vous pouvez télécharger :
Pour celleux que ça intéresse, le code-source de ces modifications est également disponible.
Bon jeu !