AUTHOR: The Grimace
DATE: 3:07:00 PM
-----
BODY:
Have you tried playing a new DirectX game lately only to have the game complain that it can't find weird files like d3dx9_25.dll, or crash because it can't find an assembly like Microsoft.DirectX.AudioVideoPlayback? I have, and it's taken me a while to figure out what was going on, and how to fix the problem.
First off, if you're experiencing such a problem right now, you probably want to fix it and get on with your game. If you're looking for d3dx9_24.dll, d3dx9_25.dll, d3dx9_26.dll, or d3dx9_27.dll, just download the appropriate mini-installer right here. If you need the DirectX for Managed Code extensions (necessary for .NET-based programs that use DirectX), you can download my own mini-installer right here.
So here's what's going on. If you have Windows XP Service Pack 2 installed, you already have Microsoft's latest version of DirectX (9.0c) installed as well. You can verify this by clicking StartRun, entering dxdiag.exe, and clicking OK. When the DirectX Diagnostic Tool loads, you should see the current version listed next to "DirectX Version." Many games install DirectX as well, and you can even download it on your own. The thing is, Microsoft has produced numerous updates to DirectX 9.0c, whose files are not included in the 9.0c distribution, and aren't obviously available for download from Microsoft's site. You can get them indirectly by downloading the developer versions of the 34-megabyte DirectX redistributable file. (Go to Microsoft Download Center and search for "directx redistributable for developers".)
Game developers are also supposed to include these files in their game installers. But if you Google for some recent games (say, Black & White 2 or Battlefield 2) and d3dx9_25.dll, you'll find that this isn't quite working out. Back in the early days of Windows, tech support people and developers complained of "DLL Hell," a state of utter confusion that existed when Microsoft didn't tightly control how its own redistributable files were installed and upgraded. Old versions trampled over new ones, duplicate non-mixing versions got scattered all over the hard drive, programs that once worked ceased working after new software was installed- it was truly terrible. Beginning with Windows 98, Microsoft added "Windows File Protection" to their operating systems to protect important system files from getting trampled. They also tightened down their software logo certification requirements and required that their redistributable files ONLY be installed using their own installers (developers could no longer randomly include Microsoft-authored components in their own installers). This was a very good thing and ended up making Windows software much more reliable in the long run.
So, what in THE HELL was Microsoft thinking when they started releasing parts of DirectX piecemeal and not updating the runtime available to consumers? It's just freaking insane! Do you know what most gamers who've encountered these problems have been doing? They've been going to web sites and P2P sharing networks and downloading these files individually. This is dangerous for a couple of reasons: First, these files are scattered all over the Internet and some of them have some dependencies. If you just grab one file at a time, there's no telling how stable your DirectX games that use them are going to be. Second, if you're downloading the files from some random site or P2P network and just dropping them onto your hard drive, you have no way of knowing that the files haven't been hacked or compromised- or are outright fakes. These are some of the things Microsoft meant to avoid by instituting rules about how their files are deployed and they have regressed to a state where users are potentially screwing up their systems again, likely causing both Microsoft and game publishers time and money in technical support calls. Good one!
Why can't they update the DirectX web installer to check for any of the new DirectX components and just install those? (The web installer and even the single-file DirectX redistributable haven't been updated since August of 2004.) If nothing else, why can't Microsoft just up-level the DirectX version when they release a new update? (I mean these new files all require DirectX 9.0c to be installed anyway- they're not standalone additions.) Why can't they just call it 9.0d, e, f, etc. and update the downloads accordingly?
Anyway, as mentioned earlier in this post, I did my own installer for DirectX for Managed Code, and I also pointed to mini-installers for the D3DX DLLs. These aren't rogue piecemeal installs; they all use Microsoft's DirectX setup program and the appropriate files from the SDK redistributables, and are the only correct/safe way to obtain these files if you didn't get them when you installed your game. All of them require that you already have DirectX 9.0c installed.
If you'd like to know how I made my installer, here's the scoop. I read the article Installing DirectX with DirectSetup at MSDN and installed the latest DirectX SDK (I have an MSDN subscription... I don't think you can download the SDK without one) and looked in the Redist folder. Well the article states that you can create a mini-distribution by taking the following files from Redist and placing them into the same folder: dxsetup.exe, dsetup32.dll, dsetup.dll, dxupdate.cab, and the CAB file of the component you want to install. For example, I needed Oct2005_MDX_x86.cab, for the Managed Code stuff. However, that's not necessarily all. Look inside the cab file and check the enclosed INF file (oct2005_mdx_x86.inf in this case) and see if there are any "Dependencies" entries. You'll have to include any CABs listed here in order for your mini installer to work. To make my redistributable a standalone installer, I used Ace Zip to create a self-extracting archive, and instructed Ace Zip to launch Dxsetup.exe once the files were unzipped. Ace Zip has quite possibly the worst UI I've ever seen, but it works. Also, before you visit the Ace Zip site please be aware that some of the banner ads there are pornographic.
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:11:24 AM
COMMENT-BODY:I have downloaded the WINZIP file for D3DX9_dll which downloaded fine. When i go to open the file however, it says that my system is not configued to view this file and then opens it up in notepad which is just garbled writting.
What programme do i open the file up in then?
I have also downloaded your mdxOctober2005 which when i ran it, says that it installed successfully.
But still i get the annoying "The application has failed to start because d3dx9_25.dll was not found" when i try to start playing a new game i have purchased.
What do i now do??
--------
COMMENT-AUTHOR:Josh
COMMENT-DATE:5:42 PM
COMMENT-BODY:Hmm, it's possible that the files on that other site I linked to for the 9_25 installer got corrupted. The mdxOctober installer that I made only installs DirectX for Managed Code, which is unrelated to the 9_25 file. Never fear though... I just threw together my own quickie installer for d3dx9_25.dll, and you can get it right here.
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:10:10 PM
COMMENT-BODY:thank you so much! Your website helped me through my frustrations!
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:4:33 PM
COMMENT-BODY:ok im having the same problem it says d3dx9_25.dll was not found and ive downloaded it from your site and i have the directx 9.0 but it still says the same thing
--------
COMMENT-AUTHOR:Josh
COMMENT-DATE:4:38 PM
COMMENT-BODY:The installer that I mentioned in this post (the one I made) is only for DirectX for Managed Code. To get D3dx9_25.dll, you need this installer. As long as you have DirectX 9.0c installed (it MUST be 9.0c) this is all you need.
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:5:21 PM
COMMENT-BODY:it says directx could not find a file necessary for instalation
--------
COMMENT-AUTHOR:Josh
COMMENT-DATE:8:34 PM
COMMENT-BODY:Okay, have you varified that you have directx 9.0c? You can verify this by clicking Start Run, entering dxdiag.exe, and clicking OK. When the DirectX Diagnostic Tool loads, you should see the current version listed next to "DirectX Version." It should say 9.0c. I just tested the installer I linked you and it does work. Use the link in my previous post to get Directx9.0c if it turns out you didn't have that version yet.
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:1:24 PM
COMMENT-BODY:I already have directx9.0c but it still says the file cannot be found
--------
COMMENT-AUTHOR:Nick Vaughan
COMMENT-DATE:8:23 AM
COMMENT-BODY:Totally agree with you there. We heavily use Directx Managed and are just going through the hell of telling all our customers that they need to install April2005 OVER THE TOP OF June2005!
What the hell??
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:1:05 PM
COMMENT-BODY:thanks man, i never thought i'd get out of this d3dx9_25.dll crap
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:3:37 PM
COMMENT-BODY:YEah, it isn't working for me either, and I checked to see what DX I have. It says 9.0c like you said, and I'm getting the same problem as the other anonymous person said. This is really rediculous...The whole DX problem in general.
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:6:31 AM
COMMENT-BODY:yer try extracting to your Windos sytem 32 file localdrive/programs/windows/system32
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:12:30 AM
COMMENT-BODY:I am trying to install godfather the game but it says I need direct x 9.0 c but i already have it what should I do?
--------
COMMENT-AUTHOR:Josh
COMMENT-DATE:1:05 PM
COMMENT-BODY:Anonymous (with Godfather) here's what I recommend, and this applies to all new DirectX games. See, the game publishers usually include these supplemental files in their DirectX installers, but most people (me included) skip the install because it makes no sense to have 9.0c installed and still not have the latest files. If the installer asks if you want to install it, ALWAYS say yes even if you know you already have it. DirectX installers will only install the components you need, so it goes really quick if you really only need the supplemental files. Also, DirectX will never backlevel your files, so if you have newer versions of anything already, they won't be replaced. Just make it a habit to always click Yes with DirectX from here on out.
--------
COMMENT-AUTHOR:Josh
COMMENT-DATE:1:09 PM
COMMENT-BODY:oh yeah, and if you skip the directx portion during initial setup you can always go back to your install cds and run directx setup manually. it's usually on the last install cd of multi-cd games.
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:11:10 AM
COMMENT-BODY:i have got LotR: battle for middle earth 2 and whenever i try and open it, it says d3dx9_27.dll was not found and will not allow me to play. plz help!!!
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:11:12 AM
COMMENT-BODY:i have got the new game LotR: battle for middle earth 2 and whenever i try and play it says d3dx9_27.dll is not present. Plz Help!!!
p.s i have already downloaded it of your site and am not sure what to do now?
--------
COMMENT-AUTHOR:kamlesh
COMMENT-DATE:6:24 AM
COMMENT-BODY:any idea how to upgrade DirectX 9.0b to DirectX 9.0c? I install the DirectX9.0c, the installer says finish, but DXDIAG always says DirectX 9.0b.... plzzzzzzzzz help!
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:10:48 PM
COMMENT-BODY:I have the same problem as kamlesh i installed direct x 9.0c but in the dxdiag it still sais 9.0b and when i try to run games i get that d3dx9_25.dll thing plz help
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:4:29 PM
COMMENT-BODY:i have the same problem guys i installed xp pro sp2 and it has dx 9.0b builtin when i tryed the dc9.0c installer it sayd finish and when i check the dx version is still 9.0b pls help anyone
--------
COMMENT-AUTHOR:Jaz
COMMENT-DATE:9:31 AM
COMMENT-BODY:I also can't install the Godfather. It keeps saying I need to install the latest version of DirectX 9.0 or higher, which I already have. But I downloaded it again from microsoft and tried to reinstall, but even though I deleted DirectX the installer told me I have it already. The game still tells me otherwise. I don't even get the chance to install the game or DirectX from the game! I'm annoyed, someone please help!
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:7:47 AM
COMMENT-BODY:Well, I haven't really read the "article" to the end, but wanted to express my gratitude, towards, whoever took the time to write it and post it... God bless and all the best wishes...
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:5:22 PM
COMMENT-BODY:I have the same problem trying to install The Godfather on Windows XP. First, the license agreement is blank, which is the first time I've ever seen that. I accept the license agreement and I get an error message that says I must have DirectX 9.0c (which I already have). There is no option to install or update DirectX. I also ran the DXSetup.exe which was included on the game DVD. Please help. Thanks.
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:5:49 PM
COMMENT-BODY:Hey Godfather installers, I followed the instructions on this page and it worked for me (Godfather DVD on Windows XP):
I'll repeat those steps here in case that page ever dies.
"Copy all the files from Godfather The Game DVD to a folder named Godfather on your hard drive.
Once it is done copying, browse (open) the Godfather\Autorun folder on your hard drive. Inside there, you should see a autorun.cfg file. Right-click on it, and open it with Notepad or some other text editor such as Notepad++ (if you have it (highly recommended)). Edit the line (line 13) where it says
DirectXVersion=9.0c
and make it
DirectXVersion=0
Save the file, with File > Save (Don't use Save as...!!), to make absolutely certain you keep the original file extension (.cfg)!
Go back to the root folder Godfather. Right-click on Autorun.exe. Go to Properties > Compatibility. Then check "Run this program in compatibility mode for" and select Windows 2000 from the dropdown box. Click apply and/or OK.
Now double-click on Autorun.exe. Setup should start as normal (i.e. like you just stuck the disc in)."
Good luck, Erik
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:9:37 AM
COMMENT-BODY:I am trying to install Direct X 9.0c but it says a cabinet file cannot be trusted? What does this mean?
--------
COMMENT-AUTHOR:Anonymous
COMMENT-DATE:12:02 AM
COMMENT-BODY:Hello I just downloaded fear combat and it gives me the error d3dx9_27.dll and i went to the link you gave and downloaded it and uncompressed it with winrar but I dont know what to do now. can you help me? thanks
--------
COMMENT-AUTHOR:The Great Santini
COMMENT-DATE:6:41 AM
COMMENT-BODY:I just bought The Civilization IV, The Movies and Need for Speed Carbon(the newest) I installed the Civilization and The Movies and when I try to start a game it says the game cannot start beacuse DirectX 9.0c is required for the game. When I tried to install NFS carbon it want install beacuse I dont have DX9.0c. I played both civilization and the movies without problems before I reinstalled WinXpProfessional( I deleted the whole C disk). After that I searched the internet and installed DirectX about three times, from a different site, but it still says that I dont have DirectX. On the CD of NFS carbon i found DirectX and installed it to computer. When i go to the dxdiag on the control panel it says that I allready have 9.0c. I dont exactly understand your way of installing it. Please help!
--------
COMMENT-AUTHOR:The Great Santini
COMMENT-DATE:9:36 AM
COMMENT-BODY:I looked at the comment about installing The Godfather and I tried it on NFS. It worked and if i am not wrong, it's working for all EA games. After that I still cant launch the game(wich have no connection with DirectX) and a error report came out. I dont know wath to do, I am really disapointed
--------
COMMENT-AUTHOR:TECNiCAL.iTCH
COMMENT-DATE:5:25 AM
COMMENT-BODY:I have a similar problem... I want to install NFS Carbon. I enter the CD Code, Click next ---> Next and it says that DirectX 0 or higher needs to be installed.. but the EA Supoort shows me that i have DirectX 9.0c !!! What soulh i do to fix this bug/problem ?
--------