Dolphin, the GameCube and Wii emulator - Forums

Full Version: Please bring back de-syncrhonized audio
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4
If you are "worried about the future of dolphin", then please feel free to fork and get everyone else who shares your concerns to join you. You are yet another backseat programmer that has no idea how emulation works and still tries to tell us how to do our job.

Asynchronous audio is broken audio. The GameCube DSP code that generates audio samples is based on input data that is generated by the emulated CPU every 5ms, and this input data only contains information for exactly 5ms of audio (seriously - for example, it has 5 fields that should be applied each every 32 samples, aka. 1ms). It also reads audio data that was postprocessed by the emulated CPU... again, 5ms at a time. If you want to read more than 5ms, you end up reading uninitialized memory, because the game only knows how to generate 5ms of audio data. Then, every 5ms, the DSP sends an interrupt to the CPU to signal that it has produced audio samples (games rely on this for timing and other stuff, so you can't cheat and send it less often). Anything that generates more than 5ms of audio at a time is wrong and has no business being in Dolphin.
(09-06-2014, 07:30 PM)Link_to_the_past Wrote: [ -> ]OP disable open mp texture decoder, there were reports of it slowing down things at various cases and you can always lower your graphics enhancements. Also use the absolute latest dev build since there are speed ups being implemented constantly recently.

As previously stated here and elsewhere, I see negligible difference between:
- IR 1x, no AA, 1x ASF, scaled EFB off, per-pixel lighting off
- IR auto (1920x1080), 4x AA, 4x ASF, scaled EFB on, per-pixel lighting on

Turning off OpenMP texture decoding maybe helped GWLE6L, not so much any of the Spyro's. (Oh, and add G5SE7D to games that run poorly.)

(09-06-2014, 07:30 PM)mimimi Wrote: [ -> ]Are you using an amd cpu by any chance?

No. Please see my posted stats; I'm sure there is a reason this forum likes people to fill those in Smile.

(09-06-2014, 07:30 PM)mimimi Wrote: [ -> ]If you have an i3 or better @3Ghz+ with those problems, there might be a real software issue for you. But since you are linux user, i would bet my money on gpu driver problem instead of a dolphin problem.

Okay, chalk me up for "a real software issue". Though I'm not entirely clear, especially given frame dropping, where the GPU would cause such significant issues.

Okay... so I've been thinking about this for a while, and given the above, I have to ask. Now, as has been pointed out, I'm not intimately familiar with the guts of emulation, but is there a reason why the rendering (i.e. issuing of GPU commands) and CPU emulation *must* be in the same thread? (And since we can drop frames, it would seem like the answer is 'no'; the game can't be relying on them, or at least not 100% of the time. See also former existance of a no-op video backend.) Given the modern rarity of machines with fewer than 4 cores, it seems to me it would make a lot of sense to split the CPU and GPU parts into separate threads... build a list of everything needed to render and toss it onto a lock-free queue and forget about it. (Maybe keep a second render context for things that must be synchronous, but at least avoid this as much as possible.) This would move a whole bunch of work out of the critical path (CPU emulation) and reduce the ability for GPU issues to break that, while taking better advantage of modern system architectures.

Although... having said that, as another interesting point, I get not much worse VPS using the software render backend... well, reported VPS anyway; actual game timing is as in the toilet as FPS... although the audo quality is comparable.
(09-06-2014, 07:30 PM)mimimi Wrote: [ -> ]Are you using an amd cpu by any chance? If yes, that would explain your problems. Check out the linked google table in this thread:
https://forums.dolphin-emu.org/Thread-ne...e-required

As an example on how bad amd cpus are for Dolphin, take my Core 2 Duo @3.2 Ghz. It takes 17 min 49 sec on Povray, so it's about on the same level as a new 3 Ghz amd cpu. Oh, and i can't even play Wind Waker properly yet. But i won't complain with a 7 years old cpu. Also keep in mind that more than 2 cores are useless, so 10% more single thread speed is about 10% faster than 8 cores instead of 2.

If you have an i3 or better @3Ghz+ with those problems, there might be a real software issue for you. But since you are linux user, i would bet my money on gpu driver problem instead of a dolphin problem.

Your statement is wrong considering how Piledriver =/= Steamroller. But yes AMD processor's aren't optimal for Dolphin.
triad Wrote:As previously stated here and elsewhere, I see negligible difference between:
- IR 1x, no AA, 1x ASF, scaled EFB off, per-pixel lighting off
- IR auto (1920x1080), 4x AA, 4x ASF, scaled EFB on, per-pixel lighting on

This basically verifies that your CPU is the bottleneck and your GPU is not. For the settings you chose at least, your GPU will not be the limiting hardware factor. The slowdowns, most likely, are originating from your CPU.

triad Wrote:Okay... so I've been thinking about this for a while, and given the above, I have to ask. Now, as has been pointed out, I'm not intimately familiar with the guts of emulation, but is there a reason why the rendering (i.e. issuing of GPU commands) and CPU emulation *must* be in the same thread?

Dolphin only does this when Dual-Core mode is disabled. In Dual-Core mode, there are separate threads for video and CPU emulation.
I know on PCSX2 that the Spyro games are prety darn demanding. I'll get my copy of a Hero's Tail out to confirm in Dolphin.
Audio is definitely better in 4.0, even when it slows down. If you just think OpenAL and its timestretch are bad, you can use another audio backend and manually limit your FPS to something your hardware can handle, the sound pitch will change but it sounds better than timestretch for some people...

Also, if your audio is skipping or you need timestretch, your hardware can't handle the game you're trying to run and you need a hardware upgrade (or overclock). Looking at your profile you have a 1st gen i7 which isn't too powerful nowadays. Fortunately, async audio is gone for good and will not come back to Dolphin...
By the way, do you know that half of the ingame crashes we had in 3.5 were because of async audio? I don't care much about small music stops, but I do care about tons of game crashing because the game doesn't expect to provide lots of audio frames without any cpu time.
For the love of all things sane, don't address games by their code number ONLY. It hurts my head.

For those of you wondering/too busy to look up the game codes:
GWLE6L = Wallace and Grommet Project Zoo
RO8E7D = The Legend of Spyro Dawn of the Dragon
G6SE7D = The Legend of Spyro A New Beginning
RO7E7D = Spryo Eternal Night
G5SE7D = Spyro A Hero's Tail



(09-07-2014, 01:41 AM)triad Wrote: [ -> ]Turning off OpenMP texture decoding maybe helped GWLE6L [Project Zoo], not so much any of the Spyro's. (Oh, and add G5SE7D [Hero's tail] to games that run poorly.)

...

Although... having said that, as another interesting point, I get not much worse VPS using the software render backend... well, reported VPS anyway; actual game timing is as in the toilet as FPS... although the audo quality is comparable.

I just polished off and dumped my Hero's Tail disk (and Project Zoo is being dumped). Hero's Tail is a VERY demanding CPU game. On my i7-4700MQ, without using ThrottleStop or Intel XTU, I only get between 50-60 fps. With the latest build. So no, the game does not run poorly, its just too demanding for your system.

I'm pretty sure the software backend is supposed to be slower than the other backends, since it's the most accurate backend.
Any $400 computer these days can run most games at full speed. Pentium G3258 and Z97 motherboard lets me push to 4.1Ghz on stock cooler and even with my old GTX 560 Ti I could push 4xIR. If you are having audio issues its game speed caused by a slow processor, not any fault of Dolphins especially with all the recent performance improvements. In geometry heavy games like NFS: Prostreet I have gone from 40 to 60fps this month alone.
Yes, but the OP has a first gen i7, which is showing its age in Dolphin due to the needs of Dolphin increasing.
Pages: 1 2 3 4