Connomore64:複数のマイクロコントローラーを使用したサイクル精密なC64エミュレーション

BigGo Editorial Team
Connomore64:複数のマイクロコントローラーを使用したサイクル精密なC64エミュレーション

Commodore 64 は発売から数十年経った今でもハードウェア愛好家たちにインスピレーションを与え続けており、最新のイノベーションとして、この象徴的な8ビットコンピュータの体験を再現するユニークなアプローチを取ったサイクル精密なエミュレーターが登場しました。

並列動作する複数のマイクロコントローラー

Connomore64 プロジェクトは、複数の RP2040/RP2350 マイクロコントローラーを並列で動作させ、それぞれが元のシステムの特定コンポーネントをエミュレートするという斬新なアプローチをC64エミュレーションに採用しています。単一プロセッサで動作する従来のソフトウェアエミュレーターとは異なり、この分散型アプローチにより、オリジナルハードウェアと一致するマイクロ秒単位の正確なタイミングが可能になります。このプロジェクトでは、約8MHzで動作する多重化された8ビットバスを使用して、これらの安価なマイクロコントローラー(各1ユーロ未満)を相互接続し、オリジナルのC64周辺機器とインターフェースできるシステムを作成しています。

Connomore64 技術仕様

  • マイクロコントローラー: 複数の RP2040/RP2350 (ARM Cortex M0+ ベース)
  • 相互接続: 多重化された8ビットバス(約8 MHzで動作)
  • 映像出力: DVI/HDMI
  • 音声出力: SIDKick pico ベース(reSID エミュレーションを使用)
  • 互換性のあるポート: ユーザーポート、IEC(フロッピー)、ジョイスティックポート
  • 高速ローダー対応: JiffyDOS 、 Transwarp
  • ハードウェア形状: オリジナルの C64 ケースに適合するカスタム基板
  • 想定コスト: 小規模なカスタム実装で20ユーロ以下

実機との互換性が際立つ特徴

Connomore64 がレトロコンピューティングコミュニティで特に注目されている理由は、オリジナルのC64ハードウェアとインターフェースできる能力です。VICE のようなPC ベースのエミュレーターは高品質なエミュレーションを提供しますが、通常、物理的な周辺機器と連携するために必要な正確なリアルタイムタイミングが欠けています。Connomore64 は、C64のユーザーポート、フロッピードライブ用のIECポート、ジョイスティックポートをサポートし、拡張ポートの互換性にも取り組んでいます。

「素晴らしい!C64は子供の頃に私をコンピュータの世界へ導いてくれました。40年近く経った今でもそのマシンをコレクションとして持っていますが、電源を入れるたびに故障が心配です。これは MiSTer よりも優れている点があり、物理的な周辺機器を使用できます。」

この互換性は、フロッピードライブからのデータ読み込みを大幅に高速化する JiffyDOS や Transwarp などのファストローダーにも及びます。このプロジェクトは、 WiC64 ユーザーポートハードウェアを含む様々な周辺機器でテストされており、単なるエミュレーション以上の実用的な応用を示しています。

精度とパフォーマンスのバランス

このプロジェクトはサイクル精密なエミュレーションを目指していますが、一部のコミュニティメンバーはグラフィックレンダリングに関する興味深い設計選択に注目しています。開発者はグラフィックレンダリングコードを書き直し、以前の実装よりも5〜10倍高速に動作するようにしましたが、その代償として互換性の一部が犠牲になりました。この決断は、特に RP2040/RP2350 マイクロコントローラーの限られた処理能力を考慮すると、完全な精度と実用的なパフォーマンスのバランスについての議論を引き起こしました。

現在、このプロジェクトはC64の各サイクルのCPU半分のみをエミュレートしており、一部の拡張ポートカートリッジとの互換性が制限されています。開発者によれば、Phi低サイクル用のコードはありますが、マイクロコントローラーがそれを処理するのに十分な速度を持っていないとのことで、比較的控えめなハードウェアで完全なエミュレーションを実現する技術的な課題を浮き彫りにしています。

現在の制限事項

  • C64の各サイクルのCPU部分のみをエミュレート
  • グラフィックスレンダリングは速度を優先して互換性を一部犠牲にしている
  • 拡張ポートのサポートはまだ開発中
  • まだエンドユーザー向けではない(概念実証段階)

ノスタルジーを超えた技術的成果

コミュニティの議論から、C64エミュレーションへの関心は単なるノスタルジーを超えていることがわかります。オリジナルのC64における制約と可能性のユニークな組み合わせは、プログラマーやハードウェア愛好家たちにインスピレーションを与え続けています。あるコメンターが述べたように、16ビットアドレス空間を持つ8ビットCPU、シンプルなアセンブリ言語、メモリマップされた周辺機器が、理論上は不可能に思えるような結果を生み出す革新的な技術の開発をプログラマーに促す環境を作り出しました。

Connomore64 プロジェクトはまた、安価で低電力の相互接続されたマイクロコントローラー上で計算集約型ソフトウェアを実行する例としても機能し、他の分散コンピューティングアプリケーションへの洞察を提供する可能性があります。

現状と将来の可能性

現在、Connomore64 は Mayhem in Monsterland、R-Type、Bubble Bobble、Turrican などのクラシックゲームを含む、ほとんどのゲームを問題なく実行しています。また、オリジナルハードウェアの限界に挑むデモの多くも処理します。このプロジェクトは概念実証として説明されており、まだエンドユーザー向けの準備ができていませんが、大きな可能性を示しています。

開発者は、オリジナルのC64ケースに収まるカスタムPCBを作成し、標準のC64ポートに加えて、最新のHDMIとオーディオ出力を備えています。将来的には、より小型で費用対効果の高いカスタムPCBが可能となり、総コストを20ユーロ以下に抑えられる可能性があり、老朽化したオリジナルハードウェアを危険にさらすことなくレトロコンピューティング体験を保存したいC64愛好家にとってアクセスしやすいオプションとなるでしょう。

技術的な詳細に興味のある方のために、このプロジェクトは rp2040js エミュレーター、chips エミュレーションライブラリ、ビデオ出力用の PicoDVI、オーディオ用の SIDKick pico ファームウェアのポートなど、いくつかの既存のオープンソースプロジェクトを基盤としています。この協力的なアプローチは、コンピューティングの歴史を保存し拡張するオープンソースコミュニティの強みを強調しています。

参考: Connomore64