ROM-Reader for Super Nintendo / Super Famicom Game Cartridges

Thanks! I didn’t think it was possible that the retrode could do that.
I checked again, and yes, the data lines are swapped. HuCard pin 15 is connected to SNES pin 19 (D0)

I did check with a multimeter before posting, but got HuCard pins 15 and 23 mixed up.
This adapter I made myself, but I guess any adapter that one can buy has the data lines connected in the US TG16 order.

I should mention that the Retrode's original PCE/TG16 detection code was written by Matthias.

I replaced the code with an improved check (better accuracy) in a later Retrode firmware but since the original idea was Matthias', I don't feel it is right to release the code.

Thanks jiyunomegami, I have merged your code :)

Parodius316: Ok I found 4 of the 6 I have. Not sure where the other 2 ran off to. But here are the boards:

|330x500

Did you ever added the "MSP55LV100G" yourself?

Very curious to hear. Thanks in advance.

DieKatzchen: I've replied to you, and also turned on notifications. Sorry for the delay, you're on the list. For anyone else on the list, I will be ordering the last parts (the cart connectors, incidentally) over the next few weeks.

Are you still looking for anyone to purchase the extra parts from you? I'm interested if so.

Hey Guys,

So I just finished (Almost) building 10 of these boards, and I've run into a problem. When I turn on the reader, the OLED display does not fire up at all. I made sure to match the jumpers to the correct pinout on the display as well. I've tried a couple different boards and a couple different displays, all of them seem to have the same problem. Is there something in the Arduino programming that I need to change to allow the OLED to operate? From the looks of it, I shouldn't have to do anything other than write it, but I wanted to make sure.

I can confirm that this does work by using the Serial Monitor to verify the program. Just frustrating because I wanted to use it as a standalone and not use the PC as the display.

-Jeremey Z.

A simple solution would be that the Chinese manufacturer changed the ID of the OLED. In the Cart_Reader.ino I use ID 0x3C while the official Adafruit example uses ID 0x3D.

It might be that they changed to the official ID to get less returns from customers.

Maybe just try out the OLED on its on with the latest version of the Adafruit library and an unmodified Arduino, just to make sure the OLED works.

@Sanni, I owe you a beer or two bud. Took me a hot minute because I was confused by the "address" jumper on the back. I tried it with that address code which was 0x78. Nothing. Wrote it back to the 0x3C and it's alive. Excellent project, bud. I'm fully impressed. Now I just need to finish ordering the rest of the cart slots and the other adapters and I can back up the rest of my library...

One quick question, and this is for pretty much anyone. I've tried to find something on the game gear as far as an adapter, but I didn't find anything as far as one that would go for the MD slot. Would I be able to get away with making an adapter from a dead Game Gear cart slot and pin it out according to a MD/Master System? I stumbled across this web page that appears to have some good information, but I wanted to confirm it before I go down a never-ending rabbit hole. https://www.smspower.org/maxim/Documents/Pinouts

Remade this, this time I did a better soldering job and it seems to be working! Only issue is I have to use Serial monitor, as my OLED seems to be broken (tested by itself).

I have a custom cartridge I bought from ToToTek a while back, can I use this to read/write to it?

Is it considered a NP cartridge? What does NP stand for?

jrz1333: Would I be able to get away with making an adapter from a dead Game Gear cart slot and pin it out according to a MD/Master System?

I don't own any GG carts so I can't test for sure but this should be the correct pinout since the Cart Reader code is supposed to follow the Retrode adapters wiring: https://consolingmyself.co.uk/post/18692678762/retrode-sms-gg-plug-in-adapter-pin-out

dustytrash: my OLED seems to be broken

There have been several reports of non-working OLEDs recently, I'm not sure why though, maybe they changed something or maybe it's just a bad batch of OLEDs.

dustytrash: I have a custom cartridge I bought from ToToTek a while back, can I use this to read/write to it?

I don't think anyone added support for the ToToTek cart yet. It's certainly possible to write a function for it but I don't think it would be worth the trouble when you can just buy the original flasher.

dustytrash: What does NP stand for?

NP = Nintendo Power: https://en.wikipedia.org/wiki/Nintendo_Power_(cartridge)

sanni: I don't think anyone added support for the ToToTek cart yet. It's certainly possible to write a function for it but I don't think it would be worth the trouble when you can just buy the original flasher.

Where do you buy the original flasher from? Just want to make sure I buy the right one. I only have the "Super Flash Cart Full" I bought years ago from ToToTek

