d3drm.dll がない

とあるゲームをインストールして起動したところ、「d3drm.dll がない」と言われてエラーとなってしまった。d3drm.dll は Direct3D Retained Mode API のライブラリで、Windows Vista で廃止されたらしい。幸い、このゲームは d3drm.dll だけあれば動くということだったので、なんとかしてこれを入手したかった。

f:id:phyllotaxis:20150429113549p:plain

インターネットで入手方法を検索してみると、大体が得体の知れないサイトでダウンロードできると書いてあるが、危なくてそんなことはできない。できれば Microsoft のサイトからダウンロードしたかったので探してみた。

Web インストールじゃない最新の DirectX ユーザーランタイムインストーラーはこれらしい。日本語と英語サイトでダウンロードできるものが違うが、次のどちらも同じ d3drm.dll が入っていた。

Download DirectX End-User Runtimes (March 2009) - 日本語 from Official Microsoft Download Center

Download DirectX End-User Runtimes (February 2010) from Official Microsoft Download Center

これをダウンロードするのだが、このインストーラー(directx_mar2009_redist.exe)を起動するのではなく、解凍する。インストーラー自体が Windows 7 などに対応していないし、今回は DLL だけが欲しいだけなので…。7-Zip であればうまいこと解凍してくれる。

中から dxnt.cab というキャビネットファイルが出てくる。さらにこれを解凍すると d3drm.dll が現れる。SHA-1 と SHA-256 のハッシュ値を記しておく。

01e7efac08806bc25c9edcfd391b642cca93badc  d3drm.dll
e2f13f6d88b32aa2f17c1fc88b4ba471cfe32c74db237b822dd5faed501b55c7  d3drm.dll

これを、ゲームなどの実行ファイルがあるインストールフォルダ(C:\Program Files (x86)\~~~ など)にコピーしてやればいいというわけだ。ちなみに、必ずしも C:\Windows\System32 に置かなければいけないわけじゃない、場合による。