« Game Boy Advance Architecture (index)

Game Boy Advance Architecture

Chapter 7: Games


Table of Contents

  1. Accessing cartridge data
  2. Cartridge RAM space
  3. Accessories
    1. The new EXT slot
    2. Internal changes
    3. Exchange modes
    4. Even more modes

Games are distributed in a new proprietary cartridge format; it's still called Game Pak but features a smaller design.

Image
The new Game Pak design for GBA games .

Programming for the GBA shares some philosophies with the Super Nintendo but also inherits the advancements of the early 2000s, such as standardised high-level languages, reliable compilers, debuggable RISC CPUs, non-proprietary workstations for development, comparatively better documentation and... access to the World Wide Web!

That said, GBA programs are mostly written in C, with performance-critical sections in assembly (ARM and Thumb) to save cycles. The official Software Development Kit (SDK) that Nintendo supplied to authorised game studios contained libraries and compilers.

Accessing cartridge data

While the ARM7 has a 32-bit address bus, there are only 24 address lines connected to the cartridge.

This means that, in theory, up to 16 MB can be accessed on the cartridge without needing a mapper. However, if we take a look at the memory map, it shows that 32 MB of cartridge ROM are accessible . So, what's happening here? The truth is, the Game Pak employs 25-bit addresses (which explains that 32 MB block), but its least significant bit is fixed at zero. Thus, only the remaining 24 bits are set. That's how Game Pak addressing works.

Image
Representation of the Game Pak addressing model. Notice how the last bit of the 25-bit address (named 'A0') is always zero. I must also point out that, in reality, the address and data pins are also shared/multiplexed.

Now, does this mean that data located at odd addresses (with the least significant bit at 1) is inaccessible? No, because the data bus is 16-bit: For each transfer, the CPU or DMA fetches the addressed byte plus the next, enabling to read both even and odd addresses. As you can see, this is just another work of engineering that makes full use of hardware capabilities while reducing costs.

Curiously enough, earlier 26-bit ARM CPUs also resorted to the same technique. These housed a 24-bit Program Counter, as the bits had to be multiples of eight (a.k.a. word aligned), meaning the last two bits of the 26-bit address were always zero. However, since these CPUs fetch 32 bits (the addressed byte plus the next three), the entire 26-bit address space can still be accessed.

Cartridge RAM space

To hold saves, Game Paks could either include :

Accessories

Throughout its lifespan, the GBA enjoyed an interesting range of accessories that reimagined how this console could be used. Many of the peripherals devised took advantage of Multiboot, the versatility of the EXT port, and the flexibility of the Game Pak slot.

The new EXT slot

Speaking of which, the earlier Game Boy Link connection (also called 'EXT' or serial interface) got an update again. The same 6 pins that brought multiplayer capabilities and accessories persisted, but the electronics behind each pin evolved significantly.

First things first, the new Link cable that was designed for the GBA exhibits a few new traits:

The new design makes it incompatible with the previous consoles (and games). However, it can now easily chain up to four GBAs, thereby standardising larger multiplayer arenas.

Additionally, Nintendo also shipped a variant of the GBA Link cable called the 'GameCube-Game Boy Advance Link cable', which is specifically wired to connect a GBA to a GameCube, I explain more later.

Internal changes

From the console side, the original serial connection was expanded with extra modes of operation, selected with the use of two registers.

These modes are grouped into two categories:

GBA games can choose between synchronous and asynchronous modes, while Game Boy titles running on the GBA are restricted to their legacy SPI modes. 'Officially', the latter only support the original Link cable, but here's the interesting part: GB games also work with two GBA Link cables daisy-chained and connected to the consoles through the gray endpoints (making the two consoles slaves). This is because that arrangement cross-wires the data lines between the two consoles, replicating the setup of the original Link cable.

Exchange modes

The EXT connector provides four programmable pins, which the console manages through these modes of operation :

That said, remember Multiboot? This function is compatible with both Normal and Multiplayer modes. It's up to the master to choose which. The choice depends on the number of peripherals and speed needed.

Even more modes

Image
The GameCube-Game Boy Advance link cable , specifically crafted to connect to the GameCube's controller port (handled by the Serial interface).

For very particular accessories, there are additional communication modes available:


Previous: 6. Operating System

Next: 8. Anti-Piracy and Homebrew


Rodrigo Copetti © 2026 RSS Feed

Switch to modern edition

Home · Writings · Support · About author · About website