https://bugs.winehq.org/show_bug.cgi?id=29184
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gofmanp@gmail.com
--- Comment #25 from Paul Gofman gofmanp@gmail.com --- Created attachment 65744 --> https://bugs.winehq.org/attachment.cgi?id=65744 Proof of concept hack
I've tested the game. The problem is reproducible.
The game works fine if run in 16 bit colour depth display (with X session started, e. g., like this from console: 'xinit /usr/bin/lxsession -- :9 -ac -depth 16'; of course something else can be chosen instead of lxsession or :9).
It looks like there is a bug in the game which makes the display depth influence unrelated things. It draws all the 3D objects using transformed positions with _DrawPrimitive(). The contents of the vertex position data which game prepares happen to depend on the display depth (while has nothing to do with that in principle), more exactly, on the value returned by gdi32.GetDeviceCaps(..., BITSPIXEL). Forcing it to 16 (as the attached hack does) is enough to make the game happy on 32 bit display and fixes the rendering.