https://bugs.winehq.org/show_bug.cgi?id=39471
--- Comment #20 from Andrew Eikum aeikum@codeweavers.com --- (In reply to fjfrackiewicz from comment #19)
(In reply to Andrew Eikum from comment #18)
Are there two issues here? One where the intro movie freezes the game (comment #0), and a separate one where you got a crash after an hour of gametime (comment #1, comment #2)? I would expect the patch to fix the latter, but probably not the former.
It looks like it from where I stand. I think the "hour of game time" crash might've been a random crash because I couldn't duplicate it.
If I could remove the unnecessary comments, I would.
No worries. We'll keep this one about the intro movie bug.
I received a private email from someone else about the openal-1.15 bug a while ago, and their crash looks just like your crash. So I'm fairly confident that's what gave you that crash. I'll submit that patch very soon, I just need to give it a little more testing.
Anyway, back to the intro movie problem. The game repeatedly calls acmStreamOpen trying to convert some audio from WMA to PCM:
0065:trace:msacm:acmStreamOpen ((nil), (nil), 0x506a8f0, 0x50a2ca0, (nil), 0, 0, 5) 0065:trace:msacm:acmStreamOpen src [wFormatTag=353, nChannels=2, nSamplesPerSec=44100, nAvgBytesPerSec=16005, nBlockAlign=2973, wBitsPerSample=16, cbSize=10] 0065:trace:msacm:acmStreamOpen dst [wFormatTag=1, nChannels=2, nSamplesPerSec=96000, nAvgBytesPerSec=192000, nBlockAlign=2, wBitsPerSample=8, cbSize=0] 0065:trace:msacm:acmStreamOpen => (512)
This continually fails because Wine's msacm32 can't decode WMA audio. I guess the game has a bug where it doesn't handle this failure gracefully, and eventually runs out of stack space, causing your freeze/crash.
So, either Wine's msacm32 should support converting WMA to PCM, or we're somehow misleading this program into thinking that it can do the conversion when it can't. Writing a test with the same acmStreamOpen call and running it on Windows would confirm what Windows's msacm32 can do, and tell us what Wine's should do.