Home Gameboy (color) Gameboy Advance iQue Pokemon Mini GPS Avigo SNES Links

  last update  02. Jan 08

Information about GBA cartridge internals, connector pinning, flash backup, sram backup, eeprom backup, DACS and patch software


CowBite from Tom Happ

GBATEK from Martin Korth

home-made GBA flash cartridges
home-made GBA cart reader and programmer
great GBA hardware
commercial programming hardware
commercial GBA cartridges
information about Multiboot hardware and software

!!! home made USB programmer !!!   

description of the GBA link-port  

Parts of the following text are from Jeff's FAQ document.

How does the GBA ROM cart interface work?

GBA ROMs are special chips that contain a standard ROM, address latches, and address counters all on one chip. Cart accesses can be either sequential or non-sequential. The first access to a random cart ROM location must be non-sequential. This type of access is done by putting the lower 16 bits of the ROM address on cart lines AD0-AD15 and setting /CS low to latch address lines A0-A15. Then /RD is strobed low to read 16 bits of data from that ROM location. (Data is valid on the rising edge of /RD.) The following sequential ROM location(s) can be read by again strobing /RD low. Sequential ROM access does not require doing another /CS high-to-low transitions because there are count up registers in the cart ROM chip that keep track of the next ROM location to read. Address increment occurs on the low-to-high edge of all /RD. In theory, you can read an entire GBA ROM with just one non-sequential read (address 0) and all of the other reads as sequential so address counters must be used on most address lines to exactly emulate a GBA ROM. However, you only need to use address latch / counters on A0-A15 in order to satisfy the GBA since A16-A23 are always accurate. For more details, take a look    here :-)

What is the largest size ROM supported by GBA?

The GBA cart interface has 24 address lines. Also there are 16 data lines. 24 address lines = 2^24 = 16.7 million locations which means 16M x 16bit or 32M x 8bit. Which is a total of 32MBytes or 256Mbits of memory space. To put more memory than this in a cart would require some form of bankswitching.

Pinning of the GBA connector

and my sample for connecting RAM or Flash ROM at 0x0E000000 is here.  For the flash ROM at 0x08000000 you will need address latch / counters on AD0 - AD15. See the schematic below for more details.

What type of backup methods are currently used in GBA carts?

SRAM (256KBit or 512Kbit) - Battery backed up static RAM. It can be up to 64K bytes but it's usually 32K bytes in size. It is located in the memory map from 0xe000000 to 0xe00ffff. (Examples of games that use 32K RAM backup: FZero, etc.). Newer games are using 64K bytes.

Flash ROM (512KBit or 1Mbit) - This is memory which can be 64K bytes or 128K bytes with bank switching. It is located in the memory map from 0xe000000 to 0xe00ffff. Reading Flash ROM is the same as reading SRAM; however, writing to Flash ROM is a different process due to the fact that Flash chips often have different modes of operation. Consult Sanyo & Atmel flash data sheets for more info. 

This type of backup is emulated in nearly all available cartridges. Cart designers only have to implement the identify, the erase (in case of Sanyo based design) and the write command. Not a big problem inside an EPLD design :-) and it's enough to implement only one chip :-).

Here are the 512Kbit (64Kbyte) and 1Mbit (128Kbyte) chip types used inside GBA cartridges:

Manufacturer chip name Manufacturer ID Device ID size
Sanyo or SST LE39FW512 0xBF 0xD4 512Kb
Atmel AT29LV512 0x1F 0x3D 512Kb
Macronix MX29L512 0xC2 0x1C 512Kb
Panasonic MN63F805MNP 0x32 0x1B 512Kb
Macronix MX29L010 0xC2 0x09 1Mb
Sanyo LE26FV10N1TS 0x62 0x13 1Mb

Some of the manufacturers guarantee a minimum of 10,000 rewrites per 1 sector so these devices have a limited life compared to SRAM. (Examples of games that use 64K Flash ROM backup: GT:Grand Touring Car Championship, Chu Chu Rocket, etc.) The Pokemon Ruby cartridge will use a 1Mbit flash chip.

