Have you examined the source code for ALL of those? This is quite a sweeping claim to make, especially coming from someone who has spent all of... what, 5 minutes?... looking into this problem.

As it happens, yes. I've looked at the source code for pretty much every source-available emulator out there at one time or another, and fully-threaded audio is generally rare (except for ones still using MMIO/WaveOut where it's a really good idea).

Some drivers (specifically a lot of Creative Labs' drivers) get it wrong, causing the lock/write calls to the buffer to stall and/or reporting incorrect information back to the application about the current state of the buffer. Both problems can cause audio skips regardless of how fast the rest of your system is.

Yes, I know. I programmed the audio for one of the early PC games to support the SB Live. Great hardware, the driver team should be shot.

But seriously, the reason DirectSound is done in software in Vista/7 is exactly to eliminate those problems. The software DSound doesn't misreport buffer positions or get the units wrong or the number of other things I've seen "in the wild" in driver implementations. I've never seen a problem with it - there may *be* one, but on balance it's miles ahead of the previous situation with IHV drivers.

Creating a dedicated background thread that pulls audio data out of a software buffer and jams it into the DirectSound playback ring buffer in no way destroys audio/video sync. All it does is (1) eliminate buffer contention, and (2) guarantee that the DirectSound buffer never gets starved for data due to a momentary hiccup in the performance of the main emulation thread.

In the case where you don't mean running the entire APU on up on a separate thread, yes, that can work, although ideally you'd want the emulation running a frame or 2 ahead of the audio thread to ensure you always have buffer if a hiccup occurs.

Originally Posted By R. Belmont
these sound problems don't exist in e.g. 1.08 on the same PCs that exhibit problems with 1.41

What proof do you have to back up this claim?

1) The complaints didn't start coming in until around 1.35ish, and 2) users having them have posted that rolling back to older versions did fix the issue.