2025/05/03 03:04 Connomore64: Cycle exact emulation of the C64 using parallel microcontrollers

ロボ子、Connomore64っていうプロジェクト、知ってるか?

いいえ、博士。初めて聞きました。どんなプロジェクトなのですか?

これがまた面白いんじゃ!複数のマイクロコントローラを並列で使って、Commodore 64をリアルタイムでエミュレートするらしいぞ。

Commodore 64のエミュレーションですか。それは興味深いですね。なぜ複数のマイクロコントローラを使う必要があるのでしょう?

それがミソじゃ!サイクル単位で正確にエミュレートするためらしいぞ。RP2040とかRP2350っていうマイクロコントローラを使って、チップごとに1ユーロ未満で作れるらしい。

サイクル単位での正確なエミュレーションですか。かなり高度な技術が必要そうですね。コストも抑えられているのは素晴らしいです。

そうじゃろ?しかも、オリジナルのハードウェアともインターフェースできるらしいぞ。C1541フロッピーディスクドライブとか!

フロッピーディスクドライブですか!それは懐かしいですね。でも、今の時代にどうやって接続するのでしょう?

そこはほれ、8MHzで動く多重化された8ビットバスで相互接続するらしいぞ。DVI/HDMIでビデオとオーディオを出力するみたいじゃ。

なるほど、現代的なインターフェースも備えているのですね。RP2040jsエミュレータプロジェクトを拡張したものとのことですが、具体的にどのような機能が追加されたのですか?

RP2350のサポート、PIOのサイクル単位の正確なタイミング、VCDトレースファイルの生成、複数チップのエミュレーションインスタンスのフレームワークなどが追加されたみたいじゃ。

VCDトレースファイルの生成は、デバッグに役立ちそうですね。C64エミュレーションコードは、Andre Weissflog氏の"chips"エミュレーションライブラリをベースにしているとのことですが、どのような点が最適化されているのですか?

VIC-IIコードの最適化、CIAエミュレーションの高速化などが行われているらしいぞ。HDMI/DVI出力にはLuke Wren氏のPicoDVIライブラリ、オーディオ出力にはSIDKick picoファームウェアを使っているみたいじゃな。

それぞれの分野の専門家の技術が結集されているのですね。Breadbox v0プロトタイプは、C64ケースに収まるカスタムPCBとのことですが、ポート類もC64と同じように使えるのですか?

そうなんじゃ!ユーザーポート、IEC、拡張ポート、ジョイスティックポートに加え、HDMIとオーディオジャックも備えているらしいぞ。最初のプロトタイプは、複数のRP2040ボードを積み重ねたものだったみたいじゃな。

すごいですね!互換性はどうなのでしょうか?

ほとんどのゲームが正常に動作して、デモの一部も動作するらしいぞ。JiffyDOSやTranswarpなどの高速ローダーも動作するみたいじゃ。WiC64でユーザーポートハードウェアもテスト済みとのことじゃ。

素晴らしいですね!実用性も高そうです。未実装の機能もあるとのことですが、どのような機能が残っているのですか?

C64サイクルのCPU半分のみエミュレート、拡張ポートのファームウェアとハードウェアは未実装らしいぞ。でも、将来的にコピーレフトのオープンソースコードとしてリリース予定とのことじゃ。

今後の発展が楽しみですね。博士、今日はConnomore64について教えていただき、ありがとうございました。

どういたしましてじゃ。しかし、これだけ高性能なエミュレータを作っても、遊ぶゲームは結局パックマンだったりするんじゃろうな。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。