游戏以一种新的专有卡带格式分发,它仍被称为Game Pak,但采用了更小的设计。
GBA程序大多用C语言编写,性能关键部分用汇编语言(ARM和Thumb)编写,以节省时钟周期。 任天堂提供了一个包含库和编译器的SDK。
GBA的编程与超级任天堂共享一些方法,但也继承了2000年代早期的所有先进技术: 标准化的高级语言、可靠的编译器、可调试的RISC CPU、非专有的开发工作站、相对更好的文档以及...... 互联网的接入!
访问卡带数据
虽然ARM7具有32位地址总线,但连接到卡带的地址线只有24条。
这意味着,从理论上讲,不需要映射器就可以访问卡带上最多16 MB的内容。 然而,内存映射图显示可以访问32 MB的卡带ROM。 那么,这到底是怎么回事呢? 事实上,Game Pak使用的是25 位地址(这也是32 MB为一块的原因),但其最下面的位被固定为0。 因此,剩下的24位都被设置了。 这就是Game Pak寻址的工作原理。

Game Pak寻址模式示意图。
请注意,25位地址的最后一位(名为"A0")始终为零。
我还必须指出,在现实中,地址和数据引脚也是共享/多路复用的。
这是否意味着位于奇数地址(最小有效位为1)的数据将无法访问? 不会,因为数据总线是16位的: 每次传输时,CPU/DMA都会获取所在字节和下一个字节,从而能够读取偶数和奇数地址。 正如您所看到的,这只是充分利用硬件功能同时降低成本的又一项工程。
奇怪的是,26位ARM CPU也采用了同样的技术。 这些处理器采用24位程序计数器,由于位数必须是8 的倍数(又称 字对齐),因此26位地址的最后两位总是0。 不过,由于这些CPU取32位(第一个字节加上后面三个字节),因此可以访问整个26位地址空间。
卡带RAM空间
为了保存存档,卡带可以包括:
- SRAM:它们需要电池来保存内容,大小可达64 KB(尽管商业游戏不超过32 KB)。 可通过GBA的内存映射访问。
- 闪存ROM:与SRAM类似,不需要电池,容量可达128 KB。
- EEPROM:需要串行连接,理论上可存储任何内容(通常为8 KB)。
配件
包括以前的Game Boy Link插口,可提供多人游戏功能或额外内容。 但由于某种原因,该机不再配备红外传感器(可能是大容量传输太不可靠)。

GameCube-Game Boy Advance连接线,它连接到GameCube的控制器端口(由串行接口处理),用于数据传输。
此外,GBA的BIOS在内部实现了一种称为多重启动的特殊功能: 另一台游戏机(GBA或GameCube)可以向接收器的EWRAM发送一个可用的游戏,然后,后者将从那里启动(而不是从Game Pak启动)。
