Compared to the original, I've re-written some portions of src/sdl/SDL.cpp and changed the meaning of the systemFrameSkip variable in both the GB and GBA emulators.
Uses AdMame2x and the YUY2 overlay. It's fast, gives reasonably good video quality, it's resizable and synchronized to v-blank. There are no configurable options.
To allow for drift between the audio and video subsystems I've implemented a FIFO where the fill level acts as the error signal in a PLL. By slightly changing the delay value in the main loop, the FIFO is maintained in an half filled state.
The main loop timing is SDL_GetTicks/ SDL_Delay based and performs automatic frame skipping. I got the general idea from SDL's documentation and snes9x. The gameplay speed should be correct to within a few percent.
I strongly advice anybody to disable pulseaudio and enable dmix instead. PulseAudio, like Mono and Gnome 3, is a computer virus and should be treated as such.