EEPROM (4KBit or 64KBit) - This uses the /CS, A23, and D0 of the cart bus and is a serial connection. It usually is found in 4kbit or 64kbit size, but because of it's serial configuration, it could theoretically be any size. The maximum useable ROM size is 128MBits when using this device. Some of the manufacturers guarantee a minimum of 100,000 rewrites per address so these devices have a limited life compared to SRAM. (Examples of games that use EEPROM backup: Mario Advance, Final Fight, Hot Potato).

EEPROM patch programs :-)I
The best program for Clock Fix, SRAM (EEPROM) Patcher, IPS Patcher, ... is GBA Tool Advance (GBATA).

The older Visoly (ASIC based) cartridges can only emulate 4K EEPROM's. Newer games with 64K EEPROM's will have problems with backup save. In this case you should use the patch program.

DACS (1MBit or 8MBit) - the Debugging And Communication System with 1MBit or 8MBit custom flash memory with security and patch functions is not used at the moment. It is located in the upper ROM area and will reduce the maximum ROM size to 255MBit or 248MBit.

  Here is the first home-made flash cart :-)

It's a 8MB flash cart from Timmy Brolin without RAM, but you will see all GBA details. Homepage is here.

old 8MB cartridge

old schematic

32MB cartridge

latest cardridge from Timmy

Here is a new cartridge design from Thorsten Godau. It's based on Timmy Brolin's flashcart with a 128MBit chip from Intel. Without SRAM or EEPROM for game storage.

Here is my design of a GBA flash cartridge with single Flash, SRAM and EPM3064 :-)

I made this design of a GBA flash cart with just one 32/64/128/256MBit flash chip, 256KByte SRAM and backup battery. A layout is not available and I didn't have time to make one :-(. 

You will need a ByteblasterMV from Altera for programming the EPLD. The source code of the EPLD is not public available, but the programming file ... :-)

Should be just an idea for your own cart design. You will need speed patches for slower Flash chips. Only 110ns chips are fast enough. 

  Here is a first example of a home-made cart reader and also an USB programmer. 

Take a look on the developers page.



Home made USB programmer

I received a lot of E-Mails, asking for an easy flash cartridge programmer. So I decided to make a simple USB programmer based on the ULA hardware from TeamKnox with the USB hardware from DevaSys.

But you can also use any other AN2131SC or QC USB board on the market with similar hardware!

Take a look here, for a detailed description !! 

The necessary programming software called FlashManager (Shareware 20$) from Mootan will support nearly all available cartridges:

FA 64M (28F640J3A*1)
FA-TURBO 64M (28F320J3A*2), 128M (28F640J3A*2)
FA Xtreme 64M (28F320J3A*2), 128M (28F640J3A*2), 256M (28F128K3*2), 512M (28F128K3*4)
F2A (old) 128M (28F640J3A*2), 256M (28F128J3A*2)
F2A (new) 64M (28F320C3B*2), 128M (28F320C3B*4), 256M (28F320C3B*8)
F2A 128M (M6MGT323S4TP*4)
F2A-Ultra (1) 512M (28F128J3A*4), 1G (28F128J3A*8)
F2A-Ultra (2) 1G (28F128K3*8)
EZ-Cart 128M (MBM29PL64LM*2), EZ-Cart 512M (28F128J3A*4)
EZ2-Cart 256M (MBM29PL12LM*2)
EZ2-Cart PS 256M (MBM29PL12LM*2), EZ2-Cart PS 512M (M58CR064P*8), EZ2-Cart
PS 512M (E28F128*4)
EZFA 128M (MBM29LV651UE*2),EZFA 256M (MBM29PL12LM10*2)
XG2Lite 256M (28F128J3A*2)
GBA Link ZIP_SE 256M (MB84VD23481FJ*4)
X-ROM 512M (Am29LM256M*2)
DACS 8M (Hikaru no Go!3)
Handmade FlashCart 16M (MBM29LV160TE*1)

You can also use your GBA with ULA hardware and special software as an USB joystick. Just connect your GBA to ULA, remove any cartridge and start ULA_GP_V2. Main link is here.

Mootan's similar UMJ software can convert many different game controllers to the USB joystick. Works great :-)))       


 great GBA hardware !!!

Here is a great design from two students (Michal Lysek and Tobias Persson) at Halmstad University in Sweden, who for a Degree Project in Computer Systems Engineering developed an ATA / ATAPI Interface for Nintendo's Game Boy Advance (GBA).

