https://bugs.winehq.org/show_bug.cgi?id=39958
Bug ID: 39958 Summary: Regression in dmime caused by change in flag handling for DSBCAPS_CTRLPAN in dsound Product: Wine Version: 1.9.1 Hardware: x86 URL: http://www.fileplanet.com/130481/130000/fileinfo/Empir es:-Dawn-of-the-Modern-World---Single-Player-Demo OS: Linux Status: NEW Keywords: download, regression Severity: normal Priority: P2 Component: directx-dmusic Assignee: wine-bugs@winehq.org Reporter: michael@fds-team.de CC: mstefani@redhat.com Regression SHA1: 0e5dcc2c841be0a4311d1915d073d2775fe436b4 Distribution: ---
The game Empires: Dawn of the Modern World uses dmime and crashes because IDirectMusicPerformance8Impl_CreateStandardAudioPath fails and returns NULL as interface:
fixme:dmime:IDirectMusicPerformance8Impl_CreateStandardAudioPath (0x19e260)->(6, 64, 1, 0x32f9b8): semi-stub wine: Unhandled page fault on read access to 0x00000000 at address 0x1006ce7a (thread 0009), starting debugger...
The game passes DMUS_APATH_DYNAMIC_3D as flag which causes dmime to call IDirectSound8_CreateSoundBuffer with the flag combination DSBCAPS_CTRL3D | DSBCAPS_CTRLPAN. This combination is now invalid due to the following commit:
------ commit 0e5dcc2c841be0a4311d1915d073d2775fe436b4 Author: Michael Stefaniuc mstefani@redhat.de Date: Mon Dec 21 12:08:09 2015 +0100
dsound: Fail to create a version 8 3d buffer with DSBCAPS_CTRLPAN.
Signed-off-by: Michael Stefaniuc mstefani@redhat.de Signed-off-by: Alexandre Julliard julliard@winehq.org ------
Reverting the patch fixes the problem, but since we have tests for this, it is more likely that the flag combination in dmime is invalid. It is most probably necessary to remove DSBCAPS_CTRLPAN as flag but I leave this to someone with more knowledge about dmime.
In order to reproduce the problem, download the demo and apply the following patch, otherwise the installer will error out. The game will try to load the windows sound db from C:\WINDOWS\system32\drivers\gm.dls, you can either copy it from an existing windows installation or ignore the error as it is not necessary to reproduce the crash.
Patch for installer: https://github.com/wine-compholio/wine-staging/blob/9d5d217c25eed281ce198e10...