last update 28. Mrz 08 GameBoy Cartridge Reader and Writer by Reiner Ziegler Take a look here for my new MBC5 game cartridge. This cartridge can nearly play all GB and GBC games :-) Buy an original GameBoy cartridge with RAM, ROM, MBC1 and Battery. Possible games are Another Bible, Donkey Kong Land 95, Dungeonland, Kirby 2, Super Marioland II, Super Marioland III, Mario´s Picross, Metroid 2, Zelda, Donkey Kong, Lucle, Kirby Blockball, Kirby Dreamland II, World Cup USA 94 ... Replace the original ROM (max. size 512Kbyte, SMD Part) with an AM29F040-150JC (512Kbyte, PLCC Part) like I did or try to get an AM29F040-150SO (SMD Part). You can also use the AM29F040B version of that chip.
Pin 1 of the ROM is not used. Connect Pin 1 (A18) from AM29F040 to Pin 31 of the ROM and Pin 31 (WE) from AM29F040 to Pin 31 of the GameBoy connector (Audio IN). Connect a Pullup Resistor of 47kOhm between Pin 32 (VCC) and Pin 31 (WE) of the AM29F040. The Resistor is necessary to disable the WE Pin of the Flash chip in normal operation mode. All other Pins can be directly connected. The left side of the PLCC chip can be directly connected to pins 5-13 of the old ROM pads.
You can also replace the
original ROM (max. size 512Kbyte, SMD Part) with an AM29F016B-90SC or 120SC (2Mbyte,
SO-44 Part). In this case you can store up to three games inside one cartridge. With my
software startup.gb (explained later) you can select 1 out of 3 games.
Remove the old ROM chip and solder wire-wrap wires to Pin 2-15, 17 and 22-32 of the ROM pads. Bend all pins of the AM29F016B up (except 22, 24, 25, 26 and 27) and connect this 5 pins directly to the pads 16, 18, 19, 20 and 21 of the original ROM chip. Connect pin 2 (Reset #) to VCC. Connect pin 35 (A19) to pin 6 (EA0) of MBC1. Connect pin 32 (A20) to pin 7 (EA1) of MBC1. Connect pin 30 (WE#) to pin 22 (WR) of MBC1. Pin 28 (RY/BY#) and pin 1, 11, 12, 31, 33, 34 of AM29F016B are not used. Don't forget to connect pin 21 to pin 22 (VSS = GND) and pin 23, 44 to VCC. All other pins are connected to the appropriate pads. Try not to cross any wires over the flash ROM, there is not enough place for doing that.
If you like to build a 16MBit cartridge based on MBC3 take a look at my Links page. This MBC3 based carts are only used by a few games. All modified cartridges are also working with the Color GameBoy. The last project is a cart with the MBC5 chip and the AM29F032B (32Mbit) flash chip from AMD. The MBC5 chip (PDF docu) is used inside the new Color GameBoy games. The old MBC1, MBC2 and MBC3 cartridges are also supported by the Color GameBoy. Here is a useful GBC cartridge list. Click on the pictures for more hardware details. A lot of MBC5 details
and a Custom MBC5 cartridge with Xilinx CPLD, 512kB flash and 128kB SRAM is
available here
:-) Pictures of a
AM29F032 4MB cart with A21 hardware bank switching.
Description of a home made 64MBit cart ! Here is a description how to replace the ROM inside a MBC5 cart with an Intel 28F640J5 (64MBit chip) from Frank Dobert (great work Frank). A special ReadPlus (Bung) version is here. Didn't have time to add this into my ReadPlus version, but next time ...
The AM29F040(B)-150JC (512Kbyte, PLCC Part), AM29F016B-90SC (2Mbyte, SO-44 Part) or AM29F032B-xxEx (x = don't care) are available from AMD (see http://www.amd.com for a local distributor) or from a very fast distributor in germany http://www.segor.de (page in german and english).
Here are great projects from Steven Willis.
Here are pictures from the old white-label cartridge from Nintendo with a LH28F032SU flash chip from Sharp. This cartridge is only available for professional game developers. The new blue-label cart uses an Intel DA28F320J5120 flash chip but most importantly it uses a MBC5-D as an MBC rather than the power hungry Altera EPM7064STC44-10 that was used in the white-label cart. The MBC5-D is probably identical to a standard MBC5 except for the fact that it has a higher pin count. Most of these new pins being used to connect to a dipswitch which varies the cart RAM that is available to the game.
Here are pictures from Bung cartridges. You can program these cartriges with the programmer (GB-Xchanger) from Bung, the GB Game Jack or the GB Transferer from EMS and not with home made programming hardware. At the moment 4MBit,16MBit and 64Mbit cartridges are available.
Here is a program from
Purple Gem
to burn cartridges with the PocketVoice. You burn the GB part into a pocket
voice, connect it to a PC using the standard GB-Basic
gb-to-lpt-cable, hold a button on the GB, power up the GB and start the
transfer program on the PC to burn a ROM. When burning is done, reset the GB and
the just-burned ROM will be executed.
Here is a programming system (GB Cart Flasher) from two IT students in Poland. Great work guys.
Select one of the following possibilities. With each solution you can program your modified cartridge. My ReadPlus programming software will support all home made programming systems (except the new GB Cart Flasher). Change the original CARTIO hardware from Pascal Felber (parallel PC port used), take a look at my Links page for PCB information There is one not used 7400N nand gate on the CARTIO hardware. Connect Pin 12 with Pin 9 (RD), Pin 13 with PRN1 = J1 Pin3, Pin 11 with Cart32F (Audio) Pin 31 and your hardware is ready for programming flash chips. Maybe Pin 12 and Pin 13 are connected to ground. In this case you have to isolate the two Pins first. Connect 3300pF between CLK (pin 11) of each 74HCT374 and ground if you have problems using CARTIO on different computers. Build Pascal's IO-56 hardware (standard ISA bus inside PC used) For more information's about features, parts ... see here. The IO-56 programming software running under windows (source is included) from Jason Millard is now available here. Please read the short Readme.txt from Jason. Buy the IO-48 hardware (standard ISA bus inside PC used) There is a commercial ISA card that is equivalent to the IO-56. It also uses two 8255 chips, and provides 48 I/O (instead of 56). This card was sold by Conrad Electronics in Germany and its reference was: "975842-62, Interface 48 I/O". Once you get the old IO-48, you must build a simple IO-48 to GameBoy connector cable. The description of this cable is here. GB camera read/write and programming of all modified cartridges is supported. You will need an external power supply (+5V). The old IO-48 is no longer available, but you can buy the compatible PIO 24/48-II card. You can get information from Conrad's web site (http://www.english.conrad.de), click on "Full Text Search" and enter "968072". It is priced at 39 € and comes with own 5 Volt power supply via 3.5mm connector. The description of the interface cable to the GameBoy connector is here.
Use the Carbon Copy Card (C3) programming hardware from Jeff Frohwein (parallel PC port used)
Build a programming system with ALTERA EPM7064SLC84-10 (84 Pin PLCC) chip (parallel PC port used) You need a programming file (cartio2.pof) for that chip, the chip itself and an ALTERA programming station. You can also build the ALTERA ByteBlaster and program the chip via the parallel interface. Free programming software (8MByte) ASAP2 is available from ALTERA. A smaller (200KByte) programming software (JAM player) from ALTERA is also available. In this case you need a JAM file (cartio2.jam) for programming the chip via the ByteBlaster. The JAM player is working under DOS, WINDOWS 95/98/ME and WINDOWS NT/2000. All functions (see CARTIO schematic for details) are realized inside the chip. You must only connect the PC parallel port connector and the GameBoy connector (see epld2.html for more details). The EPLD is sometimes critical. Connect all GND, all VCC and VCCio pins of the EPLD (as short as possible) to your powersupply. Connect at a minimum 4 capacitors with 100nF between GND and VCC (VCCio) of the EPLD (as short as possible and one at each corner). Add a 10uF or 47uF capacitor between GND and VCC coming from your powersupply. Add 4K7 pullup resistors between VCC and pin 1-9,14,16,17 of the parallel port connector. I changed the internal structure (based on inputs from Philip Mulrane and Harald Bruenig) to revision C. New features are:
Here is a design from Jos Haesakkers, based on an EPM7128SLC84. Use Readepld.exe for his programmer. All design files are inside this zip file.
Build XCARTIO - another programming system for the GameBoy (parallel PC port used) This cartridge programmer consists of a Xilinx XC9572-15 PC84 EPLD on a single-sided PCB. It is based on my Altera implementation of the CARTIO cartridge programmer by Pascal Felber. XCARTIO is fully software compatible with my ReadPlus software (use readepld.exe). Build a special Game Link cable and program the GameBoy via the parallel PC interface (the software is not finished and thereby you can't use this solution)Buy the original system link cable from Nintendo (just for the connector), either for the Gameboy or the Pocket Gameboy. The interface is very easy to build and only necessary for datatransfer between PC and GB. The programming itself will be done by the GameBoy. Works only with my 16MBit flash module (based on MBC1) and LinkPlus (sorry, I stopped working on it). For the first time programming you will need a programming station or a friend with a programming station :-). The source code of the unfinished LinkPlus version is available here. It's not a fully working program :-(. Independent from the selected programming hardware : for GB Camera readout connect pin 2(CLK) of the GB connector to ground ! The Gameboy 32 Pin connector is available from:
You can also buy a GB cart opener from Conrad Electronic. Enter number 824267 under product search. It's called hexagon socket spanner with 3.2 mm, price is about 5 $ (US). product number 824267-92 3.2mm I use this opener for GB carts and SNES carts. Commercial programming systems If you are not able or not willing to make your own programmer and cartridges you can buy one from Bung Enterprises Limited (parallel PC port used)
Or you can buy a programming system from E.M.S. Industrial LTD (parallel PC port used)
Or you can buy a programming system from UFO Company (parallel PC port used)
Or you can buy a programming system from CCL Video Games (transfer via floppy)
Or you can buy a programming system from Genius (copy via Gameboy itself)
Or you can buy a programming system from Touchboy
Or you can buy a programming system from NetMars
Here you will find a lot of possible combinations for GB cartridges and GB programming hardware (thanks to Ego for his help).
X software available - programming not possible 1 cart programming possible, programming of cart BIOS not possible
ReadPlus programming software and menuprogram The ReadPlus programming software now consists of two different parts. The ReadPlus program which is necessary for reading and programming the homemade cartridges and the startup.gb (source is here) program which allows you to select different tools and/or games. The new -n command is only necessary for programming of modified MBC3 or MBC5 based cartridges. If you have any problems using ReadPlus with your hardware, try ReadPlus -w 3000 -p filename. You can also try the new -e command. With this command you can erase the old 4Mbit cart (-e 0), the newer 16/32MBit carts (-e 1) and the 32Mbit Nintendo carts (-e 2). With the ReadPlus command m file1 file2 file3 and a 16Mbit MBC1 cartridge you can store up to 3 (512KB) games inside that cartridge. The file startup.gb must be in the same directory like ReadPlus.exe. ReadPlus will load and program this file automatically. The new 16Mbit cartridges and the new programming mode (using WE instead of AudioIn) are also automatic identified. The Gameboy itself is now able to program such a new 16Mbit cartridge (nice for PDA applications). The menu program inside startup.gb resides in bank 0 and allows to select up to 6 (4000-7FFF) different banks with internal games, tools, ... and 1 out of 3 external games. At this moment GB-Debug V1.3 and GB-Basic V1.22 from Jeff Frohwein are implemented. There are small restrictions for writing own tools. The program or game must be assembled or compiled for the range 0x4000-0x7FFF and the values inside 0x0000-0x0150 (RET, RETI, Logo, Licensee, ROM size,..) must be at 0x4000-0x4150. So, write and test your cartridge at bank 0 and after testing add to all org statements 0x4000. After testing your program you can add it to the startup.gb file with the following commands: copy /b startup.bin+gbb122.gb+gbd.gb+yourprogram.gb+blank.gb startup.gb rgbfix -v startup.gb (just for the right checksum) Don't forget to copy startup.gb into your readplus directory. Here is a great Windows 9x front end for ReadPlus (WinRP) from Sean Hatfield. And here is a special ReadPlus front end incl. source from Jürgen Lang. Looks funny :-) The following manufacturer and device type codes are supported by ReadPlus.
After starting ReadPlus the following commands are available: ReadPlus Version 3.32 from Reiner Ziegler -l
Specify the port to use (default is
1 = LPT1) Revision history of
ReadPlus
Revision history of
Startup.gb
Thanks to Pascal Felber and Jeff Frohwein for their excellent work and making the software source available on the internet.
|