That's a pretty cool demo you made. I can run it without issues, so that's good. Perhaps we should both start making a collection of test ROMs for others. I've been focusing on getting commercial games to work, which is basically some of the most challenging forms of testing (that is to say, real-world code). I think I would like to make more test ROMs though since 1) it's fun
and 2) it would be nice to have a comprehensive array of tests. I know there is ARMWrestler and another CPU test suite (google "cpu test by deadbody") but it would be great to have specific tests that work on all of the GBA's major features (DMAs, lots of LCD rendering features, input, memory read/writes).
I see your test ROM actually does some interesting things: you use the BG Palette #0, Color #0 (0x5000000-0x5000001) as the backdrop color to quickly fill the screen (smart move). You also have misaligned halfword writes during the draw function (the misaligned bits are ignored by the hardware, so it's no problem, but it's a neat trick) and you use your own "timer" as a delay. Rather than a sprite, you just write values to the BG map for animation. Good stuff all-around
Here's a list of what I have running. Apparently I boosted compatibility over the last couple of days.
Super Mario Advance: Displays something now (was a black screen). Complains about corrupted saves; EEPROM emulation necessary.
Advance Wars: Displays 1st frame of the game, freezes, then quits, which is an improvement (was a black screen).
Bomberman Tournament: Works fairly well, goes in-game, except a lot of sprites are invisible for some reason. Technically playable.
Kirby - Nightmare in Dreamland: Works very well. Few graphical glitches, most everything works except advanced LCD stuff, saving. Technically playable from start to finish (probably, if it didn't randomly crash, like most games).
Mega Man Battle Network 4 - Blue Moon: Works fairly well, goes in game. Prone to crashing when switching scenes, but otherwise seems playable. Text is weird, but that seems to be the only graphical glitch.
Super Dodgeball Advance - Works well. Plays just fine until a dodgeball match actually starts. Player sprites are completely glitched. Needs BIOS math functions (arctan2 and sqrt) to work properly.
Kingdom Hearts - Chain of Memories - Boots (to my surprise) and tries to start a new game, but instead goes into the game's Debug Mode (which you usually need cheats to do). Heavy graphical glitches and the main game won't start (stuck in debug mode). Better than a black screen
Riviera - The Promised Land - Works very well, until I try to start a new game. Keeps writing to unused memory and hangs after that. Before that, the intro works wonderfully with no issues.
Pokemon Fire Red - This game doesn't actually boot yet, but it looks like it needs timers (specifically, Timer 3), so if you want to play this game, implement Timer 3!