XCARTIO
FLASH cartridge programmer from Andrew March

 

To make a re-programmable cartridge for the Nintendo Gameboy, replace the mask ROM with a 29F040B FLASH ROM according to the instructions on Reiner's Gameboy page.

A programmer unit is then used to load software into the modified cartridge. This page provides plans and PCB artwork for XCARTIO, a single chip programmer unit built around a Xilinx XC9572-15 PC84 EPLD on a single-sided PCB.

XCARTIO is controlled by Reiner's ReadPlus software running on a DOS/Windows PC equipped with a plain-vanilla parallel port (use the readepld.exe executable).
 

Component side view.
The cartridge connector at the top of the board was salvaged from a broken Game Boy.
The 26-way header at the bottom of the PCB connects to your PC's parallel port.
 
 

Solder side view.
The EPLD is programmed AFTER soldering to the PCB.
 

Full plans are contained in the XCARTIO zip file (version 1.12) which includes a schematic, PCB artwork and a JEDEC programming file for the EPLD.

The EPLD logic is based on Reiner Ziegler's Altera implementation of the CARTIO cartridge programmer by Pascal Felber.

To program the Xilinx EPLDs used in my project you'll need a device programmer such as the one pictured below. It's a fairly simple affair thanks to the in-system programming feature of the XC9500 family devices. It interfaces the EPLD's JTAG port to the parallel port of a PC running Windows 95.

The EPLD is programmed AFTER soldering to the PCB. Apply external power, connect the JTAG download cable between your PC's parallel port and the header pins above the voltage regulator, then run the EZTag software to download the JEDEC device programming file.

The companion EZTag software is a DOS executable with Windows GUI and can be obtained from the FTP file area of the Xilinx web-site. You can also download the Xilinx PLD programmer software from here.

Unfortunately, Xilinx left out the PCB details so I designed my own artwork and called it EZTagPCB. You may also wish to check out the original Xilinx schematic.