Go Down

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


Mar 22, 2016, 12:47 am Last Edit: Mar 24, 2016, 03:58 pm by joseuro Reason: Sorry for my bad English
 Hello, greetings to all, and thank you very much to all the people who have made this project. Really, thank you.

I am not a professional electronics, I am only an amateur, with a few small electronic knowledge.

Long ago I follow this project and it is something that I've been waiting for a long time.

Before this, I had looked, the advances made by "The Man Behind the Curtain" I am interested in extracting the saves of the N64 cartridges.  

I have a game cartridge of The Legend of Zelda Majora's Mask, with my save data stored in it, which I spent it many hours and that a long time ago that I want to remove the Save Data from the cartridge.

I've been doing the mounting of this project, from the schematic, with my limited resources, I have managed to read all the rom of all the cartridges that I've placed in it, SuperMario, Zelda OOT, Zelda MM, F-1 World Grand Prix, etc. But, I can not read the Save Data of these cartridges. Rather, I have done wrong or something I do not have connected correctly, I have to review again the entire Assembly, to see what I've done wrong.  

Now, I'm waiting for the pieces (connectors and pcb's) that I bought in China.

But meanwhile I will continue researching with my Assembly made with a recycled connector from a broken clone console.

By the way Sanni, please, can you tell me will be able to this project, read this flashram?: MN63F81MPN, this is what I've been waiting for many years.
Again many thanks to all those involved in this project, a greeting to all.

I'm sorry for my bad English, I come from Spain.



I'm not sure about the MN63F81MPN flashram, I haven't found a cartridge with that chip inside yet myself. Even my Majoras Mask has the standard MX type.

So far I found out:
Animal Crossing
April 2001

Command & Conquer
May 1999

Jet Force Gemini
NTSC:29L1100KC-15B0 PAL: 29L1101KC-15B0
October 1999

Ken Griffey Jr's Slugfest
May 1999

Zelda Majora's Mask
29L1100KC-15B0 or MN63F81MPN
April 2000

Megaman 64
November 2000

NBA Courtside 2
October 1999

Paper Mario
MN63F81MPN or 29L1100KC-15B0
August 2000

Pokémon Puzzle League
September 2000

Pokémon Snap
March 1999

Pokémon Stadium
February 2000

Pokémon Stadium 2
29L1100KC-15B0 or MN63F81MPN
December 2000

Starcraft 64
June 2000

Tigger's Honey Hunt
29L1100KC-15B0 or MN63F81MPN
November 2000

WWF: No Mercy
MN63F81MPN or 29L1100KC-15B0
November 2000

So I still need to buy one of the MN63F81MPN games to check it out. Auto detection of flashram type won't work but you should be able to manually choose both of the MX types and dump the save, then send the dumps to me so I can make adjustments to the code.


 Ok, thank you very much for your response.

 Still, I have not managed to make a reading of a save data from any of my cartridges.

 I suspect it may be a problem with the power to the Assembly, but I'm not sure.

 I am not sure where I should connect the clock line, I have connected line of clock at two potential sites in PH3 /CS and CPU_CLK in PH1, none of the two sites work for me, I have to look at the signal with oscilloscope and checked power from the circuit.

 Of course, there is no problem, as I get to do a Dump, I will send it to you.

 If you wish, you do not buy anything, I can send you a cartridge that I have, with the MN63F81MPN chip.

 I need a little time, to check and find where I have the error.



Hello to all:)

 Thank you very much sanni, by this instruction manual so large and so detailed. This must have been an impressive and very laborious work for you.

 I'm using very well my holidays week :)

 Three days I've been working on my electronic Assembly and I still don't know why it does not read the save data of any of the cartridges that I have placed in it, only reads the Rom.

 I apologize for my stupidity and my ignorance, but I can't find the fault in my assembly.

 I've revised it dozens of times, without finding any error, I have checked the wiring, I have changed the power supply several times and then I decided to use a battery, to avoid electrical noise. I have changed the memory card by different each other several times, everything has been useless, I can not get it work and read the save data.

 Then I tried to change the version of arduino, without positive result, I'm back up libraries several times, same result, I have uploaded the program arduino card several times, also without result. I'm very frustrated, I don't know what more can I do.

 Then I thought, this can be a problem of clock signal or something similar and I have decided to check the clock signal with my oscilloscope in pin 57(PH1) CPU_CLK, this has left me amazed, here is a reading with too much noise and a triangular wave, ranging between 28 Mhz and 32 Mhz. should be here in this pin a perfectly square wave signal is not true? with 1.6 Mhz. I apologize for my ignorance.

 Please sanni can you tell me, What signal must be present at this pin 57(PH1) CPU_CLK, thank you.
 I must take my Chinese clone of the arduino mega 2560 and delicately let it fall into the dustbin. Ha, ha, ha :)

 Believe me, I very much regret the inconvenience that I am causing, due to my ignorance and I apologise humbly, thank you to all.


