Go Down

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


Ok.  I read up on the BS cart and wrote code for my reader.

The BS cart BIOS can be dumped as normal as it has a proper header.

The BS cart SRAM needs to have the SRAM routines modified as the SRAM is mapped across banks 0x10-0x17 at addresses 0x5000-0x5FFF.

The Memory Pak data is mirrored at banks 0x40/0x50/0xC0/0xD0/0xE0/0xF0.  Dump the data using a dumpHiROM type routine.

I only have one Memory Pak right now and I was able to successfully dump the game (Super Formation Soccer) off of it.  The dumped game matches the data from a retail cart with the exception of the header (0x7FB0-0x7FDF).

I recently found a new NP dump of Lord Monarch Rev 1.1 which matched the previously known BS Lord Monarch 1.1.  The only difference between my NP dump and the BS dump was the header at 0xFFC0. 

If you dump a Memory Pak, then the game will not have a proper header but that will be the only difference from a normal cart dump UNLESS the game is a previously unknown revision.

Good Luck!


I made a little program in Processing that splits a 4MB NP dump into single rom files. You'll need the Java Runtimes installed to use it.



Update to V9G:
Download: https://github.com/sanni/cartreader

- fixed printing of flash content

- fixed save type for JPN version of Kirby 64 in n64.txt (JPN version has SRAM, PAL and US have 4k eeprom)

- added rom version to info screen (thx to skaman for the code)

Nintendo Power
- changed npdelay back to 2, if you get multiple "switched to hirom"-fails change it to either 1 or 4
- added printing of the current mapping (both even and odd bytes)
- added list of the currently flashed games' 4 byte code and the rom version/size (couldn't do name because some games have japanese letters, basicly uses the same code as the np splitter program in the above post)



This week I have received the cart "Jet Force Gemini Pal" by mail, with the 29l1101 chip. I have made it the dump and everything has been perfect. The files that I've got work properly, both in the ED64 and in the PJ64, could not be otherwise, everything perfect ;)

Sanni, I have to apologize you, because in my previous post, I made a mistake, I'm wrong by putting the name of the cart that gave me problems. The cart is this: "World Driver Championship" and I wrote: "World Rally Championship". I lament much this mistake and confusion that I have created. I've already corrected the name in my previous post. I'm sorry very much.

This week I've dumped successfully these carts:

-Command and Conquer (USA) Version - flashram 29l100
-F1 World Grand Prix - 4k eeprom
-Knockout Kings 2000 - C.Pak
-Mickey Speedway - 4k eeprom
-Monaco Grand Prix - 4k eeprom
-Perfect Dark - 16k eeprom
-V Rally 99 edition - 4k eeprom
-Waialae Country Club - 4k eeprom
-Wave Race 64 (JAP) vesion - 4k eeprom
-Multi Racing Championship - 4k eeprom
-International Superstar Soccer 98 - C.pak
-Pokemon Stadium - flashram 29l1100
-Pokemon Snap - flashram 29l1100
-Lylat Wars - 4k eeprom
-Cruis'n World - 16k eeprom
-Ridge Racer 64 - 16k eeprom
-1080 Snowboarding - Sram

All the obtained files work perfectly in the ED64.

These are all the carts that I have at the moment, I need to test some of them in the PJ64 emulator. But if them working well in the ED64, them should also working perfectly in the emulator.

I still have problems with "Fifa 99" cart and with the "World Driver Championship" cart, in the emulator, but I still think that it is a problem of my computer Setup. I've uninstalled version 1.7 that I had installed and I have installed the latest version of the emulator PJ64, the problems now are minor, but they persists. I refuse to believe that it is a problem of dumps, I've dumped  several times the carts and the problem persists. But if this is a problem of carts dumps, these files would not work either in the ED64, however, the obtained files work perfectly in the ED64. Definitely I think I have a bad configuration of the emulator in my computer.

That these two games, don't work well in the emulator, this is one thing that for me don't worried to much. I think that I'm not going to continue with this topic. I don't like very much the emulators. I prefer playing games in the original system and feel the emotions in the original machine.

Now I've downloaded the latest version of the Sketch V9G, when I have time I will begin testing this new version.

