ROMにはあって、CURRENTにはないもの。CURRENTに存在するもの。この3つの条件を満たすデータを、3点DIFFを使い求めます。出てきますが、一番上の方法を選びます。(これが先ほど説明した条件です)そうすると、計算が行われ、3点DIFFの結果がリストに表示されます。この中にバグを発生させているデータがあります。(今回は1つしかないですね。)リストアップされた差分を適当に適応してみましょう。ROMのデータを書き込みます。ROMのデータを書き込みます。3キーを押すと、CURRENTのデータを書き込みます。0キーを押すと、CURRENTのデータを書き込みマークを解除します。基本的に、1キーを押してデータを書き込んでください。データを書き込んだから、F5キーを押してエミュレータを起動してください。バグは解決されましたか?バグが解決されていないならば、このデータではないようです。次のデータを書き込んでみましょう。差分データを書き込んでいるわけですから、ゲームが動かなくなることもあります。その場合は、3キーを押して、CURRENTのデータに戻します。やって、差分をマージしていきましょう。バグが解決されたとしたら、それがバグを引き起こしているデータです。そのデータのアドレスと、書き込まれた内容から、原因を推測しましょう。バグを解決したアドレスを見つけ出したら、そのデータ以外のデータは無関係だと思われるので、3キーを押してCURRENTに戻しましょう。このときも、データを戻しながらバグが再発しないかを確認していきます。すると、犯人は単独ではなく複数犯かもしれません。データをマージしたことで、問題は解決しました。差分をマージしたことによって、問題が解決するならば、それでもいいでしょう。それでは心配だという場合は、データが書き込まれたアドレスに何があるかを調査してみましょう。デバッガーを利用して、ブレークポイントを設置して挙動を観察しましょう。なにか、奇妙なものがそこにあるはずです。今回は、マップ設定で、誤ったマップオブジェクトを指定していましました。0x02を指定していたため、画面が壊れてしまいました。この方法を利用すると、大抵の不可解なバグを1時間ぐらいで修正することが出来ます。しても、原因がわからないバグが発生したら、この方法でバグデータを探してみるといいかもしれません。補助機能データのマージをしていて、訳がわからない状態になったら、右下のボタンを押してください。「変更をすべてキャンセル」します。マージを開始する直前のデータにデータをすべて巻き戻します。これで何度でもマージをやり直すことが出来ます。ツールの使い方に慣れてきたら、楽をしましょう。大量にデータがある場合は、SHIFTキーを押しながら1キーを押してください。データを書き込んで次のデータへフォーカスを自動的に移動します。キーをずっと押しっぱなしにすると、どんどん書き込みを続けます。半分ぐらいマージしてから動作を確認するという二分探索のようなことをしてもいいかもしれません。元ネタこの機能は、私が昔書いた、バイナリ比較でバグ修正を簡易化したものです。バイナリ比較ツールなどで2点マージでは面倒なので、3点マージにして、変更点を絞り込み、楽にマージできるようになっています。以前のリビジョンバックリンク文書の先頭へ。