It's not running in realtime, but the synchronisation with the display output and the audio output are separate. The display is updated with relation to the emulated clock time for various reasons (I need to be able to view intermediate display states when the emulator is halted).
I sample the audio at the SDL audio driver's frequency (ie. 22050 etc.) and then write the sound buffer directly (to the audio driver and optionally to file) through a callback. This was the 'obvious' way to do it, but I'm happy to improve it if it helps.
It would be possible to sample the audio at a much higher rate, but I don't have good information on down sampling 1-bit audio to a 'realistic' output. I'm also nervous of killing the overall performance of the emulator, since the cycle-exact emulation of the main components is quite demanding already.
In the short term, I've added a command line option to determine the sample frequency, so you can set it to eg. 48000 and get higher quality output - though it's still going to be unfiltered.