Ivan Gyurdiev wrote:
All of the d3dx9_*.dll's (note the underbar!) are simple helper dlls and as Raphael said should be bundled with the game. A quick search for the missing DLL on google will turn it up, download it (legality = unknown, but probably okay since it is a redistributable fine anyways), put it in your game (or windows/system) directory and everything should work fine. I had to do this for some DX test programs recently myself so I know it works no problem.
My games don't include the d3dx9_* dlls. I read online somewhere that they're not allowed to do that. They include a DXSETUP.exe installer, which says:
NOTE: IF YOU DO NOT HAVE A VALIDLY LICENSED COPY OF ANY VERSION OR EDITION OF MICROSOFT WINDOWS XP MEDIA CENTER EDITION, MICROSOFT WINDOWS 95, WINDOWS 98, WINDOWS NT 4.0 WINDOWS 2000 OPERATING SYSTEM OR ANY MICROSOFT OPERATING SYSTEM THAT IS A SUCCESSOR TO ANY OF THOSE OPERATING SYSTEMS (each an "OS Product"), YOU ARE NOT AUTHORIZED TO INSTALL, COPY OR OTHERWISE USE THE OS COMPONENTS AND YOU HAVE NO RIGHTS UNDER THIS SUPPLEMENTAL EULA.
What should be wine's approach to dealing with this problem? Need For Speed: Most Wanted demo requires d3dx9_26.dll. Battlefield 2 demo crashes without d3dx9_25.dll (according to the wine bugzilla).
By the way, even if you do own a licensed copy of the required operating system, the installer does not work (at least for me). "DirectX could not find a file necessary for installation". Then it aborts, and the finish button does not work:
fixme:advpack:IsNTAdmin (0x00000000, 0x7fc8fdd8): stub fixme:win:SetWindowTextW setting text L"Close" of other process window (nil) should not use SendMessage fixme:advpack:IsNTAdmin (0x00000000, 0x2e464858): stub fixme:win:SetWindowTextW setting text L"Close" of other process window (nil) should not use SendMessage