I have been thinking about getting a NES ROM dumper, but I just find the public alternatives like CopyNES way overpriced.
I know that most solutions use huge arrays of I/O ports or a bunch of buffers and latches in combination with some micocontroller, but I don't have a microcontroller, and I don't want to learn another programming language just for this project. Because of this I set out to design my own interface, with the idea that it could easily be directly connected to a standard computer bus interface (like the old-fashioned ISA-bus).
I came up with a design using two Nand gates, one Or gate and a 74LS145 bus-transceiver. It still needs an address decoder to be put on an ISA card, but it should at this point be possible to plug it into any EEPROM-interface with support for 64K*8 chips.
The design should only theoretically work, unless the mapper chips are extremely timing-sensitive. However, it's not tested practically. It works like this: A read from the lower 32KB will read whatever the cartridge curently maps as CHR. A read from the upper 32KB will read whatever the cartrige curently maps as PRG. A write to the upper 32KB will result in a write to the mapper (just like on the actual NES), while a write to the lower 32KB will indicate a write to the cartridge, but no chip will be enabled to receive it.
At this point I have most of the parts, except for the 72-pin edge connector and a 64K*8 ROM interface. It's darn simple to make such an interface, so that's no problem.
Here is the schematics:
http://oldibmpc.sitesled.com/misc/NESadapter.GIF
If the ISA-card solution is chosen, then the ISA ALE signal can replace the Nand-gate generating the Ø2 signal. However, then the /CE line must be masked by the ISA AEN line (requiering an OR-gate). Still, the part-count doesn't really change at all.
Any thoughts or comments on this?
I know that most solutions use huge arrays of I/O ports or a bunch of buffers and latches in combination with some micocontroller, but I don't have a microcontroller, and I don't want to learn another programming language just for this project. Because of this I set out to design my own interface, with the idea that it could easily be directly connected to a standard computer bus interface (like the old-fashioned ISA-bus).
I came up with a design using two Nand gates, one Or gate and a 74LS145 bus-transceiver. It still needs an address decoder to be put on an ISA card, but it should at this point be possible to plug it into any EEPROM-interface with support for 64K*8 chips.
The design should only theoretically work, unless the mapper chips are extremely timing-sensitive. However, it's not tested practically. It works like this: A read from the lower 32KB will read whatever the cartridge curently maps as CHR. A read from the upper 32KB will read whatever the cartrige curently maps as PRG. A write to the upper 32KB will result in a write to the mapper (just like on the actual NES), while a write to the lower 32KB will indicate a write to the cartridge, but no chip will be enabled to receive it.
At this point I have most of the parts, except for the 72-pin edge connector and a 64K*8 ROM interface. It's darn simple to make such an interface, so that's no problem.
Here is the schematics:
http://oldibmpc.sitesled.com/misc/NESadapter.GIF
If the ISA-card solution is chosen, then the ISA ALE signal can replace the Nand-gate generating the Ø2 signal. However, then the /CE line must be masked by the ISA AEN line (requiering an OR-gate). Still, the part-count doesn't really change at all.
Any thoughts or comments on this?