Pages

Wednesday, February 13, 2013

How to transfer photos from a Game Boy Camera to a computer (in Linux)


A few days ago, I found a Flickr group thread that was prac­ti­cally beg­ging for my input. It read some­thing like “Hey Everett, you’re sur­pris­ingly enough not the only per­son out there with these two inter­ests (one obscure and the other semi-so). Would you be will­ing to help out quite pos­si­bly the only other per­son in the world who cares about these things?”
Not only was I like, “Heck  yeah!,” but I decided that this was wor­thy of blog­ging, in case a third indi­vid­ual hap­pens to develop these inter­ests. (If this is you, welcome!)
So, in case you find your­self want­ing to get crappy pho­tos—a term I use most affec­tion­ately — like these:
  
off of one of these:
red Game Boy Camera
and you use Linux:
(I kid!)
…like I do, read on.
The hard­ware I’m using to down­load pho­tos over USB is Smart­Boy USB car­tridge reader (which is made by these peo­ple). And there just so hap­pens to be a great open-source pro­gram for facil­i­tat­ing this task using this device (or a sim­i­lar car­tridge reader): gbcflsh.
So what’s the prob­lem? gbcflsh is only dis­trib­uted as source, and the source fails to com­pile under recent releases of Ubuntu. I con­tacted the devel­op­ers of gbcflsh, and one gave me some sug­ges­tions for fix­ing the source code. They have yet to pub­lish the fixed source, so I’ll doc­u­ment how I got it to compile.
(If you don’t care about this, just grab the binary I made: gbcflsh32-bit, 1.1 MB, md5sum: 85b185706c3d5fe45b7787787f8510bd)
  1. Down­load and extract the source code.
  2. Install the fol­low­ing pack­ages:
    gcc 4.3.3, qt4-dev-tools, libftdi-dev
  3. Focus on the fol­low­ing files:
    src/Logic.cpp
    src/ReadFlashThread.cpp
    src/ReadRamThread.cpp
    src/WriteFlashThread.cpp
    src/WriteRamThread.cpp
  4. Add the fol­low­ing to the bot­tom of the #include sec­tion of each file:
    #include <cst­dio>
  5. That’s it! Com­pile it like you already know how to do (which I won’t get into here).
gbcflshWhen you run gbcflsh (you’ll need to do so as root, by the way), it’ll look a lit­tle bit like what you see to the right. Select the vis­i­ble options (USB, Auto, Ram: 128KB) and click “Read RAM.”
If all goes well, you’ll end up with the con­tents of your camera’s RAM in the form of a .sav file. Great! The hard part is behind us, but we’re not quite done yet.
Next, you’ll need a pro­gram that will extract pho­tos from the save file. I believe there are a few, but they all seem to be for Win­dows. For­tu­nately, the one I use works per­fectly under WinegbcameradumpIt’s called GBCameraDump.exe, and it can cur­rently be foundhere. Down­load it, run it via Wine and select the .sav file you got from gbcflsh. You’ll have some­thing that looks like this screen­shot (except hope­fully with bet­ter photos).
I would also advise you to — if this sort of thing mat­ters to you — check the order of the saved images. They’re likely to be out of order due to, it seems, the way Nin­tendo decided to han­dle the sav­ing of images to the car­tridge. (Also, you’re likely to find some pho­tos you thought were deleted, which may come as a surprise.)
So there you have it: how to get pho­tos off of this cam­era of the past, using the oper­at­ing sys­tem of the (sigh) future.

No comments:

Post a Comment