Gameboy ROM Backups Using An Arduino

gameboy_cart_reader

[Alex] collects retro gaming consoles. One day while playing a SNES title, his save games got wiped when he powered off the system. It turned out that the battery inside the game cartridge got disconnected somehow, and it got him thinking. He decided he wanted to find a way to back up his save games from the cartridges for safe keeping.

While cart readers exist, he says that they are hard to find nowadays, so he decided to construct his own using an Arduino. SNES cartridges are relatively complex, so he opted to focus on Gameboy cartridges for the time being. Before attempting to back up save games, he first chose to learn how to communicate with the cartridges in general, by reading the ROM.

He breaks the cartridges down in detail, discussing how they are constructed as well as how they can be addressed and read using the Arduino. He was ultimately successful, and offers up code as well as schematics on his site for any of you interested in doing the same. We imagine that save game reading (and perhaps editing) will likely happen in the near future.

Check out the video below to see his cart reader in action.

[youtube=http://www.youtube.com/watch?v=7u8_dlGbvoA&w=470]

23 thoughts on “Gameboy ROM Backups Using An Arduino

  1. Two comments.

    First of all – this is an awesome hack.

    Secondly – ROM emulators work much better and support far more features, are less prone to hardware failures (such as a dead or disconnected battery) and allow you to carry around tens of thousand of titles on the space of a microSD chip.

    So I love the idea but I just don’t get the practicality now that ROMs are so widely available.

  2. @CutThroughStuffGuy

    While I, being too young to actually own many of the retro consoles such as a SNES, I can see why he’d rather play the games on the original console.
    It really is a different experience to play it on the console then on the computer. It just feels more authentic.

  3. I don’t disagree that you get the most authentic experience with original hardware but you get 99.9999% of the experience with plenty of advantages (save states, rewind, TAS, movies, huge libraries, less bulky, cheaper, various display sizes, open source friendly, ability to hook up authentic controllers, the list just goes on and on) and really almost none of the disadvantages (bulky hardware, batteries, hard to read screens, gigantic games, increased loading times, less portable, etc). Every so often you get emulation artifacts but those are rare already and once we decompile entire chips at the literal physics based gate level and program emulators that can handle literally every single PHYSICS based emulation state then you pretty much have a perfect virtualization at that point – which is almost where we are now with some of the early gaming consoles.

    Work is underway to do that for the NES’s (and other consoles) MOS 6502 chip (and graphics/sound as well) already. It has been done in Java, now we just need to speed it up by a few orders of magnitude to make it truly useful as a 1:1 virtualization tool.

    http://en.wikipedia.org/wiki/MOS_6502

    http://www.visual6502.org/

  4. Simple, strictly speaking you can only legally have a ROM of a game (Well at least in the US) if:
    1. You own a physical copy of the game in question
    2. You dump the ROM YOURSELF from your own cart

    While strictly speakinng I doubt only the most anal retentive judges would care about reason 2 due to the fact that dumping kits are REALLY expensive and the fact that it IS a backup of your game but strictly speaking this is the only legal way of getting ROMs.

    Besides, if you had a really rare game game you could back it up and have it around forever and if you don’t really give a shit about the specifics of dumping put it on the internet… tthough IIRC I think that the GoodGBC set has all known gameboy games dumped already.

  5. It was but in order to do that, he had to back up the ROMs first (to read saves, you have to read the cart).

    I suppose this would be useful then for backing up saves from physical games to convert them to emulated games as well as ROM dumping. Don’t misunderstand – this is a great hack. I just don[t personally think using older hardware has any advantages over emulated hardware. Your mileage may vary.

  6. @Anonymous

    Cycle-exact emulators beat playing “on the real thing” because they are a ton easier to just play and accurate enough that you wouldn’t notice the difference.

    @CutThroughStuffGuy

    You don’t have to dump the ROM to dump the save IIRC.. you can look at the ROM to work out what save type it is though.. the main issue is writing code to handle all the different save types.

    @Thread

    >>While cart readers exist,
    >>he says that they are hard to find nowadays,

    He hasn’t looked hard enough.. I bought readers and flash carts for the gb after about two minutes of google. There are USB carts floating around at the moment.

    >>We imagine that save game reading (and
    >>perhaps editing) will likely happen in
    >> the near future.

    Yeah, only you’re a decade or so too late.