One thing that isn’t apparent in the discussion here and I think it needs to be said. I’m new to Vista, so while this might be apparent to some of you guys rading this thread, it wasn’t to me.
Vista comes with DirectX 10, and DirectX 10 does not fully support all functionality of earlier versions such as DirectX 9, DirectX8, etc.
So, if you want your older games to work on Vista, you need to load the November DirectX 9c SDK described in this thread
My son had a game, Star Wars: JediAcademy, that didn’t work and asked me to look at it. The one clue was that the game gave an error saying something to the effect that his computer didn’t support 3D graphics. I thought, boy that’s strange. When I got to poking around on the system and then on the internet I discovered the DirectX 10 SDK documentation. It says in plain language that DirectX 10 doesn’t support all the functionality of DirectX 9. Then I found a blog where a person said to do this download to fix my son’s game on Vista.
So, Ouch, you might ask, “Why Microsoft would ever do that?” I don’t have the answer, but this download adds DirectX 9 and earlier functionality while it seems to leave Direct X 10 intact. I haven’t tried to verify but I assume it has to do with Microsoft’s Side-by-side technology (WinSxS directory).
All I really know is that after loading the SDK pack, my son’s game ran like a charm!