ROM-Reader for Super Nintendo / Super Famicom Game Cartridges

I've been on a bit of a Street Fighter 2 run. Got PCE Street Fighter II', Virtual Boy Hyper Fighting, and MD/Gen Super Street Fighter 2 all dumping properly. SF2 and its console variants really pushed the hardware limits.

I'll submit the Super Street Fighter 2 code changes to sanni.

Nice! Are you able to dump virtual boy though? I cannot find any compatible sockets.

Yes, I made a VB Plugin PCB for the Retrode. The connector requires hand assembling header pins into the proper configuration. Pictures of a prototype in this thread: Retrode forum on hold

I modified one of the prototype plugins to work with the Arduino reader. The plugin configured for the Arduino reader supports SRAM and Hyper Fighting. The Retrode is limited to SRAM or Hyper Fighting (ROM only) due to a lack of available control pins.

Hi skaman,

Can you share me Pinout of your PC Engine adapter?
I need to slightly modify hardware of my PCI socket version again.
So I want to rewire it to add compatibility with yours.

By the way, I think adding logic IC to your VB adapter will solve control pins problem.

Modified PCE/TG16 pinout (based on pinout posted on Retrode website):

SNES  - TG16                                SNES  - TG16
===============================             ===============================
PIN5  - PIN18                               PIN36 - PIN18
PIN6  - PIN27                               PIN37 - PIN6
PIN7  - PIN25                               PIN38 - PIN30
PIN8  - PIN28                               PIN39 - PIN31
PIN9  - PIN29                               PIN40 - PIN5
PIN10 - PIN7                                PIN41 - PIN4
PIN11 - PIN8                                PIN42 - PIN32
PIN12 - PIN9                                PIN43 - PIN33
PIN13 - PIN10                               PIN44 - PIN3
PIN14 - PIN11                               PIN45 - PIN24
PIN15 - PIN12                               PIN46 - No Connect
PIN16 - PIN13                               PIN47 - No Connect
PIN17 - PIN14                               PIN48 - No Connect
PIN18 - No Connect                          PIN49 - PIN26
PIN19 - PIN23                               PIN50 - PIN19
PIN20 - PIN22                               PIN51 - PIN17
PIN21 - PIN21                               PIN52 - PIN16
PIN22 - PIN20                               PIN53 - PIN15
PIN23 - No Connect                          PIN54 - PIN34
PIN24 - No Connect                          PIN55 - No Connect
PIN25 - No Connect                          PIN56 - No Connect
PIN26 - No Connect                          PIN57 - No Connect
PIN27 - PIN38 Vcc.                          PIN58 - PIN38 Vcc

Changes to original pinout: swap A18 and A19 (SNES Pins 43 and 44) and connect /WR (SNES Pin 54).

Thanks.
Only difference I found was CE and OE pins.

I also bought one VB cart to play with but surprised about how thin the connector holes are.

The original plugin made for the Retrode by JonY used pins extracted from PCMCIA connectors.

I use pins from a specific 1.27mm header. The pins that I use are 0.4mm square.

Pins from a standard 1.27mm header will work but they will be slightly oversize and a really tight fit.

Thanks.
I’ll try to make another VB adapter for sanni’s by re-aligning pins in link below once I get PC engine adapter finished.

tamanegi_taro:
I should have implemented TMZero dump code to sanni’s cart reader. I’m pretty sure that the code I posted while ago will dump TMZERO cart properly by UART though.
By the way, how big is size of your dump werewolfslayr925?

The size of the dump is appr. 5 MB (5,242,880 bytes)

I'm going through each pin on the board for the SNES cart slot as skaman suggested. So far, all of the A pins match where the board says they should go.

I really don't know how to make heads or tails of the schematic. It doesn't seem to match the names on the board—then again, I really don't know how to read it. So, I'm drafting my own schematic/taking notes based on what I've got. I'll post both my schematic draft, my notes, and pictures of my dumper when I'm done.

Thanks everyone for being willing to help. I'm sorry for being such trouble.

Just download Open Office, Libre Office or Microsoft Excel and open the pinout.xls from my github.

An Arduino Mega pinout might help you too:

Just ordered the next and hopefully final version:

I have problems in writing on memory MBM29F033C (Flash ID 0404). I checked the "blank check" and "erase" functions and working normally. But writing any ROM only be displayed on LCD: "Flashing file /ROM/romtest.bin" and that's it ...
After i reboot the arduino and dump the ROM recorded, does not work on emulators.

I use the PCB 1J3M-20 with adapter to the Sanni CartReader(V23), and a 29F033C DIP36-TSOP40 Adapter (III). The jumpers according to the instructions contained in the Wiki, /OE PCB-57 and /WE PCB-18.

Anyone have any idea what the problem might be?
Thank you

Remove solder jumper R3 on DIP36-TSOP40 Adapter (III) so that WE is not connected to VCC anymore.
Desolder pin from OE on DIP36-TSOP40 Adapter (III) so that OE is not connected to MAD-1 chip anymore.
Keep the 2 wires you soldered attached.
Then try again.

I had already done that. and it did not work. :cry:

Dump the rom again and open both the dump and the source file with a hex editor like HxD - Freeware Hex Editor and Disk Editor | mh-nexus and use the ctrl+k compare function to see where the errors begin.

Maybe the first few bytes got written correctly and then you see the address where it starts to get bad. Then you can check which address pin is needed to write for that address and maybe that pin is not connected right.
Or if nothing was written at all then it's a different problem.

So, my card reader has been working fine, but trying to flash a snes rom today, I end up getting
"cant open file"
"veryfiying"
"can't open card on SD"

I'm using a different SD card than previously, but the card reader finds the roms, it just can't read them, any ideas?

Check that the filename is not more than 8 characters long, only letters or numbers, no spaces and make sure that it's in a directory close to the root that also has a short name so that the overall file path is not too long.

If the error still persists change in Cart_Reader.ino:

// Change to half speed if you get an sd error or it hangs when writing
#define sdSpeed SPI_FULL_SPEED
//#define sdSpeed SPI_HALF_SPEED

to:

// Change to half speed if you get an sd error or it hangs when writing
//#define sdSpeed SPI_FULL_SPEED
#define sdSpeed SPI_HALF_SPEED

Thanks, I tried a simpler filename just before you posted your reply, because I figured special characters might mess things up. Did the trick, thanks for the help :slight_smile:

sanni:
Dump the rom again and open both the dump and the source file with a hex editor like HxD - Freeware Hex Editor and Disk Editor | mh-nexus and use the ctrl+k compare function to see where the errors begin.

Maybe the first few bytes got written correctly and then you see the address where it starts to get bad. Then you can check which address pin is needed to write for that address and maybe that pin is not connected right.
Or if nothing was written at all then it's a different problem.

only the beginning is written, more specifically the first line. all the rest is FF

If the first line(=16 bytes) is written correctly then the data pins are ok and the error starts at address line A4. Try resoldering A4 on the 29F032 chip. Make sure that the trace going from A4 to the cart edge connector is not damaged and clean the golden finger for A4.