ROM-Reader for Super Nintendo / Super Famicom Game Cartridges

Alright so I've looked at the ROMs and it seems they are all different, or at least they are in sizes. 4, 8, and 32. I ran the 3 failed CRC dumps through GoodN64 and Pokemon Stadium actually passed verification which makes me think that it dumped correctly even though it gave a CRC error. It boots up fine in an emulator. Golden Nugget 64 and Glover do not pass GoodN64 verification. Golden Nugget 64 does boot in and emulator though but Glover refuses to boot at all. I checked the resistance on my switches (I think I did it correctly correctly) but I am getting something around .8 Ohm. Anything else I can check to help you out? I know nothing about coding but am willing to provide as much information I can.

Edit: I have found out the reason my Pokemon Stadium dump is not matching the CRC is because it's revision 2 which doesn't appear in the n64.txt. I have verified this with CRC information online. One more solved. Still looking into the other 2.

Edit edit: The Glover dump file size is 4,096KB instead of 8,192KB which I believe is what it should be comparing it to other dumps. Not sure why it is doing that.

Thanks for the detailed report. :slight_smile:

I added three new CRCs for different versions of Pokemon Stadium and fixed Glover's size to 8MB in the n64.txt database file. So after replacing the file on your SD those two should get valid CRCs now.

As for Golden Nugget 64 you can try if slowing down the Cart Reader has any effect.
In Cart_Reader.ino change:

/******************************************
Define SD Speed
******************************************/
// 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

/******************************************
Define SD Speed
******************************************/
// 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

and upload it to the Arduino.

That seemed to do the trick with Glover. Golden Nugget is the last one that I am having issues with. Slowing the SD speed resulted in no changes. The game seems to play fine in an emulator which makes me think it is being dumped somewhat correctly but it doesn't match CRC checksums I have found online and it doesn't pass GoodN64 checks. The only think I can think of is I have a version that has never been dumped before which I find highly unlikely.

I've been trying to adapt 27c801 eproms to work with the cartreader, no success tho.
Could you try to make it program 27c801 eproms? I'm a newbie in arduino and in writing code.

JCreazy:
which makes me think it is being dumped somewhat correctly

You could use a Hex Editor like HxD, open both the dumped and the known good rom and compare them to see where they differ. CTRL+K and then F6 to move to the next difference.

RyoHazuki:
Could you try to make it program 27c801 eproms?

I use my TL866 to program 27C801 eproms. It's a very cheap Chinese programmer that can do a lot of stuff.

Just recieved my repro of conker's bad fur day, i tried to make a backup of the game and my current save file, it backups both successfully but when i try to write the save back to the cartridge it looks like nothing happened, it writes and verifies successfully but when i put it in the console it still has my last save file.

Edit: Tried reflashing my cartridge, and all i get is a black screen. Tried changing the file in an hex editor, tried using patches and still nothing the only game that worked was banjo tooie. I have a PAL N64.

Perfect Dark and Donkey Kong 64 should also work since they also have 16K eeprom and 6105 CIC just like Conker and Banjo Tooie.

sanni:
Perfect Dark and Donkey Kong 64 should also work since they also have 16K eeprom and 6105 CIC just like Conker and Banjo Tooie.

Is there any way to play smaller games like Super Mario 64?

sanni:
You could use a Hex Editor like HxD, open both the dumped and the known good rom and compare them to see where they differ. CTRL+K and then F6 to move to the next difference.

I use my TL866 to program 27C801 eproms. It's a very cheap Chinese programmer that can do a lot of stuff.

I finally got around to comparing the Hex of my Golden Nugget dump and a confirmed one. The one big difference I see is there is a large section that is all zeros in the confirmed dump. There is just no data there and in my dump there is all sorts of data. I am not sure what would cause this but it's making me question weather or not the confirmed dump CRC is correct. Without having access to another cart, I can't really say for sure but it is odd how there is a giant blank area in the file.

The known dump of Golden Nugget 64 with CRC32 641885DF is marked as Unverified by No-Intro.

It could be a bad dump.

What is the CRC32 for your dump?

skaman:
The known dump of Golden Nugget 64 with CRC32 641885DF is marked as Unverified by No-Intro.

It could be a bad dump.

What is the CRC32 for your dump?

It's 70594d3c

The random data could also be the result of an open bus since I don't have the internal pull-up resistors enabled in the N64 code.

You can try changing the void adIn_N64() function in n64.ino like so:

// Switch Cartridge address/data pins to read
void adIn_N64() {
  //A0-A7
  DDRF = 0x00;
  // Enable Internal Pull-up
  PORTF = 0xFF;
  //A8-A15
  DDRK = 0x00;
  // Enable Internal Pull-up
  PORTK = 0xFF;
}

sanni:
The random data could also be the result of an open bus since I don't have the internal pull-up resistors enabled in the N64 code.

You can try changing the void adIn_N64() function in n64.ino like so:

// Switch Cartridge address/data pins to read

void adIn_N64() {
  //A0-A7
  DDRF = 0x00;
  // Enable Internal Pull-up
  PORTF = 0xFF;
  //A8-A15
  DDRK = 0x00;
  // Enable Internal Pull-up
  PORTK = 0xFF;
}

I get an identical dump after doing that. Same crc and everything.

I ordered a copy of Golden Nugget 64 and I'll redump it.

JCreazy:
It's 70594d3c

CRC32 Confirmed.

The original known dump is bad.

I'll submit the redump details to No-Intro.

skaman:
CRC32 Confirmed.

The original known dump is bad.

I'll submit the redump details to No-Intro.

So I'm not crazy. Does that mean that the majority of Golden Nugget 64 ROMs that people have been downloading for the past 20 years are bad dumps?

JCreazy:
So I'm not crazy. Does that mean that the majority of Golden Nugget 64 ROMs that people have been downloading for the past 20 years are bad dumps?

Yes, appears so. Anyone that previously downloaded a ROM received the bad dump.

No-Intro had it marked as Not Verified but that doesn't stop anyone from downloading. The entry has been corrected in the No-Intro database and a copy of the clean dump will eventually replace the old dump.

I just want to say thanks again for making this project and for sharing the source. I was able to refine my design and make this ultra tiny portable version:

https://gfycat.com/onlyscholarlylabradorretriever

I've still got quite a bit of tweaking to do to make it feature compatible (i.e. make the extra shields for SNES, N64, etc) but I'm super please so far.

Nice work. :smiley:
Btw. I love your youtube channel, so many great videos and projects. 8)

Hey sanni, how did you flash super mario 64 on a conker's bad fur day cartridge in this video of yours.
I can only flash 6105 CIC games on my conker repro.