Le Game Boy Printer : comment imprimer l’image de son choix

Avec le Game Boy Camera, Nintendo avait proposé une imprimante. Et si on essayait d’imprimer un truc de notre choix ?

220px-Game_Boy_Printer

Pour imprimer avec le Game Boy Printer depuis un ordinateur, il y a la solution de Furrtek.org. C’est propre, mais il faut un PC et savoir souder.

Ma solution nécessite la même chose que pour lire des images de Game Boy Camera : un Game Boy Camera, une cartouche flash, une cartouche Mega Memory et bien évidemment un Game Boy Printer et son câble.

Première chose, il faut dumper une sauvegarde de Game Boy Camera qui contient (au moins) une image. Je vous conseille d’aller lire l’article précédent pour le faire.

Maintenant, on va modifier cette sauvegarde : le but est de placer l’image de notre choix dans la sauvegarde.

La structure des sauvegardes est simple : on a quelques informations suivies des photos, stockées sous la forme de tile Game Boy. C’est le format utilisé pour les éléments dans les jeux Game Boy et — bonne nouvelle — c’est documenté.

Pour mettre une image, on a donc besoin d’une image à convertir et éventuellement de sa miniature. L’image principale doit faire 128 x 112 pixels, idéalement en niveau de gris. La miniature doit faire 32 x 32 pixels. J’utilise des GIF, mais n’importe quel format doit passer.

journal

pomme

Maintenant, on va convertir ça en format tile. Bonne nouvelle, des sites proposent de le faire en ligne, ça évite le programme dédié sous Windows.

On a besoin uniquement des Tile Data sans les préfixes. Une fois qu’on a les données pour les deux images, on les sauve dans un coin, sans les ,. Pour la miniature, ça donne ça :

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 30 18 30 78 F8 70 E0 F0 C0 E0
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 01 01 01 01 03 03 03 03 03 03 03
22 1C FF 7F FF FF FF FF FF FF FF FF FF FF FF FF
E2 1C FF FF FF FF FF FF FE FF FF FE FE FE FE FE
00 00 80 00 C0 80 00 80 00 00 00 00 00 00 00 00
03 03 03 03 01 03 01 03 01 01 00 01 00 00 00 00
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 7F
FE FE FF FE FF FF FF FF FF FF FF FF FF FF FF FF
00 00 00 00 80 00 C0 80 C0 C0 C0 80 80 80 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3F 7F 1E 3F 08 00 00 00 00 00 00 00 00 00 00 00
FE FF BC 7E 08 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Maintenant, on a besoin d’un éditeur hexadécimal, on va aller modifier les images déjà présentes dans la sauvegarde par nos images.

La photo numéro est représentée par les adresses 2000 à 2DFF dans la sauvegarde, alors que la miniature va de 2E00 à 2EFF. La seconde photo va de 3000 à 3DFF, la troisième de 4000 à 4DFF, etc. Il y a 30 photos au maximum dans une sauvegarde.

Avec un éditeur hexadécimal, il faut donc remplacer les données de 2000 à 2DFF par celles de notre image et sauver le fichier.

Avant d’envoyer l’image dans le Game Boy, on peut la tester avec ce site pour vérifier qu’elle fonctionne correctement.

Ensuite, il faut envoyer la sauvegarde dans la cartouche flash avec cette commande.

./ems-flasher --write test.sav

Puis transférer la sauvegarde de la cartouche flash à la cartouche Mega Memory et enfin de la cartouche Mega Memory au Game Boy Camera.

Une fois que c’est fait, l’image devrait être visible dans le programme du Game Boy Camera et il suffit de l’imprimer de façon tout à fait classique.

Une capture dans un émulateur

Une capture dans un émulateur

C’est un peu fastidieux, mais ça fonctionne, voici quelques exemples. Le papier utilisé est un ticket de caisse, le papier thermique original vieillissant mal, j’en parlais hier.

IMG_2536

IMG_2537

IMG_2541