Zelda: Link’s Awakening Turbo-Français

14 novembre 2022

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.

Une capture d’écran du jeu, avec un pêcheur expliquant à Link « Sois un peu plus motivé ! »
« Vis ta vis ! 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É ».

Une capture d’écran du jeu, avec un texte « VAS VOIR L’OEUF SACRE », sans accent sur le E de sacré.
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.

Restaurer la gestion des accents

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.

Une capture d’écran du jeu, avec un dialogue « NAUFRAGÉ » avec un accent sur le E de naufragé.
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 !

Une capture d’écran du jeu, avec un dialogue « TOUT SUR L’ÉPÉE TOURNOYANTE » avec deux accent sur les E de épée.

Accents circonflexes

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.

Une animation du jeu, montrant l'accent circonflexe être remplacé en mémoire graphique lorsque l'inventaire s'ouvre.
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 :

Une capture d’écran du jeu, avec un dialogue « POISSON-RÊVE » avec un accent sur le E de poisson-rêve.
Hourra !

Gérer les ligatures

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.

Une capture d’écran du jeu, avec un dialogue « cœur » avec le e-dans-l’o affiché comme une ligature.
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.

Une capture d’écran du jeu, avec un dialogue « ŒUF » avec le e-dans-l’o affiché comme une ligature.
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 !

Une capture d’écran du jeu, avec un dialogue « Bon baisers de Kyoto! VÉRO ❤️ » avec un accent sur le E de Véro.

Kudos

Discussion, liens, et tweets

J’écris des sites web, des logiciels, des applications mobiles. Vous me trouverez essentiellement sur ce blog, mais aussi sur Mastodon, parmi les Codeurs en Liberté, ou en haut d’une colline du nord-est de Paris.