GBA BIOS SWI Map (from binary)
- Target BIOS: SHA1
300c20df6731a33952ded8c436f7f186d25d3492 (16384 bytes)
- Ghidra load:
ARM:LE:32:v4t, base 0x00000000
- Dispatcher:
0x140, jump table base: 0x1c8
- Low bit of address set (odd) = THUMB entry, clear (even) = ARM entry.
Exception vectors (0x00)
| Addr |
Vector |
Branch |
| 0x00 |
Reset |
b 0x68 |
| 0x04 |
Undefined |
b 0x1c |
| 0x08 |
SWI |
b 0x140 |
| 0x0C |
Prefetch Abort |
b 0x1c |
| 0x10 |
Data Abort |
b 0x1c |
| 0x14 |
(reserved) |
b 0x1c |
| 0x18 |
IRQ |
b 0x128 |
| 0x1C |
FIQ |
b 0x1c |
SWI jump table (0x1c8)
| SWI |
Entry |
Mode |
Name |
| 0x00 |
0x000000B4 |
ARM |
SoftReset |
| 0x01 |
0x000009C3 |
THUMB |
RegisterRamReset |
| 0x02 |
0x000001A0 |
ARM |
Halt |
| 0x03 |
0x000001A8 |
ARM |
Stop/Sleep |
| 0x04 |
0x00000330 |
ARM |
IntrWait |
| 0x05 |
0x00000328 |
ARM |
VBlankIntrWait |
| 0x06 |
0x000003B4 |
ARM |
Div |
| 0x07 |
0x000003A8 |
ARM |
DivArm |
| 0x08 |
0x00000404 |
ARM |
Sqrt |
| 0x09 |
0x00000474 |
ARM |
ArcTan |
| 0x0A |
0x000004FD |
THUMB |
ArcTan2 |
| 0x0B |
0x00000B4D |
THUMB |
CpuSet |
| 0x0C |
0x00000BC4 |
ARM |
CpuFastSet |
| 0x0D |
0x00000378 |
ARM |
GetBiosChecksum |
| 0x0E |
0x00000C2C |
ARM |
BgAffineSet |
| 0x0F |
0x00000CE0 |
ARM |
ObjAffineSet |
| 0x10 |
0x00000F60 |
ARM |
BitUnPack |
| 0x11 |
0x000010FC |
ARM |
LZ77UnCompWram |
| 0x12 |
0x00001194 |
ARM |
LZ77UnCompVram |
| 0x13 |
0x00001014 |
ARM |
HuffUnComp |
| 0x14 |
0x00001279 |
THUMB |
RLUnCompWram |
| 0x15 |
0x000012C1 |
THUMB |
RLUnCompVram |
| 0x16 |
0x00001333 |
THUMB |
Diff8bitUnFilterWram |
| 0x17 |
0x0000135D |
THUMB |
Diff8bitUnFilterVram |
| 0x18 |
0x00001399 |
THUMB |
Diff16bitUnFilter |
| 0x19 |
0x00000801 |
THUMB |
SoundBias |
| 0x1A |
0x00001665 |
THUMB |
SoundDriverInit |
| 0x1B |
0x0000179D |
THUMB |
SoundDriverMode |
| 0x1C |
0x00001DC5 |
THUMB |
SoundDriverMain |
| 0x1D |
0x0000210D |
THUMB |
SoundDriverVSync |
| 0x1E |
0x00001825 |
THUMB |
SoundChannelClear |
| 0x1F |
0x000018D9 |
THUMB |
MidiKey2Freq |
| 0x20 |
0x000013C5 |
THUMB |
SoundWhatever0 (MidiKey2Freq helper) |
| 0x21 |
0x00001435 |
THUMB |
SoundWhatever1 |
| 0x22 |
0x000014C1 |
THUMB |
SoundWhatever2 |
| 0x23 |
0x000014FD |
THUMB |
SoundWhatever3 |
| 0x24 |
0x00001515 |
THUMB |
SoundWhatever4 |
| 0x25 |
0x000028CF |
THUMB |
MultiBoot |
| 0x26 |
0x0000008C |
ARM |
HardReset |
| 0x27 |
0x000001AC |
ARM |
CustomHalt |
| 0x28 |
0x00001879 |
THUMB |
SoundDriverVSyncOff |
| 0x29 |
0x000018C9 |
THUMB |
SoundDriverVSyncOn |
| 0x2A |
0x00002693 |
THUMB |
SoundGetJumpList |
SWI 0x2B+ : out of table range (no valid SWI).