とあるゲームをインストールして起動したところ、「d3drm.dll がない」と言われてエラーとなってしまった。d3drm.dll は Direct3D Retained Mode API のライブラリで、Windows Vista で廃止されたらしい。幸い、このゲームは d3drm.dll だけあれば動くということだったので、なんとかしてこれを入手したかった。
インターネットで入手方法を検索してみると、大体が得体の知れないサイトでダウンロードできると書いてあるが、危なくてそんなことはできない。できれば 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 に置かなければいけないわけじゃない、場合による。