Go Down

Topic: ROM-Reader for Super Nintendo / Super Famicom Game Cartridges (Read 409592 times) previous topic - next topic


In a way, we've opened Pandora's box when we figured out how to rewrite the NP carts.  Giving people the ability to rewrite the carts could result in the loss of some irreplaceable data.  I've dumped close to 50 different games and found 3 previously unknown NP-exclusive revisions.  These revisions were never released in retail cart form and are the last revision for each game.  Extrapolating out over the full 179 NP game list, that would mean that there might be another 8 or 9 previously unknown game revisions out there. 

For anyone that is planning on rewriting their NP cart, please consider backing up the original data (ROM + MAP).  Even if the game is a known dump (GoodTools/NoIntro/etc), the data on each NP cart is unique.  For single game carts (no menu), then the unique data is in the mapping.  For multi-game carts with menu, then the unique data is in the menu and mapping.  Even blank carts have unique data in the mapping.

I wanted to set up some type of repository to collect the original data but I didn't have the resources to do it.  I'm now working with someone that wants to archive the complete original data and plans to make it available on the web.  If anyone is willing to share their original NP dumps (Full ROM + MAP), then please PM me a link.

Good Luck with the translation!
Thats a realy good idea. Once my reader is finished.. i can start dumping my NP flash carts. I have quite a few.


Great, can't wait to get some more feedback :)


Total success!!! Now I can dump all my n64 Carts

Thank you Sanni
Thank you skaman
Thank you MichIK
Thank you themanbehindthecurtain
And thanks to all the people who worked on this project :)

I still have not received the connectors purchased in China. I'm tired of waiting for them. But last Friday I received by mail the pcbs of version v5B of sanni, which I had bought more than one month ago in China.

To my despair, for not having received the connectors. I decided to try one of the pcbs received last Friday. So I decided to check one pcb at any price.

So I removed the connector of my  Plus III and I use the connector on the pcb adapter for N64.

Then I dismantled my Snes game adapter for NTSC and JAP games, I took one of the two connectors and I use it on the main Board: the Nintendo Cart Reader pcb. This connector does not included all pins but takes the pins needed to work with the N64 carts.

I've used a few metres of desoldering wire, but the result has been positive :)

Then, I assembled all the circuit and I place all the essential electronic components to make it work in N64 cart reader mode.

Now everything works perfectly with sanni pcbs, it is clear what the problem what I had and by which the circuit did not work properly was the length of the wires.

I've done my first dumps of the cartridges with chip MN63F81MPN, thanks to the skaman information, using the 29L1101 mode.

The rom and the flashram savedata are fully functional, they work perfectly on my Everdrive 64 and I don't have to do the saveswap. The ED64 recognizes the savedata in the SAVE folder at the first time and the rom of course.   

By the way skaman, I could not get the tool: "saturnu's Saveswap from Krikzz forum" all links are broken and I could not find it on Google, so I can not test these files in an emulator, I'll keep looking, thank you very much for your help.

By the way I've discovered something curious in the operation of the circuit:

 I can do the reading of the savedata on the cart in "29L1101" mode, without any problem this works fantastically well and the save data is fully functional.  But when I try to upload the savedata to the cart again in this mode: "29L1101", the program gets frozen in that moment and on the Oled Screen says: Erasing Flashram and the circuit is blocked, it does not pass that point. Then I have to turn off the power to the circuit and to restart it again.
But if I upload the savedata in autodetection mode to the cart, then the circuit upload it perfectly and without any problems. What might be the problem? I will continue investigating this matter.

Sanni thank you very much for making reality something what I had been waiting for, for many years. I'll send you a PM with the files that I have obtained, to update the sketch with the flashram MN63F81MPN. By the way I have a Paper Mario cart with 29L1100KC chip, you have to update the list.

Thanks to all :)

Again I apologize for my bad English, I'm trying to learn


Looking great :)

I have ordered Animal Crossing from Japan in hope that it will have the MN63 chip. I already written a test version of the MN63 support but since I can't test it I don't know if it works or not.

You'll find saturnus ED64 Saveswap tool inside the ed64_archive_v3.zip here

