I don't use video for timing synchronization - instead, I use Sound/Timing 'situation Sc)' with one difference: after I generate 1 frame worth of audio, I check if DirectSound is ready to receive a frame of sound data in the appropriate spot in the buffer - if it's ready, I dump it in; if not, I wait until the spot is available to write to (i.e. until the old data is done being played).
I really need to find a better method for audio playback in my emulator - my current method sucks quite a bit.
P.S. If you don't get this note, let me know and I'll write you another.