Another photo of the reading of the oscilloscope, because in the previous message I could not upload it, I've exceeded upload limit per message.


I'm not generating a constant clock signal on that pin, it just pulses the clock shortly when it's reading/writing. Also the clock signal is just needed for eeprom save games. So even without it all other save types should still work.
What game(s) are you trying exactly?
What exactly is happening when you try to read save games?
It could be that your wires are just too long, since I never tested the code with anything else than my pcb.

Does the n64.txt get read from the SD card correctly so that it shows the right save type for the game in the oled screen?
Do you run your Arduino with 5V or 3.3V?
Do you have the S_Dat pin(n64 cartslot pinout) connected to pin 7 of the Arduino and with a 1K resistor to VCC? It's needed for eeprom saves.

Sometimes it's good to play the game shortly in a real console before dumping with the cart reader.

I think it's best to wait for the pcb's to arrive, so many thing that could be wrong and at the same time maybe nothing is wrong and you just found a bug in my code ;)


Thank you very much for your answer so quickly to my question.

 OK, I thought there was a constant clock signal, thank you for clarifying my doubt.

 I've read successfully the rom of these cartridges:

 - Super Mario 64
 - Zelda OOT
 - Zelda MM
 - F-1 World Grand Prix
 - Paper Mario

 Before reading the savedata of these cartridges, the program does not recognize what cartridge is it, and of course, the n64.txt is placed at the root of the sd card, along with the rest of files, snes.txt , cpak.txt, etc.

 Then when I try to read the savedata of either of them, it gives me this error: "Savetype error press button" I think that this is better see some pictures.
 With Super Mario cartridge inserted in it.



I'm powering the arduino pcb with 5v:

 - Oled Screen directly to 5v. No problem, manufacturer say 3v to 5v
 - The SD card directly to 5v, this is not a problem, because this card has installed an AMS1117-3v3
 - Cartridge has connected the power directly to the Arduino board to 3v3 and gnd pin respectively.
 - If of course S_Dat is connected to pin 7 and with 1k resistor to 3v3
 - The rest of the electronic circuit is connected as shown in the schematic, so I revised everything several times :)

 Yes, I've also tried playing around with the N64 cartridge, before reading, this is one thing that I also thought.

 I think you're right, is better for me to wait for arriving pcb's, what happens is, what I've been so long time waiting for this electronic circuit, what I'm already desperate.

 On the other hand I do not think what there is a bug in the program, chances are that I have done something wrong, maybe you're right and the wires are very long.

 I'll try to calm my enthusiasm and I wait for the pcb's, thank you very much for all and forgive my impatience :)

 Greetings to all the members of this community.


more pictures


I am sorry, but the system will not let me upload the photos along with the text, although probably the problem is I don't know how to do it.


It's not reading your cartridges right. The roms you dumped should not work. Try a game you don't like that much and power it with 5V instead of 3.3V and see if you get a valid info screen then. Maybe the 3.3V from the Arduino is not good enough.

See that is how it should look like, it should give you at least the rom name without errors:


 Hi, again,

 I already thought of that, also I thought what it could be a power supply problem, so I use an external power supply, connected to the 5v from usb using wires and powering the cartridge directly with it. But it didn't work either, look at the picture. But I'll try again.

 But I hadn't thought to check the roms written on the sd card, I thought that it was a correct reading, good idea, thanks, in this case I should install an emulator on my PC or I can use the Everdrive to check the roms. I will prove it.

 Relative to the powering the cartridge directly with 5v Ummhh, good idea but I had not thought about that, what happens is that I love very much my cartridges and I wouldn't like to see anyone die with 5v, but I think it :)

 Thank you, until tomorrow, I'm going to bed, I'm very tired.



According to https://www.retrode.com/plug-in-adapters/ the N64 cartridges should be 3.3V. I do not own an N64, but is it possible to remove the cover of a cartridge and stick only the PCB in the console? If so, you could measure the "original-voltage" there... Just to avoid the magic blue smoke thing you know... ;)

I did not have a look at the current sourcecode / the N64 parts, but maybe some output via serial or using e.g. an Atmel ICE (looking at the variables) could also help to debug the steps of cartridge detection?! If you need help there, feel free to PM me.

Truely impressive, what all you guys did here - it is hardly comparable to the tiny project I published three years ago...  :)

Best regards,


so I use an external power supply, connected to the 5v from usb using wires and powering the cartridge directly with it.
Ok then it's not a power supply problem either. The N64 carts need a good 3.3V supply, for example I tried with a power supply that only gave me 3.2V and I got errors too. But that external supply you're using looks good enough for the job.

If the info screen isn't correct it can't read the cart at all and it won't dump right, neither rom nor save.

Maybe it really is just that the wires are too long. It is known in the N64 portable scene that long wires on the cartridge port make the N64 malfunctioning. But this will fix itself after you receive my pcb set :)

Truely impressive, what all you guys did here - it is hardly comparable to the tiny project I published three years ago
Thanks, open source is a really powerful thing :D

Go Up