https://bugs.winehq.org/show_bug.cgi?id=36449
Bug ID: 36449 Summary: Death to Spies: Moment of Truth crashes on mission start (needs ID3DXSkinInfo::ConvertToIndexedBlendedMesh implementation) Product: Wine Version: 1.7.18 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: directx-d3dx9 Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net
Hello folks,
as the summary says...
Prerequisite: 'winetricks -q d3dcompiler_43'
For the intro video crash you need Windows Media Video 9 VCM (bug 32723).
Download: http://download.microsoft.com/download/9/8/a/98a6cb2d-6659-485e-b1f9-2c0d9bf...
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Aspyr/Death to Spies - Moment of Truth Demo
$ WINEDEBUG=+tid,+seh,+relay,+d3dx,+d3d wine ./Truth.exe >>log.txt 2>&1 ... 0046:fixme:d3dx:d3dx9_skin_info_ConvertToIndexedBlendedMesh iface 0x648d7910, mesh_in 0x6490f840, options 0, adjacency_in 0x45, adjacency_out 0x5adb248, face_remap 0x5ae67d8, vertex_remap (nil), max_face_infl (nil), num_bone_combinations 0x33f1c0, bone_combination_table 0x33f194, mesh_out 0x33f1a0 stub! 0046:Call ntdll.RtlFreeHeap(01060000,00000000,05adb238) ret=007bf3c1 0046:Ret ntdll.RtlFreeHeap() retval=00000001 ret=007bf3c1 0046:Call ntdll.RtlFreeHeap(01060000,00000000,05ae67c8) ret=007bf3c1 0046:Ret ntdll.RtlFreeHeap() retval=00000001 ret=007bf3c1 0046:trace:seh:raise_exception code=c0000005 flags=0 addr=0x4e40df ip=004e40df tid=0046 0046:trace:seh:raise_exception info[0]=00000000 0046:trace:seh:raise_exception info[1]=00000037 0046:trace:seh:raise_exception eax=00000037 ebx=064e1c90 ecx=add05c5b edx=064e3c00 esi=05adb248 edi=05ae67d8 0046:trace:seh:raise_exception ebp=80004001 esp=0033f138 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010246 0046:trace:seh:call_stack_handlers calling handler at 0x7c9140 code=c0000005 flags=0 ... Unhandled exception: page fault on read access to 0x00000037 in 32-bit code (0x004e40df). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:004e40df ESP:0033f138 EBP:80004001 EFLAGS:00010246( R- -- I Z- -P- ) EAX:00000037 EBX:064e1c90 ECX:add05c5b EDX:064e3c00 ESI:05adb248 EDI:05ae67d8 ... Backtrace: =>0 0x004e40df in truth (+0xe40df) (0x80004001) 0x004e40df: movl 0x0(%eax),%ecx Modules: Module Address Debug info Name (149 modules) PE 400000- 8c9000 Export truth PE 8d0000- ad7000 Deferred d3dcompiler_43 PE bf0000- d29000 Deferred vorbis PE 10000000-10022000 Deferred vfs20 ... Threads: process tid prio (all id:s are in hex) ... 00000045 (D) C:\Program Files\Aspyr\Death to Spies - Moment of Truth Demo\Truth.exe 00000016 0 0000000d 15 0000000b 0 00000047 0 00000046 0 <== --- snip ---
MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/bb174209%28v=vs.85%2...
Source: http://source.winehq.org/git/wine.git/blob/0a993f14b4e254617e408f961fcb8f946...
'winetricks -q d3dx9_36' works around (also fixes text display issue).
$ sha1sum DTS_Demo_Installer.exe aa7af641c6e959aa3daf758acf5f6f3b124d0ed1 DTS_Demo_Installer.exe
$ du -sh DTS_Demo_Installer.exe 920M DTS_Demo_Installer.exe
$ wine --version wine-1.7.18-92-gb01fc1a
Regards
https://bugs.winehq.org/show_bug.cgi?id=36449
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://news.bigdownload.com | |/2009/07/30/download-death- | |to-spies-moment-of-truth-de | |mo/
http://bugs.winehq.org/show_bug.cgi?id=36449
Andrey Gusev andrey.goosev@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |andrey.goosev@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=36449
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
--- Comment #1 from Sebastian Lackner sebastian@fds-team.de --- Should be fixed by http://source.winehq.org/git/wine.git/commit/27c72ae986fbc6f168e2001b43cf80a..., please retest.
https://bugs.winehq.org/show_bug.cgi?id=36449
--- Comment #2 from Andrey Gusev andrey.goosev@gmail.com --- Patch fixes two issues this and with an invisible NPCs bug 23407. But now leads to the same problem as in the bug 34118.
https://bugs.winehq.org/show_bug.cgi?id=36449
--- Comment #3 from Andrey Gusev andrey.goosev@gmail.com --- Sorry, now on 1.7.38 it still crashes. Previous test was on a manually patched 1.7.37.
Got this message:
Failed to compile (shaders\ps\DOF_2b.psh) -> line C:\Program Files\Dts\Shader@0x00DB8958(21,16): error X3025: global variables are implicitly constant, enable compatibility mode to allow modification
Downloaded from http://files.aspyr.com/support/DTS_Demo_Installer.zip (589 Mb)
https://bugs.winehq.org/show_bug.cgi?id=36449
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |27c72ae986fbc6f168e2001b43c | |f80a131de03cd Status|NEW |RESOLVED Resolution|--- |FIXED Summary|Death to Spies: Moment of |Death to Spies: Moment of |Truth crashes on mission |Truth crashes on mission |start (needs |start (incorrect |ID3DXSkinInfo::ConvertToInd |ID3DXSkinInfo::ConvertToInd |exedBlendedMesh |exedBlendedMesh stub |implementation) |signature)
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
indeed it moves further (but quickly crashes again).
https://source.winehq.org/git/wine.git/commitdiff/27c72ae986fbc6f168e2001b43...
Thanks Christian
Fixed stub:
--- snip --- ... 0045:fixme:d3dx:d3dx9_skin_info_ConvertToIndexedBlendedMesh iface 0x59bc78d8, mesh_in 0x59bff860, options 0, palette_size 69, adjacency_in 0x5acafe0, adjacency_out 0x5ad6570, face_remap (nil), vertex_remap (nil), max_face_infl 0x32f1c0, num_bone_combinations 0x32f194, bone_combination_table 0x32f1a0, mesh_out 0x32f164 stub! 0045:Call ntdll.RtlFreeHeap(01060000,00000000,05acafd0) ret=007bf3c1 0045:Ret ntdll.RtlFreeHeap() retval=00000001 ret=007bf3c1 0045:Call ntdll.RtlFreeHeap(01060000,00000000,05ad6560) ret=007bf3c1 0045:Ret ntdll.RtlFreeHeap() retval=00000001 ret=007bf3c1 0045:trace:d3dx:d3dx9_skin_info_Release 0x59bc78d8 decreasing refcount to 0. 0045:Call ntdll.RtlFreeHeap(00110000,00000000,00000000) ret=7e1a5fdf 0045:Ret ntdll.RtlFreeHeap() retval=00000001 ret=7e1a5fdf ... --- snip ---
The crash from comment #3 is a different bug.
--- snip --- ... 0045:Call d3dx9_36.D3DXCompileShader(00db66c0,000007da,00000000,0083e5e8,007f61f8 "PS",0032f988 "ps_2_b",00000000,0032f96c,0032f97c,00000000) ret=00430670 0045:trace:d3dx:D3DXCompileShader data "//--------------------------------------------------------------------------\r\n// Depth of field effect\r\n//--------------------------------------------------------------------------\r\n\r\n// version:ps_2_b\r\n\r\nsampler tSource : register(s0);\r\nsampler tSourceLow : register(s1);\r\n\r\n#d"..., length 2010, defines (nil), include 0x83e5e8, function "PS", profile "ps_2_b", flags 0, shader 0x32f96c, error_msgs 0x32f97c, constant_table (nil). ... 0045:Call msvcrt.getenv(0090e168 "D3DCOMPILER_FORCE_PREFER_FLOW") ret=009a8356 0045:Ret msvcrt.getenv() retval=00000000 ret=009a8356 ... 0045:Call msvcrt._vsnprintf(0032ae44,00000f9b,00915468 "global variables are implicitly constant, enable compatibility mode to allow modification",0032be08) ret=00a95726 0045:Ret msvcrt._vsnprintf() retval=00000059 ret=00a95726 ... 0045:Call user32.MessageBoxA(00000000,0106b158 "Failed to compile (shaders\ps\DOF_2b.psh) -> line C:\Program Files\Aspyr\Death to Spies - Moment of Truth Demo\Shader@0x00DB66C0(21,16): error X3025: global variables are implicitly constant, enable compatibility mode to allow modification\n",00844e30 "Error:",00001030) ret=00405f86 ... 0045:Call ntdll.RtlFreeHeap(01060000,00000000,031e8450) ret=007bf3c1 0045:Ret ntdll.RtlFreeHeap() retval=00000001 ret=007bf3c1 0045:trace:seh:raise_exception code=c0000005 flags=0 addr=0x4d1ee3 ip=004d1ee3 tid=0045 0045:trace:seh:raise_exception info[0]=00000000 0045:trace:seh:raise_exception info[1]=deadbeef 0045:trace:seh:raise_exception eax=deadbeef ebx=00000010 ecx=03146720 edx=0324f1c8 esi=031e8418 edi=00000000 0045:trace:seh:raise_exception ebp=0032f930 esp=0032f8d4 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010202 0045:trace:seh:call_stack_handlers calling handler at 0x7c9140 code=c0000005 flags=0 0045:trace:seh:call_stack_handlers handler at 0x7c9140 returned 1 0045:trace:seh:call_stack_handlers calling handler at 0x7c9140 code=c0000005 flags=0 ... Unhandled exception: page fault on read access to 0xdeadbeef in 32-bit code (0x004d1ee3). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:004d1ee3 ESP:0032f8d4 EBP:0032f930 EFLAGS:00010202( R- -- I - - - ) EAX:deadbeef EBX:00000010 ECX:03146720 EDX:0324f1c8 ESI:031e8418 EDI:00000000 ... Backtrace: =>0 0x004d1ee3 in truth (+0xd1ee3) (0x0032f930) 1 0x007bfe92 in truth (+0x3bfe91) (0x00db66c0) 2 0x00d30128 (0x00d30088) 3 0x00db66c0 (0x00d30098) 4 0x00d30088 (0x00d300a8) 5 0x00d30098 (0x00d300b8) 6 0x00d300a8 (0x00d300c8) ... 0x004d1ee3: movl 0x0(%eax),%edx Modules: Module Address Debug info Name (187 modules) PE 400000- 8c9000 Export truth PE 8d0000- ad7000 Deferred d3dcompiler_43 PE bf0000- d29000 Deferred vorbis PE 10000000-10022000 Deferred vfs20 ... Threads: process tid prio (all id:s are in hex) ... 00000044 (D) C:\Program Files\Aspyr\Death to Spies - Moment of Truth Demo\Truth.exe 0000003e 0 0000002d 0 0000002c 15 00000047 0 00000046 0 00000045 0 <== --- snip ---
Another tidbit, albeit unrelated to the issue here:
The game needs DXTn software de/encoding support.
I run one of my machines with Fedora 22 x64 and Mesa 10.5.x/Nouveau (no NVIDIA blob):
--- snip --- ... 0027:trace:d3dx:D3DXCreateTextureFromFileInMemoryEx Texture created correctly. Now loading the texture data into it. ... 0027:trace:d3dx:D3DXLoadSurfaceFromMemory (0x1f281c8, (nil), (null), 0xdb6778, 0x35545844, 2048, (nil), (0,0)-(512,512), 0x3, 0x00000000) ... 0027:fixme:d3dx:D3DXLoadSurfaceFromMemory Format conversion missing 0x35545844 -> 0x1c 0027:fixme:d3dx:D3DXCreateTextureFromFileInMemoryEx Texture loading failed. ... 0027:Ret d3dx9_36.D3DXCreateTextureFromFileInMemoryEx() retval=80004001 ret=004486b7 0027:Call KERNEL32.GetLastError() ret=007c9747 0027:Ret KERNEL32.GetLastError() retval=000036b7 ret=007c9747 0027:trace:seh:raise_exception code=c0000005 flags=0 addr=0x4486d5 ip=004486d5 tid=0027 0027:trace:seh:raise_exception info[0]=00000000 0027:trace:seh:raise_exception info[1]=00000000 0027:trace:seh:raise_exception eax=00000000 ebx=00000001 ecx=00844e18 edx=00408470 esi=00db66f8 edi=0187b720 0027:trace:seh:raise_exception ebp=ffffffff esp=0032f978 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010216 0027:trace:seh:call_stack_handlers calling handler at 0x7c9140 code=c0000005 flags=0 --- snip ---
Using the Wine-Staging wined3d-DXTn patchset fixes the problem:
https://github.com/wine-compholio/wine-staging/tree/master/patches/wined3d-D...
$ wine --version wine-1.7.43-145-g66480ac
Regards
https://bugs.winehq.org/show_bug.cgi?id=36449
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #5 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.44.