Photographing an old bridge with the Game Boy Camera

The following is a description of how I created a series of silver gelatin prints from Game Boy Camera photos in my home darkroom. It’s a project that initially began as an attempt to archive photos on my childhood Game Boy Camera, but it quickly spun out of control as I pondered the possibility of bringing those images into the analog realm. To my knowledge this exact process has not been attempted before, but I encourage anyone who is interested to try it themselves and perhaps even improve upon it!

A Bit of Background

In 1998 Nintendo released the Game Boy Camera — a digital camera module for the popular Game Boy video game system which could swivel 180° and capture 128×112 pixel (0.014 Megapixel) 4-color greyscale images. The Game Boy Camera was not only one of the earliest consumer digital cameras, but according to Guinness it was also the world’s smallest digital camera at the time of its release.

The Game Boy Camera was undoubtedly a groundbreaking toy, but it did have one major limitation. The unit could only store up to 30 images at a time and Nintendo offered no official method for downloading those images to a computer. Instead, Nintendo sold a Game Boy Printer accessory which could print the camera’s images onto small pieces of thermal paper with an adhesive backing. This allowed children to create fun stickers from their original photos, but thermal paper prints are known to fade over time and therefore have no archival value.

One expensive solution to the image storage / archiving problem was to treat Game Boy Cameras like individual rolls of film. Each time you filled a Game Boy Camera with 30 meaningful photos you could put it away somewhere safe and purchase a new one. This may have seemed like a perfectly acceptable solution at the time, however this was never a good long-term solution due to the method Game Boy Cameras used to store their data.

Game Boy cartridges predate the use of modern flash memory, at least in inexpensive consumer products, and instead used battery-backed volatile random-access memory (RAM) to store user data such as game saves. The Game Boy Camera was no different and used a small internal battery to preserve the data saved in its RAM — including photos. These internal batteries generally only had a lifespan of 10-15 years, although some (like mine) have lasted much longer, but once they are depleted the cartridge’s stored data is lost forever.

Part I: Spoofing the Game Boy Printer

Because the Game Boy Camera was only designed to interface with the Game Boy Printer, I first needed to find a device to trick the camera into thinking it was communicating with a printer while simultaneously converting the camera’s data (which is not stored in a standard image format) into something my computer could understand. An Arduino Nano turned out to be just the device I needed to accomplish this task, along with Brian Khuu’s open-source Game Boy Printer emulator which I downloaded free from GitHub. I also needed a GBC Link Cable (which plugs into the Game Boy’s EXT. port), and for that I was able to source an inexpensive clone on Amazon.

Once my brand new GBC Link Cable arrived I immediately cut it down to my desired length and probed it with a digital multimeter to determine which wires led to which contacts in the connector. This was necessary because not all of these cables use the same color of wires inside, and the colors leading to the connectors actually differ depending on which end of the cable you are looking at. Once the wires for each of the connector’s contacts were properly identified I fired up my soldering station and soldered the GBC Link Cable’s wires to the appropriate pads on my Arduino Nano board. I had an old Altoids Smalls tin lying around and that turned out to be the perfect size for an enclosure.

GBC Link Cable connector (left) showing the Arduino pinout / My Arduino Nano in a homemade Altoids enclosure (right)

Part II: Transferring the Images to Mac

With the GBC Link Cable soldered to the Arduino Nano I was ready to download the free, open-source Arduino Software onto my Mac. This Software was needed in order to upload the Game Boy Printer Emulator code to my Arduino Nano board via USB. It took me a minute to figure out how to actually load the emulator into the Arduino Software, but it turned out to be as simple as opening (File > Open) the file entitled “GameBoyPrinterEmulator.ino” from the folder containing all of the downloaded emulator files. The emulator code opened in a new Arduino Software window, and once the Arduino Nano was plugged into my Mac with a USB cable I was able to push the code to it by clicking the ”Upload” button in the top left corner of the window.

The next step was to open the Serial Monitor window (Tools > Serial Monitor) from within the Arduino Software and make sure the baud rate was set to 115,200 baud in the dropdown menu at the bottom right of the window. The Serial Monitor is where the emulator dumps the raw Game Boy Camera data as a string of hex.

Transferring an image from Game Boy Camera to Macintosh via Arduino Nano

With my Game Boy turned on and plugged into the Arduino Nano, and and the Arduino Nano plugged into my Mac via USB, I navigated to an image in my Game Boy Camera’s built-in photo album and selected ”Print.” The Game Boy screen immediately displayed the words “Transferring” and numbers began rapidly appearing and scrolling within the Serial Monitor window. Once the transfer was complete, I copied the string of numbers that appeared in the Serial Monitor and opened the file entitled “gameboy_printer_js_raw_decoder.html” (located within the emulator folder). The decoder file opened as a website with a giant text box where I simply pasted the raw data from the Serial Monitor, clicked the button labeled ”Update” and then once my image appeared clicked “Download PNG.” I chose PNG because the JPEG option produced an image that seemed too compressed to create a clean negative.

Part III: Creating a Negative and Printing it in the Darkroom

Now that I had a PNG file of a Game Boy Camera image on my computer, creating a digital negative was as easy as using the Invert function in Adobe Photoshop (Image > Adjustments > Invert). Now I just had to figure out how would I transfer that digital negative to a sheet of photographic paper. I remembered back in school that teachers would photocopy pages from textbooks and worksheets onto transparency film to display on a screen with an overhead projector. I figured that sort of printer-friendly transparency film must still be on the market, and after a bit of searching I stumbled upon Apollo Quick-Dry Universal Ink Jet Transparency Film. It wasn’t cheap, but it turned out to be exactly what I needed.

The last thing to figure out was how I would transfer the physical negative I was about to print onto photographic paper. At first I considered printing a small negative the size of a 35mm frame and projecting it onto the paper through my photo enlarger’s lens, but I worried that my inexpensive HP ink jet printer might not be capable of producing such a small image at an acceptable resolution. After some consideration I decided to create an 8½” x 11” document in Photoshop, import my digital Game Boy Camera negative as a layer, scale it to my desired size and print the document onto the transparency film. This allowed me to place the transparency directly on top of the photo paper and flash it with light to create a contact print.