http://bugs.winehq.org/show_bug.cgi?id=9672
--- Comment #24 from Ralph Little littlesincanada@yahoo.co.uk 2011-05-12 19:08:26 CDT --- Created an attachment (id=34670) --> (http://bugs.winehq.org/attachment.cgi?id=34670) Trace file
Tracing through what is happening, the problem seems to be manifesting in the DirectDraw implementation.
The Sims calls CreateSurface() with DDSD->dwFlags & DDSD_PIXELFORMAT set to state that a pixformat is specified in u4.ddpfPixelFormat, but no optional flags are set in the pixelformat u4.ddpfPixelFormat.dwFlags [DDPIXELFORMAT].
The function PixelFormat_DD2WineD3D uses this to determine the proper WINE3D pixformat implementation. It does not cope with what I presume is the default situation of no flags having been set, the value being 0.
I'm thinking that if you provide 0 for u4.ddpfPixelFormat.dwFlags, you get some basic default, but I don't know what that would be.
Certainly, The Sims seems to be providing zero for this parameter.
Any ideas what is the proper behaviour in this circumstance?
I presume the crash is the game's inability to handle the failure of the surface create gracefully.
Attached is the relevant trace fragment (with my bit of debug "pixelformat given, flags = 0" added):
==== I have sent this request for information to wine-devel but I have copied it here so that people know what is going on.