https://bugs.winehq.org/show_bug.cgi?id=42414
--- Comment #9 from Kimmo Myllyvirta kimmo.myllyvirta@gmail.com --- Created attachment 57286 --> https://bugs.winehq.org/attachment.cgi?id=57286 hack patch
Some more information, the culprit is definitely;
trace:xaudio2:IXAudio2Impl_CreateSourceVoice (0x471a8230)->(0x7ff623f4f058, 0x3d63de80, 0x0, 2.000000, (nil), (nil), (nil)) trace:xaudio2:dump_fmt wFormatTag: 0x3 (WAVE_FORMAT_IEEE_FLOAT) trace:xaudio2:dump_fmt nChannels: 6 trace:xaudio2:dump_fmt nSamplesPerSec: 48000 trace:xaudio2:dump_fmt nAvgBytesPerSec: 1152000 trace:xaudio2:dump_fmt nBlockAlign: 24 trace:xaudio2:dump_fmt wBitsPerSample: 32 trace:xaudio2:dump_fmt cbSize: 18 warn:xaudio2:IXAudio2Impl_CreateSourceVoice OpenAL can't convert this format!
builtin xaudio2 supports 32-bit float formats, but only mono and stereo, not 6-channels, which is used for most of the movies/cinematics in this game. The game actually handles the return values, and gracefully skips everything it can't play.
Attached patch works, all the videos play, but (for me) it causes lots of crackling/pops, this needs a bit different patch. Consider the attached patch as a proof-of-concept.