1980年代の家庭用パソコンMSXをもう一度動かしたい。だが実機の入手は難しく、エミュレーターを動かすにもパソコンやFPGAボードが要る。Ivan Svarkovsky氏が公開した「S3-MSX-PC」は、安価なESP32-S3マイコンボード1枚でMSX2+を再現する自作プロジェクトだ。AliExpressで約4ドル(約640円)のボードに、わずかな抵抗とコンデンサー、コネクターを足すだけで、VGAモニターとUSBキーボードをつないだ往年のパソコン環境がよみがえる。
土台にしたのは、ESP32向けエミュレーターのRetro-Goと、MSXエミュレーターのfMSX 6.0だ。ESP32-S3の2つのコアを使い分け、片方がゲーム処理を、もう片方が映像と音声の出力を担う。専用の映像チップは載せず、6本のGPIOピンに抵抗を組み合わせたR-2R方式のはしご回路でアナログ信号を作り、古いVGAモニターに640×480ドット、64色で表示する。音声はSigma-Delta変調を使ったPDM方式で、外付けのRCフィルターを通して鳴らす。
Svarkovsky氏は趣味で取り組んだと説明しており、ESP32-S3の癖に合わせて中身を作り込んだ点が読みどころだ。標準的なエミュレーターのコードはメモリーアクセスが遅くなりがちなため、命令の振り分けにComputed Gotoという手法を持ち込み、CPUのレジスタを直接使うように書き換えた。音源にはPSGやSCC、OPLLといった当時の音源チップを忠実に再現する実装を組み込み、入力遅延も5ミリ秒未満に抑えている。
WiFi経由でブラウザーからゲームや保存データを送り込めるため、SDカードを抜き差しする手間も要らない。ソースコードとビルド済みのファームウェアはGitHubで公開され、回路図や配線、技術的な解説も添えられている。Svarkovsky氏の改変部分はGPL-3.0で公開されているが、土台のfMSXは非商用利用に限るライセンスのため、利用時はこの点に注意したい。