http://bugs.winehq.org/show_bug.cgi?id=32613
Bug #: 32613 Summary: Tom Clancy's Rainbow Six: Lockdown crashes after the intro videos (without native dxdiagn.dll) Product: Wine Version: 1.5.20 Platform: x86 URL: http://www.fileplanet.com/160005/160000/fileinfo/Tom-C lancy%27s-Rainbow-Six:-Lockdown-Demo OS/Version: Linux Status: NEW Keywords: download Severity: minor Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: gyebro69@gmail.com Classification: Unclassified
Created attachment 43039 --> http://bugs.winehq.org/attachment.cgi?id=43039 terminal output
The game crashes after playing the 2 intro videos without native dxdiagn.dll. After the crash the game opens a crash report file in notepad and generates a minidump file. Removing videos doesn't help. Can be reproduced with the demo version as well, just skip the DirectX installation step (or set dxdiagn=builtin).
http://bugs.winehq.org/show_bug.cgi?id=32613
--- Comment #1 from GyB gyebro69@gmail.com 2012-12-31 04:27:14 CST --- Created attachment 43040 --> http://bugs.winehq.org/attachment.cgi?id=43040 +dxdiag traces
http://bugs.winehq.org/show_bug.cgi?id=32613
Brandon Corujo haku08879@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |haku08879@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=32613
--- Comment #2 from Andrey Gusev andrey.goosev@gmail.com 2013-11-28 05:26:42 CST --- Still in 1.7.7
http://bugs.winehq.org/show_bug.cgi?id=32613
Jarkko K jarkko_korpi@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jarkko_korpi@hotmail.com
--- Comment #3 from Jarkko K jarkko_korpi@hotmail.com --- I just tried the demo with 1.7.17 and had crash too...
http://bugs.winehq.org/show_bug.cgi?id=32613
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Summary|Tom Clancy's Rainbow Six: |Tom Clancy's Rainbow Six: |Lockdown crashes after the |Lockdown crashes after the |intro videos (without |intro videos (needs |native dxdiagn.dll) |DxDiag_SoundDevices device | |child nodes present)
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
Relevant part of trace log:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Ubisoft/Red Storm Entertainment/Rainbow Six Lockdown Demo
$ WINEDEBUG=+tid,+seh,+relay,+dxdiag,+ole,+variant wine ./Lockdown.exe
log.txt 2>&1
... 0029:Call ole32.CoCreateInstance(009493a0,00000000,00000001,00949390,0bbd2628) ret=004878bd 0029:trace:ole:CoCreateInstance (rclsid={a65b8071-3bfe-4213-9a5b-491da4461ca7}, pUnkOuter=(nil), dwClsContext=00000001, riid={9c6b4cb0-23f8-49cc-a3ed-45a55000a6d2}, ppv=0xbbd2628) 0029:trace:ole:CoGetClassObject CLSID: {a65b8071-3bfe-4213-9a5b-491da4461ca7},IID: {00000001-0000-0000-c000-000000000046} ... 0029:trace:ole:apartment_getclassobject found L"C:\windows\system32\dxdiagn.dll" already loaded 0029:trace:ole:apartment_getclassobject calling DllGetClassObject 0x7c76e95c ... 0029:Ret ole32.CoCreateInstance() retval=00000000 ret=004878bd 0029:trace:dxdiag:IDxDiagProviderImpl_Initialize (0x1fcead0,0x33f5a4) ... 0029:trace:dxdiag:IDxDiagProviderImpl_GetRootContainer (0x1fcead0,0xbbd262c) 0029:trace:dxdiag:DXDiag_CreateDXDiagContainer ({7d0f462f-4064-4862-bc7f-933e5058c10f}, 0xbbd262c) ... 0029:trace:dxdiag:IDxDiagProviderImpl_AddRef (0x1fcead0)->(ref before=1) 0029:trace:dxdiag:IDxDiagContainerImpl_AddRef (0x2379a98)->(ref before=0) 0029:trace:dxdiag:IDxDiagContainerImpl_GetChildContainer (0x2379a98, L"DxDiag_DirectSound.DxDiag_SoundDevices", 0x33f5ac) ... 0029:trace:dxdiag:IDxDiagContainerImpl_GetChildContainer Trying to get parent container L"DxDiag_DirectSound" ... 0029:trace:dxdiag:IDxDiagContainerImpl_GetChildContainer Trying to get container L"DxDiag_SoundDevices" ... 0029:trace:dxdiag:DXDiag_CreateDXDiagContainer ({7d0f462f-4064-4862-bc7f-933e5058c10f}, 0x33f5ac) ... 0029:trace:dxdiag:IDxDiagProviderImpl_AddRef (0x1fcead0)->(ref before=2) 0029:trace:dxdiag:IDxDiagContainerImpl_AddRef (0x237da28)->(ref before=0) 0029:trace:dxdiag:IDxDiagContainerImpl_GetChildContainer Succeeded in getting the container instance ... 0029:trace:dxdiag:IDxDiagContainerImpl_GetChildContainer (0x237da28, L"0", 0x33f5a4) ... 0029:trace:dxdiag:IDxDiagContainerImpl_GetChildContainer Trying to get container L"0" ... 0029:trace:dxdiag:IDxDiagContainerImpl_Release (0x237da28)->(ref before=1) 0029:trace:dxdiag:IDxDiagProviderImpl_Release (0x1fcead0)->(ref before=3) ... 0029:Call oleaut32.VariantInit(0033f37c) ret=0048777e 0029:trace:variant:VariantInit (0x33f37c) 0029:Ret oleaut32.VariantInit() retval=0033f37c ret=0048777e 0029:trace:seh:raise_exception code=c0000005 flags=0 addr=0x487785 ip=00487785 tid=0029 0029:trace:seh:raise_exception info[0]=00000000 0029:trace:seh:raise_exception info[1]=00000000 0029:trace:seh:raise_exception eax=00000000 ebx=ffffffff ecx=0bbd2628 edx=7bcecbc8 esi=0bbd2628 edi=0bb25338 0029:trace:seh:raise_exception ebp=00000000 esp=0033f378 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010206 0029:trace:seh:call_stack_handlers calling handler at 0x8f1e7e code=c0000005 flags=0 0029:trace:seh:call_stack_handlers handler at 0x8f1e7e returned 1 ... Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x00487785). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:00487785 ESP:0033f378 EBP:00000000 EFLAGS:00010206( R- -- I - -P- ) EAX:00000000 EBX:ffffffff ECX:0bbd2628 EDX:7bcecbc8 ESI:0bbd2628 EDI:0bb25338 ... Backtrace: =>0 0x00487785 in lockdown (+0x87785) (0x00000000) 0x00487785: movl 0x0(%eax),%ecx Modules: Module Address Debug info Name (194 modules) PE 360000- 3f6000 Deferred fmod PE 400000- dff000 Export lockdown PE 10000000-1002b000 Deferred ubistats PE 18000000-18038000 Deferred binkw32 ... Threads: process tid prio (all id:s are in hex) ... 00000028 (D) C:\Program Files\Ubisoft\Red Storm Entertainment\Rainbow Six Lockdown Demo\Lockdown.exe 00000032 0 00000031 0 00000030 2 0000002f 15 0000002e 15 0000002c 0 0000002b 0 0000002a 0 00000029 0 <== --- snip ---
Wine currently doesn't build a full DxDiag_SoundDevices tree, only the parent node is present.
Source: http://source.winehq.org/git/wine.git/blob/7462da1345e1ad9d4cb06339f1300271e...
--- snip --- 1187 static HRESULT build_directsound_tree(IDxDiagContainerImpl_Container *node) 1188 { 1189 static const WCHAR DxDiag_SoundDevices[] = {'D','x','D','i','a','g','_','S','o','u','n','d','D','e','v','i','c','e','s',0}; 1190 static const WCHAR DxDiag_SoundCaptureDevices[] = {'D','x','D','i','a','g','_','S','o','u','n','d','C','a','p','t','u','r','e','D','e','v','i','c','e','s',0}; 1191 1192 IDxDiagContainerImpl_Container *cont; 1193 1194 cont = allocate_information_node(DxDiag_SoundDevices); 1195 if (!cont) 1196 return E_OUTOFMEMORY; 1197 1198 add_subcontainer(node, cont); 1199 1200 cont = allocate_information_node(DxDiag_SoundCaptureDevices); 1201 if (!cont) 1202 return E_OUTOFMEMORY; 1203 1204 add_subcontainer(node, cont); 1205 1206 return S_OK; 1207 } --- snip ---
The game code is pretty sub-standard, it directly accesses child nodes using hard-coded "0" instance name without checking for presence of child nodes prior nor retrieving node names using standard interface.
A better approach would be (extracted from MSDN example):
--- snip ---
if( FAILED( hr = pDxDiagRoot->GetChildContainer( L"DxDiag_DirectSound.DxDiag_SoundDevices", &pContainer ))) goto cleanup;
if( FAILED( hr = pContainer->GetNumberOfChildContainers( &nInstanceCount))) goto cleanup;
for( nItem = 0; nItem < nInstanceCount; nItem++ ) { ... if( FAILED( hr = pContainer->EnumChildContainerNames( nItem, wszContainer, 256 ))) goto cleanup;
hr = pContainer->GetChildContainer( wszContainer, &pObject ); if( FAILED( hr ) || pObject == NULL ) { ... } /* access the instance */ --- snip ---
Some guys didn't want to bother with reading MSDN/dxdiag code at all ...
$ sha1sum LockdownDemoSetup.exe f79d480bdacd886a8baaf0055106448c38aede94 LockdownDemoSetup.exe
$ du -sh LockdownDemoSetup.exe 520M LockdownDemoSetup.exe
$ wine --version wine-1.7.19
Regards
https://bugs.winehq.org/show_bug.cgi?id=32613
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #5 from super_man@post.com --- still in 1.7.49
https://bugs.winehq.org/show_bug.cgi?id=32613
Michael Müller michael@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |michael@fds-team.de
--- Comment #6 from Michael Müller michael@fds-team.de --- Could you please test the following patch which should fix the issue?
https://github.com/wine-compholio/wine-staging/blob/master/patches/dxdiagn-E...
https://bugs.winehq.org/show_bug.cgi?id=32613
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello Michael,
yes, the patch works. Thanks.
Regards
https://bugs.winehq.org/show_bug.cgi?id=32613
--- Comment #8 from super_man@post.com --- I can confirm too that it works.
https://bugs.winehq.org/show_bug.cgi?id=32613
--- Comment #9 from Andrey Gusev andrey.goosev@gmail.com --- Also confirm that patch fixes the issue.
https://bugs.winehq.org/show_bug.cgi?id=32613
Michael Müller michael@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |STAGED CC| |sebastian@fds-team.de Staged patchset| |https://github.com/wine-com | |pholio/wine-staging/tree/ma | |ster/patches/dxdiagn-Enumer | |ate_DirectSound
https://bugs.winehq.org/show_bug.cgi?id=32613
Sergey Isakov isakov-sl@bk.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |isakov-sl@bk.ru
--- Comment #10 from Sergey Isakov isakov-sl@bk.ru --- Tested on pure wine-1.9.2 It works! I had to tune registry settings, set Windows98 and full screen 1024x768x24. Sounds good.
https://bugs.winehq.org/show_bug.cgi?id=32613
--- Comment #11 from super_man@post.com --- (In reply to Sergey Isakov from comment #10)
Tested on pure wine-1.9.2 It works! I had to tune registry settings, set Windows98 and full screen 1024x768x24. Sounds good.
What do you mean by tuning? Did you add the features that the patch includes?
https://bugs.winehq.org/show_bug.cgi?id=32613
--- Comment #12 from Sergey Isakov isakov-sl@bk.ru --- Sorry, I meant that I use pure wine-1.9.2 without the patch. Without any of 3rd party patches. About registry tuning I didn't remember fbo or backbuffer, UseGLSL=disabled, and I think these d3d setting have no relation to this bug. The game works with pure wine-1.9.2.
https://bugs.winehq.org/show_bug.cgi?id=32613
Andrew Eikum aeikum@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |aeikum@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=32613
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|directx-d3d |-unknown
https://bugs.winehq.org/show_bug.cgi?id=32613
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nerv@dawncrow.de Staged patchset|https://github.com/wine-com |https://github.com/wine-sta |pholio/wine-staging/tree/ma |ging/wine-staging/tree/mast |ster/patches/dxdiagn-Enumer |er/patches/dxdiagn-Enumerat |ate_DirectSound |e_DirectSound
https://bugs.winehq.org/show_bug.cgi?id=32613
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #13 from joaopa jeremielapuree@yahoo.fr --- For me, with a clean wineprefix the bug still occurs with wine-4.0-rc2.
https://bugs.winehq.org/show_bug.cgi?id=32613
--- Comment #14 from joaopa jeremielapuree@yahoo.fr --- Bug still occur with wine-5.3
https://bugs.winehq.org/show_bug.cgi?id=32613
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|STAGED |RESOLVED Fixed by SHA1| |b1eedc7b6f7f5f22315e3c9dc23 | |ebd2e65e77c58 Resolution|--- |FIXED
--- Comment #15 from Gijs Vermeulen gijsvrm@gmail.com --- Staging patch upstreamed as https://source.winehq.org/git/wine.git/commit/b1eedc7b6f7f5f22315e3c9dc23ebd2e65e77c58, marking FIXED.
https://bugs.winehq.org/show_bug.cgi?id=32613
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #16 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 5.22.
https://bugs.winehq.org/show_bug.cgi?id=32613
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |5.0.x
https://bugs.winehq.org/show_bug.cgi?id=32613
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.fileplanet.com/1 |https://web.archive.org/web |60005/160000/fileinfo/Tom-C |/20210123220025/https://sec |lancy%27s-Rainbow-Six:-Lock |uredl.cdn.chip.de/downloads |down-Demo |/2137002/RS_Lockdown_demo.e | |xe Severity|minor |normal
https://bugs.winehq.org/show_bug.cgi?id=32613
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|5.0.x |---
--- Comment #17 from Michael Stefaniuc mstefani@winehq.org --- Removing the 5.0.x milestone from bug fixes included in 5.0.4.