_inmm.dll FAQ

Last update: 2003/08/24

Contents

インストール

トラブル

その他


インストール

圧縮ファイルを展開しましたが、_inmm.dllというファイルが見当たりません。

エクスプローラが「システムファイルを表示しない」設定になっていませんか?
[表示] - [フォルダオプション]で、すべてのファイルを表示する設定にすると出てくると思います。

外部プレイヤーはどこにありますか?

Winamp WINAMP.COM

Nullsoftのフリーソフトで、代表的なMP3プレイヤーです。MP3以外の様々なサウンドフォーマットにも対応しています。

SCMPX CH3's homepage

ch3さん作の国産でフリーなMP3プレイヤーです。

Digital CD Player みゃん☆みゃん☆ふぁくとりぃ☆

もろぼし☆らむさん作のフリーなCDプレイヤーです。CDから直にデータを読み出してWAVEとして再生するので、アナログの音声コードがドライブと未接続でも再生できます。

Lilith Project9k

NVさん作の多機能・高速なサウンドプレイヤーです。

CDチェックを回避するには?

「仮想CDユーテリティ」を使います。これは、HDD上のCD-ROMイメージファイルを、仮想的なCD-ROMドライブ(に入っているCD)のようにアクセス可能にするものです。ゲームのCDを仮想CD化することで、ゲームにCDが入っていると思わせることができます。

代表的な仮想CDユーテリティには

CD革命/Virtual アーク情報システム
DAEMON Tools http://www.daemon-tools.com/

などがあります。各ソフトの操作法は各々のマニュアルを参照してください。

_inmmserv.exeってなんですか?

バージョン2.30から、従来 _inmm.dll で行っていた処理の一部(外部プレイヤーの制御など)を、独立したプログラム _inmmserv.exe に移しました。 _inmmserv.exe は _inmm.dll の裏方として働くプログラムで、_inmm.dll から起動されます。_inmm.dllを使ったプログラムが終了すると、_inmmserv.exe も終了します。

ゲームが強制終了してしまった場合など、_inmmserv.exeが終了されずに残ってしまう場合は、タスクトレイの_inmmserv.exeのアイコンをクリックしてメニューから「終了」を選んでください。


トラブル

「_inmm.dllが見つかりませんでした。」と表示されてゲームが起動できません。

_inmm.dllをwindowsフォルダかwindows\systemフォルダ(NT系ではwinntフォルダかwinnt\system32フォルダ)、またはゲームをインストールしたフォルダにコピーしてください。

ゲームを起動すると「古いバージョンの_inmm.dllです」というメッセージが出ます。

_inmmcnf.exeがレジストリに書き込んだバージョン番号より古いバージョンの _inmm.dllが読み込まれています。最新の_inmm.dllをwindowsのフォルダにコピーするのを忘れていませんか?

また、WindowsはDLLファイルを

  1. ゲーム本体のEXEファイルのあるフォルダ
  2. カレントフォルダ(普通はゲームをインストールしたフォルダ)
  3. windows\systemフォルダ
  4. windowsフォルダ
  5. 環境変数PATHのフォルダ

の順に探しますので、古いバージョンの_inmm.dllが優先順位の高いフォルダに残っているとそちらが読み込まれてしまいます。

「必要なコーデックがインストールされていない可能性があります。」というエラーが出ます。

MCIを使ってファイルを再生するには、そのファイル形式に対応したコーデックがインストールされている必要があります。

MP3-WAVE形式(MP3ファイルにRIFF/WAVEヘッダをつけたもの)のコーデックは、 Win95/98には含まれていません。このコーデックは _inmm.dllのホームページでダウンロードできます。

MP3形式をMP3-WAVEにコンバートするツールには、MISKY氏の mp3 Checker などがあります。

最新のWindows Media Playerをインストールすると、生のMP3を再生できるコーデックがインストールされるようです。

_inmm.dllを使うと、ゲーム中の効果音/音声が出なくなってしまいます。

waveデバイスを使う方法(つまりMIDIやCD-DA以外)で曲を再生している場合、曲の再生中はwaveデバイスが埋まっているので効果音/音声を鳴らせません。

まず、お使いのサウンドボードに対応したWDM (Windows Driver Model)版のドライバがないか調べてください。WDMドライバはミキシングの機能をもっているので、waveの同時出力が可能になります。

複数同時再生できないWAVEオーディオ出力デバイスを、複数音声の同時再生に対応させるPolyWaveというドライバソフトウェアがあるそうです。CPUパワーに余裕のある方は試してみるといいかもしれません。

同時出力が不可能な場合は、[その他]-[効果音]オプションをいじると多少マシになるかもしれません。

「Waveデバイス使用中のため再生できません。」と言われて曲が鳴りません。

これもwaveの複数同時出力をサポートしていない環境で起こるエラーです。ゲーム側がWave出力デバイスを占有しているため、waveやmp3などを出力できなくなっています。

