When i started [developing](http://www.gbadev.org/) for the GBA i bought a [Flash2Advance](http://www.gameboy-advance.net/flash_linker/f2a_usb_linker.htm) because the [MBV2]( http://www.devrs.com/gba/files/mbv2faqs.php) limited me too much.
I took the Parport version, because i thought it’s more likely to find a Parport driver or client tool for Linux than a usb based. But the only Linux based tool i could find was the Usb client called [f2a]( http://www.emulinks.de/f2a/). So i decided to write my own client or user space driver. I took the Usb sources and added Parport support. I used [Wine](http://www.winehq.com/) to reverse engineer the protocol. I took me 2 weekends to analyse the Wine io debug dumps and find all patterns. I even had to write some Python scripts to get worked through the whole io debug logfiles. But finally i had a working parport driver. Later i ported the Parport io code from outb/inp calls to Kernel parport dev interface. The whole tool was later integrated into the [Ucon64](http://ucon64.sourceforge.net/) suite.