ゲームボーイはアドレスバスが 16 bit 幅で、 ROM と RAM のアドレス空間が限られるため、
多くのゲームでメモリバンクコントローラ (MBC) が使用されています。
メモリバンクコントローラを使用することで、バンク切り替え操作によってアドレス空間を拡張することができます。
MBC チップはゲームボーイ本体ではなく、
カートリッジ内に配置されています。
MBC チップには、次のような種類があります。
- MBC なし (32 KB ROM のみ)
- MBC1 (最大 2 MB ROM と、オプションで 32 KB RAM)
- MBC2 (最大 256 KB ROM と 512 x 4 ビットの RAM)
- MBC3 (最大 2 MB ROM と、オプションで 32 KB RAM と、タイマー)
- MBC5
- HuC1 (赤外線コントローラ付き MBC)
- Rumble
カートリッジ ROM 内の 0147h の場所に、 1 バイトで MBC の種類が書かれています。
MBC なし (32 KB ROM のみ)
32 KB を超えない、小さい容量のゲームでは MBC チップと ROM のバンク切り替えが使われていません。
ROM 領域は 0000-7FFFh の範囲に、そのままマッピングされます。
オプションで A000-BFFF の範囲に、 8 KB までの容量の RAM を接続することができます。
MBC1 (最大 2 MB ROM と、オプションで 32 KB RAM)
MBC2 (最大 256 KB ROM と 512 x 4 ビットの RAM)
MBC3 (最大 2 MB ROM と、オプションで 32 KB RAM と、タイマー)
HuC1 (赤外線コントローラ付き MBC)
MBC のタイミングの問題
MBC5 は、ゲームボーイカラーの倍速モードに対応するように設計されています。
古い MBC (MBC1 から 3) では、倍速モードで十分なスピードが出ないという噂もありまが、
コードとデータが両方とも内部 RAM 領域に配置されている場合は、倍速モードを使用することができます。
最終更新:2017年08月31日 01:16