http://bugs.winehq.org/show_bug.cgi?id=6370
------- Additional Comments From romain.iehl@gmail.com 2006-26-12 14:00 ------- So, did some more tests again.
For the bug to appear in homm V, the user must set UseGLSL to enabled and VideoMemorySize to higher than 64 (i don't know the minimum value needed, 256 is enough) in the registry. That is because homm V tweaks the graphics quality depending on this value, all shaders are not used with only 64MB. Probably why not all users experience this bug.
I patched dlls/wined3d/device.c with : emulated_textureram = 256*1024*1024 ; to test older wine versions (old wine doesn't take the registry setting in account). It seems the problem has always been present.
Before commit 46c4b88ba5214ef036f929463aeacd1f790db375 : a dark~red shader is applied to the ground, the hero doesn't cast a shadow at all. commit 46c4b88ba5214ef036f929463aeacd1f790db375 : inverted shadow is cast by the hero. commit 219ca7c2a0adbe36fdcbe294aab1298d63e9ae9d : colors of the shaders are fixed, but there is still the inverted problem.
(see attached screenshots)
Maybe the shadows cast are correct, and only appear wrong because of this shader applied to the ground which is displayed incorrectly. Now i don't know the initial cause of this problem, so all this is maybe not very useful.