An Open Hardware Sega Genesis Cartridge Dumper

You might be wondering why anyone would build device to dump Sega Genesis and Mega Drive cartridges. Perhaps they want to play their well-worn copy of The Lost Vikings on their phone, or they want to keep their QVC Limited Edition Maximum Carnage box set in near mint condition. Maybe. But we’re betting that [tonyp7] was just looking for a challenge, and as an added bonus, the world gets another cool open hardware gadget in the process. Sounds like a good deal to us.

Based on the ATmega324PB, the GenDumper can take those dusty old Sega cartridges and back them up to an image file on your computer. Right now the hardware depends on a Windows program, but according to the documentation, [tonyp7] is working on a platform-agnostic Python script so everyone can play along. What you do with the image file after you’ve dumped it is your business, but presumably loading it up in an emulator would be the next step.

Considering how easy it is to find ROMs for these old games online, do you actually need a GenDumper of your own? Probably not. But it’s still an interesting piece of hardware, and if you look close enough, you just might learn a thing or two from the design. For example, [tonyp7] shows how a relatively easy to work with 12 pin USB-C connector can be used on your USB 2.0 projects to embrace the new physical connector without diving into a full USB 3.0 implementation. The keen-eyed reader might also note there’s a lesson to be learned about finalizing the name of your project before sending off your PCBs for manufacturing.

A perusal of the archive uncovered a similar project from 2012 that, believe it or not, was also tested on a copy of Madden 96. Whether that means the game is so beloved that hackers want to make sure its preserved for future generations, or so despised that they are secretly hoping the magic smoke leaks out during testing, we can’t say.

