I removed the roms and replaced them with 28 pin sockets (from which I'd clipped pins 1, 22, and 27 to support rewiring). I then ran jumper wires as follows:
Code: Select all
Board Socket PRG 32 Vcc 29 27 /WE PRG 27 A14 3 1 A14 PRG 22 /CE 24 22 /OE CHR 32 Vcc 29 27 /W CHR 27 A14 3 1 A14 CHR 22 /CE 24 22 /OE
I loaded the PRG socket with an Atmel AT28C256 EEPROM and tried it out, but it didn't work. So I started checking connections with my meter. Even though pin 27 was clipped, there was still a connection between the socket and the board (due to the jumper wire going to pin 1). This would have the effect of pulling A14 high at all times. That shouldn't (AFAICT) have changed anything, but I fixed it anyway. After removing the jumper wire and a lot of work sucking solder out of the hole, I finally managed to break the connection. To avoid remaking it, I ran the A14 jumper wire to a pad connected to the MMC3's A14 line instead.
I didn't fix the CHR, which had the same problem, as it didn't have any chip loaded in it. It still didn't work, so I removed all the CHR jumper wires (just in case) and tried again, but it still didn't work.
I don't have access to a proper EEPROM burner (I'm looking to remedy that soon), but I've hacked together an eight-bit jobbie and it seems to work. By pulling all the unused address lines high, I'm able to write one page to the top of the ram, which should end up mapped to $FF00-$FFFF. As one page NES programs are in short supply, I wrote one of my own (which you can download here.) All it does is change the background color to purple and turn on sprite rendering (so that the background color shows), but it ought to be enough to confirm that it's working.
My NES is out of commission, so I've been testing on a cheap 72-pin famiclone. The only thing I can think of that would be an issue with using the clone is that it doesn't supply a full 5 volts, it only puts out 4.16 volts. The datasheet on my EEPROMs calls for a supply of 5 ± 10% volts, so it's slightly out of spec. I haven't tested whether the EEPROMs work when under-supplied.
At this point, I can't figure out what's wrong. Four possibilities come to mind:
- Something is wrong with my rewiring.
The EEPROMs don't like the clone's under voltage.
- The MMC3 doesn't function with the CHR missing.
My test program doesn't work on real hardware.
Despite appearances, my hacky EEPROM burner doesn't work.