レトロでハードな物語

レトロなゲーム機・マイコン・中古デバイスなどをArduinoやAVRで再活用する方法を模索しています。

MSXに増設したSRAMのROM的な使い方 パート2

2025年03月12日 | 電子工作

前回の続き

それでは吸い出したゲームROMをSRAMに読み込んで動作確認していきます。

ROMには色々な種類があって、今回確認できたタイプは3種類ありました。

ベーシックプログラムをROM化したものは、上記のようにページ2で16KB以下と決まっています。

バンク切り替えのROMもありましたが動かせないので詳細は確認していません。知っている限りバンク切り替えタイプには3種類ほどあって、どれもページ1~2の範囲で8KBか16KB単位で切り替えを行うようです。

 

それではゲームROMを読み込んでみますが、まずはSRAMボードのライトプロテクトスイッチをOFFにしてシステムRAMをSLOT2のSRAMボードにした状態でゲームROMを読み込みます。このときROMのロード先もSLOT2にします。拡張SLOT3-2の内蔵RAMは(おそらく)ゲームROMからは使われないと思うからです。

ロード後、ほとんどのゲームROMが正常動作しました。

しかし、起動しても途中でハングするゲームが2つほどありました。

面白いのはここからで、ゲーム動作中にMSXの電源を切って再度電源を入れると、MSX起動画面が表示された後いきなりゲームが起動してきます。

ROMカートリッジがスロットに刺さっているのと同じように動作しています。ROMのヘッダが書き込まれていればRAMでもROMカートリッジのように使えることが分かります。

この状態の時、MSXの電源を切ってからライトプロテクトスイッチをONにして起動してもまったく同じように動作しました。まるでROMのようです。

ところが、上記のハングしていたゲームの内の1つが、プロテクトスイッチONにすることで正常に動作するようになりました。

詳細は不明ですが、ライトプロテクトスイッチの意味はありました。

 

今度はROMのロード先を拡張スロット3-2にするためプロテクトスイッチをONにして試しますが、SDドライブのプログラムは必要なので、あらかじめ拡張ステートメントとしてSLOT2のページ1に書き込んでおいてからプロテクトスイッチをONにします。もちろん、このときMSXが使用するシステムRAMは拡張スロット3-2なので、SDドライブのプログラムはゲームROMをスロット3-2に読み込むように変えてあります。

それではプロテクトスイッチONでROMを読み込みます。動作は上記の場合と一緒でハングする2つのゲーム以外はちゃんと起動してきました。異なるのは電源を切ったときで、拡張スロット3-2はMSX本体内蔵RAMなので電源オフとともにゲームROMの内容は消えてしまいます。MSXを再起動するとBASICのプロンプト画面に戻ります。

 

まとめると、プロテクトスイッチOFF(システムRAMがSRAMボード)で使ったときはROMカートリッジが刺さっているかのように扱えます。MSXの電源を切って再度入れればゲームが起動します。ゲームを途中でリセットしたいときなどに便利ですね。
この場合、違うゲームで遊びたくなったときはMSX本体の電源だけでなくSRAMボードの電源も切ってから、電源を入れ直して別ゲームROMを読み込む必要があります。さらに言うとSDドライブのプログラムも消えてしまうので、カセットインターフェースから読み込み直す作業も発生します。

一部のゲームはSRAMボードに読み込んでからMSX本体の電源を落とし、プロテクトスイッチをONにしてMSXの電顕を入れると動作するものがあります。

 

プロテクトスイッチON(システムRAMが内蔵RAM)で使うときは、ゲームなどの起動直後はプロテクトスイッチOFFのときと変わりませんが、MSXの電源を切るとゲームROMの内容は消えてしまいます。再度MSXの電源を入れるとMSX-BASICのプロンプトにもどります。

このときSRAMボードにはSDドライブのプログラムが消えずにのこっているので、すぐにゲームROMを読み込んで起動することが出ます。複数のゲームROMを次から次へと遊びたいときなどに向いていますね。

 

SRAMにライトプロテクトを付けたことで、様々な使い方が出来で結構便利です。ゲームROMをフラッシュカートリッジなどに書き込んで使うより扱いが簡単だと思います。

欲をいえばバンク切り替えにも対応したいところですが、レジスタやデコードとかの回路が複雑なので手作業での配線はきついです。SRAMの増設が限界です。

 



最新の画像もっと見る

コメントを投稿