http://bugs.winehq.org/show_bug.cgi?id=13632
--- Comment #35 from Alexey Loukianov mooroon2@mail.ru 2012-05-27 15:27:41 CDT --- Created attachment 40306 --> http://bugs.winehq.org/attachment.cgi?id=40306 WINEDEBUG="-all,err+all,fixme+all,fixme-ntdll,fixme-class,fixme-msg,+d3dx,+tid,+loaddll,+fps"
Downloaded demo and tested it a bit.
a) I've got no "freeze" upon starting up the game, instead it crashes with various messages appearing in logs depending on what native DLLs overrides are in place.
b) Game crashes shortly after starting up choking on non-implemented D3DXSaveSurfaceToFileInMemory. In case I patch in attachment #40281 from bug #23706 I've got game pass by into main menu which is being rendered incorrectly (no texts at all) due to non-implemented text output d3dx9* routines (see bug #26136).
c) Game chokes on non-implemented C++ method in msvcp71 (bug #30782), it could be workarounded by installing native vcrun2003 using winetricks.
d) With native vcrun2003 in place game crashes inside libc's __strcmp_sse4_2 proc with access violation and it looks like there's some kind of heap corruption there as post-mortem memory map displayed by winedbg seems to be bogus. Debug logs with +d3dx9 channel enabled are available in attachment to this comment. From a quick glance it seems that the game enters the endless loop calling functions from D3DXCreateEffect* family and essentially crashes. It reminds me about bug #11675 which is a catch-in bug about properly implementing D3DXCreateEffect* in Wine.
e) Installing native versions of both msvcp71.dll and d3dx9_36.dll workarounds the bug completely and I was finally able to successfully start up a new game and play it a bit just to make sure it really works. There seems to be some problems with text rendering on information panel but that's off topic here.
f) Patching Wine with latest D3DXCreatePolygon implementation attempt by David Adam from 2012/04/02 doesn't change a thing - ShipSim2008 crashes inside libc the same way it does without implemented D3DXCreatePolygon (i.e. with stubbed one).