Les deux Easter Egg de Duke Nukem 3D sur Mac

Il y a quelques années, j’avais parlé des Easter Egg de Duke Nukem 3D sur Mac. Nicolas, il y a quelques mois, est venu me demander si je pouvais trouver les images de ces derniers pour les intégrer dans un mod (qui n’est pas encore disponible). Et ce n’était pas si simple.

Je commence par le plus simple, de fait : la vidéo de la publicité 1984. Elle s’active dans le premier niveau, dans le cinéma, en tapant DN1984.

Trouver la vidéo n’a pas été un réel problème. J’ai ouvert l’ISO du disque du jeu sur un Mac capable de lire le HFS (jusqu’à macOS Mojave) et elle se trouve dans /Music/1984. C’est juste un fichier QuickTime sans extension, donc on peut l’ouvrir avec QuickTime Player 7. Il contient de la vidéo en 88 x 48 à 15 images/s avec de l’audio en 8 bits, 8 kHz et mono. C’est extrêmement mauvais, mais ça passe. J’ai extrait le tout en H.264 en agrandissant un peu pour vous donner une idée, mais je vous mets quelques images en définition d’origine.



L’image du bureau de Mac OS

Le seconde Easter Egg est un bureau de Mac OS (enfin, System 7, je pense) affiché sur les écrans. A l’origine, je pensais qu’il serait dans le fichier .grp du jeu. Avec le moteur Build Engine de Duke Nukem 3D (et d’autres jeux), les données sont dans un fichier .grp, donc, et il existe des outils pour extraire les images. Mais après une (longue) vérification, rien. Je vous passe les recherches, ce n’est pas très intéressant, juste fastidieux. Enfin, si, trois images quand même : le Doom Guy et Itchy et Scratchy.

Le Doom Guy


Itchy et Scratchy


J’ai donc ensuite cherché dans les ressources de l’exécutable du jeu, sous Mac OS. C’est tout aussi fastidieux, mais après être passé par ResForge, j’ai pu trouver les fichiers qui contiennent les images spécifiques à la version Mac. Avec les outils Mac OS que j’ai essayé, sur un Mac d’époque, impossible d’ouvrir les images. Elles sont dans une section rawp et il est possible de les extraire avec ResForge. J’ai ensuite un peu joué avec des logiciels sous Windows (ImageHeat, ici) pour chercher des images, et la ressource Mystery semblait bien être l’image… mais avec des couleurs faussées.

Avec ResForge


Une image mal décodée

Après réflexion, j’ai supposé que c’était une image en 256 couleurs avec des couleurs indexées. Pour faire simple, alors qu’on travaille avec des valeurs en RGB en 2026 (sur 8 ou 10 bits par couleur), on utilisait des palettes dans les années 80 et nonante. En VGA, par exemple, on peut afficher 256 couleurs (8 bits) à l’écran, dans une palette de 262 144 couleurs (18 bits). En simplifiant, chaque couleur a une référence, qui correspond à une couleur en RGB. Si vous prenez les consoles des années 80, une Mega Drive peut par exemple afficher 61 couleurs dans une palette de 512 couleurs, etc. Si vous n’avez pas la palette, forcément, les couleurs sont faussées et c’était mon cas. Et pour une fois, un LLM a pu m’aider.

Je ne suis pas un grand fan de ChatGPT et les autres, mais sur de la technique, ça peut aider, surtout quand on sait à peu près ce qu’on cherche. ChatGPT a pu me proposer un convertisseur, et m’indiquer que la palette était dans le fichier .grp du jeu, ce qui est logique. Et donc une fois la palette trouvée, et avec un peu de tâtonnement pour la taille des images, la conversion en PNG a pu être effectuée. Le bureau de Mac OS mesure 96 x 96 et il y a aussi quelques images de crédits spécifiques à la version Mac et un logo du magazine MacUser pour la démo que j’ai utilisé comme base.

L’image recherchée


Une version agrandie


Des crédits




Le logo de MacUser, qui fournissait la démo

J’ai aussi trouvé un truc plus intéressant, mais ça va faire l’objet d’un second post, plus tard (oui, je fais du teasing).