ユーザ用ツール

サイト用ツール


サイドバー

column:終章への道が表示されなくなる現象の考察

緑パッチや怪盗パッチとかの大陸を周回させる改造で、
後半の道が引かれなくなるバグが発生することが有ります。

原因:道のワークメモリ(IRAM)がいっぱいになるためです。


メモリ(IRAM)の 0x03005315 - 0x03005333 に、道IDらしきものが格納される。

怪盗パッチで一度もリセットせずに進めた場合

03005310:00 00 00 00 00 01 09 02 03 04 05 06 07 09 08 0a
03005320:0b 0c 09 0e 0f 10 11 12 16 0e 0f 10 11 12 13 14
03005330:15 17 18 19 20 00 00 00 16 00 00 00 00 00 4c 36


怪盗パッチで最後の方でリセットした状態

03005310:00 00 00 00 00 01 02 03 04 05 06 07 08 09 0a 0b
03005320:0c 0e 0f 10 11 12 13 14 15 16 17 18 19 ff ff ff
03005330:ff ff ff 19 20 00 00 00 16 00 00 00 00 00 4c 36


道を何度も表示すると、道のワークメモリに同じ値が追記される。
また、本来ならば消えている道を消さなければワークメモリに詰まれる。
それによって、本来 ff と空き領域にならないといけないワークメモリが汚染される。
そのため、道を新たに引きたくても、ワークメモリ不足になり、道が引けなくなるのではないか?

なぜ、リセットすれば直るのか?

このワーク領域は、セーブデータではないらしい。
セーブデータは別に有り、リセットしてロードすると
セーブデータから、道情報が再構成され、重複値が消える。
リセットすると、 後半のff領域が復活しているのがわかる。
そのため、ワークメモリに空きが出来、道が引ける。

大陸を周回させる改造を行う場合の注意点

大陸を周回させる改造を行う場合は、
メモリ 03005310~ を表示させながら、重複した道が引かれないかを確認しながらやる必要があります。
もしくは、ここにデータを格納するコードを直して、重複分は無視するようにプログラムを直すとか。
いやらしいのは、リセットすると、空間が綺麗になってしまうので、発見しづらいこと。
まじめにプレーしていると、たいてい後半の高難易度ステージは、1度ぐらいはリセットするから、発見できません。
ステートセーブを使うと、一度もリセットしないプレーとなるので、このバグに陥りやすいです。

column/終章への道が表示されなくなる現象の考察.txt · 最終更新: 2018/09/09 18:03 by aera