And remember you should not plug the USB cable directly into the Arduino when the N64 Adapter PCB is also plugged into the Arduino. So to upload a new version of the Cart Reader code you must first remove the N64 Adapter PCB. Because otherwise the N64 cartridge will get 5V instead of 3.3V. Although it probably won't do any damage.


 Okay, as soon as I can and I have time, I'll try the update v9 Test 1.

 The file "saturnus ED64 Saveswap tool " I have already downloaded it, is rare, this past weekend the links don't worked for me. Now yes, thanks.

 Thank you for reminding me the theme of the power of the arduino, I know that if I connect the arduino to the usb wire, then I have 5 volts on the main pcb and if the N64 adapter is plugged in, I can destroy the cartridge ;)


Hello All,

I can't get the code to compile. I selected the correct board and comport.

compilation terminated.

exit status 1
Error compiling for board Arduino/Genuino Mega or Mega 2560.

Any ideas??



Do you have all of the libraries installed?

You might want to enable verbose output in the Arduino IDE. 

File->Preferences->Show verbose output during: compilation and upload.  Check the boxes.


Opps.. had them in the wrong Libary DIR.

OK it compiles.... BUT only the first time... If you press compile again. It fails...

Thats very odd. BUT the board seams to work :-) I have the OLED saying somthing.. VERY EXCITING!!

I can't wait to dump some NP carts and see what games / revisions we have. If you need some where to store them. I do have a web page. Its only basic.. But i think i have heaps of HDD space...



OK.. Mine is working OK. Just got out a NP Cart. To protect the data on it. Do i need to do a full dump + all the other items dumped aswell?? I presume keep all cart files in one directory? So you know which ones come from which cart.

On the menu layout. Can "EXIT" be added as a menu option to take you back to the main menu?? That would be handy...

Thanks again for all the hard work. This really should be fun to play with :-)



If you press compile again. It fails.
Be sure to use Arduino 1.6.7 as 1.6.8 is broken.

Where exactly do you want "Exit"? The V9 test version has a "Reset" option to reset the cart reader so it will go back to the very first menu again.

You will have to backup both the flash("Read All" in V8, "Read flash" in V9) and the mapping(Read Mapping).


Be sure to use Arduino 1.6.7 as 1.6.8 is broken.

Where exactly do you want "Exit"? The V9 test version has a "Reset" option to reset the cart reader so it will go back to the very first menu again.

You will have to backup both the flash("Read All" in V8, "Read flash" in V9) and the mapping(Read Mapping).
Have EXIT at the bottom of each of the main menus. Like when you go into "NP Cart" in the menu that comes up under "write mapping" have EXIT there. Is that were RESET is on V9?

I downloaded the latest version of Arduino. So thats what the compile issues is. Now i know why.



Some Feedback...

Starting to dump NP Flash carts. Getting a few "switch to hirom : failed".

It would be really helpfull to have another button for OK/ENTER. Is there enough I/O lines to add one?




Are you using the V9_test_2? You shouldn't use V8_fast with NP carts. Either V8_slow or V9_test_2. All three versions have different timing for switching the NP cart to hirom, V9_test_2 should be best.

The single button interface should work pretty good. If not then it's most likely the button you're using that is either broken or of bad quality or not long enough, I'm now using 6x6x6mm ones.
To press enter you just hold the button down as long as you like, you don't have to let go, just hold it down until something happens. But you can also tweak the behaviour of the button in the code if you want to adjust the timings.

But there is plenty I/O left to add another button if you wanted to.  At one point I had a SNES controller and TV-Output added just for fun:


I was using V8_SLOW. I have now upgraded to V9_2 TEST.

The button on my board is brand new.



V9 update:
I split the code into different files for better readability

Furthermore there is now a variable npDelay that can change the timing of the switch to hirom sequence. In V8 this variable was 1, in V9 Test it was 2 and now I have increased it to 4, slowing down the command even further in hope of a better successrate.

I also added reading/writing the controller pak through a N64 controller. The controller is connected to the S_DAT pin on the N64 adapter pcb.

It also includes a small controller test.

My Animal Crossing cart came, so far I can read and delete the MN63 flashram chip but can't write to it yet.

Go Up