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

PRG-ROM

本作はマッパー 4 (MMC3) であり、PRG-ROM は 0x2000 バイト単位のバンク 32 個からなる。ここでは PRG バンクIDを 0-based (0..=31) で扱う。

CPU メモリマップは以下の通り:

論理アドレス内容
$6000-$7FFFSave RAM
$8000-$9FFF可変バンク領域
$A000-$BFFF可変バンク領域だが、PRG 29 がマップされていることが多い
$C000-$FFFF固定バンク領域。常に PRG 30, 31 がマップされる

Save RAM は起動直後から常時有効化されている。

基本的には 1 つのセグメントが 1 つのバンク領域に対応するが、例外もある:

セグメント一覧は以下の通り (各セグメントの詳細はリンク先を参照):

セグメント論理アドレス内容
PRG 0$8000-$9FFFイベント処理 (ポートスミスの町, アルガリーの町, ダスクの町, エルキューンの町)
PRG 1$8000-$9FFFイベント処理 (ソーピガルの地下, ノーザンバリアー洞穴, ポートスミスの地下, エルキューンの地下, ダスクの地下, コリンブルッフ洞穴)
PRG 2$8000-$9FFFイベント処理 (ボルカノ神殿, 鷹の目洞穴, ホワイトウルフ洞穴, バーン地上A1, バーン地上A2, バーン地上A3, バーン地上A4)
PRG 3$8000-$9FFFイベント処理 (バーン地上B1, バーン地上B2, アラマーの城, バーン地上B3, バーン地上B4, バーン地上C1)
PRG 4$8000-$9FFFイベント処理 (バーン地上C2, バーン地上C3, バーン地上C4, バーン地上D1, バーン地上D2, バーン地上D3, エルドラド地下2)
PRG 5$8000-$9FFF
PRG 6$8000-$9FFFイベント処理 (バーン地上E1, バーン地上E2, バーン地上E3, バーン地上E4, デュームの城)
PRG 7$8000-$9FFFイベント処理 (ホワイトウルフの城, ブラックリッジノース, ブラックリッジサウス, ドラガデューンの城)
PRG 8$8000-$9FFFイベント処理 (ドラガデューン地下1, ドラガデューン地下2, ドラガデューン地下3, 魔法の砦地下1, 魔法の砦地下2, バーン地上D4)
PRG 9$8000-$9FFFイベント処理 (森のあばら屋地下1, 森のあばら屋地下2, レイバン砦地下1, レイバン砦地下2, エルドラド地下1)
PRG 10$8000-$9FFFイベント処理 (エルドラド地下3, エルドラド地下4, アストラル世界, イドの迷宮, ソーピガルの町)
PRG 11$8000-$9FFF
PRG 12$8000-$9FFF
PRG 13$8000-$9FFF
PRG 14$8000-$9FFF
PRG 15 + PRG 21-A$8000-$BA7Fオーディオドライバ
PRG 16$8000-$9FFF
PRG 17$8000-$9FFF戦闘関連
PRG 18$8000-$9FFF魔法関連
PRG 19$8000-$9FFF
PRG 20$8000-$9FFF
PRG 21-B$9A80-$9FFF
PRG 22$8000-$9FFF
PRG 23-24$8000-$BFFF
PRG 25$8000-$9FFFマップデータ (マップID 1..=16)
PRG 26$8000-$9FFFマップデータ (マップID 17..=32)
PRG 27$8000-$9FFFマップデータ (マップID 33..=48)
PRG 28$8000-$9FFFマップデータ (マップID 49..=55), マップメタデータテーブル
PRG 29$A000-$BFFF汎用的なコード/データ
PRG 30-31$C000-$FFFF汎用的なコード/データ