Skip to content

GBA BIOS Reference

An independent, clean-room behavioral reference for the Game Boy Advance BIOS — in the spirit of GBATEK, aiming to be exhaustive and to add what GBATEK leaves out: per-SWI edge cases, extracted constants, cycle counts, and hardware-measured input/output tables.

Start here

How the numbers were obtained

  1. Static analysis (Ghidra ARM:LE:32:v4t @ base 0, and objdump) produces the behavioral descriptions and extracted constants.
  2. Dynamic verification — a custom worker ROM runs each SWI on a real GBA while a portable link-cable host (Raspberry Pi Pico) feeds inputs and logs register results and TM0/TM1 cycle counts. This is where cycle counts, the ArcTan error curve, decompression edge cases, and the blacklisted-SWI (Halt / reset / IntrWait) behaviors were pinned down.

Cycle counts are net of a measured 13-cycle harness baseline and were stable across repeated runs unless a page says otherwise.

What this is / is NOT

  • IS: documentation of behavior and algorithms written in our own words, plus hardware-measured result dumps.
  • IS NOT: the BIOS binary, or verbatim disassembly / decompilation listings of it.

The BIOS is copyrighted. This project documents facts about its behavior (not protected), the way GBATEK has done for years. The BIOS image and any disassembly/decompilation artifacts live only on the analysis side of the clean-room wall and are never committed or published.

Licensing (intended)

  • Documentation: CC-BY-4.0.
  • Code (worker ROM, host firmware, tools): MIT or 0BSD.