-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi Robert,
I have tried Unreal2 and now we have an regression into dsound code. Unreal2 Create an dsound device since introduction beginning and after (the introduction) the games wants to initialize dmusic (what i'm trying to fix since a lot of time) but now it crash because dmusic init failed (i have removed the not usefulls dsound traces as sounds seems played by another thread):
<snip dsound thread traces> trace:dmime:DMIME_DllGetClassObject ({d2ac2881-b39b-11d1-8704-00600893b1bd}, {00000001-0000-0000-c000-000000000046}, 0x4079d80c) trace:dmime:PerformanceCF_CreateInstance (0x4f03a934, (nil), {679c4137-c62e-4147-b2b4-9d569acb254c}, 0x4e3a8ff8) trace:dmime:DMUSIC_CreateDirectMusicPerformanceImpl (0x1053ffa0,0x4e3a8ff8, (nil)) trace:dmime:IDirectMusicPerformance8Impl_QueryInterface (0x403bf230, {679c4137-c62e-4147-b2b4-9d569acb254c},0x4e3a8ff8) trace:dmime:IDirectMusicPerformance8Impl_AddRef (0x403bf230): AddRef from 1 fixme:dmime:IDirectMusicPerformance8ImplInitAudio (0x403bf230, (nil), 0x4e3a8ffc, (nil), 8, 128, 3f, (nil)): to check trace:dsound:DirectSoundCreate8 ({c50a7e93-f395-4834-9ef6-7fa99de50966},0x4079d800,(nil)) trace:dsound:setup_dsound_options appname = [Unreal2.exe\dsound] trace:dsound:GetDeviceID (0x4f035d9c,0x4079d7cc) err:dsound:DirectSoundCreate8 different dsound already opened trace:dsound:DirectSoundCreate8 expecting GUID {c50a7e93-f395-4834-9ef6-7fa99de50966}. trace:dsound:DirectSoundCreate8 got GUID {bd6dd71a-3deb-11d1-b171-00c04fc20000} for wod 0. warn:dsound:DirectSoundCreate8 No device found matching given ID - trying with default one ! warn:dsound:DirectSoundCreate8 waveOutOpen failed fixme:dmime:IDirectMusicPerformance8ImplInitAudio return dsound((nil),-2005401590) trace:dmloader:IDirectMusicLoader8Impl_SetSearchDirectory (0x47fc4c28, {d2ac2893-b39b-11d1-8704-00600893b1bd}, L"..\music\", 0) fixme:dmime:IDirectMusicPerformance8ImplGetDefaultAudioPath (0x403bf230, 0x4079d814): semi-stub ((nil)) <snip dsound thre ad traces> fixme:debug_buffer:RtlCreateQueryDebugBuffer (0, 0): stub fixme:debug_buffer:RtlCreateQueryDebugBuffer (96, 0): returning 0x403bf298 fixme:debug_buffer:RtlQueryProcessDebugInformation (8, 80000001, 0x403bf298): stub fixme:debug_buffer:RtlDestroyQueryDebugBuffer (0x403bf298): stub <snip dsound thre ad traces>
As you can see, the waveOutOpen call failed. And dsound returns NULL :( Can you look it ?
Regards, Raphael
Try this patch. DirectSoundCreate should be called with the GUID of the device or NULL for the default device, not the GUID of the COM object interface.
Raphael wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi Robert,
I have tried Unreal2 and now we have an regression into dsound code. Unreal2 Create an dsound device since introduction beginning and after (the introduction) the games wants to initialize dmusic (what i'm trying to fix since a lot of time) but now it crash because dmusic init failed (i have removed the not usefulls dsound traces as sounds seems played by another thread):
Index: dlls/dmime/performance.c =================================================================== RCS file: /home/wine/wine/dlls/dmime/performance.c,v retrieving revision 1.7 diff -u -r1.7 performance.c --- dlls/dmime/performance.c 7 Mar 2004 03:14:49 -0000 1.7 +++ dlls/dmime/performance.c 3 May 2004 00:56:49 -0000 @@ -66,7 +66,7 @@ This->pDirectSound = (IDirectSound*) pDirectSound; IDirectSound_AddRef((LPDIRECTSOUND) This->pDirectSound); } else { - DirectSoundCreate8(&IID_IDirectSound8, (LPDIRECTSOUND8*) &This->pDirectSound, NULL); + DirectSoundCreate8(NULL, (LPDIRECTSOUND8*) &This->pDirectSound, NULL); /** * as seen in msdn * @@ -423,7 +423,7 @@ if (NULL != ppDirectSound && NULL != *ppDirectSound) { dsound = *ppDirectSound; } else { - DirectSoundCreate8 (&IID_IDirectSound8, (LPDIRECTSOUND8*) &dsound, NULL); + DirectSoundCreate8 (NULL, (LPDIRECTSOUND8*) &dsound, NULL); if (!dsound) return DSERR_NODRIVER; if (ppDirectSound)
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi Robert,
Try this patch. DirectSoundCreate should be called with the GUID of the device or NULL for the default device, not the GUID of the COM object interface.
Thx, its perfect (i have included it in my patch)
Regards, Raphael