Master post of all GBA documentation:
- GBATEK, the de facto standard documentation. It has errata and fails to cover certain issues though.
- The Audio Advance, the best audio documentation out there.
- CowBite, kinda lackluster but fills in a few blanks from GBATEK.
- Game Boy Advance Communication Info, partially complete info on wire protocols for the EXT port.
- BLDALPHA is readable (but BLDY is not)
- Sprite semitransparency overrides brighten/darken modes in BLDCNT—but only if the sprite blends, i.e. has a target 2 beneath. This is mentioned in GBATEK but is not made clear. Affects Golden Sun fights.
- WIN wrapping is not described properly. Affects Pokémon Ruby/Sapphire/Emerald battle intros in caves. TODO: write docs on how
- Audio registers all either read out 0s or disallows writes when SNDCNT_X has the audio circuit disabled TODO: determine which
- JOY register descriptions are sometimes backwards with respect to RECV and SEND. TODO: Needs clarification
- Game Boy Player rumble documentation doesn't work with Pokémon Pinball Ruby/Sapphire, which uses variable speed (PWM) rumble. TODO: Needs investigation
- GamePak "variable strength" rumble in Drill Dozer is just PWM.
- BLDCNT, BLDALPHA and BLDY are not latched during scanlines and can be updated at any point during rendering.
- DMA source and dest registers cannot have invalid addresses written to them; the write will fail and the old value sticks TODO: determine valid ranges
- DMA3 from SRAM to ROM (and possibly visa versa) causes the GBA to hardlock
- DMA1 and 2 can read SRAM and ROM TODO: Can it write ROM?
- DMA0 reads back (mostly?) zeroes from SRAM TODO: How much of this is my flashcart?
- TODO: remember/find out more