- ベストアンサー
DirectXの更新・削除についてアドバイスを下さい
パソコンでゲームをしようと思っています。 随分昔に、あるゲームをしたのですが、当時DirectX(ver5.03?)がバグったので、そのまま放っていました。 そして今、今度はまた別のゲームをしようとDirectXを更新してみたのですが・・・うまくいきません。 画面上は「完了しました」と出るのですが、新しいDirectX(v9.0)はアプリケーション一覧にも出ないし、PCにもdxdiagのファイルが作成されません。 仕方がないのでリスクはありますが、バックアップを取った後に、削除ツールを使ってDirectXを削除しようと考えています(OS=WindowsXPの再インストールは面倒なので・・)。 手順としては、 1.削除ツールで基本コンポーネントを削除 2.Ver5のDXInfoに載っていたファイルのうち、削除しきれなかったものを、手動で削除する 3.目的のDirectX(Ver7.0)をインストール という感じでいいのでしょうか? 不安なので、質問してみました。 ちなみにVer7.0を入れるのは、DirectX9.0の上位互換性に疑問があるからです(マイクロソフトも結構ひどいようですから・・・)。 参考までに、DXInfoの一部を載せると、 -------------- DirectX Components DirectX Version(Registry):5.03.2600.2180 DDRAW.DLL:5.03.2600.2180 ~略~ DDHELP.EXE:File is missing ・・・ : (中略) DirectX Drivers FRAMEBUF.DLL:5.01.2600.2180 TSD32.DLL:1.03.03.0007 -------------- ↑「File is missing」のファイルが18個もあります。 削除ツールはDirectX Busterを使う予定です。 DirectX Eradicator2.0の方は、WindowsXP SP2を使っていると、駄目なようです(サポート外)。 (http://unimatrix0.t35.com/htdocs/dxefaq.html の4番目のQ参照) 詳細は以上です。 私が取ろうとしている方法について、詳しい方、経験者の方、アドバイスをお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
DirectXはアプリケーションではありませんが・・・WindowsXPに7,0を入れるとまず正常に動かないアプリケーションが大量に出てきますよ。OS側統合の機能もまともに動かなくなる。 WindowsXPは標準で8,x以上を総合APIとして導入しています。 さて、質問の内容からするとあまりDirectXのバージョン付けをご存じないようです。それが誤解を招いているのではないかな?ちょっと説明すると、 DirectXはWinGというゲーム用コンポーネントからWindows95でDirectX5として生まれ変わった物で、このときに総合APIとして複数のAPIを統合しました。製品としては既に10年ぐらい使われていますが、バージョンアップはそれほど頻回に行われていないことが分かると思います。 現在は2D/3Dグラフィックス(DirectDraw/Direct3Dを統合したDirectGraphics)、サウンド/シンセサイザ(DirectSound/DirectMusicを統合したDirectAudio)、入力デバイス(DirectInput)、ネットワーク通信(DirectPlay)、マルチメディア(DirectShow)などの技術APIを合わせてDirectXと呼び、更新はこれら全てを一括して行い。機能強化がこれらのどこかであれば後ろの数字や符号を1つ上げるのです。要は、DirectX8→9もしくはDirectX9,0b→9,0cというように呼び名が変わります。 ただし、新しいバージョンでもDirectGraphicsのみにしか大幅な更新がなければ、他のコンポーネントのバージョンは据え置かれることになります。 これは、現在DirectXAPIがゲームに限らずオフィスソフトや画像ソフト、映像再生ソフトに至る複数のアプリケーションで当たり前に使われているためです。ここでバージョンを落としたり削除するときっと多くのソフトに支障が出るでしょう。 そのため、DirectXのバージョン=コンポーネントのバージョンではありません。さらにいえば、最初のバージョン数字が9から始まるDirectXコンポーネントはきっとないでしょう。最新のDirectX9,0cの正規バージョンは現在、4.09 Build 904になります。要は、4.の後ろのコンマ09がDirectX9の9の部分になる。 ちなみに、DDRAW.DLL:5.03.2600.2180はDirectX9,0cの最終品としてリストに上がるDirectDrawコンポーネントです。 どうしてもおかしいならまあ、やっても良いでしょうが7に落とすのは絶対に避けましょう。DirectX7,0はWindowsXPでは動作しない16bitコンポーネントが含まれる危険性があります。 また、これをやる場合は、リカバリ覚悟で運が良ければというぐらいの気持ちでやることを強く推奨します。既に正常でなく、正常だった頃のバックアップがなければ最悪リカバリする方が早い可能性もあります。
その他の回答 (2)
- parts
- ベストアンサー率62% (6366/10151)
情報が増えているので再回答します。 Q/グラフィックチップは、ATI Mobility Radeon 7500です(DirectXの対応はver7まで?)。 A/RADEON7500(RADEON256)が備えるハードウェア機能は確かにDirectX7,0のDirect3D(HardwareT&L)とDirectDrawになります。 しかし、ソフトウェアやドライバの更新によってその後にサポートされるDirectGraphicsの機能。例えば、VertexShaderなどにはソフトウェアで対応しますから、対応しているといえます。ただ、機能の一部はサポートされていないか(例えばPixelShaderはサポートしません)、CPUがエミュレートするのです。 それでも動作するように、DirectXはドライバとハードウェアの間に立ち、これらの違いを吸収するのです。(これが、汎用プログラムであるAPI<Application Programming Interface>の役割の一つです) 後は、使うソフトウェアがどこまで柔軟性に富んでいるかになります。APIがいくら違いを埋めても、足りない部分は使うソフトが下位の機能に変換するか、なくても良いようにしなければいけませんからね。 Q/前持っていたDirectXを(型の対応など全く気にせずに)入れて、以前のゲ-ムを楽しんで(ここで動いたのも不思議ですけど)、それからバグった。 A/これのバージョンは分かりますか?たぶん、APIの一部が古い物に置き換わってますね。これは、かなり厄介でリカバリしないと難しいかも・・・ 具体的に状況を説明すれば、DirectX8,0a以上でなければ出荷用のWindowsXPのRTM版では想定されていないバージョンになります。その中には、XPに対応しないコンポーネントも存在することになり、当然あるはずのコンポーネントのバージョンがWindowsが想定するバージョンより低くなり必要な機能が使えないということになるのです。いわゆる先祖返り。 その古いバージョンにはない機能を必ず使うアプリケーションやOS関連コンポーネントを稼働させなければ、間違いなく正常に動作します。 しかし、それを動かすと不具合のオンパレードになるのです。 これが現在の状況です。 Q/SP2には同梱でDirectXが入っているはずなので、果たしてDirectXを単独で削除しても大丈夫か? A/残念ですが、SP2にはDirectXを完全に修復できる本体が入っているわけではありません。入っているのは最高でもWindowsXP RTMに対する差分です。要は、適用したDirectXのバージョンが例えば7,1ならばそれを全て9に置き換えるまでのデータは入っていないのです。 あくまで、8,xから9に更新するための想定です。これは、コンポーネントの置き換えを最低限にすることで、データ量の削減とバグの発生などを抑制するのです。 先の回答でいえば、 「新しいバージョンでもDirectGraphicsのみにしか大幅な更新がなければ、他のコンポーネントのバージョンは据え置かれることになります。」 というのは、そのためです。しかも、APIは前半で述べたようにハードウェアとソフトウェアの仲介をする重要なプログラムですからね。こうなるのです。 ということです。 ちょっと内容が重いですが・・・ ちなみに、私がこの状況に陥ったと仮定すれば、削除します。ただ、リカバリの覚悟をして大事な他のデータをバックアップしてからですけど。もう、手がないですし成功すればお得で、失敗してもあまり他の人はしない経験としては他に生かせるかもしれませんからね。 手順としては、1、2で問題ないと思います。 ちなみに、セットアップするDirectXは DirectX End-User Runtimes (December 2005) Full Download にします。Webで入手するものは、効率が良いのですがもしかするとXPというだけで、先祖返りしているファイルは更新してくれないのではと思うので・・・ 気持ちの問題ですけどね。
お礼
ご回答ありがとうございます。 そうですか、なかなか難しそうですね。こちらも読んでるだけで知恵熱が出てきそうで・・・。 諦めるか、削除するかもう一度考えてみます。有難うございました。
- yui_o
- ベストアンサー率38% (1217/3131)
PCは何を使っているでしょうか・・・? (あとOSも) DirectX5ってWin95かWin98のすごい初期に搭載されていたものですよね・・・? でもわからないのが・・・ >DirectXを削除しようと考えています(OS=WindowsXPの再インストールは面倒なので・・)。 WindowsXPの場合、最初からDirectX9(SP2の場合9C)が入っているはずです。 また、グラフィックチップは何を使っていますか? それによっても最適なDirectXが変わってきます。 というわけで補足お願いします
補足
すみません。文字数の関係で重要なところを割愛していました。 いま使っているOSはXPです(DXInfoではWindows NT:5.1 Build 2600 Service Pack 2)。 グラフィックチップは、ATI Mobility Radeon 7500です(DirectXの対応はver7まで?)。 >DirectX5ってWin95かWin98のすごい初期に搭載されていたものですよね・・・? そうです。 >WindowsXPの場合、最初からDirectX9(SP2の場合9C)が入っているはずです。 そうなんですよ。だからSP2をインストールしたときに正常更新されているだろうと、軽く考えていたのですが・・・。 経緯をお話しすると、XPを買った当時は今より更に、PCに関する知識が乏しかったのですが・・前のゲームがXPで動かなかったので、PC内にはDirectXが入ってない、と思ったんですよ(本当に入ってなかったかどうか今では知るべくもないのですが・・)。 それで、前持っていたDirectXを(型の対応など全く気にせずに)入れて、以前のゲ-ムを楽しんで(ここで動いたのも不思議ですけど)、それからバグって、そして暫くしてSP2をインストールしちゃった・・・というわけです。 そして今振り返ると、おかしなことになっている・・のです。 しかしおっしゃる通り、SP2には同梱でDirectXが入っているはずなので、果たしてDirectXを単独で削除しても大丈夫か?という疑問があるわけで・・・迷ってます。 宜しくお願いします。
お礼
>WindowsXPに7,0を入れるとまず正常に動かないアプリケーションが大量に出てきますよ。 >OS側統合の機能もまともに動かなくなる。 >WindowsXPは標準で8,x以上を総合APIとして導入しています。 なるほど。ということは7.0は確かに避けた方が良さそうですね。 >ちなみに、DDRAW.DLL:5.03.2600.2180はDirectX9,0cの最終品として >リストに上がるDirectDrawコンポーネントです。 ということは、DirectXの一部はもう入っているのでしょうねえ・・。ますます訳が分からなくなってしまいました。これは私みたいな素人が手を出す代物じゃないかもしれませんね。 参考になりました。有難うございました。