What about 1st method? Also 0/0/0?
Yes. And the car shadow is always ok, by the way.
So - the game works ok on a real hardware (at least on Voodoo2 and Voodoo2 SLI). All 3 versions (1.00, 1.01 and 1.04).
Ok, this is reaaaaaaaally weird.
The game keeps sending broken geometry even to a wrapper that don't do anything (I created a version of a library that doesn't allocate any memory, doesn't init D3D. Nothing
, except logging geometry in grDrawTriangle).
If nGlide isn't responsible for this then how it's possible the game works fine on Voodoo? The only hardware check that exists in the game is used for different resolutions list + specular feature (only frame buffer version is checked) and texture manager (different for Banshee and other Voodoos). No difference when it comes to generated geometry.
There is also no way Voodoo could correct broken vertices. The triangles were either degraded (area=0; 2 of 3 vertices at the same position) or perfectly fine but some of the vertices were placed at wrong position.
The code responsible for glitches was introduced in v.1.01 and it's a new codepath for calculating geometry by using SSE instructions (next to other two: MMX and FPU). If we switch to FPU mode then the game works fine with nGlide.
The only method to manipulate SSE configuration (something that original Voodoo driver could do) is by using MXCSR register. But after checking this I haven't found anything.
... And because of this I'll be uploading modded executables into compatibility list.
Perhaps if I dug deeper in the code I could find solution for SSE mode, but I don't want to spend another weeks just for this one issue, especially when I have so many things on my todo list.
If anyone of you guys have idea what the solution might be, please let me know.