_inmm.dllは、BGMの再生にCD-DAを使っているゲームソフトを、むりやり他の音源、たとえばMP3やMIDIなどに対応させてしまうプログラムです。
例えばゲームCDの音楽トラックをMP3にコンバートしてHDDに置いておけば、わざわざCDを入れなくても音楽つきでゲームを楽しめます。特定のトラックだけ別の曲に差し替えたり、いくつかの曲の中からランダムに演奏させたりといったこともできます。
_inmm.dllは自分で曲を再生することもできますが、Winampなど外部のプレイヤーを制御して曲を再生する機能も持っています。そのため、外部プレイヤーが対応している全ての形式を再生できます。
以下のような音源を、CD-DAの代わりに再生できます。
上のリストにCD-DAが入っているのを不思議に思うかもしれません。これはトラックの順番を変えたいときや、一部の曲だけをMP3等に差し替えて、他の曲はCD-DAのままにしたいときに使います。
CDのデジタル出力をサポートする外部プレイヤーを使えば、WAVE出力からCDを再生できます。これによって、Windows2000/XPで曲の切り替えに時間がかかる(ドライブのスピンアップ遅延)問題も解消できます。
Windows95/98/Me/2000で動作します。XPでの動作チェックは行っていませんが、おおむね問題なく動いているようです。
動作確認を行っている外部プレイヤーのバージョンは以下の通りです。
SCMPXは1.20以降、Digital CD Playerは1.05以降、Lilithは0.987 pre-release.5以降であれば動くと思います。
Windowsのサウンド関連の機能は、windows\systemフォルダ(NT系ではwinnt\system32フォルダ)のWINMM.DLLというDLLにまとめられています。ゲームなどのアプリケーションがCDや効果音を再生するとき、アプリケーションは「CDの5番目のトラックを再生せよ」というような命令をWINMM.DLLに送ります。
_inmm.dllは、アプリケーションからWINMM.DLLへ行く命令を横取りします。これはアプリケーションのプログラムを書き換えることで実現しています。「CDを再生しろ」「効果音を出せ」といった命令はWINMM.DLLではなく_inmm.dllに渡るようになるので、_inmm.dllでその命令を解釈して、CDを再生する代わりに別の処理を行うことができるのです。
プログラムを書き替えるといっても、いわゆる機械語コードの部分をを書き替えるのではありません。_inmmのパッチは、実行形式ファイル中の「WINMM.DLL」という文字列を「_inmm.dll」に、またWINMM.DLLが提供するAPI名の先頭を_(アンダーバー)に変えるだけです(例えば、mciSendCommandA→_ciSendCommandA)。この方式は汎用性が高いので、多くのゲームで_inmm.dllを使うことができます。
書き換えの作業はファイルをドラッグ&ドロップするだけの簡単なものですが、大抵の場合はそれさえも必要ありません。_inmmユーザーからの情報をもとに300以上のゲームがデータベースに登録されていて、その中にあるゲームについてはボタン1つで必要なファイルの書き替えが行われます。
CD-DA以外の方法でBGMを鳴らしているゲームには使えません。
残念ながら、すべてのゲームでうまく動くわけではありません。動作確認済のソフト一覧と 動作し ないことが確認されたソフト一覧 が公式サイトにありますので参考にしてください。
_inmm.dllは、ゲームのCDチェックを回避するものではありません。起動時にCDをチェックするゲームをCDなしで遊ぶには、仮想CDソフトと併用してください。
_inmm238.exeを実行し、インストーラの手順に従ってください。すでに旧バージョンの_inmm.dllがインストールされている場合、上書きインストールされます。
_inmm238.zipを展開すると、以下のファイルが出てきます。
ファイル | 説明 |
---|---|
_inmm.dll | 本体 |
_inmmcnf.exe | 設定&パッチユーテリティ |
_inmmcnf.ini | パッチ用の登録情報ファイル |
_inmmserv.exe | プレイヤーを制御するプログラム |
doc\manual.html | マニュアル |
doc\faq.html | FAQ(よくある質問と答え) |
doc\history.html | 変更履歴 |
この中で、_inmm.dllだけはwindowsフォルダかwindows\systemフォルダ(NT系ではwinntフォルダかwinnt\system32フォルダ)にコピーしておいてください(1)。ほかのファイルは適当なフォルダにまとめておきましょう。
_inmmserv.exeはプレイヤーの制御を行うプログラムで、_inmm.dllから起動されます。_inmmserv.exeは_inmmcnf.exeと同じフォルダに置いてください。
以前のバージョンの_inmm.dllを使っている方は、それぞれのファイルを以前のものと置き換えてください(別のフォルダにコピーした_inmm.dllも更新するのを忘れないように!)。