Hmm. I don't own MGS, so I can't test that out, but I'll test out SMG (since I have a completed save file). I'll report back on that. Until then, someone else can help you, because I don't know if I can do much more troubleshooting until I can get that done.
Looked at my settings for SMG, decided to uncheck "Enable Progressive Scan" in the graphics settings, tried your suggestion again Axxer. Now, IT WORKED! Framerate does not drop to 30fps, keeps at the normal 48fps-60fps I usually get but with smooth audio! Thanks for sticking with me in this thread, would have not gone through my settings if it wasn't for your help!
YOU GUYS ROCK!!!
now for MGS. I hope that "age hasn't slowed me down one bit"...
mashakos Wrote:Could it be possible to implement functionality similiar to "async mix" for Dolphin's LLE recompiler maybe? This is just a shot in the dark, if one of the devs can chime in with some insight, would be great!
Not really. LLE emulates the GC/Wii's DSP as accurately as possible. The real DSP, iirc, runs in sync with the CPU. Any slowdowns in the emulated CPU will result in audio distortions from the emulated DSP, since it's not processing the data fast enough (and consequently not getting out all of the audio fast enough either). LLE audio also doesn't apply any sort of time-stretching on sounds.
HLE audio, oth, can run without having to strictly be in sync with the emulated CPU. Though I imagine significant slowdown in the emulated CPU causes the emulated DSP in HLE to slow down too, because the CPU and DSP frequently communicate with one another about audio data. I think HLE avoids the audio distortions largely by being much "faster" and having adequate time stretching, but for the latter, I really haven't looked at that part of the code yet. I'm not a dev, at least not for Dolphin, just someone interested in how it works

