Front-page
Updated
Talk on reverse engineering the GBA Link protocol
Last month there was small talk titled Bridging Emulation and the Real World with the Nintendo Game Boy by Or Pinchasof at Microsoft's BlueHat IL conference in Israel.
In his 40 minute long talk Or Pinchasof explains how he reverse engineered the GBA's link communication protocol from the ground up back in 2005 and which challenges he faced while trying to revive his old project again. The modern USB interface didn't exactly make it easier for him to trade Pokémon between his GBA and the Virtual Boy Advance Emulator.
Abstract
Nintendo's Game Boy Advance is a superb embedded system for homebrew development. It has well documented specifications, is complex enough for some impressive software, and yet is adequately simple enough for people to understand virtually every aspect of it. The field of Game Boy emulation is well established and already has a large body of software written for it. I set to research the system with a specific goal in mind, arising from an actual need - connecting an existing, working, emulator, Visual Boy Advance, to a real-world Game Boy Advance.
The Game Boy communicates over cable with up to three other systems using several proprietary communication protocols. One such protocol allows loading arbitrary code to the RAM of another Game Boy and booting from it. It has been widely used by the homebrew community for easy development and testing on a real device. Another protocol allows sharing of data for multiplayer gaming in real time. Little research has been focused on this protocol, and its implementation in emulation, which is essential for the emulator-Game Boy link.
This talk discusses the research methods and tools used to reverse engineer the communication specifications, implement an embedded circuit to perform the necessary data transfer, and integrate it into the emulator, spanning all levels from hardware to software.
The Game Boy communicates over cable with up to three other systems using several proprietary communication protocols. One such protocol allows loading arbitrary code to the RAM of another Game Boy and booting from it. It has been widely used by the homebrew community for easy development and testing on a real device. Another protocol allows sharing of data for multiplayer gaming in real time. Little research has been focused on this protocol, and its implementation in emulation, which is essential for the emulator-Game Boy link.
This talk discusses the research methods and tools used to reverse engineer the communication specifications, implement an embedded circuit to perform the necessary data transfer, and integrate it into the emulator, spanning all levels from hardware to software.
Source including the presentation's slides
Last edited by Charli,