Flash Cart Design & Simple I/O
 by Jeff Frohwein, v1.0116


 This article describes flash card projects that you
can make yourself for the GB or GBC. Also described
is an ability to control 4 digital outputs OR 4 servos
(The kind of servos that you find in Radio Control cars
or planes.) without requiring ANY special interface chips.

 This article is broken up into four sections. The first
section, CART SELECTION, describes the tradeoffs of various
carts.
 The second section, SIMPLE I/O, shows an example wiring
diagram for supporting 4 servos.
 The next section, FLASH CARTS, describes modifying a cart
to add your own flash chip. The last section, CART PROGRAMMERS,
describes building a cart programmer.



CART SELECTION

  Most original GameBoy carts contain a Memory Bank Controller 1
 or, MBC1, for short. Here is a list of such carts:

  http://www.devrs.com/gb/files/gbmbcsiz.txt

  Using these carts, there are 2 extra digital output lines that
 you can use for your own purposes. These are labeled EA0 & EA1
 on U2 shown here:

  http://www.devrs.com/gb/files/mbc1.gif

  Most GameBoy Color Compatible or GameBoy Color dedicated carts
 contain an MBC5. Using these carts, there are 4 extra digital
 output lines that you can use for your own purposes. Here's
 an example of some MBC5 carts:

  http://www.devrs.com/gb/files/gbcmbc.txt

  These extra digital output lines are only used by carts that
 contain 32kbytes or 128kbytes of cart RAM. Since most MBC5 carts
 contain no ram or only 8kbytes worth, you can use these extra lines
 for your own purposes.

  So what type of cart should you use? First, It's a good idea to
 locate a cart with 8kbytes of RAM. You can use this RAM for storing
 GameBoy BASIC programs or your own non-volatile data. Cart RAM
 won't rob any of your extra digital output lines unless you get
 a cart with 32Kbytes or more RAM.

  MBC1 carts that contain RAM are nice because they have a "standard"
 ROM type layout and you can relatively easily replace this ROM with
 a 29F040 4mbit flash chip.

  MBC5 carts with 8KBytes RAM are nice because you get two extra digital
 output pins. The main drawback to MBC5 carts is that you can't always
 predict the ROM type layout that is used until you buy it and open it.
 There are TWO standard ROM type layouts in MBC5 + RAM carts. Type 1
 carts will have a stamp on the PC board that says 2M/4M/8M-MROM.
 Type 2 carts will have a stamp that reads 16M/32M/64M-MROM.

  NOTE: JUST BECAUSE AN MBC5 CART ONLY USES 8MBIT DOES NOT MEAN IT
 ALWAYS USES A TYPE 1 PC BOARD. I have seen a Zelda DX & a Quest
 For Camelot cart that used a 16mbit ROM and a Type 2 cart even
 though these games are only 8mbits. In these cases, half of the
 ROM is just not used at all, for whatever reason.

  The only easy way to replace a ROM with a flash chip is either to
 get a MBC1+RAM cart or a Type 1 MBC5+RAM cart. Then you replace the
 ROM with a 29F040 4mbit flash chip.
  There is no easy way to install a larger flash chip than a 4mbit
 flash chip. You can do it but the wiring is REALLY messy.



SIMPLE I/O

  As shown in this diagram, a typical servo used in radio control
 airplanes and cars needs only a 4.5-6 volt battery source and
 a single control signal to set the position of the servo.

   http://www.devrs.com/gb/files/gbrps.gif

  In this diagram, a connector is added to the top of a MBC5 cart
 that allows directly plugging 4 servos into the cart itself. Only
 the top 4 white wires in this photo are used by the servos. All
 of the other white wires are used to wire a 29F040 to a Type 2
 MBC5 cart:

   http://home.hiwaay.net/~jfrohwei/gameboy/servo.png

  Putting GameBoy BASIC on the flash chip is all you need to control
 the servos. The complex timing pulses required to drive the servos
 is handled automatically by GameBoy BASIC.



FLASH CARTS

 MBC1 or Type 1 MBC5 Carts
 -------------------------

  Type 1 MBC5 carts have the same ROM layout as MBC1 carts which is
 shown here:

    http://www.devrs.com/gb/files/lh534.gif

  Here is an example of wiring a 29F040 4mbit flash chip to this type
 of cart:

    http://www.devrs.com/gb/files/c3cart.gif

  Here are complete instructions:

    http://www.devrs.com/gb/files/c3mods.txt

  Here is an example of wiring a 29F032 32mbit flash chip to this type
 of cart. NOT AN EASY TASK!:

    http://www.devrs.com/gb/files/32mbit.jpg

  Here are complete instructions:

    http://www.devrs.com/gb/files/32mbit.txt

 Type 2 MBC5 Carts
 -----------------

  Type 2 MBC5 carts have a new type ROM layout which is VERY difficult
 to replace with a flash chip. Here's an example of the ROM replaced
 with a 29F040 4mbit flash chip: 

    http://home.hiwaay.net/~jfrohwei/gameboy/servo.png

  Here is the ROM type layout:

    http://www.devrs.com/gb/files/23c64000.gif



CART PROGRAMMERS

  The only know cart programmers that program these modified Nintendo
 carts are the C3 Programmer design:

    http://www.devrs.com/gb/files/c3p.gif

 or the CARTIO design:

    http://www.reinerziegler.de

  You can get a PC Board for the C3 design from here:

    http://www.devrs.com/gb/files/parts.txt

*EOF*