https://bugs.winehq.org/show_bug.cgi?id=38668
--- Comment #72 from Andrew Eikum aeikum@codeweavers.com --- (In reply to demurgos from comment #69)
- Same result when using `winecfg` to override `xaudio2_7` to use `builtin`
(normal I guess, it seems to be the default): game starts but no dialogues (only the sound of the horses).
- When using `winecfg` to override `xaudio2_7` to use `native`, the game
crashes at start.
Yes, this seems consistent with my understanding. native 64-bit xaudio2 is broken in Wine due to how it manipulates pointers; see comment 58 here. Wine's built-in xaudio2 is missing WMA conversion, so some audio does not play back; see bug 39402.
The very first time I set `xaudio2_7` to `native`, the game has started without crashing and the dialogues worked. I closed the game during the character creation. I tried to reopen it (without any changes) but then it crashed with the behavior described above. I removed the wine prefix and reinstalled it but wasn't able to start the game with the native `xaudio2_7`. I don't know why it has worked once and wasn't able to reproduce it.
Yes, sometimes native 64-bit xaudio2 will happen to work by luck depending on how the xaudio2 data is allocated. Same thing with the fullscreen/windowed mode, it happens to allocate the data differently, which doesn't hit the pointer truncation issue.
For me, the solution would be to either fix the xaudio2_7 native crash [or] fix the dialogues with the builtin xaudio2_7
Yes, either of these would be great. Kimmo had some thoughts on fixing native, but he says his proposed fix caused other issues. Fixing builtin is discussed at the bug mentioned above.