[Bug 18015] Roller coaster tycoon fails to start

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Apr 18 17:21:53 CDT 2009


http://bugs.winehq.org/show_bug.cgi?id=18015





--- Comment #10 from H. Verbeet <hverbeet at gmail.com>  2009-04-18 17:21:52 ---
(In reply to comment #8)
> Yup it fails at the line
> 
> *ppReturnedDeviceInterface = (IWineD3DDevice *)object;
> 
> If I comment it out it works, but has an exception later on
>
It looks like some kind of stack corruption. You may want to print both
wineD3DDevice and &wineD3DDevice at the start of DDRAW_Create() and right
before the IWineD3D_CreateDevice() call in DDRAW_Create(). Also print it at the
start of 
IWineD3DImpl_CreateDevice(), and compare the different values.

Note that the value of *ppReturnedDeviceInterface, 0x65726944 is different from
the NULL it was initialized with in DDRAW_Create(). Also note that 0x65726944
looks like character data ("Dire...").

> Also it happens for the demo as well, would my version of mesa matter?
>
Considering the demo works for me with the nvidia drivers, it might. If this is
caused by Mesa, the corruption would have to occur inside the
pWineDirect3DCreate() call from DDRAW_Create().

> from looking at the commit it doesn't look like much changed in the directx.c
> file to cause an issue
>
I doubt the commit is the cause of the problem, but it does add an extra
parameter to IWineD3D_CreateDevice(), and changes the position of the output
parameter. That changes the layout of the data on the stack, which could make
already existing stack corruption more visible.

(In reply to comment #9)
> the raise_exception info[1] points to ppReturnedDevciceInterface, I don't know
> if that means anything special
> 
That's the address is tries to write to. Code c0000005 means
EXCEPTION_ACCESS_VIOLATION, 00000001 in info[0] means EXCEPTION_WRITE_FAULT.


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list