どこかで聞いた方法、sappy2006とMidi2gbaを使い、ポケモンで流れている音楽を変更する。
※不具合が起こるかもなので、必ずROMのバックアップをとること!
目次
基本、音の置き換え
音変更時に必要なもの。
1,sappy2006、2,Midi2gba、3,置き換えたいMidi、4,ROM
はじめに、sappyが日本語版のポケモンに対応していないため、sappy2006(以下sappy)を改変します。
しかし、英語版のポケモンは対応しているので、改変はとても簡単です。(既に設定済みなら、省略可)
まず、ROMをsappyで読み込み、表示されたアラート(アドレスが見つかりません。探しますか?みたいな事)
でOKをクリック。しばらくすると、再びアラートが出現します。その時に出力された数字(0x******)を
メモ帳等にメモしておいてください。
一旦sappyを閉じ、同じフォルダ内にあるsappy.xmlをメモ帳か何かで開いてください。
その中に、自分が読み込みたいゲームの名前(Pokemon Fire Redなど)の1行上にある</rom>というところから、
次の</rom>の手前にある</playlist>までコピってください。そして、</playlist>の下にそれを貼り付けてください。
次に、rom codeとsongtableを変更します。ポケモンファイアレッド(英語版)の場合、BPREとなっているはずです。
最後のEをJに変更し、songtableはさっきメモした数字を入力してください。
あとは、上書き保存して完了です。音楽のタイトルは、わかりやすいように日本語化しておくと便利です。
以上の準備ができたら、sappyで音楽を置き換えます。
最初にmidi2gbaを解凍、その後、置き換えたいMidiファイルをMidi2GBAのフォルダ内に入れてください。
そして、mid2agbという実行ファイルにMidiをD&Dしてください。sファイルが作られます。
後はsappyでAssemble songから.sファイルを選択、Base destination offset に変えたい音楽のオフセットを入力
し、Assemble that ugly thing! を選択してしばらく待つ。
するとDone!…っていうのが出てくるから、はいを選択。それで、ROMに書き込みは完了しました。
この時、.SファイルはMidi2GBAと同フォルダにないと、失敗する可能性があります。
後は実際にエミュレータで動作確認。音楽が流れていれば成功!
音の改善方法
音楽は置き換えられるものの、音がピコピコになってしまうという場合があります。
これは主人公が壁にぶつかったりすると途切れてしまうので、主旋律がピコピコでは話になりません。
それなら、DominoなどのMidi編集ソフトでMidiを再編集しましょう。
まず、置き換える場所の音楽(例えばマサラタウンだとする)をsappy2006のMidiドライバーモードで聞いてみましょう。
ゲームで流れているものとは、違った音色で流れてきますよね。
それをMidiファイルに保存するなりして、Midi編集ソフトで開いてください。
各パートが使っている音源がわかるはずです。
そして、実際に置き換える音楽(例えばトキワシティだとする)の各パートの楽器を
マサラの方で使われている楽器の音色にあわせて変更します。
そして、編集したMidiをsファイルにして、通常通り置き換えてみてください。
ピコピコ感はなくなり、まともになっているはずです。
(ダメな場合もあります。)
ループ設定法
ゲーム内では、音楽は永遠にループしています。しかし、普通に音楽を置き換えてもループはしません。
ループをする場合はsファイルを編集して行うのが一番です。
まずsファイルをメモ帳で開き、下にスクロールします。そして、Track2とあるところで一旦止めてください。
その上に.byte FINEとか書いてあるはずです。
(↓こんな感じ。これはパートの一番最後の部分なので、音楽の長さによって025などが変わります。)
@ 024 ----------------------------------------
.byte PATT
.word ファイル名_1_008
@ 025 ----------------------------------------
.byte FINE
@**************** Track 2 (Midi-Chn.6) ****************@
↑の場合は、024の下に命令スクリプトを追加します。(024を書き換えると曲によってループした際に各パートのループ位置が変化する可能性がある)
@ 024 ----------------------------------------
.byte PATT
.word ファイル名_1_008
@ 025 ----------------------------------------
.byte GOTO
.word ファイル名_1_loop
@ 026 ----------------------------------------
.byte FINE
@**************** Track 2 (Midi-Chn.6) ****************@
これは「ファイル名_1_loop」という言葉がある場所に行きなさい、という命令スクリプトです。
後は入力した部分から手前のループしたいところ(↓の場所だとする)
@ 008 ----------------------------------------
ファイル名_1_008:
に、このように↓入力してやってください。
@ 008 ----------------------------------------
ファイル名_1_loop:
ファイル名_1_008:
これを他のパートも同様に設定します。
(他のパートの場合「ファイル名_2・・・」のように変わっていくので注意してください。)
すべてのパートの設定が終わったら、最後にsappyで置き換えてエミュで聞いてきましょう。
きちんとループしていたら、成功です。
(エミュで確認する前にsappyで聞いてみてください。それで、sappyが閉じてしまうのなら、入力ミスがあります。)
その他Q&A
Q.置き換えようとすると「not found MPlayDef.s」みたいなのが出てきて置き換えられない。
A.sファイルはMidi2GBAのフォルダ内に入れておかなければなりません。(MPlayDef.sがあるため。)
ファイルの選択は、面倒がらずにやりましょう。
Q.音楽をmidiファイルに保存できない。
A.sappy2006でダメだったら、Bouche氏が作った「Sappy」(2006とは違います)で保存しましょう。
ただし、それで保存したmidiはsファイルに変換できないようです。
操作方法などは各自で調べてください。
Q.sappyでは流れるのに、ゲームでは流れない!
A.次のようにやってみてください。
準備するもの:既にsappyで音楽を変えたがゲームでは流れないROM(Aとする)音楽を変えていないROM(Bとする)
まず、Aをsappyで開き、流れない曲を選択します。そして、左側にあるメニューバーから
Export tracksを選択。1の所はすべてチェックを入れておいて、2のところは『$P』か『$T』のどっちかを入力する、
と書いてあるので、どちらかを入力して($Tは置き換えるときに使い、$Pは新規にインポートする時に使うようです。)OKを押します。
するとAの入っているフォルダ内に数字のファイルが生成されたはずです。($Tの場合)
次にBをsappyで開き、置き換えたい曲を選択します。そして、今度はImport tracksを選択します。
そして、先ほど生成されたファイルすべてにチェック。(Bの入っているフォルダ内にそれらのファイルを移しましょう)
チェックしたらOKを押す。それで置き換えられるので、最後にはいを選択。以上で完了です。
できたら、エミュで確認してください。今度こそ、きちんと再生されたはずです。
(これでもダメだったら、無理です。)
Q.置き換えた曲の次の曲が変になったんだけど・・・。
A.その場合は、上記の方法でやってみてください。
Q.ドラムがピアノになって悲しいことになった・・・。
A.よくわかりませんが、ドラムの音量を他のパートより極端に小さくしてカバーする方法があります。
Q.エメラルドの音楽をファイアレッドに移せない?
A.上記の方法で可能。
おまけ、音楽のアドレス一覧(ファイアレッドのもの)
音楽の一覧。入力する場合は、逆順にしてください。
(たとえば、RSのトレーナーバトルは、109と入力してください)
アドレス | 曲名? |
00 00 | 音楽なし |
08 01 | 進化、サファリゾーン |
09 01 | トレーナーバトル(RS) |
0A 01 | ジムバトル(RS) |
0B 01 | 通信時の曲(ピアノのヤツ) |
10 01 | ガイドなど |
11 01 | ゲームコーナー |
12 01 | ロケット団アジト |
13 01 | ジム |
14 01 | プリンの歌 |
15 01 | オープニングのゲンガーとニドリーノが戦ってるとこの曲 |
16 01 | タイトル画面の曲。 |
17 01 | グレン島 |
18 01 | シオンタウン |
1A 01 | 自転車 |
1B 01 | ロケット団との遭遇(バトル前の曲) |
1C 01 | ミニスカートとの遭遇(バトル前の曲) |
1D 01 | ポケモントレーナーとの遭遇(バトル前の曲) |
1E 01 | 殿堂入り |
1F 01 | トキワの森 |
20 01 | お月見山 |
21 01 | 無人発電所、ポケモン屋敷 |
22 01 | エンディング |
23 01 | 1番道路 |
24 01 | 最初にオーキドが話すところの曲 |
25 01 | いろいろな道路 |
26 01 | セキチクシティの隣の道路 |
27 01 | ポケモンリーグ |
28 01 | VSジムリーダー |
29 01 | VSトレーナー |
2A 01 | VS野生ポケモン |
2B 01 | VSチャンピオン |
2C 01 | マサラタウン |
2D 01 | オーキド研究所 |
2E 01 | 「おーい待て! 待つんじゃ!」の音楽 |
2F 01 | ポケモンセンター |
30 01 | サントアンヌ号 |
31 01 | なみのり |
32 01 | ポケモンタワー |
33 01 | シルフカンパニー |
34 01 | ハナダシティ |
35 01 | タマムシシティ |
36 01 | トレーナーに勝利 |
37 01 | 野生ポケモンに勝利 |
38 01 | ジムリーダーに勝利 |
39 01 | クチバシティ |
3A 01 | トキワシティ |
3B 01 | ライバルのテーマ |
3C 01 | ライバルのテーマ2 |
3D 01 | ファンファレー |
3E 01 | 何かをもらった |
3F 01 | ポケモンを捕獲 |
40 01 | トレーナーカードの撮影 |
41 01 | Gamefreakと表示されるところのキラキラキラ、っての。 |
42 01 | ポケモン図鑑に登録されます!の曲 |
43 01 | イントロメッセージ① |
44 01 | イントロメッセージ② |
45 01 | イントロメッセージ③ |
46 01 | ゲームコーナー(+1) |
47 01 | ゲームコーナー(+2) |
48 01 | ポケモンセンター(高音版) |
49 01 | 不思議な贈り物 |
4A 01 | ゲームコーナー(+3) |
4B 01 | イワヤマトンネル |
4C 01 | ガイドなど(alt) |
4D 01 | ナナシマの道路(水の散歩道など) |
4E 01 | きのみの森 |
4F 01 | ナナシマ1~3 |
50 01 | ナナシマ4~5(ヒワダタウン) |
51 01 | ナナシマ6~7(キキョウシティ) |
52 01 | ポケモンの笛 |
53 01 | VSデオキシス |
54 01 | VS伝説のポケモン |
55 01 | VS伝説のポケモン(54との違いは、ドラムがない) |
56 01 | ジムリーダーとの遭遇(バトル前の曲) |
57 01 | デオキシス登場 |
58 01 | トレーナータワー |
59 01 | マサラタウン(高音版) |
5A 01 | おしえテレビ |