Darkside(リンクエラー修正しました)

2014年4月18日(金) 21:15

避けられない調査

 一点読みの自動判定は困難だが、一点読みの飛び込みが成功する条件は相当に限定されている。その限定された条件に適合しているかどうかでフルイに掛け、最後は簡易判定。それで成功候補を出力し、後は手動で検討。これぐらいが妥協点にようだ。
 ガードビームとの当たり判定が厄介だが、厄介な場所は決まっている。その手前までであれば、少々ズレても当たらない。手前ギリギリまで直進し、速度が適正であればステートセーブを出力するようにした。

 うまく行きそうなのだが、結果の優劣が付けられない。速度も内部座標も完全に同一の結果が続出し、どれが最適なのか分からずに途方に暮れる。これはどううしても、1未満の値を探さねばならない。さもないと、行き詰る。

 以前失敗したメモリーサーチを、改めて行う。エミュレーターのサーチ機能では柔軟性に欠けるため、lua
スクリプトでメモリーを読み取って処理する。
 内部速度の下位1バイトが加算されるメモリーアドレスが、どこかに存在するはずだ。しかし、たった1フレームの変化でさえ、候補アドレスが存在しない。これは、冷静に考えると逆におかしい。
 比較は1バイトで行うから、メモリーの内容は256通りしかない。いちおう16384バイトを監視しているから、1フレーム経過した2セットを比較すれば多数の候補が出て来ておかしくない。それなのに、いきなり候補ゼロなのだ。

 当然スクリプトのバグを疑って確認するが、バグっていない。
 どうも、値が変化していないメモリーが多い気がする。
 そこで、1フレーム経過した段階で何でもいいから値の変化したメモリーをリストアップ。これが、意外に少ない。数フレーム進行させてみるが、常時値が変化しているメモリーは50〜60箇所しかない。
 ここで、ミサイルコマンドの解析を行った時のことを思い出す。

 メモリー内容の変化をまるごとCSV出力し、エクセルで読み込んで人間の目で値の変化を眺めるのだ。
 常時値が変化するメモリーを全部読み出し、表にする。ひとまず連続60フレーム分を出力。その時点の内部速度と内部Y座標を合わせて出力し、見比べればソレっぽい変化を示すメモリーが分かるのではないか?

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4