[Bug 39958] New: Regression in dmime caused by change in flag handling for DSBCAPS_CTRLPAN in dsound

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Jan 9 10:57:46 CST 2016


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 at winehq.org
          Reporter: michael at fds-team.de
                CC: mstefani at 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 at 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 at redhat.de>
    Signed-off-by: Alexandre Julliard <julliard at 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/9d5d217c25eed281ce198e1066f6ff7db80937b6/patches/explorer-Video_Registry_Key/0001-explorer-Create-CurrentControlSet-Control-Video-regi.patch

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list