ROM-Reader for Super Nintendo / Super Famicom Game Cartridges

There are 4 tests
1st test: Check if cart is supposed to have sram, if not, display error(this sanity check was added in V19A I think), if yes backup sram
2nd test: Overwrite entire sram with 0x00, check if each byte is 0x00, if not display error
3rd test: Overwrite entire sram with 0xFF, check if each byte is 0xFF, if not display error
4th test: Write back the sram backup from test 1 and check for write errors if no write errors display "Verified OK" message

A good sram needs to pass all tests.
It can absolutely be that a broken sram fails one of the two 0xFF/0x00 tests but still manages to write back the old save perfectly fine. That's why there are multiple test. All of them have to pass.

So I guess I should change the "Verified OK" message to "Restored OK". :wink:

I don't actually have a broken sram cart to test the test but in theory it should work.

sanni:
Right now I have everything here except the 64 protective resistors(between 130 and 180 Ohm, 0805 size, red in picture) and the SD module.

Build plan:

So if you're ok with buying those parts separately then I can sell you an almost complete kit.

Honestly with my 70+ hours a week at work right now I will probably not find the time to source the missing parts, even though it appears to just be 2 types of resistors and the sd card reader, let alone assemble it. My intention is to build one and then contribute to the project but scope creep and deadline slip have got me into this current predicament. However there is a light at the end of the tunnel which appears to be happening Friday. So I will report back then what I want to do.

If you can wait I did order all the parts so when they arrive I'll build all my remaining PCBs into full units including Arduino, Oled and everything.

sanni:
If you can wait I did order all the parts so when they arrive I'll build all my remaining PCBs into full units including Arduino, Oled and everything.

Any idea on price? Work has let up recently so a kit actually wouldn't be that bad at this point.

Quick update on the software side of things:
I just finished adding 4K Eeprom, 64K Eeprom, Sram/Fram, SST39VF512 512K flashrom + MX29L010 1M flashrom save support for GBA cartridges. Both reading from an original game cartridge and writing a save back to the cartridge.

Now I have to hunt down variations of the flashrom chips and add support for them too.

Missing flashrom chips:

  • Atmel AT29LV512 (512Kb)
  • Macronix MX29L512 (512Kb)
  • Panasonic MN63F805MNP (512Kb)
  • Sanyo LE26FV10N1TS (1Mb)

Here is a list of all flashrom games that could contain one of those chips in case anyone is interested in helping: GBA Flashrom Games - Pastebin.com

It's the little chip on the right

sanni:
Quick update on the software side of things:
I just finished adding 4K Eeprom, 64K Eeprom, Sram/Fram, SST39VF512 512K flashrom + MX29L010 1M flashrom save support for GBA cartridges. Both reading from an original game cartridge and writing a save back to the cartridge.

Now I have to hunt down variations of the flashrom chips and add support for them too.

Missing flashrom chips:

  • Atmel AT29LV512 (512Kb)
  • Macronix MX29L512 (512Kb)
  • Panasonic MN63F805MNP (512Kb)
  • Sanyo LE26FV10N1TS (1Mb)

Here is a list of all flashrom games that could contain one of those chips in case anyone is interested in helping: GBA Flashrom Games - Pastebin.com

It's the little chip on the right

Damn, I checked two copies of Pokémon Emerald, two copies of Sapphire, a copy of Fire Red, /'d a copy of Pokémon Mystery Dungeon: Red Rescue Team, and they ALL have a Macronix brand 1MB flash, model MX29L010…

I have another set of GBA Pokémon games on my desk at work I'll look through tomorrow.

Since these games all use 1MB flashrom should I look for a Sanyo brand chip? I'm pretty sure that at least one or two of them has a differently packaged flash chip, though I don't recall anything else about it.

EDIT: I realized I photographed the innards of the games on my work desk when changing the batteries. I have a copy of Ruby with the Sanyo chip you mentioned. How can I use it to help? I don't mind if the savedata on the chip gets corrupted, so long as it still works.

