The No-CD crack for "The Sims" calls to "IDirectDrawImpl_CreateSurface" (ddls/ddraw.c) which calls to "IDirectDrawImpl_CreateNewSurface". One of these calls passes a abnormal value for DDPixelFormat causing "PixelFormat_DD2WineD3D" (dlls/utils.c) to return "WINED3DFMT_UNKNOWN" (0). "IDirectDrawImpl_CreateNewSurface" returns immediately causing the program to fail by raising an exception. In this case, forcing the "IDirectDrawImpl_CreateNewSurface" function to continue with other pixel format, even a not defined one, avoids the exception and "The Sims" starts. The abnormal value is this:
dwFlags = 0x00000000 dwSize = 32 dwFourCC = 0x00000000 u1 = 0x00000000 u2 = 0x00000000 u3 = 0x00000000 u4 = 0x00000000 u5 = 0x00000000
I do not know what is the expected behaviour in real Windows. The original executable file crashes with other error, but I think that is caused by the anticopy protection.
Am Sonntag, 23. September 2007 05:20:06 schrieb Jose Osvaldo:
The No-CD crack for "The Sims" calls to "IDirectDrawImpl_CreateSurface" (ddls/ddraw.c) which calls to "IDirectDrawImpl_CreateNewSurface".
Is this behavior added by the nocd crack?
The abnormal value is this:
dwFlags = 0x00000000 dwSize = 32 dwFourCC = 0x00000000 u1 = 0x00000000 u2 = 0x00000000 u3 = 0x00000000 u4 = 0x00000000 u5 = 0x00000000
I do not know what is the expected behaviour in real Windows. The original executable file crashes with other error, but I think that is caused by the anticopy protection.
Can check the full surface description the game passes? Perhaps there are some settings in there that should implicitly provie a pixel format