永久倍速のやり方

とうとうSFC版風来のシレン最大の謎を解明する時が来てしまいました。
永久倍速は確実に起こす方法はないとかセーブデータが欲しいとか言った直後に判明したというのも困ったものですが。
やり方から言うと、「キャラ番号00のガイコツまどうに杖を振られて倍速効果が出るとそのまま永久倍速になる」です。

このバグの原因を解説します。
$7E8780はシレンの速度(01 通常,02 倍速)を示し、$7E8708は通常は00で、シレンが倍速のときその残りターンを示します。
$7E8708は00以外だとターン毎に値が1減少し、01から00になった時にシレンの速度を通常に戻します。しかし、シレンが倍速で$7E8708が00だと倍速はいつまで経っても解除されることがありません。この状態が永久倍速です。
そして、ガイコツまどうの倍速効果ですが、これは引数$01を$7E8708に入れるようになっています。しかし、このルーチンの前になければならない筈の、$01に残りターン数を設定する処理が忘れられています。
それでは$01には何が入っているのかというと、杖を振ったガイコツまどうのキャラ番号が以前の処理で入っています。つまり、倍速の残りターンは、杖を振ったガイコツまどうのキャラ番号になってしまいます。
従って、キャラ番号00のガイコツまどうに杖を振られて倍速効果が出ると、残りターンが00の倍速、すなわち永久倍速の完成ということになります。

キャラ番号は、シレンが常に13で、モンスターは12から前に割り当てられていくので、キャラ番号00はモンスターの数を限界まで増やさないと割り当てられません。だから、いざ検証しようと思って通常のフロアで敵にガイコツまどうの肉を投げ付けても永久倍速は起こりません。
それに対して、モンスターハウスならキャラ番号00のガイコツまどうに杖を振られるということは十分起こり得ます。発見報告は複数あるが、それを検証しようとしても誰も発見できない、ということにも納得です。
キャラ番号はメモリを調べなければ、先に行動するモンスター程大きいということくらいしか分かりません。トドを分裂させて最後に分裂したトドにガイコツまどうの肉を投げ付け、杖を振ってもらうのが最も簡単な方法でしょう。

ということで、モンスターハウスや罠が関係していると言われていましたが、きっとそれらは私が言うようにモンスターハウスで杖を振られて永久倍速になり、その後モンスターハウスにある罠を踏んでそれが原因だと勘違いしたのでしょう。
このバグ技を意図的に使って、風来のシレンランキング等にエントリーしたりしないで下さい。
[PR]
by oyasen | 2010-03-04 20:21 | 改造・解析
<< アイテムエラー ニコニコ生放送 >>