https://bugs.winehq.org/show_bug.cgi?id=29184
--- Comment #26 from Henri Verbeet hverbeet@gmail.com --- (In reply to Paul Gofman from comment #25)
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.
That sounds similar to bug 42215.