Your best bet would probably be retro gaming forums such as videogamesage.com.

sanni, et al.,

I made a post a few months back when I was in the process of purchasing the electrical components for this build, and I'm extremely pleased to say that I've successfully built and used this cartridge reader! In addition to this, I was able to back up my save files from all of my childhood video games (SNES and N64) with the exception of one SNES game (Super Mario All-Stars) whose battery succumbed to time.

This was my first Arduino project, and my first (real) soldering project and I couldn't be more thrilled with the outcome!

I am extremely grateful for all of everyone's hard work and hope to contribute to the project soon.


With that said, I'm not sure if anyone has noticed, but it would seem that bootgod's website is currently down (and has been for at least a couple of weeks now) but I was able to work around this and find the appropriate mappers for my NES games by means of The Internet Archive.

Considering bootgod's database is so useful, I feel it's worth linking to the latest version found on The Internet Archive (December 8th 2019):

https://web.archive.org/web/20191208204850/http://bootgod.dyndns.org:7777/search.php?browse=A

I had a good bit of success using the XML file from the archived version of bootgod's site along with dsedivec's inestool to successfully dump my small collection of NES games.

In the future, I think this would be very handy if it could be automated to allow for easy dumping similar to the ease of SNES and N64 dumps (assuming this is a possibility). I'll be taking a look at the code and see what I can do to contribute to that endeavor.


Also, I'd like to help contribute to the Wiki as well. I had a few bumps along the road that I feel could be helpful to point out to first-time builders like myself.


I even tried my hand at editing one of the STLs to add case buttons to a print to help with the cost of multiple prints. In this same STL, I added 2 case buttons (from case_button_3mm.stl) to the combined.stl file and removed the microSD spacer (since it should be printed in transparent PLA). I have it saved somewhere and will submit a pull request for it soon if anyone else is interested.

In my case, I printed the outer enclosure in black PLA, the microSD spacer in transparent PLA, and everything else in glow-in-the-dark PLA.

--TL;DR--

Thanks for reading my long-winded post and thanks again for all the hard work. This project has been excellent, and I love my cartridge reader!

BootGod posted an update about NESCartDB in a thread on NesDev: http://forums.nesdev.com/viewtopic.php?f=5&t=16325&start=45#p256108

dkidd928: I am extremely grateful for all of everyone's hard work and hope to contribute to the project soon.

Thanks for the kind words. Your Cart Reader looks amazing, I really like the color scheme, subtle but mysterious. 8)

Just to flag (but can’t verify it works since my cart reader doesn’t have a genesis slot) but you can still buy the retrode sms plugin, which has holes you can solder the gamegear pins to (which I did to use with the retrode and works well): https://www.dragonbox.de/en/accessories/cartridge-dumper/retrode2-sms-plugin

sanni: I don't own any GG carts so I can't test for sure but this should be the correct pinout since the Cart Reader code is supposed to follow the Retrode adapters wiring: https://consolingmyself.co.uk/post/18692678762/retrode-sms-gg-plug-in-adapter-pin-out

There have been several reports of non-working OLEDs recently, I'm not sure why though, maybe they changed something or maybe it's just a bad batch of OLEDs.

I don't think anyone added support for the ToToTek cart yet. It's certainly possible to write a function for it but I don't think it would be worth the trouble when you can just buy the original flasher.

NP = Nintendo Power: https://en.wikipedia.org/wiki/Nintendo_Power_(cartridge)

Would I be able to put code onto the Arduino after this is built without re-soldering the 5V regulator and transistor?

I want to try adding functionality for my TotoTek cartridge. The source is available from another project, so it’s hopefully a matter of adding it from there to this project in my own branch.

Hello, I need to program an 29f800 but I don't know how to connect the control signals... I've checked the schematic for the flash adapters but can't understand how the sockets are wired, and my device is soldered to a PCB. So please excuse the noobness, but could someone tell me to which SNES pins # should I connect the flash's !OE & !CE? Do I also need to connect !RESET? TIA.

I’ll let someone more authoritative answer, but the one that I got (that sanni had built for testing purposes) allows new versions to be uploaded to the arduino without re-soldering

dustytrash: Would I be able to put code onto the Arduino after this is built without re-soldering the 5V regulator and transistor?

I want to try adding functionality for my TotoTek cartridge. The source is available from another project, so it's hopefully a matter of adding it from there to this project in my own branch.