Although the previous version V9E was already very well, thank you sanni by the new led colours, now is amazing and very nice, thank you for updating the listing with the size of the N64 roms, the program now recognizes all my carts and their sizes, this is wonderful.

Sanni, you're simply the best ;)

Kind Regards


Thanks for your kind words and all your testing, that really helps and motivates me.
Version 9E and 9G are basicly the same when it comes to the N64, so you don't need to retest :)


Those BS-X memory carts are kinda expensive or else I would buy one to tinker around.
Hmm...  I didn't realize that they had gotten so pricey.  I was hoping to pick up a blank Memory Pak to test code on.  Now I'm not so sure that I want to test the write code on my lone Memory Pak.  I thought I had another Memory Pak but I can't find it.

On second thought, maybe it wouldn't be good to implement the write code.  According to MatthewCallis, Memory Paks that don't show anything when you enter your house may not be blank.  Some downloaded data had a limited life and when it expired, the data was no longer accessible on the Satellaview BUT the data still exists in the Flash.

If anyone dumps their BS Memory Pak, please preserve the data.  That also goes for NP carts and any new revisions of retail carts.  If you find something that is previously undiscovered, then please consider sharing it.  If you're not sure how to share it, then message me and I'll get the data to the people that are dedicated to preserving it.


BIG THANKS!! To all the new SNES and NP Cart stuff. Makes it heaps more handy :-)


Thanks for your kind words and all your testing, that really helps and motivates me.
Version 9E and 9G are basicly the same when it comes to the N64, so you don't need to retest :)


True those were some really useful additions  :)

Today I implemented a CRC32 checksum for the dumped N64 roms and it now will also show the revision number.

Funny side note: The US and PAL Kirby 64 carts have 4K Eeprom. There are 4 different JPN revisions and at least one of those has Sram for saving so for now I have set all JPN revs to Sram in my n64.txt database.


I added a CRC32 implementation into my Enhanced SNES sketch too.  It makes it quick to check a new dump against known versions.

With all of the speed improvements in the dumping code, running a CRC32 check on a SNES size ROM doesn't really take too long.


Tested the new NP fuctions. Having the games list was realy handy! Even if its only a SHVC number!!!
Only thing i noticed is with a "blank" NP Flash Cart. The menu bombs out. I thought it would just say SHVC-MENU.... I personaly would leave it.. as i doubt there are many "blank" carts out there....

I think the Print mapping doesn't have enough room on the LCD. I have been able to find a 256X64 OLED screen. i presume its just filling the screen? Were as Menus all have CR's at the end??



Well you gonna like the V12 release too I bet, now the SHVC number has a little dot in front of it ;)
Finally added Sram reading for Nintendo Power games, switching to the different games might still be a little buggy since I don't check yet if the switch was successful.

Also I read how to use progmem and put all the menus in the flash instead of sram, so that now I'm again down to 60% sram even after adding all the new stuff.

From now on you need the Adafruit Si5351 Clock Generator for the Nintendo Power cart. It's just more reliable compared to manually clocking the MX15001 chip like I did before.
But if you don't have one you can still use the NP cart by simply plugging in a wire in CLK0 and hoping that this antenna catches enough noise to toggle the clk pin a few times...which actually works surprisingly well.


Well i better go buy some clock gen boards. :-)

How many frequencies do you need? Could you replace the board with fixed crystals instead? I presume its being used because it is software controllable??



Concerning Nintendo Power carts I have tried so far:
- 500 and 666kHz clock signal generated by Arduino -> works but not 100% reliable
- 2Mhz crystal from N64 controller pcb -> doesn't work, very unreliable,
- 10Mhz Adafruit clock generator -> works reliably
- 21Mhz Adafruit clock generator -> I feel like it works a little worse than 10Mhz


Not sure if its a code thing.. or the jumper pins on the PCB are being like small antenna's.

I built a external clock circuit. But no matter were i put the clk jumpers OR completely remove them. The NP Flash carts i have still works !!

I presume with your next version of code the extrernal clock will have to be connected in order for NP Flash carts to work?


Yes the external clock has to be connected from now on to dump NP carts.

Go Up