マイトアンドマジック (FC) 攻略/解析

RAM

本体内蔵 RAM に加え、カートリッジ側に Save RAM ($6000-$7FFF) が存在する。Save RAM は起動直後から常時有効化されている。

メモリマップ

アドレス内容
$00-$05雑用
$06-$07(未使用)
$08-$09TODO
$0Au8[0x70]味方キャラ構造体操作用バッファ
$7A(未使用)
$7B雑用
$7Cオーディオドライバ関連
$7Dオーディオドライバ関連
$7Eu8音楽の再生制御用
$7Fu8音楽ID
$80-オーディオドライバ関連
$8B-$9Cu8[18]PTバフ配列
$8B-$91u8[7]PTバフ: 各種耐性
$8Bu8PTバフ: 恐怖耐性
$8Cu8PTバフ: 冷気耐性
$8Du8PTバフ: 火耐性
$8Eu8PTバフ: 毒耐性
$8Fu8PTバフ: 酸耐性
$90u8PTバフ: 電撃耐性
$91u8PTバフ: 魔法耐性
$92u8PTバフ: 光源値
$93u8PTバフ: 「バリア」(0:false, 非0:true)
$94u8PTバフ: 「予知能力」(0:false, 非0:true)
$95u8PTバフ: 「水上歩行」(0:false, 非0:true)
$96u8PTバフ: 「幻の犬」(0:false, 非0:true)
$97u8PTバフ: 「精神防御」(0:false, 非0:true)
$98u8PTバフ: 「神の祝福」(0:false, 非0:true)
$99u8PTバフ: 「透明フィールド」(0:false, 非0:true)
$9Au8PTバフ: 「空中シールド」(0:false, 非0:true)
$9Bu8PTバフ: 「パワーシールド」(0:false, 非0:true)
$9Cu8PTバフ: 「呪いの消去」
実質デバフ
$9Du8予約イベント
$9Eu8現在のマップID
$9Fu8現在のマップ内座標x (0..=15)
$A0u8現在のマップ内座標y (0..=15)
$A1u8現在のマップ内座標を u8 に pack した値 (bit0-3:座標x, bit4-7:座標y)
$A2u8現在のPTの向きに対して前方の方角
$A3u8現在のPTの向きに対して右の方角
$A4u8現在のPTの向きに対して後方の方角
$A5u8現在のPTの向きに対して左の方角
$A6u8PTの人数 (1..=6)
$A7-$ACu8各PTキャラの味方キャラID (隊列順)
$ADu8お宝関連
$AEu8お宝関連
$AF-$B4u8[6]お宝の中身
$AF-$B1u8[3]お宝の中身のアイテムID配列
$B2u16leお宝の中身のGOLD
$B4u8お宝の中身のGEM
$B5u8戦闘: 生きている敵の個体数 (0..=15)
$B6-$C4u8[15]戦闘: 各敵キャラのモンスターランク
$C5-$D3u8[15]戦闘: 各敵キャラのモンスターランク内ID
$D4u8戦闘: 敵軍の「強さ」
$D5(write-only)
$D6-オーディオドライバ関連
$E2-$E6雑用
$E7-$EEイベント処理雑用 (マップを出入りするたびにゼロクリアされる)
$EF-$F2雑用
$F3-オーディオドライバ関連
$0100-$01FFスタック領域
$0200u8入力処理用
$0201u8前回の1P生入力 (注意: 複数ルーチンで使い回されている)
$0202u8入力処理用
$0203u8入力処理用
$0204ptr現在の IRQ ハンドラ
TODO
$0244-$0245雑用
TODO
$0248-$024F雑用
TODO
$0275u8現在のマップがバーン地上かどうか (0:false, 1:true)
TODO
$02A8-$02B2u8[11]現在見ているアイテムデータ
TODO
$02CC-$02D0雑用
$02D1u8現在位置の周囲 4 方向の境界
$02D2u8現在位置のマスの各種フラグ
$02D3u8現在のPTの向きに対して前方の境界 (0..=3)
$02D4u8現在のPTの向きに対して前方が通行不可かどうか (0:false, 非0:true)
$02D5u8現在のPTの向きに対して後方の境界 (0..=3)
$02D6u8現在のPTの向きに対して後方が通行不可かどうか (0:false, 非0:true)
$02D7(write-only)
TODO
$0305雑用
TODO
$0366雑用
TODO
$0393-$0394雑用
$0395u8徘徊エンカウント発生フラグ (0:false, 1:true)
TODO
$039Au8先制値 (先制判定/処理参照)
TODO
$039C-$039D雑用
TODO
$03A2雑用
TODO
$03C4-$03D4u8[17]現在見ているモンスターデータ
$03D5TODO
$03D6u16le自軍の「強さ」
$03D8u16le主人公の「強さ」
$03DAu8戦闘: エンカウント直後の敵軍のモンスターランク最大値
$03DB(未使用)
$03DCu8戦闘: 敵軍の友好度
$03DD(未使用)
$03DEu8戦闘前フェイズでの選択による性格変更フラグ (0:false, 1:true)
実質未使用: 詳細
$03DFu8最後に追加されたランダム敵のモンスターランク
本来は多用途の雑用変数と思われる
$03E0-$03E3雑用
$03E4-$03E9u8[6]戦闘: 各味方が近接攻撃可能かどうか (0:false, 1:true)
$03EA-$03EFu8[6]戦闘: 各味方がこのターンの行動を終えたかどうか (0:false, 1:true)
$03F0-$03FEu8[15]戦闘: 各敵の現在HP
$03FF(未使用)
$0400-$040Eu8[15]戦闘: 各敵のAC
$040F(未使用)
$0410-$041Eu8[15]戦闘: 各敵の状態異常
$041F(未使用)
$0420-$042Eu8[15]戦闘: 各敵がこのターンの行動を終えたかどうか (0:false, 1:true)
$042F(未使用)
$0430雑用
$0431TODO
$0432u8戦闘: 敵前衛の個体数
TODO
$0439u8戦闘: 現在の味方の行動が射撃かどうか (0:false, 1:true)
TODO
$0442u8戦闘: ターン数 (最初のターン開始時が 1)
TODO
$044Fu8戦闘: この戦闘で僧ML1「退散」を既に使ったか (0:false, 1:true)
$0450u8戦闘: この戦闘で僧ML7「神の声」を既に使ったか (0:false, 1:true)
TODO
$0457-$045Cu8[6]戦闘: 各味方の素早さ
TODO
$0461-$0466u8[6]戦闘: 各味方の状態異常
TODO
$0472-$0473雑用
TODO
$047D-$0482雑用
TODO
$04A3雑用
TODO
$050Bu8戦闘: オート戦闘中かどうか (0:false, 1:true)
TODO
$0523u8[2]乱数生成器の内部状態
TODO
$061Au8現在位置が暗闇かどうか (0:false, 1:true)
$061B(write-only)
$061CTODO
$061D雑用
$061E(未使用)
$061F-$0621雑用
$0622-$0624(write-only)
$062Bイベント処理雑用 (マップを出入りするたびにゼロクリアされる)
$062C-$062D(write-only) (マップを出入りするたびにゼロクリアされる)
TODO
$0643-$0651u8[15]戦闘: 各敵の素早さ
TODO
$0654イベント処理雑用 (マップを出入りするたびにゼロクリアされる)
$0655-$0656(write-only) (マップを出入りするたびにゼロクリアされる)
TODO
$067Eptr現在の NMI ハンドラ
TODO
$6000-$6001(未使用)
$6002-$6005u8[4]SRAM が初期化済みであることを示す magic 文字列 ("NEMU")
$6006-$600F(未使用)
$6010-$6150codePPU へのデータ転送用コード (64 個の lda #n, sta $2007 が並び、rts で終端)
$6151TODO
$6152-$6154TODO
$6155-$6156(未使用)
$6157TODO
$6158(未使用)
$6159TODO
$615A(未使用)
$615B-TODO
$615D-$617Cu8[0x20]現在のパレット
$617D-$617F(未使用)
$6180-$61BFu8[0x40]現在のマップメタデータ(マップ名除く)
TODO
$6200-$62FFu8[0x100]現在のマップのマップ境界配列
$6300-$63FFu8[0x100]現在のマップのマップ各種フラグ配列
TODO
$6430-$6463u8[52]オートマッピング可能な全マップに対する踏破済みフラグ配列のチェックサム (XOR 総和)
TODO
$6880-$689Fu8[32]踏破済みフラグ配列: ソーピガルの町
$68A0-$68BFu8[32]踏破済みフラグ配列: ポートスミスの町
$68C0-$68DFu8[32]踏破済みフラグ配列: アルガリーの町
$68E0-$68FFu8[32]踏破済みフラグ配列: ダスクの町
$6900-$691Fu8[32]踏破済みフラグ配列: エルキューンの町
$6920-$693Fu8[32]踏破済みフラグ配列: ソーピガルの地下
$6940-$695Fu8[32]踏破済みフラグ配列: ノーザンバリアー洞穴
$6960-$697Fu8[32]踏破済みフラグ配列: ポートスミスの地下
$6980-$699Fu8[32]踏破済みフラグ配列: エルキューンの地下
$69A0-$69BFu8[32]踏破済みフラグ配列: ダスクの地下
$69C0-$69DFu8[32]踏破済みフラグ配列: コリンブルッフ洞穴
$69E0-$69FFu8[32]踏破済みフラグ配列: ボルカノ神殿
$6A00-$6A1Fu8[32]踏破済みフラグ配列: 鷹の目洞穴
$6A20-$6A3Fu8[32]踏破済みフラグ配列: ホワイトウルフ洞穴
TODO
$6CC0-$6CDFu8[32]踏破済みフラグ配列: デュームの城
$6CE0-$6CFFu8[32]踏破済みフラグ配列: ホワイトウルフの城
$6D00-$6D1Fu8[32]踏破済みフラグ配列: アラマーの城
$6D20-$6D3Fu8[32]踏破済みフラグ配列: ブラックリッジノース
$6D40-$6D5Fu8[32]踏破済みフラグ配列: ブラックリッジサウス
$6D60-$6D7Fu8[32]踏破済みフラグ配列: ドラガデューンの城
$6D80-$6D9Fu8[32]踏破済みフラグ配列: ドラガデューン地下1
$6DA0-$6DBFu8[32]踏破済みフラグ配列: ドラガデューン地下2
$6DC0-$6DDFu8[32]踏破済みフラグ配列: ドラガデューン地下3
$6DE0-$6DFFu8[32]踏破済みフラグ配列: 魔法の砦地下1
$6E00-$6E1Fu8[32]踏破済みフラグ配列: 魔法の砦地下2
$6E20-$6E3Fu8[32]踏破済みフラグ配列: 森のあばら屋地下1
$6E40-$6E5Fu8[32]踏破済みフラグ配列: 森のあばら屋地下2
$6E60-$6E7Fu8[32]踏破済みフラグ配列: レイバン砦地下1
$6E80-$6E9Fu8[32]踏破済みフラグ配列: レイバン砦地下2
$6EA0-$6EBFu8[32]踏破済みフラグ配列: エルドラド地下1
$6EC0-$6EDFu8[32]踏破済みフラグ配列: エルドラド地下2
$6EE0-$6EFFu8[32]踏破済みフラグ配列: エルドラド地下3
$6F00-$6F6Fu8[0x70]味方キャラ構造体 (ID=0)
$6F70(未使用)
$6F71-$6F76u8[6]各PTキャラの味方キャラIDのセーブ/ロード用バッファ
$6F77u8PT人数のセーブ/ロード用バッファ
$6F78-$6F7E(未使用)
$6F7Fu8$6F00-$6F7E のチェックサム
$6F80-$6FEFu8[0x70]味方キャラ構造体 (ID=1)
$6FF0-$6FFE(未使用)
$6FFFu8$6F80-$6FFE のチェックサム
$7000-$706Fu8[0x70]味方キャラ構造体 (ID=2)
$7070-$707E(未使用)
$707Fu8$7000-$707E のチェックサム
$7080-$70EFu8[0x70]味方キャラ構造体 (ID=3)
$70F0-$70FE(未使用)
$70FFu8$7080-$70FE のチェックサム
$7100-$716Fu8[0x70]味方キャラ構造体 (ID=4)
$7170-$717E(未使用)
$717Fu8$7100-$717E のチェックサム
$7180-$71EFu8[0x70]味方キャラ構造体 (ID=5)
$71F0-$71FE(未使用)
$71FFu8$7180-$71FE のチェックサム
$7200-$726Fu8[0x70]味方キャラ構造体 (ID=6)
$7270-$727E(未使用)
$727Fu8$7200-$727E のチェックサム
$7280-$72EFu8[0x70]味方キャラ構造体 (ID=7)
$72F0-$72FE(未使用)
$72FFu8$7280-$72FE のチェックサム
$7300-$736Fu8[0x70]味方キャラ構造体 (ID=8)
$7370-$737E(未使用)
$737Fu8$7300-$737E のチェックサム
$7380-$73EFu8[0x70]味方キャラ構造体 (ID=9)
$73F0-$73FE(未使用)
$73FFu8$7380-$73FE のチェックサム
$7400-$746Fu8[0x70]味方キャラ構造体 (ID=10)
$7470-$747E(未使用)
$747Fu8$7400-$747E のチェックサム
$7480-$74EFu8[0x70]味方キャラ構造体 (ID=11)
$74F0-$74FE(未使用)
$74FFu8$7480-$74FE のチェックサム
$7500-$756Fu8[0x70]味方キャラ構造体 (ID=12)
$7570-$757E(未使用)
$757Fu8$7500-$757E のチェックサム
$7580-$75EFu8[0x70]味方キャラ構造体 (ID=13)
$75F0-$75FE(未使用)
$75FFu8$7580-$75FE のチェックサム
$7600-$766Fu8[0x70]味方キャラ構造体 (ID=14)
$7670-$767E(未使用)
$767Fu8$7600-$767E のチェックサム
$7680-$76EFu8[0x70]味方キャラ構造体 (ID=15)
$76F0-$76FE(未使用)
$76FFu8$7680-$76FE のチェックサム
$7700-$7EFFu8[0x800]セーブデータ ($6F00-$76FF のコピー)
$7F00-$7FFFu8[16][16]各味方キャラの名前

詳細

入力

ABSTUDLR 形式 (bit0:R, bit1:L, ..., bit7:A)。

方角

意味
0
1
2
3西