Dolphin, the GameCube and Wii emulator - Forums

Full Version: Microphone Related Crashes
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

SpirrwellTech

Hello there!

This is the first time I've messed around with microphone emulation in Dolphin, and I've been running into crashes. I came across this here: https://forums.dolphin-emu.org/Thread-en...ne+crashes

But, my crashes aren't as instantaneous as described in that thread, and that person reported that the issue was fixed in a later revision, but that was 4 years ago. Like that person, I'm trying to also run Mario Party 7 with the microphone.

The microphone seems to work, but it will randomly crash, sometimes as I go to push the microphone button, sometimes during use, whatever. I haven't been able to find an exact reproduction of the issue. I haven't tried the stable versions of Dolphin, as I always opt for the latest development build when I see it. But I did try a couple different builds and I had the same results.

Debugging with Visual Studio has brought me to MMU.cpp pointing to line 400 in the TryReadInstruction() function:

Code:
// TODO: Refactor this. This icache implementation is totally wrong if used with the fake vmem.
  if (Memory::m_pFakeVMEM && ((address & 0xFE000000) == 0x7E000000))
  {
    hex = bswap(*(const u32*)&Memory::m_pFakeVMEM[address & Memory::FAKEVMEM_MASK]);
  }

The code that appears to crash is when you're trying to set hex to a value. I don't even have a clue what in the world this code means as it's a bit too low level for me. Doing some sort of a byteswap that passes m_pFakeVMEM casted to what I assume is an unsigned 32 bit integer pointer in a dereferenced form, and just saying that makes my head hurt, and I just feel like I'm spouting gibberish. My only particular guess is that it has something to do with the TODO: comment.

Also, before you ask, I did follow the instructions here: https://wiki.dolphin-emu.org/index.php?t...figuration Though the way the microphone input is handled seems rather uh... not so good to put it lightly. Though I suppose it works.

Anyhow, to reproduce the issue, just load up Mario Party 7 and load up the minigame Balloon Busters, and play it a few times. Sometimes it will crash on the first try, sometimes it won't, but it happens often enough to where it's easy to reproduce. I haven't tried it with the other minigames, but it did crash when it went to load up a microphone game during normal party play, and well, a crash is a crash.

If you can't reproduce the issue, I can supply my dolphin PDB file along with a minidump I already created. If you need any more information, please let me know!