This Interface enables you to connect the Game Boy Advance to an ATAPI protocol-using peripheral like a CD-ROM or a harddrive. This will extend the GBA's maximum cartridge-memory beyond 32MB, which could be quite useful for those who'd like to use the GBA for large space-requiring graphical project or maybe even movies.

At the moment they are working on the 

The Lypson Game Engine is an object-oriented library, specifically targeted for two-dimensional platform games developed for the Game Boy Advance system.


A data logger interface card from ELV is here.

The card is called Datenlogger GBD 1 for GameBoy, order number 68-567-15.

With this data logger interface card you can change your GB(C) and GBA into a mobile data logging system.

Documentation is just available in german.

voltage range:                 0 - 5 V / 0 - 10 V / 0 - 20 V / 0 - 40 V
temperature range:         -10...100 °C
measurement intervall:     1 s / 10 s / 30 s / 1 min / 10 min / 30 min
storage memory:              max. 1000 values
measurement time:           up to 500h
power supply:                  5 V, via GameBoy
usable with:                     GB(C), GameBoy Advance


  commercial programming hardware

Here is a great card reader with USB interface, internal 128MB flash memory for games, SD/MMC card interface for game storage and loading and great copy from anywhere to anywhere internal software :-)

That's realy a great GBA/GBASP hardware with SRAM, 4K and 64K EEPROM, 512K and 1MB Flash save support.

The Super Card Reader is available here.

That's all a gamer will need :-). The copy software is inside the GBANK, no driver (except an USB driver for Win98) on PC side is necessary. You will just get an additional SD/MMC drive. 



Main features:

Small: Using a mini USB connector to PC. Internal USB control chip. No additional writer software needed. 
Fast: Ultra fast writing speed. Erase and write of a 256Mbit card will only need 260 seconds. Using the newest power saving Flashrom, Saving 60% battery energy than other first generation flashcards.
Easy: Internal realtime clock, support of all RTC titles. Hardware saver support and hardware support for 1Mbit Flash save type.



A commercial GameBoy Advance™ development and backup unit was from visoly, but it's no longer available.

The transfer format (PC <=> programmer) is very similar to the old one. Take a look into Jeff's DOS software for more details or into GBT V1.5.

Here is the Flash Advance Linker Xtreme (USB) from visoly, but it's no longer available.
bulletCan be used via USB or via printer port
bulletNext generation software support
bulletMuch faster transfer speed for the new Xtreme Cards!
bulletNo batteries required
bulletIf used in USB mode no power supply is required
bulletEnergy saving idle mode 
bullet Backward compatible to older Flash Cards 
bullet Auto repair/restore/erase functions 
bullet Download and upload game saves into/from your original Game Cartridges! 
bullet Firmware upgradeable through USB

The programing software is here.

DadyCool's homepage for a great cartridge programming software (LittleWriter) including EEPROM and speed patching is here.

EZ-Cart (256MBit Flash, 256KByte SRAM)

Flash 2 x 28F128J3A (150ns), RAM IS62LV2568LL (70ns), EPLD Xilinx XCR3128XL VQ100. There is no hardware support for EEPROM and Flash save backup. The programming software will make EEPROM and Flash save patches.

Borden's EZ-Flash page with USB cart read/writer hardware

The EZ-Flash consists of EZ-Writer and EZ-Cart. EZ-Writer is used to connect your PC via a standard USB port to download GBA ROMs or other GBA programs which you downloaded from Internet to your EZ-Cart. After that you can play your favorite game on your GBA :-)

The XG-Flash card is very similar to EZ-Flash :-))

EZ-Writer via USB


Flash2Advance HiSpeed Linker

The Flash2Advance Linker is plugged into the printer or USB port of your PC. The other connects to the external port of the GameBoy Advance. Once connected, it can simply send and receive game ROM data from or to the plugged in game or Flash Cartridge. No additional power source needed. 

Flash2Advance Linker is only compatible with the Flash Advance Pro 256Mbit cartridge already released, and a new set of Flash2advance 256, 128 and 64Mbit carts.


