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

2012年8月17日(金) 21:06

ゆったり64バイト

 自分はプレステのCPUに関しては、32ビットということぐらいしか知識がない。奇数アドレスのアクセス制限があるのかどうかとか、その類の話はまるで分からない。そこはメモリー解析のハンデだが、それほどのハンデではないと思っている。やっているうちに分かるものだ。

 座標は unsigned 1 byte でサーチすると、簡単に発見できた。それを足掛かりに、モンスター用ワークエリアの見当を付ける。確定ではないが、1匹あたり64バイトが確保されていると思われる。
 アドレスの先頭は、モンスターが存在すれば0で存在しなければ1である。
 先頭+1バイト目が、X座標。
 先頭+2バイト目が、Y座標。
 先頭+3バイト目は、恐らく表示用キャラクターコード。

先頭アドレス 1面
プーカ1 001305DE 左上
プーカ2 0013061E 右上
プーカ3 0013065E 右下
プーカ4 0013069E ×
ファイガ1 001306DE ×
ファイガ2 0013071E 左下
ファイガ3 0013075E ×
ファイガ4 0013079E ×

 ちなみに、オリジナルのゲーム基板では1匹に16バイトしか使用されていない。モンスター存在フラグも、1バイトではなく1ビットだ。
 自機の座標は、Xが 001309C0 で、Yが 001309C2 の可能性が高い。
 サーチエリアが絞り込まれたため、モリを刺されて足止め中かどうかなど貴重な情報も、間もなく取得できるだろう。そうなれば、

・足止めされていないモンスターが足止めされているモンスターより自機に近い。
・その一番近いモンスターと自機の距離が、一定ドット数より小さい。

などの場合に、そのモンスターの方に振り返ってモリを撃つ。さもなければ前進する。などという
lua スクリプトが組めるようになる。
 1フレーム単位で操作しても、自機の動きは追随しない。追随してくれる最小フレーム数を調査し、理論上最高速のモリ捌きを
lua に行なわれる。それが、自分の目論見だ。攻略パターンと得点に関しては、人間のエキスパートプレイヤーと大差ないかもしれない。しかし、モリ捌きに関しては明らかに人外だと分かるような映像になるのではないか。そう期待している。

 ディグダグ2のTASが上がっていたが、ファミコン版は大幅にプレーヤー有利に改変されている。アーケード版やプレステ版では、ポンプボタンを連打するだけではどうにもならない。敵を膨らませている最中に、それを乗り越えて別の敵が来てやられてしまう。新たな近い敵にモリを刺すには、モリを一度引き抜かねばならない。それには、一度反対側を向かねばならない。

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