waveの同時出力ができれば、これは解決します。前の質問 も参照してください。

DirectSoundを使っているゲームの場合、曲もDirectSoundから鳴らすことで解決できます。こちらを参照してください。

プレイヤーが「DirectSoundを使えない」というような文句を言う場合、そのゲームはDirectSoundを使っていません。残念ながら、BGMと効果音のどちらかを諦めるしかありません。
設定の[その他]-[効果音]を[BGMを一時的に止めて鳴らす]にしてみてください。それでも駄目なら[鳴らさない]にしてみてください(効果音は鳴らなくなってしまいます)。

上記の方法でうまくいかなかった場合は…すみません、諦めてください。 (^^;

BGMをDirectSoundから出力するには?

今のところ、DirectSoundからの出力に対応しているプレイヤーはWinamp、 Digital CD Player、Lilithです。

Winampの出力をDirectSoundにするには、メニューから[Options] - [Preferences]を選択します。[Winamp - Preferences]というウィンドウが出てきますので、左側の欄の[Plug-ins]以下の[Output]をクリックします。すると右側のリストにOutput plug-inの一覧が出てきますので、その中から [Nullsoft DirectSound plug-in]を選択して反転表示にしたあと、[Close]ボタンを押します。
_inmm.iniを拡張形式にして、[Settings]セクションに WA_OutDll=out_ds.dllと記述する方法もあります。

これでWinampの設定は完了ですが、_inmmcnf.exeのほうにも設定が必要です。 [プレイヤー] - [Winamp] - [Wave出力の空きをチェックしない]を有効にしてください。

Digital CD Playerの出力をDirectSoundにするには、メニューから[オプション] - [CDデバイス設定] の [再生に関する設定] - [DirectSoundを使って出力する]を有効にしてください。

こちらも、_inmmcnf.exe側の設定が必要です。[プレイヤー] - [Digital CD Player] - [Wave出力の空きをチェックしない]を有効にしてください。

LilithはもともとDirectSoundから再生を行います。特別な設定は必要ありません。

ゲームのウィンドウをアクティブにするとBGMが止まってしまいます。

Winampで曲をDirectSoundから出力させていますね?
DirectSound対応ソフトの中には、自分がアクティブになっているときは他のソフトのDirectSound出力をカットしてしまうものがあります。こういったソフトでは、Waveデバイスからでないと曲が鳴りません。WinampのDirectSound plug-inを使わない設定にしてください。

実際と違う曲が再生されます。

そのゲーム、第1トラックから音楽が入っていませんか?標準形式の_inmm.iniでは、第2トラックから書いていくことになっています。第1トラックから始まるつもりで書いてしまうと、曲順がひとつずつずれて再生されます。

第1トラックからの指定を行いたい場合、_inmm.iniを拡張形式にします。 _inmm.iniの先頭に

[Tracks]

と書くだけでOKです。

パッチを当てたのにCDから音が鳴ります。

パッチを当てたのに、_inmm.iniに指定したファイルでなくCDから曲が鳴るという場合、次の3つの原因が考えられます。

  1. パッチを当てるファイルが違う。
  2. WINMM.DLL以外のAPIを使ってCDを再生している。
  3. 標準的でない方法でWINMM.DLLを使っている。

1.の場合、パッチを当てた実行ファイルとは別のファイルがCDの再生を担当しています。そのファイルにもパッチを当てる必要があります。

2.の場合は、_inmm.dllのホームページで配布している _svfw32.dll を使います。試しているゲームがこれに該当するか調べるには、Dependency Viewerでゲームの実行ファイルを開いてみてください。MSVFW32.dll の MCIWndCreateA というAPIが使われていたら、これに該当する可能性があります。

3.の場合は、通常の_inmmパッチではなく字句的パッチ(マニュアル参照)を適用することで解決します。 Dependency Viewerでゲームの実行ファイルを開いて、WINMM.dll の mciSendCommandA も mciSendStringA も使われていない場合、これに該当する可能性があります。


その他

BGMのボリュームを変えるには?

_inmmはプレイヤーを起動したときのボリューム値を基準にします。BGMのボリュームを変えるには、あらかじめプレイヤーのボリューム値(MCIの場合は Windowsのボリュームコントロール)を調整してからゲームを始めてください。

Winampの waveOut plug-in やSCMPXのボリュームはWindowsのWaveボリュームと同期しています。BGMと効果音・音声のボリュームのバランスを調整するには、WinampのpreampまたはSCMPXのイコライザを使ってください。

○○というプレイヤーに対応してほしいのですが…。

_inmm.dllではWinampやSCMPXを使ってさまざまな種類の音楽ファイルを再生できますが、それはWinampやSCMPXには他のプログラムから操作するための機構が備わっているからです。再生や停止、音楽ファイルの指定、再生時間の取得などが外部プログラムからできるプレイヤーでないと対応は難しいです。

対応を希望するプレイヤーがこの条件を満たしているかどうか分からなければ、サポート掲示板で質問してください。