三國無双5 体験版のBGMを入れ替える。(手動編)

 まず最初に断っておくと、この記事の内容を真似したり意味を理解する必要は全くありません。2021年に世界でアップロードされた情報の中でも、一二を争うS/N比の低さであることは確実です。


コーエーのゲームのBGMをコーエーのゲームに移植する場合、Ogg形式に変換する必要はありません。

しかし、どれを入れ替えるかは聴いてみないとわかりませんから、とりあえずOgg形式に変換してみます。

G1L2OGG.VBSへのリンク

上記のスクリプトをダウンロードして適当なフォルダに保存します。

そのフォルダに、三國無双5のBGMLink.g1lファイルをコピーします。(デフォルトではC:\Program Files (x86)\Koei\Shin Sangokumusou 5 Trial\bgmフォルダにあります。)

コピーしてきたBGMLink.g1lをG1L2OGG.VBSにドラッグアンドドロップします。

正常に動作すれば、何十個かのOggファイルが生成されるはずです。無双5体験版では0バイトのファイルも生成されます。

生成されたファイルを聴いてみて、入れ替え対象のファイルの番号を特定します。

今回は例として、BGMLink.g1l-4.oggとなっていた戦闘BGMである4番を入れ替えてみることにします。

ようやく実際の工程に入ります。

バイナリエディタでBGMLink.g1lを開き、4番の音楽データを削除します。

ヘッダを見ると、4番目のデータの位置は0xB8アドレスから始まっていて、5番目のデータは0x3CE05Fから始まっていることがわかります。
なので、0xB8から、5番目のデータの直前である0x3CE05Eまでを削除します。
ファイルは開いたまま置いておきます。

今度は入れ替える音楽データを用意します。例として三國無双7のファイルを利用します。(デフォルトではC:\Program Files (x86)\Steam\steamapps\common\Dynasty Warriors 8\RESにあります。)

例としてB00000.binを使います。バイナリエディタで開くと、

G1Lコンテナの中に、KOVSコンテナが1つだけあり、先頭256バイトがXORされたOggデータチャンクが1つ入っているファイルだという事がわかります。
何を言っているのかわかりませんが、これが現実です。
今回は、KOVSコンテナだけが欲しいので、KOVSという文字列の前をすべて削除します。すると、

こうなります。

このデータをすべてコピーします。(CTRL+AしてCTRL+Cする、みたいな)

そして、BGMLink.g1lの、先ほどデータを削除した部分にペーストします。

これで音楽データは入れ替わりました。

次にBGMLink.g1lのヘッダ部分を書き直します。

今、4番目のデータを入れ替えたので5番目のデータの位置がずれました。ペーストしたので近くに5番目のデータのKOVSという文字列が見えているはずです。

その先頭のKの文字のアドレスを調べると、0x40170Fになっていました。

ですので、ヘッダの5番目のアドレスを 5F E0 3C から、0F 17 40に書き換えます。

こうなります。

以降のデータも、0x40170Fと0x3CE05Fの差、0x336B0分ずれたことになりますので、すべて書き換えなくてはなりません。

ものすごくめんどくさい作業ですが、1バイトでもずれると当然動作しなくなりますので、慎重に行います。








すべて書き換えた結果こうなりました。できたBGMLink.g1lを三國無双5体験版のフォルダにコピーします。すると。


見事に動作しました!

じゃねぇよ!

こんな作業はスクリプトやプログラムを使って行うのがアタリマエです。

というわけで次回につづく。

コメント

  1. おお、素晴らしいです。bgmが変わると新鮮ですね。
    バイナリエディタでいじるの難しいですので、もしスクリプトが
    出来たら試してみたいと思います。

    返信削除

コメントを投稿

このブログの人気の投稿

メモリの解放にEmpty.exeは必要ありません。

KOEI G1L形式のBGMファイルの変換

Amazon配送遅延中