Game: Daiku no Gen-san - Robot Teikoku no Yabou (Japan)
Emulator: BizHawk: GBHawk in GBA mode
Console Verification Device: Gameboy Player with GBI
Movie: http://tasvideos.org/userfiles/info/66431762538224618
Description of Desync: On emulator, player character does not beat the level at the end of the movie. On Console, player character does beat the level. This appears to be deterministic and happens in the same way every time.
Research: I have looked at invalid VRAM / OAM accesses, usage of uninitialized memory, and edge cases of IRQ source selection and nothing points to the cause of this desync. I have made an equivalent movie in Gambatte which is cycle-for-cycle the exact same as GBHawk, so no leads there either.
Possible Next Steps: Sprite + x-scroll tests with x-scroll 4,5,6,7 would eliminate one possible source of error.
Status: Open Closed.
Resolution: This was in fact an edge case of sprite + scroll timing, in particular sprite evaluation at x=0. New test ROMs verified the behaviour.