Решение проблемы с установкой DirectX 9.0с на 2k3SP1 (надеюсь, что окончательное):
1. Из дистрибутива DirectX 9.0c (я использовал
Redistributable - Oct'06), а именно из архива dxnt.cab распаковать в \Windows\System32 следующие файлы:
dmband.dll, dmcompos.dll, dmime.dll, dmloader.dll, dmscript.dll, dmstyle.dll, dmsynth.dll, dmusic.dll, dswave.dll.
2. Распаковать (expand-ом) с дистрибутивного диска 2k3SP1 gm16.dl_ в gm16.dls и поместить в \Windows\System32\drivers. (Размер файла: 3 440 660 байт.)
3. При помощи
регфайла добавить в реестр недостающие ветви. (Если 2k3 установлена на раздел отличный от C:, то в регфайле нужно будет поправить пути, указав везде свой раздел.)
4. Чтобы dxdiag окончательно перестал ругаться на недостаток записей в реестре, создать и запустить регфайл со следующим содержимым:
-----------------------------------------------------------------------------------
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{8A667154-F9CB-11D2-AD8A-0060B0575ABC}]
@="Microsoft DirectSound Wave"
[HKEY_CLASSES_ROOT\CLSID\{8A667154-F9CB-11D2-AD8A-0060B0575ABC}\InProcServer32]
@="C:\\WINDOWS\\system32\\dswave.dll"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID\{8A667154-F9CB-11D2-AD8A-0060B0575ABC}\ProgID]
@="Microsoft.DirectSoundWave.1"
[HKEY_CLASSES_ROOT\CLSID\{8A667154-F9CB-11D2-AD8A-0060B0575ABC}\VersionIndependentProgID]
@="Microsoft.DirectSoundWave"
[HKEY_CLASSES_ROOT\Microsoft.DirectSoundWave]
@="Microsoft DirectSound Wave"
[HKEY_CLASSES_ROOT\Microsoft.DirectSoundWave\CLSID]
@="{8A667154-F9CB-11D2-AD8A-0060B0575ABC}"
[HKEY_CLASSES_ROOT\Microsoft.DirectSoundWave\CurVer]
@="Microsoft.DirectSoundWave.1"
[HKEY_CLASSES_ROOT\Microsoft.DirectSoundWave.1]
@="Microsoft DirectSound Wave"
[HKEY_CLASSES_ROOT\Microsoft.DirectSoundWave.1\CLSID]
@="{8A667154-F9CB-11D2-AD8A-0060B0575ABC}"
-----------------------------------------------------------------------------------
5. Обычным образом запустить dxsetup.exe из последней версии Redistributable дистрибутива, чтобы установить дополнительные библиотеки D3D.
В результате: а) DirectX будет корректно распознаваться как 9-й в nVidia Control Panel, а также скорее всего и во всех приложениях, которые лезут за этим в реестр; б) в DxDiag появится вкладка Music, на которой можно будет проверить работоспособность DirectMusic; в) вероятно все игры будут работать (но это можно проверить только эмпирически).
Я - не автор данного метода, он опубликован на
http://d3d9.narod.ru/directx.htm уже довольно долгое время. Я всего лишь взял на себя труд найти строки, которых не хватало в исходном регфайле.
Опробовано было на чистой инсталляции 2k3SP1/R2. Проблем/ошибок пока не выявлено. Если возникнут - пишите, будем дорабатывать способ дальше.
P.S. Изыскания в данном направлении были начаты в связи с тем, что DirectX Happy Uninstall позволила откатиться на 8.1, но 9.0с после этого не ставился никоим образом (ни с помощью утилиты ни без нее).