アドレス | 型 | 内容 |
---|---|---|
$00-$1F | 雑用 | |
$20 | ||
$21 | u8 | PPU_CTRL ($2000 ) 管理用 |
$22 | u8 | PPU_MASK ($2001 ) 管理用 |
$23 | u8 | PPU_SCROLL ($2005 ) x 管理用 |
$24 | u8 | PPU_SCROLL ($2005 ) y 管理用 |
$25 | ptr | |
$27 | ptr | PRG 6 内のパレットテーブル $BC3E へのポインタ (不変) |
$29 | ||
$2A | 雑用 | |
$2B | (実質未使用) | |
$2C | u8 | |
$2D | (未使用) | |
$2E | u8 | |
$2F | u8 | MMC1: 制御レジスタ ($9FFF ) 管理用 |
$30 | u8 | MMC1: PPU $1000-$1FFF の CHR バンクID管理用 |
$31 | u8 | MMC1: PPU $0000-$0FFF の CHR バンクID管理用 |
$32 | u8 | MMC1: CPU $8000-$BFFF の PRG バンクID管理用 |
$33 | u8 | |
$34 | u8 | 1P 生入力 (ABSTUDLR) |
$35 | u8 | 1P エッジ入力 (ABSTUDLR) |
$36 | u8 | 2P 生入力 (ABSTUDLR) |
$37 | u8 | 2P エッジ入力 (ABSTUDLR) |
$38 | u8 | フレームカウンタ (NMI 待ちを行うたびにインクリメントされる) |
$39-$3A | (未使用) | |
$3B | u8 | |
$3C | u16le | |
$3E | ptr | |
$40-$47 | ptr[4] | |
$48 | u8 | |
$49 | u8 | VRAM の内容に基づいて自機と地形との衝突判定を行うかどうか (0:false, 1:true) レース中は true |
$4A | u8 | |
$4B | u8 | NMI スレッドに対するパレット転送要求フラグ (0:false, 非0:true) |
$4C | u8 | |
$4D | u8 | NMI ハンドラ終了フラグ (0:false, 非0:true) NMI 待ち用。NMI ハンドラ終了時にインクリメントされる |
$4E | (write-only) | |
$4F | ||
$50 | ||
$51 | u8 | 現在の ROUND 内 SS (0-based) |
$52 | u8 | 現在の ROUND (0-based) |
$53 | u8 | CHAMPIONSHIP モードにおける難易度 (0:EASY, 1:NORMAL, 2:HARD) ゲーム内ではそれぞれ "GROUP N", "GROUP A", "GROUP S" と表記される |
$54-$55 | i8[2] | 自機の速度x/yの符号 (0:0, 1:正, -1:負) 自機座標x/y中位の変化を反映する |
$56-$57 | u8[2] | 自機の座標x/y下位 (px)。x, y成分ともに mod 8 |
$58-$59 | u8[2] | 自機の座標x/y中位。x成分は mod 32, y成分は mod 16 他用途への使い回しあり |
$5A-$5B | u8[2] | 自機の座標x/y上位。x成分は mod 16, y成分は mod 64 他用途への使い回しあり |
$5C-$5D | i8[2] | 現フレームにおける自機の変位x/y (px) 他用途への使い回しあり |
$5E-$76 | ||
$77 | u16be | 自機のスピード |
$79 | u8 | |
$7A | u8 | |
$7B | i16le | 自機のエンジン温度 上位バイトが 0x80..=0xEF のときオーバーヒートする |
$7D | u8 | 自機のオーバーヒートタイマー |
$7E-$7F | u8[2] | |
$80 | (未使用) | |
$81 | u8 | 自機の車体が向いている角度 (0..=0xFF )。0 が真上で、時計回り |
$82 | u8 | 自機の移動角度 (0..=0xFF )。0 が真上で、時計回り |
$83 | u8 | 自機の現フレームにおける移動距離 |
$84 | u8 | 現在の自機のスピード上位の上限 |
$85 | u8 | 自機の操作不能タイマー 毎フレームデクリメントされる。非0である間操作不能 |
$86 | u8 | |
$87 | (未使用) | |
$88 | u8 | 自機の状態 |
$89 | u8 | |
$8A | u8 | |
$8B | u8 | 自機の外観が壊れかけかどうか (0:false, 4:true) ダメージ 192 以上で true になる |
$8C | u8 | 自機のダメージ 240 に達した状態でさらにダメージを受けるとクラッシュ |
$8D | u8 | レースの状態 |
$8E-$92 | ||
$93 | 雑用 | |
$94-$95 | (write-only) | |
$96 | 未使用 | |
$97 | u8 | |
$98 | u8 | |
$99 | u8 | 最終ラップ通知タイマー |
$9A | u8 | 自機の DRIVE (0:2WD, 1:4WD) |
$9B | u8 | 自機の INTAKE (0:NORMAL, 1:TURBO) |
$9C | u8 | 自機の TIRE |
$9D | u8 | |
$9E | u8 | 自機の加速力 (最大 54)。値はセッティング依存 加速条件を満たしているフレームで 18 + (加速力) が自機スピードに加算される |
$9F | u8 | 現在の SS における路面状況 (0..=14 )。値が小さい方が状況が良い0..=4 は TARMAC, 5..=9 は GRAVEL, 10..=14 は SNOW として扱われる特に 14 は凍結路面を表す (ROUND 2 でのみ発生しうる) |
$A0 | u8 | 現在の SS における障害物の発生頻度 (0..=13 ) |
$A1-$A2 | u8[2] | 現在の SS における昨日/今日の天候 |
$A3-$A4 | u8[2] | 現在の SS における昨日/今日の気温 (i16 , 摂氏 0.1 度単位) 下位 |
$A5-$A6 | u8[2] | 現在の SS における昨日/今日の気温 (i16 , 摂氏 0.1 度単位) 上位 |
$A7 | u8 | ゲームモード (0:CHAMPIONSHIP, 1:BATTLE-TRIAL, 2:BATTLE-RALLY) |
$A8-$A9 | ||
$AA | u8 | 現在の SS における残り周回数 |
$AB | u8 | 周回の進捗状況 |
$AC-$AF | u8[4] | 現在計測中のタイム |
$B0-$B1 | 雑用 | |
$B2 | u8 | |
$B3 | u8 | コーナー予告スプライト表示タイマー |
$B4-$B7 | u8[4] | 衝突判定用 VRAM アドレス配列 上位 |
$B8-$BB | u8[4] | 衝突判定用 VRAM アドレス配列 下位 |
$BC-$BF | u8[4] | 衝突判定用に VRAM から取得したタイル値を格納するバッファ |
$C0-$C7 | u8[8] | 乱数生成器の内部状態 |
$C8 | u8 | |
$C9-$FF | ||
$0100-$016F | ||
$0170 | u8 | SP マークスプライトを表示中かどうか (0:false, 1:true) |
$0171-$0174 | ||
$0175 | u8 | 逆走周回の進捗状況 |
$0176 | u8 | 逆走による FOUL フラグ (0:false, 1:true) |
$0177-$01FF | u8[137] | スタック領域 |
$0200-$02FF | Sprite[64] | スプライトバッファ |
$0300-$04D9 | ||
$04DA | u8 | スタート時にホイールスピンが発生した際のホイールスピンタイマー初期値 |
$04DB | u8 | スタート時にホイールスピンが発生しうるかどうか (0:false, 非0:true) |
$04DC | u8 | スタート時にホイールスピンが発生した際のホイールスピンタイマー |
$04DD | u8 | スタート時にホイールスピンが発生したかどうか (0:false, 1:true) |
$04DE | u8 | 自機と地形との衝突判定を無効化するデバッグ用フラグ (0:false, 1:true)。通常は常に false |
$04DF-$05CE | ||
$05CF | u8 | 自機のスピード上位の上限の基本値。路面状況およびセッティングに依存 最終的な上限 ( $84 ) はオーバーヒートなどを考慮して決まる |
$05D0 | u8 | |
$05D1 | u8 | |
$05D2-$05D5 | ||
$05D6-$05DA | u8[5] | 現在のゲームに参加しているプレイヤーインデックスの配列 (存在しない場合 0xFF) |
$05DB-$0602 | u8[4][10] | |
$0603-$062A | u8[4][10] | |
$062B-$063E | u16be[10] | 各選手の合計ポイント |
$063F-$0652 | (未使用) | |
$0653-$065C | u8[10] | |
$065D-$06FA | ||
$06FB-$06FE | code | TODO オーディオドライバ用 |
$06FF | (未使用) | |
$0700-$0703 | u8[4] | ソフトリセット判定用 magic 文字列 "RIE " |
$0704 | u8 | |
$0705 | u8 | |
$0706 | u8[8] | 現在のプレイヤー名 |
$070E-$074D | u8[8][8] | 登録されているプレイヤー名の配列 |
$074E-$07D4 | u8[3][45] | ベストタイム配列 |
$07D5-$07F4 | u8[0x20] | 現在のパレット (要求に応じて PPU へそのまま転送される) |
$07F5-$07FF | (未使用) |
bit | 意味 |
---|---|
0-1 | TODO ジャンプ状態? (ジャンプ開始時に 1, 着地時に 3 になる?) |
2 | スリップ中 (水溜まりなどによる) |
3 | クラッシュした敵車と接触中 |
4 | バックギア |
5 | 壁と接触中 |
6 | アンダーステア状態 (タイヤのグリップ力不足による) |
7 | ドリフト中 |
bit | 意味 |
---|---|
0 | タイム計測中 (ポーズ中は 0 になる) |
1-5 | (未使用) |
6 | 最終ラップ突入中 |
7 | ゴール中 (自機のスピード上位が 0 になるまで実際にはゴールしない) |
値 | 意味 |
---|---|
0..=4 | TARMAC (0:SLICK, 1:TM-1, 2:TM-2, 3:TM-3, 4:TM-4) |
5..=9 | GRAVEL (5:GV-1, 6:GV-2, 7:GV-3, 8:GV-4, 9:GV-5) |
10..=14 | SNOW (10:SN-1, 11:SN-2, 12:SN-3, 13:SN-4, 14:STUD) |
値 | 意味 |
---|---|
0 | FAIR |
1 | CLOUDY |
2 | LIGHT RAIN / LIGHT SNOW |
3 | RAIN / SNOW |
4 | HEAVY RAIN / HEAVY SNOW |
雨/雪については、気温が負なら雪、非負なら雨となる。
bit | 意味 |
---|---|
0-5 | (未使用) |
6 | 第2チェックポイント通過済 (ゴール地点の直前) |
7 | 第1チェックポイント通過済 (スタート地点の直後) |
offset | 型 | 内容 |
---|---|---|
0 | u8 | 分 (packed BCD) (タイムが無効なとき 0xFF) |
1 | u8 | 秒 (packed BCD) |
2 | u8 | 1/100 秒 (packed BCD) |
3 | u8 | 1/10000 秒 |
bit | 意味 |
---|---|
0-5 | (未使用) |
6 | 逆走の第2チェックポイント通過 (スタート地点の直後) |
7 | 逆走の第1チェックポイント通過 (ゴール地点の直前) |