ROM-Reader for Super Nintendo / Super Famicom Game Cartridges

According to this topic there are some nice cart slots available somewhere in china |500x297

I wonder how good they fit?

let's see if they ship to Europe :)

it mentions 2.54mm though :(

Darn, 2.54 is a no go :/

I put the thing together and it seems to work pretty well! I've tried some SFX, CX4 and GSU carts and they all work. SA-1 doesn't work though, but I'm guessing my frequency generator may be off still or my improvised extra pins may not work as well as I had hoped.

One thing you could test that might improve the SA-1 detection is to slow the Master Clock:

void setup() {
  // Set Clock Generator CLK0 to 21.477272MHz 
  //TESTING 10.738636MHz for SA-1 Carts (21.47727MHz/2)
  clockgen.set_freq(1073863600ULL, SI5351_PLL_FIXED, SI5351_CLK0);
  //  clockgen.set_freq(2147727200ULL, SI5351_PLL_FIXED, SI5351_CLK0);

The slower Master Clock appears to work with all of the carts that I have on hand including the SPC7110 carts. I've also written code to set the clock correction without an external frequency counter but it needs more testing.

Make sure you have a solid, stable power supply to the reader. The SA-1 cart is one of the enhanced carts that won't work off a flaky power supply.

Good Luck!

Thanks for the tips. If it remains quirky, I have some 21.4772 and 3.072 crystals so I'll swap out the clockgen for those.

According to sanni, the cheap Chinese Arduino clones have suspect power regulation that could affect SA-1 cart detection. He had problems with a CH340 based Arduino clone that required changing the onboard voltage regulator in order to get SA-1 detection working. By contrast, a different Arduino (official design) that he had always worked with the SA-1 carts.

My original reader uses a CH340 based Arduino which might explain some of the power issues that I've encountered. I recently picked up an Arduino that follows the official design with the ATmega 16U2. I'll have to do more testing with the new Arduino to see if it eliminates the need for some of my Master Clock code adjustments.

Good Luck!

It must be a noise problem, most likely my other Arduino has better caps or an overall better design. Replacing the voltage regulator probably helped because some regulators can cope with noise better than others and so does powering the Arduino with a 9V battery. Soldering a wire directly from the voltage regulator's output tab to the cartslot also seems to help if powered from a battery. I haven't fully understood it yet and also don't have the equipment to do better testing.

I've made a pulse counter (useful experience) and found that I needed quite some calibration (-581000), now the frequency seems to be spot on. Slowing the master clock doesn't help me get SA-1 carts recognized either, so I think I'll replace the voltage regulator and add necessary caps on the arduino now.

Still need to get something myself that can count clock pulses.

That would be great to control the menu instead of using only one button.

I finally got a SA-1 cart recognized. The cartridge in question had its maskrom replaced by a 27C322. None of my SA-1 carts with original MX maskrom ever worked though. I've already exchanged my chinese voltage regulator for a trusty 7805 but I still suspect the power circuit to be suboptimal. How did you improve the power circuit no your chinese boards sanni?

I did replace the output capacitor to see if anything changes, but nothing happend. Replacing the voltage regulator(AMS1117 1A) at least gave varying results from worse(78M05 0.5A) to better(AX1117 1A) but still far away from fixing the issue 100%.

I dumped my SA-1 cart(PAL PGA Tour '96 1L3B-01 PCB) but my Super Mario RPG SA-1 cart(NTSC 1L5B-20 PCB) simply does not want to boot.

sanni, do you use 'slow' functions for writeByteA1/writeByteA2/writeByteB or are you using optimized writes to the port registers? could poor SA-1 detection be due to too many rapid changes on the addressing ports?

I'm using the faster variant, maybe too fast.

Hi all,

What a great project! Thanks a lot to all the contributors, specially MichlK, sanni, skaman.

I will try to build my own "clone" so:

sanni: SNES Cart Slots:

Any chance to find a reseller for only one or two connectors?

Kind regards, Nico

I recently purchased 10, so if you're from Europe I could send them

zzattack: I recently purchased 10, so if you're from Europe I could send them

Cool, I will send you a PM.


The project continues to move forward. We are now able to completely rewrite the Nintendo Power (SF Memory) carts. It took many months and combined input from several people including nocash, sanni, and BennVenn.

A little background, the flash chips used in the Nintendo Power carts (both SF Memory and GB Memory) include a page buffer/mapping register that is checked when reading games in the normal flash area. The games written to the cart will not work properly without the correct mapping. The flash chips use non-standard, undocumented commands to access the mapping data.

I'm working on an update to my "enhanced" code with full write support for the NP carts. It is the last SNES cart type that I set out to support.

On a different but related note, to gain insight into the SF Memory cart, I built a GB cart interface to sit in between the GB and GB Memory cart. Using the cart interface to log data, we were able to unlock the GB Memory cart and we can now completely rewrite it as well. I decided to build a standalone GB cart reader around the cart interface similar to the SNES cart reader. I plan to eventually release the code when all of the mappers are supported - I need to finish the MMM01 and TAMA5 mappers.

Good Luck!