http://bugs.winehq.org/show_bug.cgi?id=28343
--- Comment #4 from Alexey Loukianov mooroon2@mail.ru 2011-09-20 09:49:01 CDT --- (In reply to comment #3)
I would check it with +loaddll "just in case" and post results here.
OK, checked and confirmed that the game itself require native d3dx9_26.dll as it's the first one it tries to load at start and it doesn't try to load d3dx9_36.dll in case native d3dx9_26.dll is installed and being used.
As for D3DXCreateTextureFromFileInMemoryEx() vs D3DFMT_DXT5 I took a quick look into Wine d3dx9_36 sources and it seems that the problem is not only lack of support for D3DFMT_DXT5, but also lack of support for DDS format.
D3DXGetImageInfoFromFileInMemory() which is called by D3DXCreateTextureFromFileInMemoryEx() to get image properties use WIC (Windows Imaging Components COM API) as an info provider. As far as I know native WIC lacks built-in decoders for common DirectX texture formats like DDS and same apply to Wine's built-in windowscodecs.dll. I suspect that the game uses DDS as texture on-disk storage format which apparently fails under current Wine's implementation. Unfortunately I hadn't been able to trace it more in-depth under debugger (OllyDbg which I prefer to use when dealing with Windows apps) as Steam's DRM makes it to be pretty hard task.
IMO best bet would be to try to implement homebrew DDS decoder in Wine's windowscodecs.dll and then continue with debugging the issue. Maybe I'd find some time to do it. Then again, maybe not - it depends on the amount of workload at my primary job.