パッチ

_inmm.dllを使ってゲームの曲を置き換えるためには、そのゲームのプログラムをちょっと書き換えてやる必要があります。この作業を「(ゲームの実行ファイルに)パッチを当てる」といいます。

以前のバージョンの_inmm.dllでパッチを当てたゲームには、再度パッチを当てる必要はありません。

パッチ当ては_inmmcnf.exeを使って行います。_inmmcnf.exeはwindowsの実行形式ファイルを解析して、必要箇所を自動的に書き替えてくれます。ユーザーがしなければならないのは、書き替えるべきファイルを_inmmcnf.exeに教えてやることだけです。

とはいっても、書き換えるべきファイルの特定には少々コツが必要です。そこで_inmm.dllでは、パッチを当てたファイルについての情報をユーザーの皆さんから提供してもらって、そんなソフトについてはボタンひとつでパッチを当てられるようにしています。

このデータベースは、_inmmのアーカイブに含まれている_inmmcnf.ini(_inmm.iniとは別のものです)というファイルに入っていて、_inmm.dllのホームページで最新版を入手できます。

登録されているゲームへのパッチ

すでに_inmmcnf.iniに登録されているゲームにパッチを当てたい場合、話は簡単です。_inmmcnf.exeの[パッチ]ページで、ゲーム名を一覧から選択して[実行]ボタンを押すだけです。ゲームによっては追加のメッセージが表示されたり、インストールフォルダを自分で指定してやらなければならなかったりしますが、迷うことはほとんどないでしょう。

登録されていないゲームへのパッチ

お目当てのソフトが登録されていなくても諦めるのはまだ早いです。試しに実行ファイルにパッチを当ててみて、動くかどうか調べてみましょう。(そして成功したらぜひ登録情報を提供してください。)

パッチを当てるべきファイルは、ゲーム本体のプログラム(exeファイル)かDLLファイルです。これら全部にパッチを当てておけば、まあ間違いはないでしょう。:-)

_inmmcnf.exeで[パッチ]ページを選択して、そこにファイルをドラッグ&ドロップするとパッチをあてることができます。

はずれのファイルにパッチをあてても、「書き替える情報がありません」と表示されるだけで害はありません。ただし、「書き換えに成功しました」と表示されたからといって、そのファイルが当たりとは限りません。ややこしいですね。:-)正しいファイルにパッチが当てられているかを調べるには、ゲームを起動してみてBGMが置き換わっているかどうかをみるしかありません。

エクスプローラ上で、ファイルを_inmmcnf.exeのアイコンにドロップしても、パッチをあてることができます。

元のファイルのバックアップ

どの方法でパッチを当てても、書き換える前のファイルは、拡張子を.orgに変えられて、書き換えたファイルと同じフォルダに保存されます。すでに.orgファイルがある場合、バックアップファイルの拡張子は.org1、.org2…となります。ファイルが書き替えられなかった場合は、バックアップファイルは作られません。

パッチ前のファイルに戻す

パッチを当てたファイルにもう一度パッチを当てようとすると、元に戻すか聞いてきます。「はい」を選ぶと、パッチを当てたファイルを元に戻します(最後に作られたバックアップファイルで上書きします)。

特殊なパッチ

通常のパッチのほかに、_inmmcnf.exeには2種類のパッチ方法が用意されています。これらの特殊なパッチは、通常のパッチでうまく動かないゲームに使用します。

どんな場合に特殊なパッチが必要になるかは、FAQを参照してください。

ImportTableパッチ

_inmm Ver.2.36以降の標準のパッチ方法では、ファイル中にあるWINMM.DLLのAPI名を表す文字列をすべて強制的に書き換えてしまいます。ImportTableパッチは_inmm Ver.2.35以前のデフォルトのパッチ方法で、実行ファイルの構造を解析して必要な箇所にのみパッチを適用します。余計な部分を書き換えてしまう危険はありませんが、標準的でない方法でWINMM.DLLを使っているゲームには効かないかもしれません。

ImportTableパッチを当てるには、_inmmcnf.iniの 登録情報で、File=の代わりにImportTablePatch=を指定します。

VFWパッチ

WINMM.DLLではなくMSVFW32.DLLを使ってCDを鳴らしているゲームに使います。このパッチを当てたゲームを実行するには、 _inmm.dll のホームページ で配布している_svfw32.dllが必要です。

VFWパッチを当てるには、_inmmcnf.iniの登録情報で、File=の代わりにVfwPatch=を指定します。