_inmm.dll FAQ

Last update: 2006/04/08

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ユーテリティには

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

_inmmserv.exeってなんですか?

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

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

_inmm.iniに指定するMP3ファイルはどこにありますか?

_inmm.dllは、本来CDのオーディオトラックから再生される音楽を、MP3などから鳴らせるようにするものです。_inmm.iniに指定するファイルは、自分でCD のオーディオトラックから吸い出す必要があります。これにはリッパーと呼ばれるソフトを使います。フリーのリッパーとしては、 CDexCD2WAVなどがあります。


トラブル

「_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から曲が鳴るという場合、次の2つの原因が考えられます。

  1. パッチを当てるファイルが違う。
  2. WINMM.DLL以外のAPIを使ってCDを再生している。

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

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

再生にWinampを使っていると、音量が0になってしまうことがあります。

WinampのwaveOutプラグインの音量はWindowsのWAVE音量と同期しているため、 BGMがフェードアウトして再生停止すると、それ以降WAVEの音量が0になってしまいます。

解決方法としては、Winampの設定で以下のどちらかにします。

  • DirectSoundプラグインを使う。
  • waveOutプラグインの音量設定で、[Reset to original value on stop] あるいは [Alt. setting method (slow)](日本語版ではそれぞれ[停止時に音量を元に戻す]、[Alt設定法(低速)])にチェックを入れる。


その他

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

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

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

cueシート+音楽ファイル の形式を再生できますか?

MCI, DirectShow, Lilithでは、「プレイリスト+リスト内番号」形式で _inmm.iniを記述することで、cueシート+音楽ファイル形式を再生できます。例えば、

c:\hoge.cue:2

と書くと、hoge.cueのトラック2部分が再生されます。_inmmcnf の _inmm.ini簡易エディタにcueシートをドラッグ&ドロップすると、この形式の_inmm.iniを簡単に作成できます。

MCIとDirectShowでは、音楽ファイルに対応するコーデックやDirectShowフィルタがインストールされていることが必要です。またコーデックやDirectShow フィルタが可変ビットレート(VBR)でエンコードされたファイルのシークに正しく対応していない場合、再生位置がおかしくなる場合があります。

WinampではCUE Player (in_cue.dll)を導入することでcueシート+音楽ファイルを利用できます。この場合、以下のような_inmm.iniを使います。

[Tracks]

c:\cue\hoge.cue,2
c:\cue\hoge.cue,3
c:\cue\hoge.cue,4

[Players]
Winamp=*.cue,*

[Settings]
SkipFileCheck=1

この方法は、サポート掲示板の[1358]で埴輪さんに教えてもらいました。感謝!

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

現在 _inmm が対応している方式では再生できないファイル形式を使いたい場合、サポート掲示板に書き込んでください。ただし、プレイヤーの追加はよほどの理由がない限り、しない方針です。外部のプレイヤーを操作する方法ではどうしても細かい制御がしにくいので、できるだけ外部のプレイヤーに頼らない方向で進めていきたいと考えています。