The GBA Transferer 2 from EMS can load GBA format files into the GBA Smart Card 64M as well as GB/GBC format files into the old GB Smart Card 16M/32M.

  Information about commercial GBA cartridges:

V1.3 Flash Linker  Flash Linker Xtreme  EZ-Writer  GBA Transferer 2  Flash2 Advance WinsunX MBV2  xLA 
PC Port printer printer and USB USB printer printer or USB printer printer printer or USB
Flash Advance          
Flash Advance Turbo          
Flash Advance Pro     1  
Flash Advance Extreme           ??
EZ-Card 2 2        
GBA Smart Card 64M              
WinsunX Eprom              
original Nintendo cart 3            

1 only 256MB version     2  with Littlewriter software    3 with GBA FLinker software by Jeff Frohwein

I found the internal registers of the older EPLD based 64/128 MB Visoly cartridges (EPM3064ATC100) and also for the new ASIC based 64/128/256 MB cartridges :-). Please take a look into my   file. 


With the GB Bridge Adapter from Visoly you may finally play any Gameboy and Gameboy Color rom file on the Gameboy Advance or Gameboy Color without the need of any seperate Gameboy flash cartridge. Just save your .gb or .gbc format file on any Flash Advance cartridge (64/128/256M), plug it into the GB Bridge and play it on a Gameboy Advance or Gameboy Color.        


The Xport 2.0 for the Game Boy Advance The  Xport 2.0 turns the Game Boy Advance (GBA) into a powerful embedded development system. 

Xport 2.0 Features:

* Fully programmable FPGA with 50,000 logic gates
* 64 user-programmable I/O signals
* 4 Mbytes (32 Mbits) of flash memory
* 16 Mbytes of SDRAM (optional)
* Built-in high-speed communications and debug port
* Free FPGA synthesis software 
* Several pre-tested logic configurations
* In system programmability
* Open source software
* Source level debugging
* Comprehensive software distribution
* eCos 2.0, RedBoot, and Insight included

Be sure to check out the recent EDN article Gaming as Serious Business, which describes both potential and actual applications of the Game Boy as a microcontroller. 

Snicker about playing games at work, but the low cost, appropriate features, and availability of Gameboy resources might change your mind about using it as a nongaming, handheld terminal.
By Robert Cravotta, Technical Editor -- EDN, 2/7/2002     here is a short link :-)

Here is another great article ( Gameboy Advance for nongaming applications) from Aarul Jain and Dhananjay V. Gadre published in Dr.Dobb's Journal, May 2004.


Game Wallet 32M Set

The Game Wallet is a new accessory for your Game Boy Advance. It allows you to backup your games and play on your GBA console (using smart media cards or flash cards). As an extra added feature there is also a light which requires no external power source is also built into the game wallet. By using SM cards the cost of storage is much cheaper. A 32Mb Smart Media card is actually equivalent to a 256Mega Flash Adavance card.

Please note: Flash Advance Flash Card is still required. The game wallet allows you to store game files on the SM Card, and allows you to send them to the flash card. NOT compatible with XG-Flash cartridges/sets and Flash Xtreme USB cartridges/sets. 


Built-in 8M memory capacity 
Can save up to 26 photographs
640 x 480 pixel resolution and zoom function 
No matter day or night, indoors or outdoors, contrast can be adjusted.

available from EMS  

GBA Mini Camera from EMS



Flash cartridge summary:

