Hello Paul, you wrote;
ZooTycoon 1 demo 'crashes' with:
trace:ddraw:DIB_DirectDrawSurface_Blt (0x77e3b9e8)->((nil),(nil),(nil),01000400,0x80f510) trace:ddraw:DIB_DirectDrawSurface_Blt flags: DDBLT_COLORFILL DDBLT_WAIT First chance exception: page fault on read access to 0x00000294 in 32-bit code (0x17d7b350).
This is because src = NULL and we do (line 517):
if (This->locked || ((IDirectDrawSurfaceImpl *)src)->locked) { WARN(" Surface is busy, returning DDERR_SURFACEBUSY\n"); return DDERR_SURFACEBUSY;
}
Can I just surround this by:
if (NULL != src)
This fixes my problem. There is another potential problem around line 993.
I've attached a patch, if it's correct I will send it to wine-patches.
I did try your patch, but it doesn't help me by the demo of Beyond Divinity. But I discovered which patch from Oliver Stieber caused the regression http://cvs.winehq.org/patch.py?id=16392 (and the two following must also be reverted to get the demo of Beyond Divinity get back to work: http://cvs.winehq.org/patch.py?id=16399 and http://cvs.winehq.org/patch.py?id=16406 ).
I have no idea or the programming skills to discover the source of this bug :(
Regards
Henning