(03-30-2014, 10:25 AM)degasus Wrote: Async audio isn't that bad imo. It solves "some" issues, but not the ones everybody loved. In short, async audio allows us to look a bit into the future. So we could ignore the emulation time variance and stream the audio on real time which reduces the latency a bit.
But the average emulation time should be the real time, else the music stops long before the game expect the music to finish. Just search on the issue tracker for music stopping issues. So it can't be used to get smooth audio for non 100% emulation speed, but it would allow us to generate some ms of audio and to stretch further on (sync audio will increase the latency much more with smooth stretching).
We also have to care to not underrun the emulated fifo. As the emulation if often blocked for >200ms in cut scenes, we have to block the audio, so there will always be stutters (or crashes, which one is better?)
One thing I just realized...when I use Async audio wearing my headphones connected to my conputer's headphone jacks...I do get crashes...I use an RCA digital coaxial cable on my 5.1 stereo receiver and and no crash. So it solves issues for some games but not all...Why not then simply add a ticker to the "Game Properties" window in the "Core" box that allows you to use the old Dolphin 3.5 sound engine? This makes it game specific and doesn't have to be implemented universally in the DSP menu. I would hazard a guess that since headphone jacks are mostly analog by nature and that data has to run through a DAC to provide sound to a pair of headphones, that most of the non-game related crashes happen due to DAC conversion issues.
I haven't emulated many GC games outside of Paper Mario, Zelda Windwaker, Metroid Prime, and Soul Calibur II...MP is the only game the severely frame drops for me...