# ミニパット (FC) Memory Map # ========================== $00 U8 $2000, $2001 の値保存用 # パワーは [0, 7] # 方向は [-5, 1] # 他の用途にも使い回されているみたい # ただ、パワーが同じでもゲージ量によって結果が変化する… $05 S8/U8 パワー/方向ゲージに対応する値 $25 U16 $27 U16 $2D U8 たぶんゲージの入力タイミング制御用 # 打った直後に別の用途に使われてるっぽいので、そこを何とかしないと # カップイン判定には使えなさそう $2E U8 カップイン確定時に2になるっぽい? $31 U8 NMI実行フラグ # 0:未実行, 1:実行済 $34 U8 現在の入力パッド # 0:1P, 1:2P $35 U8 1P入力 # RLDUTSBA $36 U8 2P入力 $4B ptr $83-$86 天候に依存する値 # 各種用途に使い回される $8B U8 x成分の符号 # 1:正, 0xFF:負, 0:0 $8C U8 y成分の符号 # x, y成分がともに9以下になったときボールが停止する $8D U16 ボールの速度のx成分(絶対値) # リトルエンディアン $8F U16 ボールの速度のy成分(絶対値) $91 U8 $92 U8 $93 U16 $95 U16 $97 U16 カーソルベクトルx成分の絶対値 $99 U16 カーソルベクトルy成分の絶対値 $9B U16 カーソルx座標(絶対座標) $9D U16 カーソルy座標(絶対座標) $A7 U16 スクロールオフセットx # リトルエンディアン $A9 U16 スクロールオフセットy # リトルエンディアン $AB U16 ボールx座標 # リトルエンディアン $AD U16 ボールy座標 # リトルエンディアン $B3 U8 4-5 左上の穴のワープ先 # 0:左上, 1:左下, 2:右下, 3:右上, 4:ゴール前 $B4 U8 4-5 左下の穴のワープ先 $B5 U8 4-5 右下の穴のワープ先 $B6 U8 4-5 右上の穴のワープ先 $B8 U8 ループカウンタ $B9 U16? 雑用?(乗算器のlhs) $BB U16? 雑用? $BD U16? 雑用?(乗算器のrhs) # $B9 U16 カーソル相対x, y座標に関連する値 # $BD U8? カーソル相対y座標に関連する値 $C1 U32 雑用?(乗算器の結果) $0200-$02FF Sprite[64] スプライトバッファ $047A ptr 関数ポインタ $047C ptr 関数ポインタ $047E ptr 関数ポインタ $0480 ptr 関数ポインタ $0482 ptr 関数ポインタ $04FC U8 現在のコース(0-origin) # $04FD はカップイン後放置していても更新される # ただし 9H でカップインした後はどちらも値が変化しない $04FD U8 現在のホール(0-origin) # スコアボード表示時に更新 $04FE U8 現在のホール(全コース通しての値。0-origin) # スコアボード表示後に更新 $0540 U8 PRGROM-ID保存用 $0544 U8 初期天候? # 0:FINE, 1:CLOUDY1, 2:CLOUDY2, 3:RAINY $0545 U8 天候 $0546 U8 天候に対応する $2001 の値(色強調用) $0547 U8 天候アイコン $0548 U8 $0549 U8 $054A U8 $054B U8 $054C U8 $054D U8 カーブゲージ # [0x10, 0x40], 2刻み。真ん中は 0x28 $054E U8 パワーゲージ # [0x9D, 0xD3], 2刻み。値が小さい方が強い $054F-$0554 U8[6] ゲージ表示用 $0555 $0557 U16 パワー # リトルエンディアン $0575 char[6] 名前入力バッファ $057D U8 障害物フラグ?(種類?) $0584 U8 デモ中かどうか # 0:非デモ, 0xFF:デモ # TODO: プレイヤーデータ構造体の解析 $0638 PlayerData[4] 各プレイヤーデータ $06F8 U8 フレームカウンタ