BACCYFLAP.COM

"digitising" game boy
camera photographs

with the Somagic EasyCapture
for *buntu Linux
The Nintendo Game Boy Camera is a device that can be inserted into the cartridge slot of any Nintendo Game Boy (or original Nintendo DS) to take monochrome, 128×112px pictures in the four-shade palette of the original Game Boy. It was sold for only four years, from 1998 to 2002.

The camera holds a maximum of 30 pictures after unlocking all the features through the mini games, so you get about a 35mm film roll's worth of tiny pictures before they have to be offloaded somewhere... which is no mean feat. You can't just use a link cable and save them somewhere, you can't insert SD cards - so what do?

Methods exist, the most ready-made being the BitBoy, which allows the user to save images pixel-for-pixel to an SD card by using the print function originally intended for the Game Boy Printer accessory. But as the BitBoy is a bit too pricy for us urchins, we use a more complicated and imperfect pipeline to capture our images, all the while having at least as much fun as the rich kids.

The method described below works on Linux systems, though it involves a capture card dongle that was made for Windows systems. If you're on Windows, just follow the instructions that come with the EasyCapture device and you can do essentially what we're doing here - alternatively, you can use this opportunity to make the switch to a Linux-based system. Come play with us.

hardware you'll need

If you're patient and a little bit lucky, the acquisition of these physical parts won't break the bank - I recommend eBay, or your local equivalent. You can be all set for less than 40 US dollars.

Here's how it's going to work: you'll insert the GBC into the SGB and the SGB into the SNES. You'll then attach the SNES to the capture card and the capture card to your PC.

schematic of Game Boy Camera going into Super Game Boy, Super Game Boy going into SNES, SNES being attached to capture card and capture card being plugged into PC

Like this (it'll look a bit different for North America, where a redesigned SNES and SGB were sold). Keep in mind you'll need a SNES controller to use the camera and open the pictures in it.

software you'll need

To make things super easy for you, I've made a cheeky little zip file that you can unpack, and after running a few lines of codes, you'll be good to go.

download software

for Ubuntu, 846 kB
Note that the somagic-capture package comes with a readme that details its usage, so you can play around with it yourself, if you're so inclined. Download my complete package or download the required files from the links above (better, as you can check the signatures and make sure I'm not trying to hack you). Unwrap the zip or place all the downloaded files into a working directory called Easycap-master. Then do this:

  1. open a terminal and navigate to the directory:
    cd Easycap-master
  2. install firmware:
    sudo cp ./somagic_firmware.bin /lib/firmware/somagic_firmware.bin
  3. install dependencies (for *buntu, will differ depending on your package manager):
    sudo apt install gcc make libgcrypt20* libusb-1.0-0 libusb-1.0-0-dev debhelper devscripts
  4. install more dependencies from the debian files:
    sudo dpkg -i multiarch-support_2.29-0ubuntu2_i386.deb
    sudo dpkg -i libgcrypt11_1.5.3-2ubuntu4_i386.deb
    sudo dpkg -i libgcrypt11-dev_1.5.4-3+really1.8.4-3ubuntu1_i386.deb
  5. now install the capture software:
    cd somagic-easycap_1.1
    make && sudo make install
    it may complain about some stuff; pay it no mind.

capturing

First attach your SNES with SGB and GBC to a television to make sure it works. It may take some blowing into cartridges and contact cleaning to get it all running. Once you're sure it does, hook up the SNES to your capture card and your capture card to the PC, turn on the SNES and run:
somagic-init
It should return nothing if it works. If it tells you the device isn't hooked up, try reconnecting, try different USB ports, reboot, et cetera.

Now you can view the video stream in VLC Media Player:

sudo somagic-capture --cvbs-input=1 --pal | vlc --demux rawvid --rawvid-fps 30 --rawvid-width 720 --rawvid-height 576 --rawvid-chroma=UYVY -
Change --pal to --ntsc or --secam depending on the colour system used in your region. Look at that, you're playing Nintendo on your computer! If it doesn't work, try turning the SNES off and on, or re-initialising the stream.

As our pictures are monochrome and the SGB has some colour emulation settings, if your pictures appear in colour, press START+SELECT simultaneously and repeat until the display is black and white. Look here for a complete guide to the SGB.

After doing this and once the GBC has booted up, use your controller to select 'SHOOT' and then 'CHECK' to view your photos.

screenshot of direct feed from Super Nintendo, showing a picture of someone playing a guitar

In this screen, select a photo, wait a second for the little cursor at the bottom to disappear, and then on your PC while in VLC, hit Shift+S on your keyboard to take a screenshot. Go to the next picture, wait, hit Shift+S. Keep doing this until you've screenshotted all of your pictures. VLC usually saves them to your home directory.

fixing your photos

The pictures look bad and they need cropping. Were we dumb, we'd now edit every individual image in GIMP and endlessly crop, stretch and level our fingers to the bone - but we're not dumb, we're smart. So we place all of the images in a folder, open up a terminal, navigate to the directory with cd, and run this:
ls | cat -n | while read n f; do mv "$f" `printf "%03d.png" $n`; done
Which changes the filenames to a numbered list. No real reason for this other than neatness. Now for the real magic:

mkdir out | for f in *.png; do convert $f -crop 325x225+192+167 +repage -grayscale rec709luma -resize 325x281\! -level 15%,97%,1.6 -unsharp 0x2.75x0.5x0.0015686 out/$f; done
Lo, for a folder called out has appeared! And what's more, it contains beautiful, sharp, correctly proportioned Game Boy Camera images! A wonder of computing.

cropped, stretched and leveled game boy camera picture of someone playing a guitarcropped, stretched and leveled game boy camera picture of the author's facecropped, stretched and leveled game boy camera picture of a human face

And that's it, friend. It isn't pixel perfect and the process is a bit messy what with analog signals and dodgy capture cards, but it gets the job done. Enjoy!