Random Image

Home arrow Projects arrow Projects arrow NES Development Kit
NES Development Kit PDF Print E-mail
Written by Michael Noland   
Monday, 27 March 2006

This is my second prototype NES development kit. The goal of the project is to allow anyone to execute a program directly on the NES hardware, or to read cartridges inserted into the NES. This particular design works by placing the NES CPU (2A03) into a high-Z state while a second microcontroller (PIC 18F452) takes control of the bus. It then stuffs the 2 KB internal work RAM with a boot program and masks the address lines comming out of the 2A03 to mirror the internal RAM across the memory space. When the CPU is released from high-Z and reset, it will jump to the reset vector (now in RAM), and run the boot loader. The bootloader can contact the host PC via the PIC over a serial port and copy a more substantial program to a RAM card (not yet built) or dump a cartridge to the PC.

The hardware design is substantially simpler than the first prototype, with one microcontroller, two 74's, and a max232 serial level converter. Since the board has to gate off some of the CPU address lines (as well as keep it in reset while the rest of the system is active), the 2A03 is desoldered from the system and placed on the devkit board, with a EPROM emulator-style cable running back to the CPU socket. This cable is likely the cause of the occasional system glitches I've been experiencing, and I plan on replacing it with a shielded cable.

Image
Board on my workbench

Image
Board installed in NES

PCB layout
Board PCB layout

Image of board schematic
Board Schematic

Note to anyone considering building this:

  • This was designed mainly to avoid the need for a Flash ROM programmer, and partly as a challenge to myself to make a minimal DK. The design itself consists of just three chips! The MAX232 is only needed for interfacing to a fraction of desktop computers, most will take TTL level signals over a short cable, and a good choice for modern computers is to use a FTDI USB module instead (acts just like a serial port, I use them anywhere I need a PC connection now).
  • A CopyNES style design is far superior for general-purpose use, and the ROM means you get more bang for your buck with downloaded code. I've got a couple tubes of 128 KB flash chips just sitting here, so I might build a NESDK v3 sometime, perhaps as a cartridge with USB link. For historical purposes, the NES DK v1 was designed and built in a weekend, using a full sheet of protoboard with something like 15 chips (no microcontroller, it was a non-latchable counter providing the address to RAM being programmed over a parallel port), and quite forseeably didn't work at all.
  • The schematic is invalid, as it turned out that the NES CLK wasn't able to drive the PIC reliably.  I ended up adding a seperate can oscillator.

Thanks to Kevtris for all of the debugging help and greets to #nesdev @ EFnet.

Last Updated ( Thursday, 30 March 2006 )
 
< Prev   Next >
© 2010 Bottled Light, Inc.
Joomla! is Free Software released under the GNU/GPL License.