a Windows CopyNES client by Quietust
[Skip to Downloads]
[Return to NES Stuff]


CopyNESW is a Windows application designed for interfacing with Kevin Horton's CopyNES, a Nintendo Entertainment System modified to support dumping cartridges, saving and restoring battery-backed RAM, uploading programs to RAM/Flash cartridges, and real-time debugging. Nearly all functionality of the original MS-DOS QBASIC client has been implemented (in one form or another).

This client should work on any modern version of Windows - it was last tested on 2000/XP (32-bit) and 7/8.1 (64-bit), and it ought to function on Windows 10 as well. Both the original parallel port CopyNES and USB CopyNES are supported by this client; parallel port mode should work on both 32-bit and 64-bit versions of Windows, though USB support has not yet been tested in 64-bit mode and may not be available.


All - Recent - 2013 - 2012 - 2007 - 2006 - 2005

July 12, 2006

The plugin select dialog has been updated to remember the last plugin selected.

June 17, 2006

The CNRAM plugin has been updated to fix a bug in which it failed to unmap the CopyNES BIOS from memory.

June 16, 2006

Added support for Memblers's UNROM Flash cartridge to the RAM Cart command.

Also made the RAM/Flash cartridge type selector use the global plugin select dialog.

March 4, 2006

Support for custom parallel ports has been added - simply select the port name, then override the address in the configuration dialog. In addition, a program restart is no longer required when changing the port configuration.

I have implemented support for custom plugin categories - if you receive an error when attempting to use the "Run Plugin" or "Write WRAM" options, edit MAKEBASE.BAS (from the standard CopyNES distribution) and make the following changes:

  1. Find the line DATA "*"," ",0,"Test & Dev Use".
  2. Replace it with the following lines:
    DATA "*"," ",2,"Test & Dev Use"
    DATA "xxxx","xxxx.bin",998,"Custom Plugin"
  3. Locate the "WRAM Readers" and "Nintendo: Famicom" groups.
  4. Between them, insert the following category:
    DATA "*"," ",1,"Save RAM Uploaders"
    DATA "xxxx","xxxx.bin",998,"Custom writer"
    DATA "NES-SxROM","sxram.bin",999,"SxROM (MMC1) SRAM writer"
    DATA "NES-TxROM","txram.bin",999,"TxROM (MMC3) SRAM writer"
    DATA "NES-ExROM","exram.bin",999,"ExROM (MMC5) SRAM writer"
    DATA "NES-HxROM","hxram.bin",999,"HxROM (MMC6) SRAM writer"
  5. Save the file and run it in QBASIC to recreate the file MAPPERS.DAT.

February 28, 2006

Support for the additional NetMos PCI parallel adapter I/O base addresses (E000 and E800) has been added (and the parallel port selection combobox has been resized to show all of them at once).

It is also now possible to unselect the parallel port and use the client offline (without having to wait for the version query to timeout).

February 18, 2006

CopyNESW now features support for parallel ports operating in ECP mode.

In addition, it also now supports the NetMos High Speed PCI parallel adapter when using I/O base address D800 (so I can use my CopyNES with it).

January 17, 2006

The VRC7 Tuner module has been implemented, and various bugs have been fixed in other modules (including filename selection in the 'Fix GAR' module).

January 9, 2006

MicroBug is now mostly functional, though there are still some minor lockup bugs that need to be fixed.

January 3, 2006

Fixed a bug where cancelling from a 'Select Plugin' dialog would crash the program.

I've also started work on MicroBug - currently, selecting the option will simply display the main dialog (without any functionality).

January 1, 2006

My CopyNES arrived a few days ago, and I've had the opportunity to fix lots of bugs in the client. BankWatch now works properly, and 'RAM Cart' now supports two suboptions (NROM and CNROM, the latter being for a devcart I made).

'Dump Cart' still has a few issues to iron out (it can crash if you cancel at the wrong places), and 'Run Plugin' currently can only select WRAM writers (though fixing this requires a corresponding update to the QBASIC client).

My next priority will be implementing MicroBug, so keep an eye on this site for further updates.



  1. Download the original QBASIC client for CopyNES and extract it to a convenient directory, being sure to restore the directory structure.
  2. Download the CopyNESW client and extract it into the COPYNES directory, restoring subdirectories. You should be prompted to overwrite CNRAM.BIN - do so.
  3. If you are using a parallel port CopyNES, run install_parport_driver.exe - if you are running Windows Vista or later, you will be prompted to elevate. If you are using a USB CopyNES, download and install the above FTD2xx Driver if you have not already done so.
  4. Run CopyNESW.exe. The menu should appear with only a small number of options enabled.
  5. Click on the 'Options' button and select which port to use. If you are using a PCI parallel port card, you may need to specify a custom base address and ECP offset based on the I/O addresses it happens to use.
  6. Upon pressing 'OK' (and each time you start the program), a version detection dialog should appear for about a second. If you are using an older CopyNES (with version 1 BIOS), the delay will be longer (3 seconds) and the 'Microbug' option will be disabled. If you are using parallel port mode and receive a warning about bidirectional communication, change your parallel port settings in your BIOS and enable ECP mode.
  7. Read the CopyNES QBASIC documentation - a great majority of it is relevant to the Win32 version, and the rest should be fairly intuitive.


Valid XHTML 1.0 Valid CSS!