本体内蔵 RAM に加え、カートリッジ側に Save RAM ($7F80-$7FFF
) が存在する。
Save RAM はセーブ/ロード時のみ有効化される。
アドレス | 型 | 内容 |
---|---|---|
$00 | u8 | 現在のマップデータインデックス (0..=15 )マップIDとは異なる SRAM テストルーチン内では雑用変数として使われる |
$01-$07 | 雑用 | |
$08 | u8 | |
$09 | ptr | |
$0B | u8 | |
$0C | ptr | |
$0E | u16le | |
$10 | u16le | |
$12 | u8 | |
$13 | u8 | |
$14 | u8 | $2000 (PPU_CTRL ) 管理用 |
$15 | u8 | $2001 (PPU_MASK ) 管理用 |
$16 | u8 | NMI スレッドで読み取った1P生入力 (ABSTUDLR, 拡張ポート対応) NMI ハンドラ内で毎回更新される |
$17 | u8 | メインスレッドで読み取った2P生入力 (ABSTUDLR, 拡張ポート対応) |
$18 | u8 | (write-only) 前回 NMI スレッドで読み取った1P生入力 (ABSTUDLR, 拡張ポート対応) |
$19 | u8 | 前回メインスレッドで読み取った2P生入力 (ABSTUDLR, 拡張ポート対応) |
$1A | u8 | |
$1B | u8 | |
$1C-1D | (未使用) | |
$1E | u8 | $2005 (PPU_SCROLL ) x 管理用 |
$1F | (未使用) | |
$20 | u8 | $2005 (PPU_SCROLL ) y 管理用 |
$21-$3B | u8[3][9] | 現在のイベントリスト |
$3C | u8 | TODO: 入力関連 |
$3D | u8 | TODO: 入力関連 |
$3E-$53 | TODO: オーディオドライバ関連 | |
$54 | TODO: オーディオドライバ関連 | |
$55-$5D | (未使用) | |
$5E | u8 | NMI ハンドラ内で各種タスクを行うかどうか (0:false, 非0:true) 通常は常に true |
$5F-$62 | TODO: スクロールマージン関連 | |
$63 | 雑用 | |
$64 | u8 | スロットル処理において NMI 待ち中であるフラグ (0:false, 1:true) NMI ハンドラが実行されると true になる |
$65 | u8 | ゲームシーンを 20fps で動かすためのスロットルカウンタ NMI ハンドラ内で毎回インクリメントされ、メインスレッド側では mod 3 で扱われる |
$66-$6B | 雑用 | |
$6C | u8 | 現在のイベントIDまたはワープ先ID |
$6D | u8 | TODO: イベント関連 |
$6E | u8 | メインスレッドで読み取った1P生入力 (ABSTUDLR, 拡張ポート対応) |
$6F | u8 | 前回メインスレッドで読み取った1P生入力 (ABSTUDLR, 拡張ポート対応) |
$70 | u8 | |
$71 | u8 | |
$72 | ||
$73 | ||
$74-$93 | u8[0x20] | 現在見ているアクター共用体をロードして操作するためのバッファ |
$94-$DF | (未使用) | |
$E0 | u8 | |
$E1 | u8 | |
$E2-$E3 | ||
$E4 | u16le | |
$E6-$E9 | 雑用 | |
$EA | u8 | 2 つのアトリビュートバッファのうちどちらを転送するか (0:A, 1:B) 転送を行うたびにトグルされる |
$EB | u8 | $7EF6 (マッパー 80 VRAM ミラーリング) 管理用 |
$EC | u8 | NMI を指定回数待つためのカウンタ NMI ハンドラが PPU タスクを処理するたびにインクリメントされる メインスレッド側では、たとえばこの変数を -2 (0xFE) に設定し、0 になるまで待つことで NMI を 2 回待てる |
$ED | u8 | NMI スレッドに対する PPU タスク要求 |
$EE | ||
$EF | ||
$F0-$FF | 雑用 | |
$0100-$013F | u8[0x40] | アトリビュートバッファ A 転送先は常に $23C0 |
$0140-$017F | u8[0x40] | アトリビュートバッファ B 転送先は H ミラーなら $2BC0 , V ミラーなら $27C0 |
$0180 | u8 | $1E 退避用 |
$0181 | u8 | $20 退避用 |
$0182 | u8 | $14 退避用 |
$0183-$01FF | スタック領域 | |
$0200-$02FF | Sprite[64] | スプライトバッファ |
$0300-$031F | u8[0x20] | 主人公アクター構造体 |
$0320-$03FF | TODO: アクター共用体たち | |
$0400 | u8 | 主人公の現在HP |
$0401 | u8 | 主人公の最大HP |
$0402 | u8 | 主人公の力 (作戦画面での表記は「こうげき」) |
$0403 | u8 | 主人公の耐久 (作戦画面での表記は「ぼうぎょ」) |
$0404 | u16le | 主人公の経験値 |
$0406 | u8 | 主人公のレベル |
$0407 | u8 | 主人公の名声値 |
$0408 | u16le | 所持金 |
$040A | u8 | 薬所持数 |
$040B | u8 | 手形所持数 |
$040C | u8 | 兵力: 将軍 |
$040D | u8 | 兵力: 隊長 |
$040E | u8 | 兵力: 魔道士 |
$040F | u8 | 兵力: 参謀 |
$0410 | u8 | 兵力: 医師団 |
$0411 | u16le | 兵力: 志願兵 |
$0413 | u16le | 兵力: 傭兵 |
$0415 | u16le | 兵力: グルカ兵 |
$0417 | u16le | 兵力: アマゾネス |
$0419 | u8 | 主人公の職業 (0:無職, 1:剣術士, 2:格闘士, 3:魔術師) |
$041A | u8 | 主人公の近接武器 |
$041B | u8 | 主人公の防具 |
$041C | u8 | 主人公の遠隔武器 |
$041D | u8 | ゲームシーンにおける B キーの機能 (0:コマンドメニュー, 1:遠隔攻撃) |
$041E | u8 | |
$041F | u8 | 所持道具マスク (bit0:ハーモニカ, bit1:曼荼羅, bit2:スコープ, bit3:クリスタル, bit4:ベルト) |
$0420 | u8 | 主人公の習得魔法マスク (bit0:でほると, bit1:まんぴー, bit2:とらんじ, bit3:すらっぷ, bit4:へりおん, bit5:くるすく) 魔法は職業が魔術師でないと使えないが、この値の計算自体は職業によらず行われる |
$0421 | u8 | 占領地マスク (bit0:ユース, bit1:ラタニア, bit2:リカントス, bit3:タクテカ, bit4:オシーランド, bit5:エウロン, bit6:キネラシア) |
$0422 | u8 | 精霊ワープ習得マスク (bit0:石, bit1:骨, bit2:木, bit3:切り株) |
$0423 | u8 | 各種洞窟の解錠マスク (bit0:ラモン洞, bit1:バンス洞, bit2:リカルド洞, bit3:パタン洞) |
$0424 | u8 | |
$0425 | u8 | クエスト: 壺 |
$0426 | u8 | クエスト: どくろばな |
$0427 | u8 | クエスト: モンスター 50 体討伐 (アネイデアの町のクエスト屋) |
$0428 | u8 | クエスト: ひかりごけ |
$0429 | u8 | クエスト: 金貨 |
$042A | u8 | クエスト: ダイヤ |
$042B | u8 | クエスト: 浮遊石 |
$042C | u8 | クエスト: 黒真珠 |
$042D | u8 | クエスト: 象牙 |
$042E | u8 | クエスト: モンスター 100 体討伐 (リカルドの町のクエスト屋) |
$042F | u8 | クエスト: 財布 |
$0430 | u8 | クエスト: 悪魔の角 |
$0431 | u8 | クエスト: サイの足跡 |
$0432 | u8 | クエスト: なくしたハート |
$0433 | u8 | クエスト: 海の涙 |
$0434 | u8 | クエスト: 風の粉 |
$0435 | u8 | クエスト: 金のリボン |
$0436 | u8 | クエスト: 星のかけら |
$0437 | u8 | 現在のマップID |
$0438-$043B | u8[4] | $0303-$0306 セーブ/ロード用中間バッファ |
$043C-$043F | u8[4] | $0E-$11 セーブ/ロード用中間バッファ |
$0440 | u8 | $00 セーブ/ロード用中間バッファ |
$0441 | u8 | $031B セーブ/ロード用中間バッファ |
$0442 | u8 | マッパー 80 $8000-$BFFF の PRG バンクID (0x4000 バイト単位) 管理用 |
$0443 | | |
$0444 | | |
$0445 | (未使用) | |
$0446-$0447 | ||
$0448 | ||
$0449 | u8 | NMI カウンタ (NMI ハンドラの呼び出しごとにインクリメントされる) |
$044A | 雑用 | |
$044B | u8 | 現在発動中の持続魔法 (0:(なし), 1:まんぴー, 2:すらっぷ, 3:へりおん) |
$044C-$044D | ||
$044E | u8 | 魔法「へりおん」発動直前の主人公の元の力 |
$044F | u8 | 魔法「すらっぷ」発動直前の主人公の元の耐久 |
$0450 | u8 | スタート地点に戻る2コン技 (UUDDABAB) の現在の入力インデックス |
$0451 | i16le | 持続魔法の残り時間カウンタ 負数で初期化され、負のとき NMI ハンドラ内で毎回インクリメントされ、0 になると持続魔法の効果が切れる |
$0453-$0491 | (未使用) | |
$0492-$0496 | ||
$0497 | u8 | 戦力画面における助言内容選択用カウンタ (mod 4 で扱われる) 助言を聞くたびにインクリメントされる |
$0498-$049F | (未使用) | |
$04A0-$04EB | code | TODO: オーディオドライバ用 RAM コード領域lda $????,x; rts が 19 個並んでいる |
$04EC-$04FF | (未使用) | |
$0500-$05EF | TODO: 地形バッファ | |
$05F0-$05FF | (未使用) | |
$0600-$0603 | 雑用 | |
$0604 | u8 | 次のテキスト出力位置のタイルテーブル内タイル座標x |
$0605 | u8 | 次のテキスト出力位置のタイルテーブル内タイル座標y |
$0606 | u8 | 次のテキスト出力位置のタイルテーブルID (0..=1 , V ミラーを仮定) |
$0607 | 雑用 | |
$0608 | u8 | カーソルが最上段にあるときのカーソルスプライト座標y |
$0609 | u8 | 現在のカーソルスプライトタイルID |
$060A-$060F | (未使用) | |
$0610-$0611 | 雑用 | |
$0612 | u8 | メッセージウィンドウ内部左上隅のスクリーン内タイル座標x |
$0613 | u8 | メッセージウィンドウ内部左上隅のスクリーン内タイル座標y |
$0614 | u8 | メッセージウィンドウ幅 (外枠含む) のインデックス (1:8タイル, 2:16タイル, 3:24タイル) |
$0615 | 雑用 | |
$0616-$0635 | u8[32] | BG上へ 1 行のタイル列を転送要求する際のバッファ |
$0636-$063D | ||
$063E | 雑用 | |
$063F | ||
$0640 | 雑用 | |
$0641 | ||
$0642 | 雑用 | |
$0643-$0648 | ||
$0649-$064D | 雑用 | |
$064E-$0653 | ||
$0654 | u8 | メッセージウェイトタイマー (NMI ハンドラが呼ばれるたびにデクリメントされる) |
$0655-$0659 | ||
$065A-$065E | 雑用 | |
$065F | (未使用) | |
$0660 | u8 | 作戦画面/戦力画面へのテキスト出力位置のタイル座標x |
$0661 | u8 | 作戦画面/戦力画面へのテキスト出力位置のタイル座標y |
$0662-$0663 | 雑用 | |
$0664 | (write-only) | |
$0665 | (write-only) | |
$0666-$0667 | (未使用) | |
$0668-$066C | 雑用 | |
$066D-$0670 | ||
$0671 | u8 | 直前にコマンドメニューで決定したコマンド (0:(キャンセル), 1:はなす, 2:なかま, 3:まほう, 4:どうぐ, 5:たんさく, 6:ようす) |
$0672 | u8 | コマンドメニュー「まほう」「どうぐ」の引数 (対象となる魔法ID/道具ID) |
$0673 | 雑用 | |
$0674-$06AF | (未使用) | |
$06B0-$06DF | ||
$06E0 | ||
$06E1 | ||
$06E2 | u8 | |
$06E3-$06E5 | ||
$06E6 | u8 | バトル開始直前の主人公の元のHP |
$06E7 | (未使用) | |
$06E8 | u8 | 敵が不可視かどうか (0:false, 1:true) 特定のマップでのみ意味を持つ 魔法「とらんじ」または道具「すこーぷ」を使うと false になる |
$06E9-$06EF | (未使用) | |
$06F0 | u8 | |
$06F1-$06FF | ||
$0700-$073F | u8[0x40] | 横方向 PPU データ転送キュー A |
$0740-$077F | u8[0x40] | 横方向 PPU データ転送キュー B |
$0780-$07BF | u8[0x40] | 縦方向 PPU データ転送キュー A |
$07C0-$07FF | u8[0x40] | 縦方向 PPU データ転送キュー B |
$7F80 | u8 | TODO: SRAM テスト関連 |
$7F81-$7F87 | u8[7] | セーブデータが存在することを示す magic 文字列 ("*INAGE*" ) が書き込まれる |
$7F88-$7FC9 | u8[66] | セーブデータ本体 |
$7FCA | u8 | セーブデータのチェックサム (セーブデータ本体 $7F88-$7FC9 の u8 総和) |
$7FCB-$7FFE | (未使用) | |
$7FFF | u8 | TODO: SRAM テスト関連 |
$ED
- NMI スレッドに対する PPU タスク要求$0780
, $07C0
) の内容を転送。
転送終了後、この変数は 0 になる。$0700
, $0740
) の内容を転送。
転送終了後、この変数の bit0 が 0 になる。$0425-$0436
- クエスト進行状況値bit7 はクエストを請けているかどうかのフラグ (0:false, 1:true)。 bit0-6 はクエストの内容により意味が異なる: