The NINTENDO PC INTERFACE SYSTEM is a hardware device designed several years ago by my brother and myself. My original intention was to create a way to transfer game software contained in Nintendo cartridge ROMs to PC disk files where they could later be downloaded to a "universal cartridge", a regular Nintendo cartridge whose ROMs are replaced with battery-backed static RAMs. This relatively simple idea seemed to me the best solution to the many problems associated with my previous method which utilized an EPROM programmer and a socketed cartridge. While this system in its present form works flawlessly on those first generation Nintendo cartridges for which it was designed, the newer, larger memory ROM cartridges' diverse addressing formats made designing a single integrated system a nightmare to someone of my limited design experience. Part of the incentive for going public with this system is to possibly inspire others to improve upon what we've started. WARNING! This is NOT a good electronics project for beginners for several reasons. One being that, in these directions, I have assumed the builder is familiar with the reading of schematics. These instructions are far from being detailed. Secondly, with so many soldered bus connections, the most experienced assembler is bound to run into problems which can only be troubleshot with a VOM and an abundance of patience. I can just see hundreds of pissed-off hobbyists writing me nasty letters because of their own crossed wire. I tried my best to double-check the accuracy of my schematics with that of my prototype, but knowing that anything can happen, I'll be prepared to answer any reasonable requests for help. ******************** There are five files included in this archived file. NINTEN.DOC - This documentation file with instructions and information (such as it is). NIN.EXE - This is the device driver for the unit written in assembly language. SCHEM1.PIC - The PIC file that displays the schematic for the PROGRAMMING MODULE. All the following picture files can be shown with CSHOW or other graphics display programs. SCHEM2.PIC - The schematic for the UNIVERSAL CARTRIDGE. This is a regular Nintendo cartridge that is converted in the process described below. SCHEM3.PIC - The schematic for the INTERFACE BOARD which plugs into an 8 bit expansion slot and connects to the PROGRAMMER MODULE via a 25 pin "D" connector. ******************** CONSTRUCTING THE PROGRAMMER MODULE This is the unit that will actually have cartridges inserted into it. I used a plastic 2x3x6 Radio Shack project box. From the top edge of one of the 6" sides cut a 1 & 1/8 inch by 4.5" slot. Now for the bad news. The 72-pin connector that Nintendo uses is non-standard. I had to cannibalize a whole Nintendo System to use the actual zero insertion force connector built inside the unit. This I mounted to the bottom of the project box so that a cartridge could easily be inserted coming in at a downward angle then being pressed down to a horizontal position. Since this will be minus the spring loaded guiding mechanism of the Nintendo System, it's important that the 4.5" slot width holds the cartridge firmly in place while in the "down" position. The components are mounted on a 2x4 inch perf board. The D connector is mounted on the right side of the project box (slotted being front). Admittedly, things get a bit crowded. I used ribbon cable for bus lines directly soldered to a 72 cardedge (just the "fingers") sawed off a cartridge board. This plugs into the lower slot of the connector. Keep the lines long enough to wrap around the bottoms and sides of the box to the component board that will ride on top of the connector. ******************** CONSTRUCTING THE RAM CARTRIDGE The following is the process used to prep an existing Nintendo cartridge. As far as I know any of the games mentioned at the end of this doc file will work as a "ram cartridge" but to be sure you may want to use the game cart I did; SOCCER. The following directions are listed briefly on the schematic itself. 1) Remove solder bridge (V or H) to CE 22. 2) Remove both ROMs and replace with static rams 43256 (NEC) with the following pins pulled up: CHR ram - 20,27. PRG ram - 1,20,27. 3) Scribe a break in the 5 volt circuit path. Right above pin 16 on the CIC chip is a good place. Jumper with the 1N4005. In the cartridge schematic that diode is the only component (besides the rams) mounted on the factory board. All others, including the battery, I put on a 1.75x1.75" card. 4) Jumper WE pins on CHR ram pin #27 to cardedge #19 and PRG ram #27 to cardedge #15. Jumper in the same way pin 1 on the PRG ram to the punched hole normally reserved for its pin 27. ******************** CONSTRUCTING THE INTERFACE BOARD The interface board I used was not of my design. I used the card plugged into my PC's expansion slot that connects to my MIDI music system. This is simply a port address assigning driver board which means this system uses the same port addresses as a Roland MPU401 MIDI device. It should be easy to duplicate using a breadboard 8 bit PC card and the schematic provided. ******************** RUNNING THE SOFTWARE Start the program by typing "NIN" at the prompt. This is the executable file containing the programmer's device driver written in assembly language by my brother, Jeff. For a printed copy of this code see "FOR FURTHER INFO" at the end of this doc file. NIN.EXE is a self-explanatory menu-driven program. To save a cartridge's software to a disk file: Place the cartridge to be copied into the programmer unit. Press "R" for "Read from port". This command places the software read from the cartridge's roms to a buffer in memory. NOTE: the program responds only to upper case. Next press "O". This command will be followed by a prompt asking you to name the file that will be created containing the data in the buffer. To download software from the disk file to the "ram cartridge": Firmly install the cartridge into the programmer unit. Press "I". This places data from the file into computer memory. Next press "W" to write data to the static rams in the cartridge. Carefully disconnect cartridge from the programmer. Set cartridge DIP switch to horizontal or vertical position depending upon game. Cartridge is now ready to be played in your Nintendo System. ******************** DISCLAIMER This program and instructions are distributed as is without warranty. In no event will I be liable to you for any damages arising out of the use or inability to use said program or devices described herein. ******************** MORE INFO Please keep in mind that, as previously mentioned, this device is limited to copying only older, smaller memory cartridges. In order to compete in the current video game market, Nintendo and its licensees presently use much larger memory ROMs in their games which involve dozens of varied addressing schemes. To design a single integrated programmer which would accommodate all these formats would require a much more sophisticated device. The following, while being far from complete, is a partial listing of those games that have worked successfully on my prototype: BASEBALL, GOLF, POPEYE, ICECLIMBER, DUCKHUNT, EXCITE BIKE, BURGERTIME, PINBALL, HOGAN'S ALLEY, DONKEY KONG JR., URBAN CHAMPION. For those of you who successfully complete the building of this system and would like to become a registered user, I will be happy to send you a disk containing the latest extended device driver which allows the programmer unit to accommodate 64K software cartridges without any change in its hardware. Just send a check or money order in the amount of $35.00 to: Gary Kibler 7902 Holt Avenue #7 Huntington Beach, CA 92647 The following is a partial list of those 64K games that have successfully loaded on my prototype with the extended driver: SUPER MARIO, KUNG FU, SLALOM, WRECKING CREW, ICE HOCKEY, SOCCER, TAGTEAM WRESTLING. As mentioned before, I am willing to respond to any reasonable requests for help or information provided you are a registered user. Being registered also entitles you to the documentation and code to both versions of the driver software. Just mention this request in your letter.