ROM-Reader for Super Nintendo / Super Famicom Game Cartridges

Would someone be kind enough to add this information along with the edited case I posted plus the clock gen for SNES mini to the git. I think people should have access to all of it without having to find this thread.

I'm not comfortable enough with the githubs yet.

Id be happy to do schematics that are not hand drawn if desired.

I want to say me and someone else had been playing with Nilton SNES pocket and with the clock gen dongle it was reading SA-1(I have bad memory). I know the PIC was supposed to be needed, however. Let me try to confirm. I have working Japanese SMB RPG.

Sorry, this probably isn't very helpful, but my sanni cart reader successfully read the Japanese Mother1+2 with matching checksums to those found here: DAT-o-MATIC. If it's not dirty contacts, or issues with your cart reader, perhaps it's a reproduction cartridge with it's own discrepancies. Although I've not looked into exactly how, Sanni has been able to troubleshoot cart reader solder mishaps by the addresses that are corrupt in the rom images. This thread is so long, that finding those posts is daunting, but not impossible.

I hope you get it working!

Thanks a lot for the response. I spent a lot of time on this and still haven't got it working. I really didn't think that it was dirty contacts because I cleaned them thoroughly and the problem only comes up roughly once every three of four thousand bytes and seems to be the mostly the same bits each time that are erroneous. The error seems to be always erronneous high bits and they occur by themselves, not in clusters. out of 128 MegaBits of data in the ROM, I found there to be roughly 44,000 erroneous bits spread throughout my dumped ROM. As a result, a given data pin will read correctly thousands of times before it encounters an error and so I do not believe that this is a contact or a soldering issue. It's possible that my cart is a repro (It's a very convincing copy if it is) but the weird thing is that the cart runs perfectly in my GCN Gameboy Player. That said, the dumped ROM will not run in any emulator, I assume because of the 44,000 bit errors.

I think that the error might be due to too much pull-down resistance on the game cart data pins causing a 1 bit not to be brought down to 0 on occasion. Maybe this is the result of a defect or abnormality in the ROM, itself. I do not believe that the Arduino has built in pull-down resistors and the Sanni board does not implement any external pull-down resistors on the data bus. That said, maybe the Gameboy player has them(?) This might explain why the error seems to come up as a single erroneous high bit but works fine in the Gameboy Player.

I tried re-coding the GBA read word function to use sequential ROM reads instead of inputting a data-address for each word read. I thought that the addressing phase of the read-word might be contributing to pins not getting pulled down during the word output phase. Based on my reading of the GBA programming architecture, you can sequentially read the entire cart by toggling the Rd pin and only addressing at the beginning. Unfortunately, sequential reading didn't resolve the errors either.

The one thing that I haven't tried is adding pull-down resistors to the cart reader. If I get the chance, maybe I can print a cartridge adapter board that can be plugged into the cart reader GBA slot that has 16x10k resistors. The reason why I haven't done so is because it is a bit of work and I am not 100% sure that it will work. That being said, I for now I opted to just buy a used DS for now and I will try dumping the cart with the GBA backup tool on a R4 card. I have 1 or 2 other GBA games that won't run in emulators but I think are having this problem as well because the short checksum that the cart reader checks is coming back as correct for these as well.

Thanks again for the post, though. The fact that you can dump this game rules out the following possibilities that I was considering:

  1. That there is some kind of weird copy protection implemented on the cart.
  2. That this is a problem that is present on all Mother1+2 GBA carts.

You're welcome! I'm glad it eliminated those two possibilities anyway.

If able, it might be worth trying a code change to read by address (as it is normally), except to read each word mutiple times (maybe 3 or 5) and find and write the average of each to the rom. That might help work around random read issues, although it would take a lot longer.

Also, I have no evidence of caching, but It woudn't work if the arduino caches reads instead of true re-reads every iteration. Maybe staggering address reads could help with that, but it would complicate the code, so I'd start with simply re-reads and averaging.

I don't know about the default states of the data pins to say if pulldowns would help.

I hope something works for you!

Hi Arduino Forum
I'm trying to create a Cartridge Reader by sanni.
I have built it, but the display is blinking and doesn't seem to be supplying power properly.
My question is this
Is this Arduino compatible with the Cartridge Reader?

Hello is it possible to read and write Fram of save in Snes ?

Did you replace the original Sram chip with a Fram chip or are there SNES carts that originally came with Fram chip?

Yes it was replaced with adapter. Save the normal game but the shild when reading the SRM file is blank. And when writing the file a sram read from the error but it works

It's probably the same issue we had with Gameboy cartridges with Ramtron Fram chips. Reading the Fram needs pulses on the CE line each read which the SNES code currently does not do. It's an easy fix, just need to remove the control_in/out functions from the code and rewrite the read/write functions to directly toggle CE/OE/WR like how it works in the other modules.

Unfortunately I don't know how to change the code. But it would be a good option for a future update .Ramtron Fram chips has no loss of data saved with the batteries. Thank you very much

I'm interested. What's the process of ordering and getting more info about this?


as the board and separated parts were not so popular, I recently bought all the parts and would assemble the whole cartreaders soon.

I will do 6ea and one I will keep for myself so 5ea will be for sale.