自作のMSXを作りました

しばらくぶりの更新になりますが、まだMSX熱は冷めておらず、チビチビと開発は続けています。

で、去年の10月頃からついにMSXの自作を始めました。

きっかけはちくわ帝国さんの週刊MSXを作る(MSX DIYの元ネタ)です。

MSXって個人でも作れちゃうの!? と驚いて行く末を見守っていたのですが、実際に完成させてしまいました。すごすぎる・・・

ちくわさんだけでなく、KUNINETさんも自作のMSX1を作成されています。

私も昔MSXを触っていた頃はハードもソフトも分からなかったパソコン少年でしたが、あれから30年、それなりに知識も経験も増えましたし、今の私の技術力を集めたらどこまでできるのかを試してみようと思い立ち、無謀にもMSXを作ってみることにしました。

SWはある程度自信があるものの、HWはアマチュアレベルでして、いきなり全部を動かすのは到底無理なので、KUNINETさんのように単機能の基板を組み合わせていくことで、最終的にMSXになることを目指しました。

で、約3ヶ月近く格闘した結果がこちら

MSX1の名作グラディウス2が動いた!!

MSX2の三國志も動いた!!

MSX1用のグラディウス2と、MSX2用の三国志が動くようになりましたー🎉🎉🎉🎉

本当はブログに書きながら少しずつ作っていこうと思っていたのですが、ブログにまとめるのが面倒作るのが面白すぎて、結局ある程度形になってからのブログ公開になってしまいました。

ですので、思い出しながらここまでを振り返って記事にまとめていこうと思います。

今回MSXを作るにあたって、以下の仕様にすることにしました。

  • MSXのバージョン
    • MSX2相当
  • メモリ
    • メモリマッパー対応の 512kB
    • ただ、最初はマッパー非対応で先頭64kBのみを使う
  • クロック
    • 3.58MHzだけど、他のクロックにも切り替えられるようにしておく
    • ただ、3.58MHz以外のクロックに変えたときにサウンドやビデオ出力に影響しないようにCPUクロックと分離する
  • VDP
    • V9938を載せる
    • できればV9958も切り替えられるようにしたい
    • ビデオ出力は、コンポジットとS端子。S端子が無いとSCREEN7はキツイ
  • サウンド
    • PSG搭載
    • FM音源搭載
  • HID
    • できればUSBキーボードにしたい (キーボードを作るのしんどい)
    • コントローラは1ポートのみ
  • カートリッジ
    • 1スロットのみ
    • ±12Vは出せるように準備するけど、まずはなし
  • その他インターフェース
    • CMT (カセットインターフェース) 非搭載
    • プリンタポート 非搭載

こんな感じでROMカートリッジのMSX2ゲームが動くことを目指します。

上記を実現するのに必要な主要なチップは以下になります。

  • CPU
    • Z80系。Z84C00など
  • PPI
    • 8255互換。82C55など
  • ROM
    • パラレル8bitのROM。MSX2では最低64kBは必要。SST39SF010A(128kB)、SST39SF040(512kB)など
  • Main RAM
    • 512kB(4Mbit)。HM628512など
  • VDP
    • V9938(V9958)
  • VRAM
    • 64k×4bit DRAM TMS4464など (SRAM化は難しいらしい)
  • ビデオエンコーダ
    • S端子に必要なY,C出力ができるもの。CXA1645など
  • PSG音源+コントローラポート
    • AY-3-8910 もしくは YM2149
  • FM音源
    • YM2413

値段は高いものもありますが、現時点で全てAliExpressで購入可能です。一番入手が難しいのがV9938/V9958です。これらは結構高価で偽物の恐れもあるので、ヤフオクなどで購入したほうが安心確実かもしれません。私はV9938はヤフオクで買いました。

VDPをMSX1のTMS9918にすれば、若松通商で今でも購入可能です。若松通商では少々お値段は高いですが、Z80やHM628512(SRAM)のDIP品が売られています。今でも買えるってすごいですよね。

ひとまず今回はこのくらいで、次回から作成した基板を紹介していこうと思います。

↓グラディウス2が動いたときのXの投稿。この当時はまだ色々問題が残っていたんですが、グラディウス2だけは動作してくれたので嬉しかったですね

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です