https://bugs.winehq.org/show_bug.cgi?id=37711
--- Comment #1 from Henri Verbeet hverbeet@gmail.com --- (In reply to Axel D from comment #0)
In particular for depth stencil formats, like D3DFMT_D24S8 used by the game, we have the depth on r, the stencil on g, and b=0 a=1
I don't remember what different combinations I tried for this format, but basically when different from that, I got broken lights exactly like wine.
Depth on R and stencil on G sounds suspicious, since D3DFMT_D24S8 is supposed to be a "shadow format" and supposed to return the result of the depth comparison (provided the format is supported at all for texturing) on R, while plenty of hardware that supported D3DFMT_D24S8 for texturing couldn't read stencil values at all.
Returning 1.0f for A on the other hand is likely correct, since many other formats behave like that in D3D, and Wine does indeed not handle those quite correctly.