Hi,
Also please attach a full +ddraw log to the bug report. If it is too big compress it. bzip2 should do a pretty decent job, if all fails try lrzip.
OK, done!
If the testing doesn't reveal anything, look out for IDirectDraw::GetCaps calls in the logs or IDirect3Dx::EnumZBufferFormats. IDirectDraw::GetCaps returns a DDCAPS structure which has dwZBufferBitDepths containing some flags for z buffer bit depths. EnumZBufferFormats calls a callback multiple times with available DDPIXELFORMAT structures. The application may not like some flags we set there.
The Sims calls EnumDevices and I presume calls EnumZBufferFormats within the callback for each device:
trace:ddraw:d3d3_EnumDevices Enumerating WineD3D D3DDevice interface. trace:ddraw:d3d3_EnumZBufferFormats iface 0x13d04c, device_iid {a4665c60-2673-11cf-a31a-00aa00b93356}, callback 0x586a7d, context 0xabc198. trace:ddraw:d3d7_EnumZBufferFormats iface 0x13d048, device_iid {a4665c60-2673-11cf-a31a-00aa00b93356}, callback 0x586a7d, context 0xabc198. trace:ddraw:d3d7_EnumZBufferFormats Asked for SW device. trace:ddraw:PixelFormat_WineD3DtoDD Converting wined3d format 0x52 to DDRAW. trace:ddraw:PixelFormat_WineD3DtoDD Returning: ( DDPF_ZBUFFER , Z bits : 16) trace:ddraw:d3d7_EnumZBufferFormats Enumerating wined3d format 0x52. trace:ddraw:d3d7_EnumZBufferFormats Format enumeration cancelled by application. trace:ddraw:d3d3_EnumDevices Enumerating HAL Direct3D device. trace:ddraw:d3d3_EnumZBufferFormats iface 0x13d04c, device_iid {84e63de0-46aa-11cf-816f-0000c020156e}, callback 0x586a7d, context 0xabc198. trace:ddraw:d3d7_EnumZBufferFormats iface 0x13d048, device_iid {84e63de0-46aa-11cf-816f-0000c020156e}, callback 0x586a7d, context 0xabc198. trace:ddraw:d3d7_EnumZBufferFormats Asked for HAL device. trace:ddraw:PixelFormat_WineD3DtoDD Converting wined3d format 0x52 to DDRAW. trace:ddraw:PixelFormat_WineD3DtoDD Returning: ( DDPF_ZBUFFER , Z bits : 16) trace:ddraw:d3d7_EnumZBufferFormats Enumerating wined3d format 0x52. trace:ddraw:d3d7_EnumZBufferFormats Format enumeration cancelled by application. trace:ddraw:d3d3_EnumDevices End of enumeration.
I don't know if this looks sensible, though. I see from the code that there are a lot of "gotchas" (both in d3d7_EnumZBufferFormats and d3d3_EnumDevices) for a number of games expecting things to happen in specific sequences and containing specific responses. I wonder if the Sims is going to turn out to be another.
Cheers, Ralph