raphnet.net banner

gbcam2png: Conversion des photos de la Game Boy Camera au format png

twitter@raphnetlabs
Contenu: Introduction | Outil Javascript/html5 | Outils en ligne de commande | Ma méthode pour lire la RAM | Un survol rapide des autres méthodes

Introduction

La Game Boy Camera est un périphérique pour Game Boy qui permet de prendre des photos en basse résolution (128 x 112, donc seulement 14 kilopixels) en noir et blanc avec 4 niveaux de gris (donc 2 bits par pixel). Un maximum de 30 photos peut être stocké à l'intérieur de la cartouche, dans une mémoire RAM de 128K, alimentée par une pile de sauvegarde.

Il existe différentes techniques (voir la mienne) permettant de lire le contenu de la RAM de la cartouche vers un fichier sur un PC.

Une fois ce fichier de sauvegarde en main, il faut en extraire les images à l'aide d'un logiciel. J'ai trouvé un logiciel prévu pour cela, nommé GBCameraDump, mais pour Windows. Il fonctionne sans difficulté dans Wine et permet de récupérer les images dans un format .BMP.

Malgré cela, il m'a plu de faire mon propre outil pour extraire les photos, un outil en ligne de commande fonctionnant sous Linux et générant des images .png.

Ensuite, un peu inspiré par cet Éditeur de carte mémoire N64 en javascript fonctionnant dans un navigateur web, et voulant jouer un peu avec les canvas html5, j'ai réalisé un deuxième outil d'extraction de photo, cette fois en Javascript/HTML5!

Voici quelques photos prises avec la caméra pour Game Boy. Les couleurs sont celles obtenues lorsqu'on utilise la caméra avec le Game Boy player (sur Gamecube).


goto top


Outil Javascript/html5

La version Javascript/HTML5 s'exécute dans votre navigateur web (entièrement localement) et vous permet de sélectionner un fichier de sauvegarde sur votre PC.

Fonctionnalités: Exemples des différents thèmes:
Noir et blanc

Noir et blanc

Game boy

Game boy

Game boy player

Game boy player





L'outil est disponible ici: gbcamtool_fr.html

goto top


Outils en ligne de commande

La version en ligne de commande offre davantage que la version Javascript, mais il faudra la compiler pour votre système.

Fonctionnalités:

Utilisation

Obtenir de l'aide avec -h

  Options:
    -h              Display this help text
    -i index        Source image index (first image is 0). Default: 0
    -g              Use gameface as source photo
    -o output.png   Export a single photo to a .png file
    -b basename     Export all photos to png files, using the specified basename
    -d              Display selected photo (see -i) to the terminal
    -l              List photos in save file
    -a              Also export deleted photos
    -s              Export/display small photos (32x32) intead of large photos (128x112)
    -v              Be verbose

Lister les photos (voir lesquelles sont actives ou effacées)

./gbcam2png source.sav -l

Extraire une photo (index 0) vers un fichier .png

./gbcam2png source.sav -i 0 -o output.png

Extraire toutes les photos vers plusieurs fichiers .png

./gbcam2png source.sav -b test
Pour chaque photo active (c'est à dire, qui n'a pas été effacée) un fichier nommé testXX.png (où XX correspondra à l'index de la photo, compté depuis 00) sera créé.

Extraire toutes les photos, même celles qui sont effacées

./gbcam2png source.sav -b test -a

Afficher une image dans un terminal (-d)

Comme il s'agit d'images d'une résolution assez basse, cet outil peut les afficher dans un terminal en contrôlant la couleur d'arrrière plan des cellules (par des codes ANSI/VT100). Il faut toutefois utiliser une police d'écriture très petite, et les « pixels » sont rectangulaires...
./gbcam2png source.sav -i 15 -d



Ce projet est aussi disponible sur GitHub!
Pour suggérer de nouvelles fonctionnalités, signaler un problème ou contribuer au projet, vous pouvez m'écrire ou utiliser le dépôt GitHub:
https://github.com/raphnet/gbcam2png

goto top


Ma méthode pour lire la RAM

L'adaptateur N64 à USB que j'ai développé, combiné avec un logiciel de gestion côté PC, supporte le Transfer Pak pour N64. Avec le Transfer Pak, il est possible de lire ou écrire la mémoire de sauvegarde de plusieurs types de cartouches de jeu Game Boy.

Depuis la version 2.1.14, le logiciel de gestion peut également lire/écrire la mémoire de sauvegarde de la Game Boy Camera.

J'utilise le matériel suivant:
Adaptateur N64 à USB raphnet V3

Adaptateur N64 à USB raphnet V3

Manette N64

Manette N64

Transfer Pak

Transfer Pak

Game boy camera

Game boy camera



Voici les éléments en action:
Adaptateur USB, Manette, Transfer Pak et Caméra

Adaptateur USB, Manette, Transfer Pak et Caméra



Pour lancer la lecture de la mémoire RAM, il suffit d'accéder au menu Transfer Pak -> Read cartridge RAM to file... et de nommer le fichier cible.



La lecture se terminera en moins d'une minute. Il s'agira ensuite d'utiliser l'outil de votre choix pour extraire les images de ce fichier de sauvegarde.

goto top


Un survol rapide des autres méthodes

Il existe plusieurs autres manières pour récupérer les images: Il faut noter que passer par l'imprimante (une vraie ou en émulation) a l'avantage que le cadre des photos sera présent.

goto top


Les marques de commerce utilisées dans ce site appartiennent à leurs propriétaires respectifs.
Copyright © 2002-2018, Raphaël Assenat
Site codé avecSite codé avec vimDernière mise à jour: 31 octobre 2018 (Mercredi)