(09-20-2012, 02:27 PM)Shonumi Wrote: [ -> ]Not really. LLE emulates the GC/Wii's DSP as accurately as possible. The real DSP, iirc, runs in sync with the CPU. Any slowdowns in the emulated CPU will result in audio distortions from the emulated DSP, since it's not processing the data fast enough (and consequently not getting out all of the audio fast enough either). LLE audio also doesn't apply any sort of time-stretching on sounds. HLE audio, oth, can run without having to strictly be in sync with the emulated CPU. Though I imagine significant slowdown in the emulated CPU causes the emulated DSP in HLE to slow down too, because the CPU and DSP frequently communicate with one another about audio data. I think HLE avoids the audio distortions largely by being much "faster" and with adequate time stretching, but I really haven't looked at that part of the code yet. I'm not a dev, at least not for Dolphin, just someone interested in how it works 
hmmm, makes sense to not want to keep audio independent if it is sensitive to cpu cycles in the original hardware. Thanks for the info!
what i had in mind was not stretching but keeping audio in an independent "timer", so it keeps going at it's own normal speed, until a state change is called by the software at which the audio will be stopped swapped. The effect would similiar to this: if emulation slowed down, audio loops would be running at normal speed but might repeat more times than intended, if a state change occurs audio will switch abruptly. You see this "effect" in PCSX2, i a game is running slowly you will find that there are long pauses where BGM keeps running - then sounds start being played. Feels like the game is loading but it's just the audio running at a different speed from the rest of the emulation i.e asynchronous.
(09-20-2012, 02:38 PM)mashakos Wrote: [ -> ]hmmm, makes sense to not want to keep audio independent if it is sensitive to cpu cycles in the original hardware. Thanks for the info!
what i had in mind was not stretching but keeping audio in an independent "timer", so it keeps going at it's own normal speed, until a state change is called by the software at which the audio will be stopped swapped. The effect would similiar to this: if emulation slowed down, audio loops would be running at normal speed but might repeat more times than intended, if a state change occurs audio will switch abruptly. You see this "effect" in PCSX2, i a game is running slowly you will find that there are long pauses where BGM keeps running - then sounds start being played. Feels like the game is loading but it's just the audio running at a different speed from the rest of the emulation i.e asynchronous.
Weird, but sort of cool. I suppose there would be a way to implement this in Dolphin, but that specific feature seems more HLE than LLE (at least if I'm understanding it right, which I'm sure will be undertaken by a dev shortly). With the VBeam hack-workaround, though, this kind of feature wouldn't be very useful most of the time. Interesting idea nonetheless.
I haven't messed around with any of the audio options in PCSX2, but I understand what you're talking about. For the part that needs to repeat, how would you determine where this should start, i.e. what segment of the audio would loop until the state change occurs? Would the length be arbitrary (e.g. you keep a buffer of 5 seconds worth of audio)?
Something like this doesn't seem to accurately reflect what the hardware does, so I don't imagine the devs would be too keen on adopting this for LLE audio (which is supposed to be as accurate as possible, even if current hardware can't keep up). Maybe HLE audio, since it's full of hacks anyway :p
Quote:Maybe HLE audio, since it's full of hacks anyway
And bugs. HLE really doesn't need any more hacks leading to more bugs.
Doesn't HLE sort of naturally have this feature anyway? HLE doesn't have stuttering problems at slower game speeds like LLE does, so implementing this hack would be pointless. If a newer, less buggy HLE audio backend is ever created, though, this should definitely be a part of it.
The HLE audio backend has some pretty big problems that need to be ironed out, but I don't think it's really worth the time since LLE works perfectly in almost all circumstances. The only instance I can think of where LLE might be weird has to do with some sort of "bandwidth" like thing that happens when starbit comets rain down in SMG; from what I understand the DSP gets overloaded on sound and slows down, which I don't think would happen on the Wii (I could be wrong).
(09-20-2012, 03:00 PM)Axxer Wrote: [ -> ]Doesn't HLE sort of naturally have this feature anyway? HLE doesn't have stuttering problems at slower game speeds like LLE does, so implementing this hack would be pointless. If a newer, less buggy HLE audio backend is ever created, though, this should definitely be a part of it.
Yeah, I forgot to say in my previous post that it really wouldn't do much for Dolphin on HLE audio, except give the appearance that audio is still being processed at fullspeed. It'd only be looping the same already processed audio until the next is segment is ready. Currently, HLE audio time stretches by doing something like stretching the last sound until the next one is ready to play. Something like time stretching would better serve LLE audio too, but again, it's somewhat of a hack an not at all accurate to real HW.
I'm supposed to be working on HLE audio for the Gekko emulator (hitting some hard roadblocks yet again, kinda stuck atm). Maybe I'll make it better than Dolphin's
(09-20-2012, 03:13 PM)Shonumi Wrote: [ -> ]I'm supposed to be working on HLE audio for the Gekko emulator (hitting some hard roadblocks yet again, kinda stuck atm). Maybe I'll make it better than Dolphin's 
Well then you better work on dolphin's when you're done then :p
(09-20-2012, 01:19 PM)mashakos Wrote: [ -> ]A workaround in PCSX2 is to set the audio plugin to "Async mix". Even when framerates drop, audio runs at normal speed - as long as they don't drop to 20fps or less.
Could it be possible to implement functionality similiar to "async mix" for Dolphin's LLE recompiler maybe?
That functionality is already implemented in dolphin ! Its called enabling vbeam and disabling idle skipping
Based on my testing,LLE audio IS running completely async to other aspect of emulation-no metter at what speed game is running,audio does not slow down.
Also,HLE seems to be async no metter what settings-I haven't noticed slowing down of audio speed or skipping with HLE with any game at any speed-which could only mean HLE is async too
If indeed HLE was "time stretching" that would mean music would slow down.
I havent noticed this,"time stretching" cant be done that good so it cant be noticed,can it ???
For example,in SMG2 if I enable 9xSSAA game will run at 20 fps,which is only 30% of speed.
Lets imagine how horible HLE audio would sound if indeed it would stretch sounds or music waiting for CPU or GPU which is running three times slower.
But,it sounds normal.
Even if sounds ( bgm ) time stretch or whatever,music tracks certanly do not