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¶
- SWI Map — the vector table and the full SWI jump table.
- What this adds over GBATEK — why this reference exists.
- BIOS Functions (SWIs) — one page per SWI,
0x00–0x2A, each with parameters, algorithm, edge cases, clobbered registers, and hardware-measured cycle counts. - Hardware Verification Checklist — what has been confirmed on real silicon and how.
- Multiboot Protocol — the host/master side of the link-cable boot sequence, including the cipher and CRC math.
How the numbers were obtained¶
- Static analysis (Ghidra
ARM:LE:32:v4t@ base 0, and objdump) produces the behavioral descriptions and extracted constants. - 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.