[Bug 39874] New: Alien Shooter crashes often with access violation

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Dec 28 17:09:08 CST 2015


https://bugs.winehq.org/show_bug.cgi?id=39874

            Bug ID: 39874
           Summary: Alien Shooter crashes often with access violation
           Product: Wine
           Version: 1.8
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: P2
         Component: directx-d3d
          Assignee: wine-bugs at winehq.org
          Reporter: zakarjor at yahoo.com
      Distribution: ---

Alien shooter (1.2 Gog version) crashes often, usually when lots of actions
occur (like massive number of aliens and explosions happening all at the same
time.) The error log saved by the game inside Logs directory shows the
following at the end:

!!!ERROR 09:28:10!!!SOUND: 0x6A Invalid nsfx
!!!ERROR 09:28:43!!!TEXTURE: 0x8876086C Couldn't lock
!!!ERROR EXCEPTION 0x41B57C!!!: Access violation write to 0x0

Looking at the wine source, it looks like LockRect() in d3d8/surface.c is
returning D3DERR_INVALIDCALL after checking for invalid rect.

By patching the file to comment out the checking logic, the game seems to play
flawlessly (currently played to level 10 without any crash.)

The checking logic seems to have been added in 2006:
http://source.winehq.org/git/?p=wine.git;a=commit;h=77448f588b888ecc724c7ead9f28629f3f661d27

I'm not sure if this is the right way to fix it, but at least it works, and I
haven't seen any effect with other games I have. Looking at d3d9/surface.c, I
can see that the checking logic doesn't exist in d3d9 LockRect(), and I've seen
Internet examples of LockRect() passing invalid rectangles with impunity (like
zero width rectangles).

-- 
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