[Bug 15984] Black and White: crashes with page fault on temple completion

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Dec 12 20:27:35 CST 2010


http://bugs.winehq.org/show_bug.cgi?id=15984

--- Comment #17 from Itzamna <xamaniqinqu at gmail.com> 2010-12-12 20:27:33 CST ---
Created an attachment (id=32472)
 --> (http://bugs.winehq.org/attachment.cgi?id=32472)
Backtrace showing the segmentation fault is caused by shoddy implementation of
ddraw_surface7_Blt.

After a lot of debugging, I managed to identify the problem:

Any time the game saves (auto save after temple completion, when starting a
skirmish game, before going to the God's Playground), Black & White creates a
screenshot thumbnail to accompany the savegame, which can be viewed in the
Temple. However, only a portion of the screen is copied, for which blitting is
used. For this, a so-called DDBltFx structure is passed to the Wine DirectDraw
function ddraw_surface7_Blt(). If this DDBltFx structure contains dds
(DirectDraw Surface) pointers, Wine should replace the ddraw surfaces with
WineD3D surfaces. However, this is not being done - therefore, important
pointers and variables end up being NULL, causing a segmentation fault further
down the road.

I'm working on completing the ddraw_surface7_Blt() function, any assistance is
welcome. I've included a backtrace, though note I implemented a dummy
XRGB1555->DXT1 conversion function to get at the blitting operation.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list