ROM Dumper
Content is old and unmaintained.
Making a ROM Dumper for the NES:
For my first project I am going to try and dump the cartridge
‘Duck Hunt’ for the reason that it has no MMC’s and has no security
screws on the back. The first step in making a dumper is to look at
the pinout of the cartridges:
Cart Pinout:
------------
Top Bottom
---------------------------- +-------+
GND |01 37| CLK 21.47727Mhz (NTSC)
PRG A11 |02 38| M2
PRG A10 |03 39| PRG A12
PRG A9 |04 40| PRG A13
PRG A8 |05 41| PRG A14
PRG A7 |06 42| PRG D7
PRG A6 |07 43| PRG D6
PRG A5 |08 44| PRG D5
PRG A4 |09 45| PRG D4
PRG A3 |10 46| PRG D3
PRG A2 |11 47| PRG D2
PRG A1 |12 48| PRG D1
PRG A0 |13 49| PRG D0
PRG R/W |14 50| PRG /CE (/A15 & /M2)
/IRQ |15 51| EXP 9
EXP 0 |16 52| EXP 8
EXP 1 |17 53| EXP 7
EXP 2 |18 54| EXP 6
EXP 3 |19 55| EXP 5
EXP 4 |20 56| CHR /WR
CHR /RD |21 57| CIRAM /CE
CIRAM A10 |22 58| CHR A13
CHR A6 |23 59| CHR A7
CHR A5 |24 60| CHR A8
CHR A4 |25 61| CHR A9
CHR A3 |26 62| CHR A11
CHR A2 |27 63| CHR A10
CHR A1 |28 64| CHR A12
CHR A0 |29 65| CHR /A13
CHR D0 |30 66| CHR D7
CHR D1 |31 67| CHR D6
CHR D2 |32 68| CHR D5
CHR D3 |33 69| CHR D4
SECURITY |34 70| SECURITY
SECURITY |35 71| SECURITY
+5V |36 72| GND
+-------+
Cartridge Connector
There are 2 chips on the cartridge which contain information that we want to dump from, the CHR and the PRG. The CHR being the character ROM and the PRG being the program ROM. Now lets take a closer look the CHR and the PRG ROM:
CHR ROM:
On the cartridge pinout we can see that there are 13 address lines, CHR A0-A12, meaning it can address upto 8K of memory, (2^13).
There are also 8 data out lines, CHR D0-D7. This is where we would receive the data from and dump it to a binary file.
PRG ROM:
The PRG has 15 address lines, PRG A0-A14, meaning that it can address upto 32k of memory, (2^15).
There are also 8 data out lines, PRG D0-D7. This is where we would receive the data from and dump it to a binary file.
Only 32k + 8k addressable?
The NES cartridge uses MMC’s to get around this hardware limit, memory mappers, these address different pages of memory when required. I am not going to look into this yet. Maybe later.
A closer look at the duck hunt Cartridge

The Duck Hunt Cartridge itself, now to
open it!

The opened cartridge, lots of free space!

Close up of the chips…From the left, Security chip, CHR Chip, PRG chip
Making the Schematic
I believe that the only lines we are going to need are the following:
-
CHR ROM, A0-A12, D0-D7 – 21 Lines
-
PRG ROM, A0-A14, D0-D7 – 23 Lines
-
+5v
- Ground
Ok, to dump the CHR ROM or the PRG ROM, i will need to request a memory address, read the value off the data out lines and put it in a file, then read the next address and do the same until I get to the end of the addresses. I intend to use a serial port to communicate with the computer as it is a lot simpler to design. I now need to sort out the demultiplexors for the circuit.
Entries (RSS)