made by card picture cart name flash chip RAM chip comment
Visoly Flash Advance 64M 1 x 28F640J3A (120ns) 128KByte  problems with speed
Visoly Flash Advance Turbo 64M (EPLD design) smallest Game size 32MBit 2 x 28F320J3A (110ns) NEC D442000LGU -B85X-9JH (256Kbyte)  SRAM and Flash save capability
Visoly Flash Advance Turbo 128M (EPLD design) smallest Game size 32MBit 2 x 28F640J3A (120ns)  NEC D442000LGU -B85X-9JH (256Kbyte) SRAM and Flash save capability
Visoly Flash Advance Pro 64M (ASIC design) smallest Game size 256KBit 2 x 28F320J3A (110ns) NEC D442000LGU -B85X-9JH (256Kbyte) EEPROM(4K), SRAM and Flash save capability
Visoly Flash Advance Pro 128M (ASIC design) smallest Game size 256KBit 2 x 28F640J3A (120ns)  NEC D442000LGU -B85X-9JH (256Kbyte)  EEPROM(4K), SRAM and Flash save capability
Visoly Flash Advance Pro 256M (ASIC design) smallest Game size 256KBit
2 x 28F128J3A (150ns) NEC D442000LGU -B85X-9JH (256Kbyte)  EEPROM(4K), SRAM and Flash save capability
Visoly Flash Advance Card Xtreme 512M / 1GB  smallest Game size 256KBit
2 or 4 x 28F256K3 NEC D442000LGU -B85X-9JH (256Kbyte) SRAM and Flash save capability
EMS GBA Smart Card 64M 1 x 28F640J3A (120ns) UT62L1024SC-70LL (128KByte) single chip, SRAM and Flash save capability via switch
Nintendo flash cart 2 x LH28F320BJE (90ns) don't know only for developer
Nintendo ROM cart MX23L3206-12B (32MBit 120ns) LE39FW512TS-70 (70ns) SANYO Game cart


  Information about GBA Multiboot hard- and software:

The multiboot hardware is a cable that connects to either a PC parallel or serial port and to the link port on the GameBoy Advance itself. It allows you to test small GBA programs (256K bytes or less), that you have created yourself, on real GBA hardware. It takes advantage of the fact that each GameBoy Advance has a built-in boot algorithm for loading code over the link port into external WRAM (256k bytes) and then executing this code. (External WRAM is actually inside of the GBA itself.) As such, no cart is required to be installed in the GBA to use this cable.

Link descricption

Here is a great design input for the Cypress MicroSystems PSoC Design Challenge 2002 

Educating Mario By David Nathan (Switzerland)

This project demonstrates how the marriage of a PSoC and the Nintendo Game Boy Advance (GBA) can open up exciting possibilities for the classroom and the science lab. GBA is an inexpensive, pocket-size device with a color screen and 256 KB of internal RAM for downloaded programs. A simple command interpreter was also incorporated into the PSoC flash memory; it permits PSoC functions to be exercised using a simple terminal software program.  Great soft and docu about Multiboot !!!

       Abstract             Full entry & software (1M)
Nocash Multiboot / Burstboot for GBA This  package includes:
- instructions on how to make a multiboot cable,
- a small DOS program for uploading software to the GBA
- specifications about multiboot headers
- instructions on how to implement burst boot into GBA software
GBAscene   You can find schematics and programs for a multiboot PC link cable (either a dump cable or one with a PIC16F84 microcontroller) running under Win95/98/ME/NT/2000/XP, DOS and Linux.
GameBoy Advance Dev'rs

commercial Multiboot hardware from Jeff Frohwein (MBV2), works great with PC parallel or serial port. You need v3 firmware or later in order to program Flash Advance flash carts.

They made two types of xLA
xLA is a general term as PLA and ULA. PLA is an acronym as Parallel Linker Advance. Also, ULA is USB Linker Advance. 

What do they do ?
Downloading home brew software to GBA (Internal RAM ... MultiBoot and FlashROM Cartridges) with Host software. Of course you can suck-up program from your commercial cartridge to your PC.  

Here are a lot of details. 

You can make your own USB to GBA or ULA (USB Linker Advance) with this hardware.

with USB I2C/IO P.C.B. (Rev. B) from DevaSys

This usb to gba package provides software to transfer programs to the Gameboy Advance using its built-in multiboot protocol. The GBA port is connected to an USB microcontroller which interfaces to the host computer. It has been developed under Linux/386, but it should run on other platforms and operating systems as well.  

Great work Arnim :-)

Description of the GBA link-port

Here is a great schematic from Dark Fader for the GBA link port.   This port is no USB interface!

1 Vcc 3.3 Volts (+5Volts when using GB/GBC cart.)
2 Serial Out
3 Serial In
4 Serial Data
5 Serial Clock
6 Gnd

looking at GBA link-port

These tools here allow you to upload data, images to the GBA and debug programs by using a simple UART (normal serial port) cable. Jeff's faq is also helpfull :-)

This cable does not let you upload a program to the GBA using multi-boot protocol !

Andrew May also described the link port. Take a look here.