Emulator Issues #5563
Metroid Prime BGM Problems with LLE
Affects: GM8E01 and R3ME01
Background music stops randomly with DSP LLE in Metroid Prime. Occurs in both the GCN and Trilogy versions, and it is unable to recover. Once it stops, that's all folks. HLE has similar problems, but uh, it's HLE, it's expected there. Note that it will occur even when running at 60fps, so it doesn't appear to be performance related. And it occurs on both Xaudio2 and DirectSound (though it seems to happen more readily on Xaudio2, maybe my imagination).
To reproduce, just play the game, it will stop sooner or later. If you don't want to wait, going in and out of fullscreen or taking a screenshot will usually muck it up.
For comparison, Prime 2's BGM can stop, but I have never encountered it doing it on it's own (only when doing things to TRY to mess it up), and even then it is able to recover. Prime 3 (Trilogy, if it matters) seems immune.
Tested on 3.0-735
Windows 7 x64
Core i5 3570K @ 4.7ghz
nVidia Geforce GTX275
#2 Updated by burnhellpsp about 10 years ago
This is a new hle/lle issue with recent gits, Sonic Adventure 2 also has problem.
The git that cause those issues in Metroid Prime 1 & 2 also in Sonic Adventure 2 is this: http://code.google.com/p/dolphin-emu/source/detail?r=b0d271db3c7e79e3cf27131393d7a490f5e122d1
#4 Updated by skidau almost 10 years ago
The revision rb0d271db3c7e79e3cf27131393d7a490f5e122d1 affected only DSP HLE and this issue is regarding LLE. delroth changed that line of code in ra26223c04cc1 resulting in both DSP LLE and DSP HLE being affected. The line of code "g_dspState.DSPControl.DMAState = 0" is accurate to the hardware.
The other changes in rb0d271db3c7e79e3cf27131393d7a490f5e122d1 affect only non-SSE3 CPU's and cannot cause this issue.
#10 Updated by MayImilae almost 10 years ago
So, I've been playing Metroid Prime GCN all the way through, and I've learned a few things. I think this issue is more complex than just one build.
As I noted in the forum post below, in 3.0-720 (and just tested 3.0-750) there is a studdering issue. http://forums.dolphin-emulator.com/showthread.php?tid=23611&pid=225928#pid225928
I blamed it on dolphin's loading because it LOOKS like a loading problem, but in my further testing it seemed more random. Furthermore, as I was playing through Prime in 3.0-600 I noticed it doesn't have the studdering problems, EVER. I thought this was because I was using fast disc access, but I disabled it and it was fine. So I'm thinking it's another LLE issue, and decided to do some thorough testing to study it. Here's what I found.
3.0-600 has near perfect audio with DSP-LLE on thread and Xaudio2. It's only derped once or twice in hours of playing over several days. LLE on thread and Xaudio2 with EFB to Ram (cached).
3.0-631 - Some minor sound effect issues are present. Using same settings as 3.0-600, and disabling LLE on thread has no effect. Studdering is present, but it is less than current builds.
3.0-673 - Same as 631.
3.0-682 - Same as 673, but has more reproducible and annoying sfx issues.
3.0-900 - BGM is fine (!), same as 682.
3.0-710 - Same as current builds. No sound effect issues (except during studdering), studdering is much worse, and BGM stops easily.
3.0-720 - Same as 710
3.0-750 - Same as 710
Looks like skid is right about the origin of this bug. It is possible that the more accurate emulation for DMA is taking something that occurred before and making it worse. Whenever it studders, music and sound effects will glitch, and the music stops. It will still studder before and after music stops, but severe studdering will cause it to glitch. The studdering could very well be the cause of it.
Note that the studdering does not appear to be performance related. My computer is very strong, it happens regardless of what is on the screen, and it will occur even with EFB to Texture, which is a cakewalk for my system.
To make it easier to reproduce, here is my memory card from a while ago. It is what I use for testing the bug. The "chozo ruins" save is nearly 100% consistent: just load it, rush out the door, then lock on and shoot the shriekbats that come down to attack you. The game will studder and the music stop every time.
#11 Updated by MayImilae almost 10 years ago
*3.0-900 should be 3.0-700
I really wish this thing had an edit function.
Anyway, in a fix from the very first post: Prime 3 does have similar audio problems. Specifically, with DSP LLE it can get stuck looping a few seconds of music over and over and over. And it can screw up audio cues if it's doing it.
Also, there is a sound problem with DSP LLE and Prime 1 in 3.0-600. When underwater, there is an occasional "brzzt" sound that happens regularly every few seconds. Otherwise, it is very reliable and nearly flawless.
I tried 3.0 for a comparision, and it's audio seems to be exactly the same as 3.0-600, even the "brzzt" underwater.
#19 Updated by itachijuniorpc over 9 years ago
Speed up Disc transfer OFF on Super Smash Bros Melee seems to fix the BGM in recent gits, (i don't know if it still can stop with it OFF) dolphin 3.0 and master git 3.0-745 doesn't need disable Speed up Disc transfer.
Speed up Disc transfer ON on Super Smash Bros Melee, makes the BGM stop, the 1st git that I see with this issue was the dolphin 3.0-763, the last git that I see without this issue was dolphin 3.0-745
Speed up Disc transfer OFF on Metroid Prime 1 GC, fix the "BGM doesn't play sometimes" for all dolphins, but the BGM still stops completely after a while in recent gits (the BGM doesn't stops in dolphin 3.0 and the master git 3.0-397)
Metroid Prime 1 GC doesn't like "Speed up Disc transfer ON" It makes the BGM doesn't play sometimes, in all dolphins, the loading of the doors are so fast, that the BGM can't keep up.
#20 Updated by itachijuniorpc over 9 years ago
I discovered that Metroid Prime 1 EUR GC (and maybe Metroid Prime 1 Wii USA & EUR), doesn't need uncheck Speed up Disc transfer, you can leave it ON, since those versions doesn't have problems with loads fast ;) , only the Metroid Prime 1 GC USA, need Speed Up Disc transfer OFF, since even on the real GameCube the BGM will not play sometimes if the loads are too fast.