謎の男の謎のブログ

PCの設定など忘れそうなことのメモ

GBA Romから音源を抽出してみた

【2019/11/23追記】

以下のブログに本記事の続きを掲載しております。ポケモンゴールデンサンのBGMを抽出したい方はご覧ください。

https://www.vulneraresearch.com/?p=167

 

GBA Romファイルから音源を抽出したかったので挑戦してみた。

ちなみに今回抽出しようと考えているのは

ポケットモンスター ベガ」

ポケットモンスター ゴールデンサン」

のBGM。

 

CD化されているBGMは全てCD音源を所持しているものの、改造Rom系のBGMは当然ながらCD化されていません。

ということで挑戦。

 

まず前提ですが、Romに関しては自分で吸い出したポケットモンスター ファイヤーレッド、エメラルドのRomにipsパッチを当てたベガとゴールデンサンのRomを用意します。

私はDSでマジコンが大流行していた時期に購入したDS TTiというマジコンにGBA Backup Toolというソフトを導入してRomを吸い出しました。

 

続いて以下から

saptapperというソフトをダウンロード

https://web.archive.org/web/20151027120022/http://gsf.caitsith2.net/tools/saptapper.zip

 

展開すると以下の様になっていると思います。

f:id:secret_return:20160328221127p:plain

 

このフォルダの中にGBAファイルをコピーします。

GBAファイル名は半角7文字以下にするとよいみたいです。

そしてアドレスバーにcmdと入力してEnter。

Windows 7以降はcmdと入力するとコマンドプロンプトが起動するはずです。

Windows VistaWindows XPは調べたことないな、、、

 

f:id:secret_return:20160328222342p:plain

 

すると以下の様な画面が出てきます。

 

f:id:secret_return:20160328222447p:plain

 

そしてコマンドを実行します。

コマンドは

saptapper rom名.gba

となります。

今回の場合は

saptapper bega.gba

です。

コマンド入力後Enterで以下の様にコマンドプロンプトに文字が表示されると思います。

 

f:id:secret_return:20160328222806p:plain

 

これは成功例です。

成功した場合はrom名と同じフォルダ(今回はbega)が作成され、中にminigsfという拡張子のデータ大量とgsflibというデータが1つ入っています。

 

f:id:secret_return:20160328223114p:plain

 

この様にデータがあればBGMの抽出に成功しました。

しかし、このデータはよく使用されているiTunesなどでは再生することができません。

 

音楽再生ソフトはお好みではあるのですが、私はfoobar2000というソフトを使用しています。

www.foobar2000.org

さらにGSF Decoderというコンポーネントfoobar2000にインストールします。

www.foobar2000.org

 

foobar2000にminigsfを渡してあげるとBGMが再生されます。

wav形式への変換も可能です。

 

ここまではポケットモンスター ベガのBGM抽出でしたが、ゴールデンサンではsaptapper使用時にエラーが出力されます。

 

f:id:secret_return:20160328223915p:plain

 

この場合はSappyというソフトを使用して音源を再生、抽出します。

Sappyは以下のサイトからダウンロードします。

http://cdn42.atwikiimg.com/pokeds/?plugin=ref&serial=19

 

Google Chromeの場合以下のような警告が表示されると思いますが、危険が伴うデータではないのでダウンロードを継続してください。

 

f:id:secret_return:20160328224239p:plain

 

ダウンロードをしたzipファイルを展開すると以下の様になっている思います。

 

f:id:secret_return:20160328224709p:plain

 

sappy12.exeを実行しセットアップを行います。

セットアップの際プログラムなどを展開するフォルダを聞かれます。

f:id:secret_return:20160328224907p:plain

どこでも構わないのですが、指定したフォルダの場所は必ず覚えておいてください。

 

指定したフォルダに作成されたsappy.exeを起動します。

メニューからFileを選択しGBARomファイルを指定します。

すると私の場合は以下の様なエラー画面になりました。

 

f:id:secret_return:20160328225331p:plain

 

同じエラーが出る方は以下のサイトから改善されたデータをダウンロードします。

u3.getuploader.com

 

ダウンロードしたzipファイルにある説明が詳しいのでよく読みexeファイルを差し替えます。

 

そしてゴールデンサンのRomを読み込みます。

エラーは出ないと思います。

 

f:id:secret_return:20160328225858p:plain

赤で囲んだ部分の数字を目的のBGMが流れるまで上げ続けます。

目的のBGMが見つかれば左側のメニューにある「MIDI書き出し」でmidi形式での出力が可能となります。

 

【補足】

midi形式出力は便利であるものの、音質はよくないのでSappyで再生している時に録音ソフトを使用した方が良い。

それならばエミュレータで動かして録音すればいいと思われるかもしれないが、戦闘BGMではボールの音などがどうしても入るので、、、