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*