https://bugs.winehq.org/show_bug.cgi?id=34393
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Summary|F.E.A.R. 2: Project Origin |F.E.A.R. 2: Project Origin |demo crashes at launch |demo crashes with builtin |without native d3dx9_40 |'d3dx9_40.dll' (purist) Ever confirmed|0 |1
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
this is more a 'purist' type bug.
It works out of the box after installation in clean 32-bit WINEPREFIX.
The game distributes and installs the necessary DirectX components on its own.
Maybe the vendor updated the demo installer at one point or you were running a broken Wine/WINEPREFIX. Manual setup of XAudio2 components and 'd3dx9_40' is clearly not needed here.
Mappings when loaded:
--- snip --- Wine-dbg>info share Module Address Debug info Name (114 modules) PE 240000- 247000 Deferred x3daudio1_5 PE 400000- 181e000 Export fear2spdemo PE 10000000-1044a000 Deferred d3dx9_40 PE 18000000-18033000 Deferred binkw32 ELF 4e99a000-4e9a3000 Deferred librt.so.1 --- snip ---
Native 'd3dx9_40' is automatically preferred over builtin if found.
Forcing the game to use builtin results in:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/WBGames/Monolith Productions/F.E.A.R. 2 SP Demo
$ WINEDLLOVERRIDES=d3dx9_40=b WINEDEBUG=+tid,+seh,+relay,+d3dx wine ./FEAR2SPDemo.exe +windowed 1 ... 0026:trace:d3dx:ID3DXEffectImpl_SetTechnique iface 0x209ed8, technique 0x71a6f38 0026:trace:d3dx:ID3DXEffectImpl_SetTechnique Technique 0x71a6f38 0026:trace:d3dx:ID3DXEffectImpl_Begin iface 0x209ed8, passes 0x1d1f474, flags 0. 0026:fixme:d3dx:ID3DXEffectImpl_Begin State capturing not supported, yet! 0026:trace:d3dx:ID3DXEffectImpl_GetPass iface 0x209ed8, technique 0x71a6f38, index 0. 0026:trace:d3dx:d3dx9_base_effect_get_pass Returning pass 0x71a6f68 0026:trace:d3dx:ID3DXEffectImpl_BeginPass iface 0x209ed8, pass 0 0026:fixme:d3dx:ID3DXEffectImpl_BeginPass No states applied, yet! 0026:fixme:d3dx:ID3DXEffectImpl_CommitChanges (0x209ed8)->(): stub ... 0026:trace:d3dx:ID3DXEffectImpl_EndPass iface 0x209ed8 0026:trace:d3dx:ID3DXEffectImpl_End iface 0x209ed8. 0026:fixme:d3dx:ID3DXEffectImpl_End State restoring not supported, yet! ... 0026:Call d3dx9_36.D3DXLoadSurfaceFromMemory(0931a628,00000000,00000000,0c814028,0000001c,00000400,00000000,01d1ed0c,00000001,00000000) ret=00a3fe10 0026:trace:d3dx:D3DXLoadSurfaceFromMemory (0x931a628, (nil), (null), 0xc814028, 0x1c, 1024, (nil), (0,0)-(1024,1024) 0x1, 0x00000000) ... 0026:Ret d3dx9_36.D3DXLoadSurfaceFromMemory() retval=00000000 ret=00a3fe10 ... 0026:Call wined3d.wined3d_device_set_render_state(001810f8,000000cf,00000001) ret=7e25d495 0026:Ret wined3d.wined3d_device_set_render_state() retval=00000001 ret=7e25d495 0026:Call wined3d.wined3d_mutex_unlock() ret=7e25d49a 0026:Ret wined3d.wined3d_mutex_unlock() retval=00000000 ret=7e25d49a 0026:Call wined3d.wined3d_mutex_lock() ret=7e25d478 0026:Ret wined3d.wined3d_mutex_lock() retval=00000000 ret=7e25d478 0026:Call wined3d.wined3d_device_set_render_state(001810f8,000000d0,00000002) ret=7e25d495 0026:Ret wined3d.wined3d_device_set_render_state() retval=00000001 ret=7e25d495 0026:Call wined3d.wined3d_mutex_unlock() ret=7e25d49a 0026:Ret wined3d.wined3d_mutex_unlock() retval=00000000 ret=7e25d49a ... 0026:trace:seh:raise_exception code=c0000005 flags=0 addr=0xa3c29d ip=00a3c29d tid=0026 0026:trace:seh:raise_exception info[0]=00000000 0026:trace:seh:raise_exception info[1]=00000010 0026:trace:seh:raise_exception eax=01d1edbc ebx=00bf7b80 ecx=00000000 edx=7e241b64 esi=00000000 edi=00bf5a48 0026:trace:seh:raise_exception ebp=01d1ed98 esp=01d1ed94 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00210246 0026:trace:seh:call_stack_handlers calling handler at 0x993f9d code=c0000005 flags=0 0026:Call msvcr80._except_handler4_common(00ba2120,00993bba,01d1ed3c,01d1f73c,01d1ea70,01d1e8fc) ret=00993fbc ... Unhandled exception: page fault on read access to 0x00000010 in 32-bit code (0x00a3c29d). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:00a3c29d ESP:01d1ed94 EBP:01d1ed98 EFLAGS:00210246( R- -- I Z- -P- ) EAX:01d1edbc EBX:00bf7b80 ECX:00000000 EDX:7e241b64 ESI:00000000 EDI:00bf5a48 ... Backtrace: =>0 0x00a3c29d in fear2spdemo (+0x63c29d) (0x01d1ed98) 1 0x00a3358c in fear2spdemo (+0x63358b) (0x01d1edb4) 2 0x00a33c0d in fear2spdemo (+0x633c0c) (0x01d1ee24) 3 0x00927db8 in fear2spdemo (+0x527db7) (0x01d1ee68) 4 0x0094c8f9 in fear2spdemo (+0x54c8f8) (0x01d1f0c8) 5 0x00946781 in fear2spdemo (+0x546780) (0x0b8eea08) 6 0x00000001 (0x00ac9ef8) 7 0x0092ba20 in fear2spdemo (+0x52ba1f) (0x008f0bf0) 8 0xffffff18 (0xe8f18b56) 0x00a3c29d: cmpl $0,0x10(%esi) Modules: Module Address Debug info Name (122 modules) PE 240000- 247000 Deferred x3daudio1_5 PE 400000- 181e000 Export fear2spdemo PE 18000000-18033000 Deferred binkw32 ELF 4e99a000-4e9a3000 Deferred librt.so.1 ... Threads: process tid prio (all id:s are in hex) ... 00000025 (D) C:\Program Files\WBGames\Monolith Productions\F.E.A.R. 2 SP Demo\FEAR2SPDemo.exe 00000040 0 0000003c 0 00000027 0 0000001e 0 00000024 0 00000016 0 0000000d 0 0000000b 0 00000047 0 00000026 0 <== --- snip ---
I debugged that stuff despite the DRM scheme being used and it looks like the crash happens with a NULL object in a location with following sequence being applied:
ID3DXEffectImpl_End ID3DXEffectImpl_Begin State ID3DXEffectImpl_BeginPass
Tidbit (DRM scheme used in demo):
--- snip --- -=[ ProtectionID v0.6.5.5 OCTOBER]=- (c) 2003-2013 CDKiLLER & TippeX Build 31/10/13-21:09:09 Ready... Scanning -> C:\Program Files\WBGames\Monolith Productions\F.E.A.R. 2 SP Demo\FEAR2SPDemo.exe File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 15125320 (0E6CB48h) Byte(s) -> File Appears to be Digitally Signed @ Offset 0E6B600h, size : 01548h / 05448 byte(s) [File Heuristics] -> Flag : 00000000000000000000000100000101 (0x00000105) [Entrypoint Section Entropy] : 6.65 [!] SecuROM Detected - Version 07.39.0004 [!] Possible CD/DVD-Key or Serial Check -> CDKey [CompilerDetect] -> Visual C++ 8.0 (Visual Studio 2005) - Scan Took : 0.800 Second(s) [000000320h tick(s)] [533 scan(s) done] --- snip ---
$ sha1sum fear2demo.zip c85736f4d63fa278b085009a98820f474c64014b fear2demo.zip
$ du -sh fear2demo.zip 1.8G fear2demo.zip
$ wine --version wine-1.7.21-52-g4c185a7
Regards