読者です 読者をやめる 読者になる 読者になる

FC『ダブルムーン伝説』預かり所バグの実用化 その5

預けアイテム個数 $63FE が 0x30 より大きい場合、さらにアイテムを預けられることが判明したので補足しておきます。49番目の空欄を引き出す技についてはその1からの説明を参照。

アイテムを預けると、アドレス 0x63FF + (預けアイテム個数) にアイテムIDが書き込まれ、預けアイテム個数が1増えます。これは預けアイテム個数が 0x30 を超えていても同様なので、49番目の空欄を引き出すバグで先頭の預けアイテムを個数に変換することで、望みのアドレスを書き換えることが可能になります。

例えば、4人目のキャラID $647A を書き換えたい場合

  • 預けアイテム先頭をディスペのしょ (0x7C) にして48個預ける
  • 49番目の空欄を引き出し、預けアイテム個数を 0x7C - 1 = 0x7B にする
  • 書き込みたいキャラIDに対応するアイテムを預ける(例えば 0x5D ならまほうのもと)。これで 0x63FF + 0x7B = 0x647A にアイテムIDが書き込まれる

狙ったアドレスに対応するアイテムを持っていなくても、預けるたびに個数が1増えることや、49番目を引き出したときのシフト処理を活用すれば何とかなる場合もあります。

なお、このゲームは基本的にこの手の判定を「n個以上」ではなく「n個に等しい」かどうかで行っているようです。キャラが持っているアイテム個数についても同様なので、キャラIDをいじってセーブ→ロードしてバグキャラを出現させれば、アイテム欄より後ろのメモリも書き換えられます(これにより次のキャラのステータスをいじったりできるようです。今のところTAS的にはあまり役に立ちそうにはありませんが…)。