http://bugs.winehq.org/show_bug.cgi?id=24406
--- Comment #6 from Jeremy Chin winehq@rekless.fastmail.fm 2010-12-11 05:15:21 CST --- I've found what causes this bug. In order to see if the system is capable of doing animated meshes, d3d calls GetDeviceCaps and makes sure MaxVertexBlendMatrices is at least 2. Wine reports this number by checking if the video card has ARB_VERTEX_BLEND, then reports GL_MAX_VERTEX_UNITS. The problem is newer video cards don't report ARB_VERTEX_BLEND, only ARB_VERTEX_PROGRAM[1].
I'll attached a patch that just makes this change, against wine 1.3.9. It assumes a card that support ARB_VERTEX_PROGRAM will support multiple vertex units, but as far as I know that's a fairly safe assumption.
It also fixes the other bug I mentioned before. When IDirectXFileObject::GetName is called with a null buffer it's meant to provide only the length of the data and return DXFILE_OK. Wine currently reports DXFILEERR_BADVALUE.
[1]http://developer.nvidia.com/forums/index.php?s=1bda5c9c604dcbe8177f7e9bc324e... [2]http://msdn.microsoft.com/en-us/library/bb174505(v=VS.85).aspx