6 - 912 = -906

終わりました

シレンのバグ。雑記3。

2019-08-19 | バイナリ
誰も調べてない気がする遠投バグ解説。
アドレスはv1.1(書き換え版、NP版、VC版です。v1.0のSFC版ではアドレスがずれる可能性あり)

・はじめにバグ解説
遠投の腕輪を装備して特定のアイテムを敵に当てる。
様々な現象が起こる。
ただし複雑な条件がある。

・なんでこれが起こるのか
$033609 86 00 STX$00 Xレジスタ(遠投が当たった敵のID)を$00に保存
この処理でXレジスタに敵のIDが正常に入ってないことが原因。
じゃあなんで正常なのが入らないかというとこの前の方の処理 $033602 あたりで敵のID保存してないかそれとも投げ処理の最後にID保存処理しないため。
その結果どうなるかというとめちゃくちゃなIDが入って $03360B 22 1C 2C C2 JSL $022C1C (敵IDから種族IDを参照して敵のステータスを設定処理)に飛んで壊れる。

・試しにやったがバグで壊れないんだけど?
特定のアイテム(後述)じゃなきゃダメ。
それ以外の条件として壊れたIDの参照結果(この先でいうフラグは参照元のフラグ。壊れているのでこれ以降の部分を読み込む)が封印フラグがついてない、HP0じゃない、特定の種族IDであるが条件。
満たせていないと何も処理されずに終わる。

・特定のアイテムとは?
武器盾矢腕輪 該当なし
草 幸せ、天使、くねくね、不幸、キグニ、命、毒、睡眠
巻物 ジェノ
壺 やりすごし
おにぎり 該当なし
杖 幸せ、不幸、身代わり、場所替え、ブフー、金縛り、痛み分け
肉 すべて

通常出現するアイテムのみ調査。

・読んでもよくわからない…遠投ってバグ誘発アイテムってこと?
というわけでなく意図的に仕込んで起こすくらいじゃないと発生しないので現状は特に問題ない。
その仕込みも大変。


長くなってきたので次回に続く…?
コメント    この記事についてブログを書く
« シレンのバグ。雑記2。 | トップ | シレンのバグ。雑記4。 »
最新の画像もっと見る

コメントを投稿

バイナリ」カテゴリの最新記事