Any eta on the kits sanni?

I'm currently selling two complete units here

Once they're gone I'll put together some diy kits, hopefully before the end of the year just in time for the holidays probably early 2017.

sanni:
I'm currently selling two complete units here

Once they're gone I'll put together some diy-kits, hopefully before the end of the year just in time for the holidays.

Damn, I was too late. Oh well.

Hi Skaman, I am also interested in reading the memory paks of the Satellaview carts. May you share what we need to set and what address to read?

Thanks.

skaman:
Nice job on the new hardware!

If I ever finish the updated Enhanced code, then I'll look further into merging the enhancements into the new code base. I tested moving some of the Enhanced code to the new code base but the port manipulation broke the timing. The carts that need specific register settings might not work due to the faster direct port manipulation breaking the timing.

Enhanced code has read/write support for the Satellaview carts including the Memory Paks. I also added support for Sufami Turbo carts awhile back. The modified code includes an "Express" mode that will dump the complete contents of whatever cart (and memory pak) is plugged in once the "Dump Cart" option is selected. Express mode works great for NP carts as it will dump everything (flash, flash map, menu, individual games, and individual save files) without any intervention. Express mode runs continuously until good dumps (checksum matches) are found and will reboot the reader if needed and continue dumping. Express mode makes dumping 100+ NP carts a much simpler operation.

There's one item left to do for the Enhanced code and it is the SA-1 SRAM writes. I can now modify the SRAM contents but I'm having difficulty getting the SA-1 to write a complete new save file. More testing to do.

@tylau0, check your PMs.

BETA testers need to provide feedback before I publicly release the final Enhanced code. Still waiting... I can only assume that there haven't been any problems. Positive feedback would be appreciated!

I did make a recent change to the Enhanced code in the detection of the CX4 (Rockman/Mega Man X2/X3) carts to enable dumping of the Rockman X3 prototype.

In case anyone cares, the Rockman X3 prototype uses a Capcom LBM20-94907-00 PCB with 4 EPROM chips. The ROM is coded as ARXJ which is Rockman X2 instead of the Rockman X3 code AR3J. The prototype Rockman X3 is dumped similar to the retail Rockman X2 with the mapping register 0x7F52 = 0. My original code used the game title to distinguish between the carts but this did not work for the Prototype since the game title "X3" would set the register 0x7F52 = 1 which is the retail Rockman X3 setting. I changed the code to adjust the mapping based on the game code at 0x7FB4 (0xFFB4).

Just received the new revision:

  • removed the ~60 protection resistors as it was just too much to solder
  • replaced all jumpers with switches
  • new N64 slot that has the correct spacing but is not overly tight like the other ones
  • the sd spacer now is a total of 8mm thick so you can use a standard 2x8 female pinheader to mount the sd module in a removable fashion and also to press the sd module against the backplate so that it doesn't move anymore
  • proper cutout in the sd spacer for the LED and solder pads located directly in front of it

Overall the needed build time was probably cut in half or something like that.
I uploaded the building instructions here.

Now I just have to wait for the adapter pcbs to arrive and then I can test everything and see if it still works :wink:

Looking good! :slight_smile:

This is looking super sweet. Truly cannot wait for these to be ready.

Updated the needed parts list.
And made some Build Instructions.

I'll take one set off your hands! Just let me know how we can make the arrangements.

I've been following your project for a while now and was looking forward to the next gen 2 final product, but I'm up for rolling up my sleeves and making this version work.

Hey sanni just wondering if you will upload the gerber files to the github since we can't order any pcbs with the links unless we have the gerber files zipped up and I don't see them on the github. Thanks for the hard work on these.

I just uploaded all the pcb files, merry christmas everyone :wink:

Yesterday I received the new adapter pcbs, this time I have decided to go with a white solder mask.

This looks amazing, I'll probably order parts and stuff sometime after my current project is finished.
How long does it take to read and write the sram on a snes cartridge?

Tried out a 3d printed backplate: