The patches themself seem to be okay only that the new if-statement in IDirect3D8Impl_CheckDeviceFormat should be #ifdef GL_EXT_texture_compression_s3tc because if it's not defined we don't have the support as you can see in IDirect3DSurface8Impl_LoadTexture (surface.c:468). So it will lead to white boxes on a system, when at compile-time the constant isn't defined and the system says it support it. But this isn't the case for me because the log show that it definitly calls glCompressedTexImage2D.
I dont understand this fully. The whole point is to eventually make all the decisions based at run time as to the capabilities of the graphics card, to enable distributions of wine (otherwise you are limited to the capabilities of the machine it was compiled on). Therefore in fillglcaps, we loog for the prescence of the compressed texture string (EXT_texture_compression_s3tc) and if present we will call it.
In your case, it is present so it will be called. So when querying device formats, we can return that dxt1,3,5 are available, and later on we should call the glCompressedTexImage2D call. #ifdef'ing it either takes it out (in which case we say we dont support dxtn and the pgm probably does its own decompression), or you go through the same code.
So its back to why are you getting an error from that call. Can you please send me (not wine-devel) a --debugmsg +d3d,+d3d_surface trace up to the point the menu is displayed please (ie I should see the error on the load texture for a dxtn format).
One final question, did the game use to play ok? I get very little feedback on dx8 games, so I dont really know how well things are running.
FYI I am still working on it (with a lot less free time at the moment) but getting stuck on a couple of areas we need to address at some point so making slow progress. I want to get back to optimizing again asap.
Jason