I know this question has been quasi-asked around here before but only resulted in a quasi-answer. Besides the CopyNES, what other cart dumpers/copiers are available out there. I realize that these things are mostly homebrew and I'm prepared to make one rather than buy one. I don't care for the CopyNES due to its being attached to an NES unit. I also understand that the kits aren't really being produced anymore and were expensive to begin with. I've read a little about the ChameleonNES but the hardware is exotic (read: Japanese) and there is basically no mapper support. I've also read about the IO-56, but ISA is dead. So, c'mon. There's got to be some copier out there that is more widely used and was the source for all those illegal iNES files I've read are floating around out there. I just can't seem to find it. Can someone point me in the right direction, please?
There was never a widespread commercial device to dump NES games. The majority of the ROMs on the net were originally sourced from commercial ROM collections originally dumped by one-off hardware and sold in Hong Kong and Taiwan. In the late 90s Japanese redumps were conducted with popular free DIY devices like the Pasofami/"Hong Kong" series. CopyNES is still the only non-one-off Western device and the source for most of the redumps. I suspect nearly all of the original NTSC NES and PAL dumps were made with one-off hardware. Most DIY dumpers (and CopyNES) I've heard about use something like the Intel 8255 parallel I/O chip or discrete 74/4000 series logic (most Japanese projects). Another 8255 device: http://enes.emunova.net/en/infos/dumper.htm I've designed a few parallel port dumpers I would give hints on as well: -Stand alone unit using 74 series logic (counter/register based) using <US$5 of materials. -Simple Famicom expansion port to parallel port cable. By far the easiest to build but slowest design (~4k/s). With this you insert an initial cart to run a program which copies itself into RAM and creates a software handshake with the PC, from there you just hotswap cartridges and use PC control software to dump/do tests/whatever. -CPLD mapper development board with additional cart slot. The CPLD gates the cart slot's control signals (and some address lines) according to a flag so the cart won't conflict with the local hardware (game or BIOS/whatever). In my dumping CPLD config I gave the external slot an artificial address space so theoretically a pretty user interface in ROM could be used simultaneously while dumping games.
Thanks for the info, Calpis. Very helpful. I had seen your link to the 8255 device before, but it suffers the same pitfalls as the others. It is a closed design (at least I couldn't find any designs for it) and it looks like dumping anything with an MMC is a pain. Your parallel port dumper tips are a great jump-off point. Also, I understand that using a FTDI chip or a parallel to USB adapter can get these running on newer equipment lacking parallel and serial ports.
There is practically nothing to 8255 designs, you just wire the 8255's data bus to the parallel port's, the 8255's control bus to the parallel port's and the 8255's I/O to the NES connector. Since each 8255 has 24 I/O you'll need two of them. -16 outputs for address bus (PPU and CPU can share) -8 outputs for CPU and PPU control -8 inputs for CPU and PPU status -8 I/O for data bus (CPU and PPU can share) -8 I/O free (can be used to daisy chain the second 8255 in order to not need decoding logic--I don't think that Spaghetto unit used this trick so there's another IC.) Really a dumper could not be simpler than this, the only issue is that 8255 are old and expensive. They also cannot interface directly with a FTDI module because FTDI don't have enough control signals so a little more logic is needed but not a huge deal.
Does anyone know of any similar chips or alternative implementations? I'm finding the i8255 and even its alternatives extremely hard to find.
http://www.jameco.com/webapp/wcs/st...toreId=10001&catalogId=10001&productId=52724& Alternative solutions: discrete logic, PLD, MCU, whatever the hell you want. Since you like Propeller chips and AVRs so much, why not software emulate a peripheral interface chip with one of them? (In this case it's actually feasible.) Get a MCU with USB transceiver and you won't need a FTDI chip either.
Or, if you're really no good at hardware (like me) but are good at software programming, you can dump cartridges/ROM chips visually. (Via a program running in NES RAM & hot-swapping the cartridge.) What I had to do a long time ago: Yeah, stupidly time-consuming. What I did more recently (now that I have a video capture device): --> It's a little onerous and time-consuming, but the captured data in the latter images can be cropped, scaled and converted to binary data automatically by image editing software (irfanview), so the latter method is good and necessary for dumping ROMs that are part of a system BIOS, ie: not on a cartridge.
Something similar to your approach were used to dump the iPOD boot loader by people related to the RockBox project, few years ago. But they used the system clicker as a sound output and modulated some sort of FSK stream, like old 8 bit computers used to generate the audio data for cassette storage of program and data. A custom made program on the PC then converted the wave data back to binary. Very clever. I say the same thing for your method.
Wouldn't it be possible to change so you use that PC NES transfer cable they made to transfer the data directly to a PC?
That circuit is just a controller with the parallel port simulating buttons. To use the controller port for data transfer is very difficult because there's only one latched output. People have made successful software UARTs for it, but that's all around complicated for the level of functionality. My link cable uses the expansion port for that reason, it's just 5 wires from connector to connector. On a side note probably the most elegant standalone dumper possible can be distilled to two sets of two of the most common 74 series chips totaling <$0.40. Writes and polling take 3 LPT accesses, full reads take 4 which should be over twice as fast as a 8255 design!
I knew there would be some problem with it ^^ Yeah the expansion port would probably be better to use.. but then you have the pain with finding a suitable connector (or solder wires directly).
My MD cart dumper/burner could be made to dump NES/FC carts... I do not know anything about the mappers used... my dumper has 28 output lines and 24 i/o lines it uses 3x 74AC374, 74AC138 and a 82C55.... a simple unintelligent LPT device... I am going to add support for SMS/GG, Gameboy and SNES soon...
But can it be used with one of those LPT to USB converters? I don't currently own a computer with a LPT port.
most likely not... things have to be bidirectional and you need to be able to control control signals as you wish... and all software is MS-DOS only anyway... and Win versions are slower and work only on 9x (XP will need I/O opening utilities).