オブジェクトの状態を管理するメモリのデータです。
オブジェクトメモリは、オブジェクトの状態を管理するメモリ領域でありRAMの$300~5CFを指す。
各項目毎に$00~17の24個分の領域が用意されている。
このうちインデックス0はロックマンの状態が入っており、$01~07は特殊武器等に使われる。
通常のオブジェクトに対しては$08~17を使用する。
以下、Data Crystalの RAM mapを元にした項目リスト。
0300-0317 ObjectID
0318-032F X座標(fraction(小数部))
0330-0347 X座標(low)
0348-035F X座標(high) (部屋番号を表す)
0360-0377 Y座標(fraction(小数部))
0378-038F Y座標(low)
0390-03A7 Y座標(high) (*)
(*)これは上下にスクロールすると増減するものではなく、ジャンプなどでロックマン等のオブジェクトが画面外へ
出たような場合の判定のために使われている。
03A8-03BF X方向速度(low)
03C0-03D7 X方向速度(high)
03D8-03EF Y方向速度(low)
03F0-0407 Y方向速度(high)
ここに値を設定しただけではオブジェクトは移動しない。
通常、移動用のサブルーチンを呼び出すことで移動を行う。
移動用のサブルーチンでは、速度のlow,highはそれぞれ座標のfraction,lowに加減算される。
0408-041F Type Bits
bit7 -> ロックマンに対して当たり判定あり(そのオブジェクトに触れるとダメージを受ける)
bit6 -> 武器に対して当たり判定あり
bit5-0 -> 当たり判定の大きさ(参照番号、$00~3F)
0420-0437 方向
bit3 -> 上
bit2 -> 下
bit1 -> 左
bit0 -> 右
0438-044F Sprite Number(設置型オブジェクトの場合、自身が何番目の設置型オブジェクトかが格納される)
0450-0467 HP
0468-047F 変数A
0480-0497 変数B
0498-04AF 変数C
04B0-04C7 変数D
04C8-04DF 変数E
04E0-04F7 変数F
04F8-050F 変数G
0510-0527 変数H(設置型オブジェクトの場合、自身のEnemyIDが格納されている)
これらの領域を使用することでオブジェクト固有の情報を格納しておくことが可能。
0528-053F Display flags
bit7 -> ?
bit6 -> グラフィックを上下反転させる
bit5 -> グラフィックを左右反転させる
bit4 -> 背景に隠れる
bit3 -> 画面外に出たときそのオブジェクトを破壊しない
bit2 -> 不可視
bit1 -> ブロックになる
bit0 -> 足場になる
0540-0557 アニメーションフレーム
0558-056F アニメーション番号
0570-0587 アニメーションタイマー
0588-059F Enemy Handler(low)
05A0-05B7 Enemy Handler(high)
05B8-05CF Flash Counter(点滅時間)