avg32tools
2001/04/09 公開 2001/04/21 koemp3を追加 2003/12/08 RealLiveに対応 2004/01/11 RealLive編に「音声のwav化は可能?」を追加
目次
これって?
エロゲーマーにはお馴染み、Visual Art'sのAVG32/RealLiveシステムですが、このシステムを使っているゲームでも最近、BGMがCD-DAでないものが多くなってきています。これらのゲームをCD音源化することによって、_inmmを使ってBGMファイルのサイズを小さくしたり、曲を差し替えたりできるようにしようというものです。
AVG32編
AVG32の動作は、GAMEEXE.INIの書き換えによってある程度変更できます。BGMとしてwavファイルを使うゲームのGAMEEXE.INIには、
#MUSIC_TYPE=002
という行があります。これを
#MUSIC_TYPE=003
に変えると、BGMとしてwavではなくCDを再生するようになります。曲の位置情報とかそういったものもGAMEEXE.INIに書いてあるので、それも適切にCD用に書き換えてやれば(avgini.exeがやってくれるので詳しくは説明しません)、_inmmパッチを当ててmp3でもなんでも鳴らせるというわけです。
ところが、ひとつ困ったことが出てきます。上記の変更を加えると、ゲーム中の音声が出なくなるのです。
AVG32で使われている音声ファイルは、拡張子.KOEの独自の圧縮形式です。(1)#MUSIC_TYPE=003
(変更前)であれば、AVG32はKOEファイルを自分でデコードして鳴らすのですが、#MUSIC_TYPE=002
に変更すると、AVG32はKOEファイルをそのままWindowsの機能で再生しようとします。結局再生は失敗し、音声は出力されません。
そこで、KOEファイルをWindowsが再生できる形式に変換する必要があります。これはkoeunpac.exeで行います。koeunpac.exeはKOEファイルをwavファイルに変換しますが、要はWindowsが鳴らせる形式であればいいので(ただし拡張子.wavであることが必要)、MP3-WAVE等にして置いておけばKOEファイルよりもさらにサイズを小さくすることができます。
最後に、AVG32がKOEファイルではなくwavファイルを使うように、GAMEEXE.INIの#KOE_DOUBLE_PAC=001
を#KOE_DOUBLE_PAC=000
に書き換えます。
この辺りの詳しい説明は、Keiさんによる解説 ページを参照してください。
- 音声がwav形式で入っているゲームもあるかもしれません。その場合は、上記の変更だけで問題なくプレイできると思います。
avgini.exe - GAMEEXE.INIを書き換える
GAMEEXE.INIのあるフォルダで実行すると、
-
#MUSIC_TYPE=002
を#MUSIC_TYPE=003
に -
#DSTRACK=...
を#CDTRACK=...
に -
#KOE_DOUBLE_PAC=001
を#KOE_DOUBLE_PAC=000
に
それぞれ書き換えます。
1.によって、BGM・効果音・音声がDirectSoundではなくMCIを使って再生されるようになります。
2.では、BGMの情報(開始位置、停止位置、再開位置)をwav形式用からCD用に変換します。
3.では、音声の再生にKOEファイルではなくwavファイルを使うようにします。(これはkoeunpac.exeでやるべきことのような…手抜きです)
ついでに、#DSTRACK=
に設定されていたファイルを登録した_inmm.iniも作成します。古いGAMEEXE.INIや(もしあれば)_inmm.iniは、拡張子.orgで保存されます。
トラックの位置決めのためにBGMファイルの再生レートが必要なので、このプログラムは、レジストリからBGMフォルダの位置を調べて、そこにあるBGMファイルから再生レートを取得しています。ですので実行するときは、ゲームがインストールされていて、BGMファイルが読める状態になければなりません。要するにゲームをインストールして、CDを入れたままで実行してね、ってことです。
実際には使われないBGMがGAMEEXE.INIに書いてあると、「wavを開けない」といわれますが、[無視]を選んでください。(2)
- 「恋ごころ」のBGM18がこれにあたるようです。
koeunpac.exe - KOEファイルをwavファイルに変換する
GAMEEXE.INIのあるフォルダで実行すると、GAMEEXE.INIとレジストリからKOEファイルのある場所を調べて、全てのKOEファイルをwavファイルに変換します。
1つのKOEファイルには通常、複数の音声が含まれています。このプログラムは、実行したフォルダにまずkoewavというサブフォルダを作り、さらにその下に、KOEファイルごとにフォルダを作成します。wavファイルはその中に作成します。
また、ゲームのレジストリ項目の"KOE_FOLDER"を書き換えます。これは音声ファイルの位置を指定するもので、例えば"Q:\KOE"という風になっていますが、これを"koewav"にします。つまり作成したwavのほうを使う設定にするわけです。同時にkoe_restore.regというファイルを作成します。これをダブルクリックするとレジストリを書き換え前に戻せます。
フォルダ名やwavファイル名はAVG3217D.EXEが使う規則にしたがって決められています。名前を変更するとAVG3217D.EXEがwavを見つけられなくなって音声が出なくなりますので注意してください。
作成されるwavファイルの総サイズは、KOEファイルの3〜4倍程度になります。ディスクの空き容量に注意してください。
変換したwavファイルは個人で使用する範囲にとどめておきましょう。
koemp3.exe - SCMPXでwavファイルをMP3-WAVEに変換する
上のkoeunpac.exeで生成されたwavファイルをMP3-WAVE(MP3ファイルにRIFF/WAVEヘッダをつけたもの)に変換します。変換にはSCMPXを使用します。
koeunpac.exeが作成したkoewavフォルダで実行すると、サブフォルダのwavファイルを全てMP3-WAVE形式に変換します。変換前のwavファイルは削除されます。
SCMPXの場所は、_inmmcnf.exeのレジストリ項目から読みとります。_inmmcnf.exeにSCMPXのパスを設定していない場合は、koewavフォルダにscmpx.exeをコピーしてから実行してください。
MP3-WAVE形式のファイルをAVG32で再生するには、この形式用のコーデックが必要です。コーデックは_inmm.dllのホームページからダウンロードできます。
結局何をすればいいのさ?
- ゲームをインストールしてください。
- インストールしたフォルダにavgini.exeをコピーして実行してください。
- 同じくkoeunpac.exeをコピーして実行してください。
- AVG3217D.EXEに_inmmパッチを当ててください。
2〜4はどの順番で実行してもかまいません。
これで、とりあえずゲームが動く状態になります。ただしBGMの巨大なwavファイルは_inmm.dll経由で、また音声にはKOEファイルではなく、変換されたwavが使われます。
あとはBGMを差し替えるなり、(koemp3.exeを使って)声をMP3-WAVEにするなりしてください。
RealLive編
RealLiveもAVG32と同様、GAMEEXE.INIを書き換えることでCD音源化することができますが、AVG32をCD音源化する場合とは以下の違いがあります。
- GAMEEXE.INIの書き換えるべき項目が違う。
- BGMをCD-DAかDirectSoundか設定可能にできる。
- KOEファイルから音声が出なくなる副作用がない。
- GAMEEXE.INIを適切に書き換えても、CDチェックに通らないとCD音源が無効になってしまう。
3.より、RealLiveの場合はkoeunpac.exeとkoemp3.exeは不要で、avgini.exeだけを使用します。
avgini.exeでGAMEEXE.INIを書き換える
GAMEEXE.INIとREALLIVE.EXEのあるフォルダで実行すると、avgini.exeはRealLive用の書き換えを行います。書き換える内容は以下の通りです。
-
#DSTRACK=...
の行があったら、対応する#CDTRACK=
の行を追加する。CD-DA用の曲データを追加します。AVG32の場合と違って、DirectSound用の曲データも残しておきます。
-
#SYSCOM.011=N:"..."
を#SYSCOM.011=U:"..."
に書き換える。RealLiveの右クリックメニューの設定で、BGMの再生方法としてCD-DAを選べるようにします。ただし、起動時のCDチェック(後述)にパスしないとこの設定は無効になってしまいます。
-
#CDDA_xxx_SETUP_NEED=1
を#CDDA_xxx_SETUP_NEED=0
に書き換える。xxxにはMOV, KOE, BGM, DATのいずれかが入ります。ゲームのデータを全てインストールしなかった場合、CD再生が無効にされてしまうことがあります(CD再生と同時に必要なデータがインストールされていないと判断される場合)。上のように書き換えるとこのチェックを外して、たとえ最小インストールでもCD再生が有効になるようにします。
-
#BGM_MODE=0
を#BGM_MODE=1
に書き換える。BGMのデフォルトの再生方法をCD-DAにします。ただしセーブデータがある場合、そちらの設定が優先されます。
AVG32の場合と同様、#DSTRACK=
に設定されていたファイルを登録した_inmm.iniを作ります(BGMがnwa形式の場合、拡張子をwavに変えて登録します)。古いGAMEEXE.INIや(もしあれば)_inmm.iniは、拡張子.orgで保存されます。また、レジストリやBGMファイルの情報を使用しますので、ゲームをインストールしてCDを入れた状態で実行してください。
CDチェック
RealLiveは起動時にCDがあるかチェックして、チェックに通らないとCD再生を強制的に無効にしてしまいます。
CDチェックには、レジストリのDISK_MARKの値が関係しています。レジストリのキー名はGAMEEXE.INIのREGNAMEにあります(#REGNAME="MAKER\TITLE"
ならHKEY_CURRENT_USER\Software\MAKER\TITLE)。
CDドライブで、かつルートにDISK_MARKの名前のファイルが存在するドライブがあれば、RealLiveはそこからCDを再生します。そのようなドライブがなければ、CD再生は無効化されます。(3)
- DISK_MARKを書き換えても、CDドライブしか見に行かないので面倒です。CD再生が無効化されないスマートな方法はありませんかね?
音声のwav化は可能?
AVG32では、KOEファイルの音声をMP3-WAVEなどのより圧縮率の高い形式に変換することで、音声のサイズを減らすことができました。RealLiveでも同じことが出来ないでしょうか?
結論から言うと、音声のwavファイル化は可能ですが、圧縮wavを使えないため、高圧縮化はできません。
GAMEEXE.INIの
#FOLDNAME.KOE = "KOE" = 1 : ""
という行を
#FOLDNAME.KOE = "KOE" = 0 : ""
にすると、RealLiveは例えばZ1234.KOEの56789番の音声を出そうとするときに、KOE\Z1234.KOEがなければKOE\1234\Z123456789.wavから音声を読み込みます。ただしAVG32とは違って、WindowsのWAVEファイル再生機能は使わずに自前で再生します。この再生ルーチンが圧縮wavに対応していないようで、MP3-WAVEなどを鳴らそうとすると「圧縮されたウェーブデータです。再生できません。」と言われてしまいます。
WindowsのWAVEファイル再生機能で音声を再生する機能はRealLive(1.0.2.9で調査)には実装されていないようで、設定をいじってMP3-WAVEなどを再生するのは無理のようです。
結局何をすればいいのさ?
- ゲームをインストールしてください。
- インストールしたフォルダにavgini.exeをコピーして実行してください。
- BGMがnwa形式の場合、wav形式に変換して同じフォルダに置いてください。
- REALLIVE.EXEに_inmmパッチを当ててください。
2〜4はどの順番で実行してもかまいません。
nwa形式からwav形式への変換ツールは、http://www.angelfire.com/ks3/kaede/avg2k/などから入手できます。
これで、ゲームを起動して右クリックメニューで「BGM設定」→「CD-DA」を選択すると、_inmm経由でBGMが再生されるようになります。
あとはBGMを圧縮するなり差し替えるなりしてください。CDレス化する場合は、上の「CDチェック」の項を参考にしてください。
謝辞
発案者のたくまんさん、いろいろな助言をくださったKeiさんに感謝いたします。
KOEのデコードルーチンはKenjo氏の「わっふる」を参考にさせていただきました。また、nwaファイルからの情報取得にはjagarl氏のnwatowavを参考にさせていただきました。ありがとうございます。
さいごに
どこか間違ってたら教えてください。
改変・再配布は制限しません。「プログラム使いやすくしたよ」等は大歓迎です。超歓迎です。
このプログラムを使用した結果については作者は一切責任もてません。このプログラムについてVisual Art'sやゲーム制作元に問い合わせをしないでください。