上に戻る
2.WRAMも使っちゃう?
概要
 800h(2Kバイト)しかなく、当然、ほぼ使い果たされているメモリ。
 これに、拡張ワークRAM2000h(8Kバイト)を導入できたら、大胆な処理が出来そうですよね。
 例えば、大工事でしょうが、マップをメモリに展開するような仕様にしたり。(※私にはそんな事をする気力・技術はありません)
 そこまでやらなくても、「絶対に他で使われていないことが確定している」メモリが、実用上ほぼ無限に確保できるというだけでおいしいです。
 オブジェクトのパラメータを拡張するのも良さそうですね。
 例えば、ロックマン4では、オブジェクトタイプ(普通はObjectIDというやつ)依存で、処理ルーチンのバンクが決められてしまうのですが、そのバンクすらRAM上で定義すれば、動的にあらゆるバンクを処理ルーチンに指定できます。
やり方
 MMC3のIOレジスタにアクセスして、WRAMを使うように設定してもらいます。
 具体的には、
ttp://www.kevtris.org/mappers/mmc3/index.html
 この辺のウェブサイトを参考にして、A001に80を書き込めばOKです。
 起動時に、どこかにスペースを設けて
lda #$80
sta $A001
 とするだけですね。
 これで、6000-7FFFはあなたのものに!……なるかも。
 というか、エミュによっては、この宣言しなくても6000-7FFFが使えたりしますが……
問題点
 ROM拡張同様に、倫理(?)的な問題があります。
 そこでの理論と同様に、とりあえず、それは許すことにします。

 もう一つ、深刻かもしれない問題があります。
 上記ウェブサイトでの実際のボードには、
・VRAMが積まれている
・WRAMも積まれている
 というボードは存在していません。
 ひょっとしたら、MMC3では、両方積めるような構造に出来ないのかもしれません。
 やれやれ、ひょっとして、これも不毛のハックなのでしょうか……
(71)2008年9月15日 プレさ兵衛
inserted by FC2 system