http://bugs.winehq.org/show_bug.cgi?id=27482
Summary: Tomb Raider III demo crashes in the launcher Product: Wine Version: 1.3.22 Platform: x86 URL: http://www.tombraiderchronicles.com/cgi-bin/dl03/dl.pl ?dm_tombraider3complete OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-ddraw AssignedTo: wine-bugs@winehq.org ReportedBy: gyebro69@gmail.com
Created an attachment (id=35145) --> (http://bugs.winehq.org/attachment.cgi?id=35145) terminal output
To reproduce the problem:
1) Install the demo as usual. 2) The launcher requires ie6 (winetricks ie6). Start the demo by tomb3.exe. Click on <Start Free Trial button> ...a crash happens here.
The launcher started correctly in 1.3.21:
f3ae1b99f637c7a22546a7528edb0f9df2d57678 is the first bad commit commit f3ae1b99f637c7a22546a7528edb0f9df2d57678 Author: Ričardas Barkauskas rbarkauskas@codeweavers.com Date: Thu Jun 9 18:29:36 2011 +0300
ddraw: Separate IDirectDrawSurface vtable.
:040000 040000 375fc8c1597978349b5e1f9f8b418c6d5fa0a539 839c77ec396a4be43237f36c110c257a0db09131 M dlls
The patch can be reverted cleanly on wine-1.3.22-78-g4b2bfb4 and that fixed the crash.
I couldn't add the author to the CC list.
Fedora 15 Nvidia GeForce 250 / driver 270.41.19
http://bugs.winehq.org/show_bug.cgi?id=27482
GyB gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, regression
--- Comment #1 from GyB gyebro69@gmail.com 2011-06-14 13:48:20 CDT --- Added some keywords.
http://bugs.winehq.org/show_bug.cgi?id=27482
GyB gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.tombraiderchroni |http://www.tombraiderchroni |cles.com/cgi-bin/dl03/dl.pl |cles.com/tr3/demo.html |?dm_tombraider3complete |
http://bugs.winehq.org/show_bug.cgi?id=27482
--- Comment #2 from Wylda wylda@volny.cz 2011-06-18 14:26:05 CDT --- Created an attachment (id=35195) --> (http://bugs.winehq.org/attachment.cgi?id=35195) Console log from wine-1.3.22-203-gac90c1b
Confirming, correctly bisected. Happens also in full version of the game.
I also added a log. Thanks to libc symbols is more verbose, if that helps...
http://bugs.winehq.org/show_bug.cgi?id=27482
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |wylda@volny.cz Ever Confirmed|0 |1
--- Comment #3 from Wylda wylda@volny.cz 2011-06-18 14:28:42 CDT ---
Changing to NEW.
http://bugs.winehq.org/show_bug.cgi?id=27482
--- Comment #4 from Ričardas Barkauskas miegalius@gmail.com 2011-06-18 15:55:15 CDT --- Created an attachment (id=35196) --> (http://bugs.winehq.org/attachment.cgi?id=35196) Hack to get the game running
This bug is caused by game passing IDirectDrawSurface3 iface to IDirect3D3::CreateDevice which expects to get IDirectDrawSurface. On windows this call succeeds, though I'm not sure yet how usable the result is. Then game calls EnumTextureFormats on the device and releases it. For now I attached a hack to get game running. Don't know yet how to get it fixed properly.
http://bugs.winehq.org/show_bug.cgi?id=27482
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |21000
http://bugs.winehq.org/show_bug.cgi?id=27482
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |olifant@gmail.com
--- Comment #5 from Dan Kegel dank@kegel.com 2011-08-02 13:50:35 CDT --- *** Bug 27952 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=27482
GyB gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |f3ae1b99f637c7a22546a7528ed | |b0f9df2d57678
http://bugs.winehq.org/show_bug.cgi?id=27482
--- Comment #6 from GyB gyebro69@gmail.com 2011-11-06 01:00:19 CST --- Still present in Wine 1.3.32.
http://bugs.winehq.org/show_bug.cgi?id=27482
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|directx-ddraw |directx-d3d
http://bugs.winehq.org/show_bug.cgi?id=27482
--- Comment #7 from Wylda wylda@volny.cz 2011-12-03 08:26:27 CST ---
Still present in Wine 1.3.34.
http://bugs.winehq.org/show_bug.cgi?id=27482
--- Comment #8 from Mark K markk@clara.co.uk 2011-12-20 13:02:36 CST --- Created attachment 38050 --> http://bugs.winehq.org/attachment.cgi?id=38050 Console output on running Blast Thru SE with Wine 1.3.35
Blast Thru by eGames seems to show the same problem. A free trial version is available from http://www.egames.com/game/download/blast+thru.html or http://download.cnet.com/Blast-Thru/3000-2111_4-10560323.html
If testing the trial version, you'll need to do "winetricks ie6" before starting the game.
On running the game, it quickly exits with an assertion: surface.c:5304: unsafe_impl_from_IDirectDrawSurface: Assertion `iface->lpVtbl == &ddraw_surface1_vtbl' failed.
Console output is attached.
http://bugs.winehq.org/show_bug.cgi?id=27482
--- Comment #9 from Matteo Bruni matteo.mystral@gmail.com 2012-01-20 12:39:37 CST --- Created attachment 38465 --> http://bugs.winehq.org/attachment.cgi?id=38465 New patch
I made some tests, it looks like native DDraw doesn't really care what version of the IDirectDrawSurface interface is passed to the various methods, it still works. In our case we have to do something like this patch I think (which, yes, is very ugly...)
http://bugs.winehq.org/show_bug.cgi?id=27482
--- Comment #10 from Matteo Bruni matteo.mystral@gmail.com 2012-01-20 12:43:37 CST --- Created attachment 38466 --> http://bugs.winehq.org/attachment.cgi?id=38466 Some tests
Some modifications to the ddraw tests for this bug, they pass for me on Win7.
http://bugs.winehq.org/show_bug.cgi?id=27482
--- Comment #11 from Henri Verbeet hverbeet@gmail.com 2012-01-20 13:01:18 CST --- (In reply to comment #10)
if (!iface) return NULL;
- assert(iface->lpVtbl == &ddraw_surface7_vtbl);
- return CONTAINING_RECORD(iface, IDirectDrawSurfaceImpl, IDirectDrawSurface7_iface);
- if (iface->lpVtbl == &ddraw_surface7_vtbl)
return CONTAINING_RECORD(iface, IDirectDrawSurfaceImpl, IDirectDrawSurface7_iface);
- if (((IDirectDrawSurface4 *)iface)->lpVtbl == &ddraw_surface4_vtbl)
return CONTAINING_RECORD(iface, IDirectDrawSurfaceImpl, IDirectDrawSurface4_iface);
- if (((IDirectDrawSurface3 *)iface)->lpVtbl == &ddraw_surface3_vtbl)
return CONTAINING_RECORD(iface, IDirectDrawSurfaceImpl, IDirectDrawSurface3_iface);
- if (((IDirectDrawSurface2 *)iface)->lpVtbl == &ddraw_surface2_vtbl)
return CONTAINING_RECORD(iface, IDirectDrawSurfaceImpl, IDirectDrawSurface2_iface);
- if (((IDirectDrawSurface *)iface)->lpVtbl == &ddraw_surface1_vtbl)
return CONTAINING_RECORD(iface, IDirectDrawSurfaceImpl, IDirectDrawSurface_iface);
- FIXME("Unknown interface for object at %p.\n", iface);
- return NULL;
Although it would still not make me feel particularly happy about all this, can't you just explicitly QueryInterface() for the IDirectDrawSurface7 interface and then continue as before?
http://bugs.winehq.org/show_bug.cgi?id=27482
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |matteo.mystral@gmail.com
--- Comment #12 from Matteo Bruni matteo.mystral@gmail.com 2012-01-20 13:07:32 CST --- Hmm, I guess so. It would make it a little less horrible, probably.
http://bugs.winehq.org/show_bug.cgi?id=27482
--- Comment #13 from Henri Verbeet hverbeet@gmail.com 2012-01-20 13:09:46 CST --- Oh, and the tests should probably be separate instead of being part of the utility functions.
http://bugs.winehq.org/show_bug.cgi?id=27482
GyB gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |e51d3f6de60716391181f91fc73 | |f3fbee45f4e9c Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #14 from GyB gyebro69@gmail.com 2012-01-24 14:50:26 CST --- Tomb Raider III demo starts fine with wine-1.3.37-378-gdfa9f4b.
Thank you for fixing this.
http://bugs.winehq.org/show_bug.cgi?id=27482
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #15 from Alexandre Julliard julliard@winehq.org 2012-01-27 14:17:50 CST --- Closing bugs fixed in 1.4-rc1.
https://bugs.winehq.org/show_bug.cgi?id=27482
Nekla hpd53@arcor.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hpd53@arcor.de