https://bugs.winehq.org/show_bug.cgi?id=22039
--- Comment #16 from Aaryaman Vasishta jem456.vasishta@gmail.com --- (In reply to Sergey Isakov from comment #15)
Let me add some observations. The game installed just fine. If I made this implementation
static HRESULT WINAPI d3drm_viewport1_SetAppData(IDirect3DRMViewport *iface, DWORD data) { struct d3drm_viewport *viewport = impl_from_IDirect3DRMViewport(iface); FIXME("iface %p, data %#x semistub!\n", iface, data); viewport->user_data = data; return S_OK; //E_NOTIMPL; }
then the crash will happen later
fixme:d3drm:d3drm_viewport1_SetAppData iface 0x1799f8, data 0x3733e8 semistub! fixme:d3drm:d3drm_viewport1_AddDestroyCallback iface 0x1799f8, cb 0x100a1240, ctx 0x3733e8 stub! fixme:d3drm:d3drm_viewport1_SetAppData iface 0x1799f8, data 0 semistub! Feb 29 14:44:03 Sergeys-iMac.local isle.exe[46597] <Error>: CGContextGetCTM: invalid context 0x0 Feb 29 14:44:03 Sergeys-iMac.local isle.exe[46597] <Error>: CGContextSetBaseCTM: invalid context 0x0 Feb 29 14:44:12 Sergeys-iMac.local isle.exe[46597] <Error>: CGContextGetCTM: invalid context 0x0 Feb 29 14:44:12 Sergeys-iMac.local isle.exe[46597] <Error>: CGContextSetBaseCTM: invalid context 0x0 err:ddraw:DllMain (0x163b30) EnumSurfaces failed, prepare for trouble err:ddraw:DllMain (0x163b30) EnumSurfaces failed, prepare for trouble err:ddraw:DllMain DDraw 0x163b30 still has surfaces attached.
see same address for context of AddDestroyCallback and data of SetAppData. It seems AddDestroyCallback should be more implemented.
And I have a doubt about GetAppData() According to MSDN the function will return HResult HRESULT retVal = object.GetAppData(pdwAppData); where data will be in argument pdwAppData [out] Type: DWORD_PTR While current wine implementation declare this function as static DWORD WINAPI d3drm_viewport1_GetAppData(IDirect3DRMTexture *iface) is this the bug?
This game uses many unimplemented functions so I can't make it working.
Viewports is the next thing that I'll be working on. Right now I'm working on texture implementations. There's still quite a bit of rendering work left before it can start drawing anything.