Connomore64:使用多個微控制器實現週期精確的 C64 模擬

BigGo Editorial Team
Connomore64:使用多個微控制器實現週期精確的 C64 模擬

Commodore 64 在釋出數十年後仍然激勵著硬體愛好者,最新的創新是一種週期精確的模擬器,它採用了獨特的方法來重現這款標誌性8位計算機的體驗。

多個微控制器並行工作

Connomore64 專案採用了一種新穎的 C64 模擬方法,使用多個並行工作的 RP2040/RP2350 微控制器,每個微控制器模擬原始系統的特定元件。與在單個處理器上執行的傳統軟體模擬器不同,這種分散式方法允許實現與原始硬體匹配的微秒級精確計時。該專案使用執行在約 8 MHz 的多路複用 8 位匯流排連線這些廉價的微控制器(每個成本不到 1 歐元),建立了一個可以與原始 C64 外設介面的系統。

Connomore64 技術規格

  • 微控制器:多個 RP2040/RP2350(基於 ARM Cortex M0+)
  • 互連:多路複用8位匯流排,執行速度約8 MHz
  • 影片輸出:DVI/HDMI
  • 音訊輸出:基於 SIDKick pico(使用 reSID 模擬)
  • 相容埠:使用者埠、IEC(軟碟機)、遊戲手柄埠
  • 快速載入支援:JiffyDOS、Transwarp
  • 硬體外形:適合原始 C64 機箱的定製 PCB
  • 潛在成本:較小的定製實現成本低於20歐元

真實硬體相容性使其與眾不同

Connomore64 對復古計算社群特別有吸引力的是它能夠與原始 C64 硬體介面的能力。雖然基於 PC 的模擬器如 VICE 提供了高質量的模擬,但它們通常缺乏與物理外設配合所需的精確即時計時。Connomore64 支援 C64 的使用者埠、用於軟盤驅動器的 IEC 埠、操縱桿埠,並正在努力實現擴充套件埠相容性。

「我喜歡這個!C64 在我童年時代將我引入了計算機世界。我仍然在我的收藏中保留著那臺近40年的老機器,但每次開機我都擔心它會出故障。這比 MiSTer 更好,因為我可以使用物理外設。」

這種相容性擴充套件到 JiffyDOS 和 Transwarp 等快速載入器,這些載入器可以顯著加快從軟盤驅動器載入資料的速度。該專案已經與各種外設進行了測試,包括 WiC64 使用者埠硬體,展示了其超越單純模擬的實際應用。

平衡準確性和效能

雖然該專案旨在實現週期精確的模擬,但一些社群成員注意到了關於圖形渲染的一個有趣設計選擇。開發者重寫了圖形渲染程式碼,使其執行速度比以前的實現快 5-10 倍,但代價是犧牲了一些相容性。這一決定引發了關於完美準確性和實際效能之間平衡的討論,特別是考慮到 RP2040/RP2350 微控制器的有限處理能力。

該專案目前只模擬 C64 每個週期的 CPU 半部分,這限制了與一些擴充套件埠卡帶的潛在相容性。開發者指出,雖然有 Phi 低週期的程式碼,但微控制器不夠快,無法處理它,這突顯了在相對適中的硬體上實現完美模擬的技術挑戰。

當前限制

  • 僅模擬每個 C64 週期的 CPU 部分
  • 圖形渲染為了速度而犧牲了一些相容性
  • 擴充套件埠支援仍在開發中
  • 尚未達到終端使用者可用狀態(概念驗證階段)

超越懷舊:技術成就

社群討論揭示,對 C64 模擬的興趣超越了單純的懷舊情感。原始 C64 的獨特限制和可能性組合繼續激勵著程式設計師和硬體愛好者。正如一位評論者所指出的,8位 CPU 與16位地址空間、簡單的組合語言和記憶體對映外設創造了一個環境,推動程式設計師開發創新技術,產生了在紙面上看似不可能的結果。

Connomore64 專案也是在廉價、低功耗、互連的微控制器上執行計算密集型軟體的一個例子,可能為其他分散式計算應用提供見解。

當前狀態和未來潛力

目前,Connomore64 可以無問題地執行大多數遊戲,包括 Mayhem in Monsterland、R-Type、Bubble Bobble 和 Turrican 等經典遊戲。它還能處理相當一部分將原始硬體推向極限的演示程式。雖然該專案被描述為概念驗證,尚未為終端使用者準備好,但它展示了顯著的潛力。

開發者建立了一個可以放入原始 C64 機箱的定製 PCB,具有標準的 C64 埠以及現代 HDMI 和音訊輸出。未來的可能性包括更小、更具成本效益的定製 PCB,可能將總成本降至 20 歐元以下,使其成為 C64 愛好者的一個可行選擇,讓他們能夠保留復古計算體驗,而不必冒險使用老化的原始硬體。

對於那些對技術細節感興趣的人,該專案建立在幾個現有的開源專案基礎上,包括 rp2040js 模擬器、chips 模擬庫、用於影片輸出的 PicoDVI 以及 SIDKick pico 韌體的音訊埠。這種協作方式突顯了開源社群在儲存和擴充套件計算歷史方面的優勢。

參考:Connomore64