Windows10でDirectX9
すごく今更なんですが、2016年8月にあったWin10の大型アップデート Anniversary Update によってd3d9.dllに何らかの変更があり、そのせいでDirectX9.0を使っている一部のアプリが劇重になるという事件があったらしいですね。
私はアンテナ感度が大変低いので、恥ずかしながら全く知りませんでした。(Win10使ってるのに……)
が、私と同じように感度の低い方がいるかもしれませんので、あえて記事にします。
幸いヴィータ大脱出などではこの問題は出なかったのですが、これのやっかいなところは、修正しようにもなんせ DirectX9.0 の本家本元が変更されてしまったので、それを利用している側ではどうにもならないことです。
調べてみたところ、商業ゲームメーカーは古いバージョンのd3d9.dllを配布するという手段に出たみたいです。
オーバーフロー
Windows 10 Anniversary Update (Ver.1607)に伴う、一部ソフトの動作不具合に関して
https://www.0verflow.com/days_dx9.html
イリュージョン
Windows 10 Anniversary Update後の動作について
http://www.illusion.jp/support/windows10.html
ただ、怪しい海外サイトなどからDLLをダウンロードするときは十分気を付けてください。
DLL自体は誰でも簡単に作ることができるので、偽物のDLLをつかまされたら目も当てられません。
本物のd3d9.dllだと思ってゲーム側がDirectX9の初期化関数を呼び出した瞬間、すべてのファイルが削除されるなんてこともありうるわけで。
本家の方は具体的にどんな変更があったのかはわかりませんが、下手したらd3d9.dllは単なるエミュレータになっていて、単にDirectX12を呼び出しているだけになった可能性もあるわけです。
……と思って手元のd3d9.dllを Dependency Walker で調べてみたんですが、d3d12.dll をさらに呼び出している、という部分はなさそうでした。
さすがにそんな面倒なことはしないか……しかしなんでそんなに重くなったんでしょうね?
WindowsXPではDirectX9までしか動かない。
(そしてWindowsXPはサポート終了)
Windows7以降ならDirectX11が標準でインストールされている。
Windows10ではDirectX9が激重になる可能性がある
つまり、この事実から導き出される回答は……。
(ル○ーシュっぽいポーズを取りながら)