10/03/10 13:47:14
うーん、画面の情報だって言ってるのに文章だけで理解してもらうってのがやっぱりムリがあるってことか。
そのうち画像を作って、もう少し説明をカンタンにしないとなあ。
詳細の部分はプログラムの話になるから、さらにややこしいよ。
メモリの書き換えがおこるのは、バグった道具でAを押した瞬間。
このとき、名前のでーたがROMから呼び出されて、CD68h~へ20文字分(20byte)コピーされる。
呼び出された名前のでーたは、CD68~からCF45~へコピーされる。
このコピーするプログラムに原因があって、50hを読み込むまでコピーを続けるようになっている。
バグった道具は20byte以内に50hがこないため、本来名前の領域ではない場所までコピーが起こる。
名前を管理する領域のすぐ直後のCD7C~ってのが、たまたま画面のタイル情報を退避しておいたデータだった。
だからこのバグ技には画面の情報が関係している。
で、D078hあたりがプログラムの分岐に関与するので、書き換えられると分岐がおかしくなってフリーズする、んだと思う。
解析できた情報はだいたいまとめておいたので、参考にしてほしい。
URLリンク(www.geocities.jp)