我的 DIY FPGA 開發板可以執行《雷神之鎚 II》(第四部分)
我分享了設計更先進的六層 FPGA 開發板的過程,採用了 Efinix Ti60 與 DDR3 記憶體,並成功克服 BGA 焊接與 SoC 實作的挑戰,使其能夠執行經典遊戲。
背景
這篇文章是作者 DIY FPGA 開發板系列的第四部分,記錄了他挑戰從零開始設計並製作一塊能夠運行《雷神之鎚 II》(Quake II)的硬體電路板。作者在這一階段決定跨越技術門檻,採用 BGA 封裝的 Efinix Ti60 FPGA 與 1GB DDR3L 記憶體,並詳細分享了他在六層 PCB 佈線、手動焊接 BGA 晶片以及克服訊號完整性挑戰的心路歷程。
社群觀點
Hacker News 的社群對這項計畫展現了高度的敬意,認為從 KiCad 電路圖設計一路走到成功運行遊戲,展現了極強的執行力。討論的核心之一圍繞著硬體設計的「成年禮」,特別是從簡單的兩層板跨越到四層或六層板時所面臨的成本與技術衝擊。有經驗的開發者指出,雖然六層板的價格已顯著提升,但若進一步邁向高密度互連(HDI)技術,成本將會從加法變成乘法。此外,針對作者在 PCB 佈線中使用的對角線走線與空間配置,部分網友猜測這是否為自動佈線工具的結果,但也對作者手動處理長度匹配(Length Matching)的耐心表示讚賞。
關於《雷神之鎚》系列對硬體要求的歷史討論也佔了不小篇幅。網友們回憶起這款遊戲在 90 年代對硬體界的震撼,特別是它對浮點運算單元(FPU)的極高依賴。當時 Pentium 處理器憑藉強大的內建 FPU 成為首選,而 Cyrix 等競爭對手則因 FPU 效能低落且缺乏針對性優化而逐漸退出市場。社群中也討論到將此類遊戲移植到不具備 FPU 的硬體(如 PS1)時,往往需要重寫整個引擎或改用定點運算。這也引發了對 FPGA 實作的思考:在 FPGA 上實現單精度浮點乘法器其實並不比整數乘法器複雜太多,這或許是作者能讓遊戲順利運行的關鍵之一。
最後,社群對 Efinix FPGA 的應用表示關注。由於市場上針對 Efinix 晶片的開發板相對稀缺,不少人建議作者將此設計推向 Crowd Supply 等群眾集資平台。儘管目前文章的後續章節連結出現失效,但這並未減損讀者的熱情,許多人將「能運行 Quake」視為硬體開發的一個重要里程碑,象徵著該硬體平台已具備處理複雜運算與圖形渲染的綜合實力。
延伸閱讀
- Fabien Sanglard 的 Quake 組合語言優化分析:深入探討 Michael Abrash 如何針對 Pentium FPU 管線進行手動優化。
- Unreal PSX 移植紀錄:由 Terry Greer 分享當年將《魔幻歷險》(Unreal)移植到 PS1 平台時所面臨的硬體限制與渲染權衡。
- YouTube 演示影片:作者提供的 FPGA 運行 Quake II 實機展示。