[Bug 10503] Sid Meier's Alpha Centauri: Wine segfaults when clicking on a city.

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Nov 20 14:18:15 CST 2007


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


Jesse Allen <the3dfxdude at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1




--- Comment #10 from Jesse Allen <the3dfxdude at gmail.com>  2007-11-20 14:18:14 ---
(In reply to comment #9)
> 
> Interestingly this piece of game code was produced by Microsoft Visual C++ 5.0
> compiler ...
> Who else could produce such brain damaged code ... ok, I've seen several gcc
> brain damage as well ;-)


Well, the game actually has parts of the drawing code written in asm to speed
the game up. This is how it achieved the "3d" voxels with ancient hardware :)
It was probably good at the time, but we are suffering from it now. Whether
this has anything to do with the problem it is a good chance. I don't think
MSVC is at fault here.

> 
> There are 24 occurrences of this abusive (DIB) code.
> Whatever optimization was done ... the compiler simply ran out 8 GP registers
> and resorted to use ESP/EBP in favor of stack vars - leaving wine's DIB
> handling mechanism in distress.
> 
> I would vote for WONTFIX (until someone decides to change the way DIBs are
> handled) ;-)
> 
> Regards
> 


Well since the report and since I have the game and I have not tried this game
with wine for a while, I pulled the game out to try an experiment. Yes I can
reproduce the bug, so I'll confirm it. Now I rebased my dib driver to current
wine see what happens. And well, the city popup works now without crashing.
Unfortunately my dib driver does not have the font support the game requires,
so there is no text anywhere to be found ;)

This bug can be fixed with the dib engine, if we don't want to rework the fault
handler. See my code at http://repo.or.cz/w/wine/dibdrv.git


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list