last update 02. Jan 08
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) |
|
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 :-))) |
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 |
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. |
EFA(ExtremeFlashAdvance)-Linker 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.
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 |
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 | ✔ | ?? | ✔ | |||||
Flash2Advance | ✔ | ✔ | ||||||
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. |
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) dnathan@captigate.com 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. | |
Teamknox | 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 ? Here are a lot of details. |
|
You can make your own USB to GBA or ULA (USB Linker Advance) with this hardware. | ||
USB to GBA
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.