http://bugs.winehq.org/show_bug.cgi?id=12829
--- Comment #22 from Stefan Dösinger stefan@codeweavers.com 2011-10-18 16:26:17 CDT --- Created attachment 36991 --> http://bugs.winehq.org/attachment.cgi?id=36991 ddraw: Don't write HelDesc in IDirect3DDevice3::GetCaps
Looks like the game is trying to dereference our D3DDEVICEDESC.dwFlags DWORD, probably like trying to find a pot of gold at the end of the rainbow. It passes some internal data structure to the lpD3DHELDevDesc parameter of IDirect3DDevice2::GetCaps and we write our capabilities there. The attached hack fixes the problem.
As usual, this needs some tests to find out in which situations lpD3DHELDevDesc is written. Possibly this never happens, possibly this only happens when the device is a RGB, Ramp or MMX device, and may or may not be the case with the REF device.