24 thoughts on “An Open Hardware Sega Genesis Cartridge Dumper

  1. Yes, it may have been done a thousand times before and not have much “real world” purpose these days but it’s a job very well done and kudos to the guy for actually doing it instead of thinking “loads of people have already done this, what’s the point?”

    I’m just waiting for all the negative comments to come in…..

    Forget those, job well done sir!!

  2. Back when the first Sega Genesis came out, I bought one, and like most people, played games. Then, probably like most people here, I took it apart. I noticed that it had a 68000 processor, just like the Macintosh I had. I figured if I can read a game cartridge, I could perhaps figure out how the system worked.

    I designed a NuBus card that could be plugged into a Mac II (68020 processor) as a way to be able to access the entire memory space of a cartridge. I went so far as developing the source files used by ABEL to generate the fuse-burning files for the PAL chips I would use, but ended up discovering a product that had the NuBus interface already built and presented the user with an array of address and data lines. I only had to add a cartridge connector and dozens of color-coded wire wrap wires.

    Since the board allowed access to the entire cartridge as a contiguous chunk of memory, it was easy to use a debugger to examine the data and figure out how some of it worked.

    Soon I wrote a Pascal program for reading the cartridges and saving them to the hard drive, but the particular Pascal compiler I had only supported 16 bit types, which made working in a 32 bit address space a pain. I ended up getting a C compiler and, lacking books or the Internet (this was around 1991-92), I relied on a friend with USENET access and I taught myself how to write C by (a) getting it to compile and (b) looking at the 68000 code it produced. Not ideal :^)

    I got the idea to use a memory board from a Macintosh Portable (they had static RAM) as a way to run slightly altered versions of the original game code on the Genesis. While I was able to combine 4 cards into 1 using my company’s new US$40000 hot air surface mount rework station (they were excited someone was interested in it!), I ran into trouble with the battery backup circuit. Soon I discovered a ‘miracle’ solution… Intel had developed these new devices called ‘Flash ROM’, and for $50 I was able to buy two 68F020 chips. Further, back when I was taking apart cartridges to map out their pinouts, I discovered that the “Populous” one used two 8 bit wide ROMs instead of the more common (in the cartridge designs, at least) 16 bit wide devices. The wheels began to turn.

    My reader program was modified to write these new Flash devices, and perhaps the trickiest part was that there was a time-dependent aspect to the programming cycle. I don’t remember the specifics exactly, but one needed a short delay in the process. I wrote a short assembly loop to waste the time and verified it by using it in a loop that would toggle one of the data pins on my interface card while I monitored it with an oscilloscope.

    In the end this whole card design worked great (still does!) and was even expanded to 4 flash chips, stacked as sets of 2 on top of each other to share address and data lines with the chip select pins going to a custom address decoding PAL chip I burned. It even ended up with a 8 KB battery backed NVRAM device for saved games. This let me play “Dungeons & Dragons: Warriors of the Eternal Sun” with the best kit right from the start. ;^)

    Sorry that this ran so long, but few outside this community would appreciate it and I hope it was interesting.

    1. Write it up, take picks, and submit it here. : )

      Regardless, thanks for the input. I am doing my own cart writer and custom carts this second as well. I just happened to run into the whole flash vs sram problem you mentioned yesterday. Live and learn.

    2. That’s fantastic. This was especially fun for me to read, since “Dungeons & Dragons: Warriors of the Eternal Sun” was my favorite Genesis game, and the Genesis remains my favorite game console to this day. Thanks for sharing, and I’ll echo the other comments here and say that I’d love to see a write up with pictures!

      1. Once you dump the ROM for D&D:WOTES take a shot at hex editing a save state. There’s lots of info on line about hacking save states and it’s possible to give your characters items coded into the game that were not available through normal play.

    3. I wish I still had the NuBus card to show (so many pretty colored Kynar-coated wires!), but it, the Mac II and the software are all long gone.

      I *do* still have the cartridge, and perhaps I can figure out a way to share some pictures. Guess I will have to read the HAD posting instructions!

    1. This was supposed to be in response to a comment about copying battery-backed saves before the ancient battery gives out, but that comment seems to have disappeared.

  3. Someone has made something similar to this years ago by the the name of krikzz. But his one you can dump and copy to a cartridge he also makes blank cartridges you copy a game to and delete the game. It’s called flashkit programmer MD. I’ve been using it for years.

  4. If our copyright and patent systems were not so effed up, this type of hardware would literally be only used a handful of times, rather than everyone having to have one to dump their own collection, we’d just go get the roms.

    Case in point. I have a ton of old games, that I bought new… I have the license, I have the original disc. But for some reason, I cannot get updates for the games without BUYING IT AGAIN. Often times for MORE MONEY.

    This pisses me off to no end.

    I’m not buying Age of Empires a dozen times, just to make sure it runs on my new system…. But look at steam sales, and there are a ton of people doing it.

    Oh wait, I can just punch in my cd key and download it, right? WRONG. Those are for special partners with new license keys. They don’t actually get the old cd key codes and allow people that bought the game TWENTY THREE EFFING YEARS AGO to download it and run it on modern systems.

    This garbage should literally be out of copyright, make something new, and if you’re going to update the game… give the updates to your existing damn customers.

    If you no longer manufacture the console and games for it, You should have no right to control the data associated with those that purchased it. It’s not like these companies are getting use out of that old garbage, where as an individual will make use of it in creative and interesting ways, until they get sued and their entire life is ruined because of some corporate greed.

  5. Hey, I am the author of this dumper. I was wondering why the repo was getting so much traction lately — well now I know why.

    The news article is pretty much spot on, this was just a little challenge and it’s a fun project. The goal is to be able to write to carts in the future since I bothered routing the write low/write high pins but for now it works well enough as it is.

    And yes, I do confirm NHL96 was used in case some magic smoke was to release. I am happy to report that none of this happened and NHL96 is safe and sound ;-)

    1. In composing my long-winded reply, telling of my experiences with cartridge reading and writing, there was so much dust in my head after blowing it off of the almost 30 year old memories I forgot to mention how much I liked your design! Very nice job!

  6. Wonderful and very beautiful design. Currently I also work and a version of the same device, but it works on a mega Arduino. Currently reads and writes common megadrive cartridges. You can also write the KRIKZZ flash cartridge). It also reads atari cartridges (4k working) and 8k still in testing. I am improving the software to be able to release the source codes.
    my project works with SD card..
    Congratulations to Tony for the wonderful project.

    https://atariage.com/forums/uploads/monthly_2020_02/Gravador1.thumb.jpg.dc88de1ffb564cdfa95d3c334b3e6b9b.jpg
    https://atariage.com/forums/uploads/monthly_2020_02/Gravador2.thumb.jpg.3dbb2c27bd0580bf3957fdb16539990a.jpg
    https://atariage.com/forums/uploads/monthly_2020_04/DSC_0086.thumb.jpg.fd6e53be6fd0b1fe1eed180f873ff8de.jpg
    https://atariage.com/forums/uploads/monthly_2020_04/IMG-20200324-WA0003.thumb.jpg.76666da8f152de4b3b428baf1455e612.jpg
    https://atariage.com/forums/uploads/monthly_2020_04/IMG-20200324-WA0006.thumb.jpg.a8abff26a60af3b642ae8b59c98746e7.jpg

    1. Thank you for the kind comment!

      I don’t really like Krikkz’s cart flash (with all due respect to this guy who has made absolutely genius Everdrive designs) because it interfaces a 3V3 flash chip directly with the Mega Drive and that’s way too sketchy for my liking. I need to send a proper design that includes voltage level translators for all lines.

      As for the dumper itself, ATMEGA324PB is really good for this because it has at least 2 full 8 bit bus which you can use as a 16 bit data port. The address pins are supported through 3 x 74HC595 which you can see on the design. This introduces some delay in the read/write but at roughly ~9Mhz SPI it isn’t that big of a deal. I considered using a ATmega2560 but they are extremely expensive ($10 for one!).

      Feel free to dig into the Arduino firmware, the code is extremely simple!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.