作為一名Retro Gamer(復古經典遊戲玩家),我一直都很喜歡重新在摩登設備上,重温古老但非常好玩的經典遊戲(現代遊戲我也玩,但大多是守望先鋒這樣的電競類網遊),比如街機、SFC、GBA等經典主機、掌機上的老遊戲,但其實相比玩遊戲本身,我可能更多是在折騰“玩模擬遊戲的硬件”這件事上,最主要便是安裝了模擬器的第一方掌機、或者開源掌機,以及SBC這樣的產品,但這些硬件設備本質上,其實都是通過軟件模擬的方式實現玩經典遊戲的,但到最近,我發現了其實還可以用FPGA開發板來做到硬件級模擬復古遊戲機。
首先這個FPGA,即現場可編程門陣列,個人理解是可靈活定製和修改運行邏輯的集成電路芯片(高人可指教解釋更準確的定義),其實PC DIY玩家們,對FPGA最大的印象,應該都是Intel在多年前了收購全球最大的FPGA製造商Altera,用於加大投入到做IoT和AI領域,而FPGA本來也是更多用在工業、生產、機器人等特定行業的設備開發和製造,我們普通消費者平時都不會直接接觸到,當然這裏不是在講FPGA是什麼和有什麼用之類的,而是講FPGA來硬件模擬復古遊戲這件事。

相比軟件模擬,硬件模擬可以做接近於原來真機一樣的遊戲運行表現。其實在速度上,由於如今電腦、手機,甚至SBC的硬件性能都已經遠遠高於那些古董級的遊戲主機,用來跑軟件模擬遊戲的幀數還是足夠的,但原機是涵括了CPU、內存、顯示、音頻芯片等在內的整套系統,通過編程代碼的形式,來讓不同架構、設計的現代化硬件,來模擬舊主機的這些硬件特性,除了會耗費大量的硬件,還會存在遊戲兼容性(特別是一些有add-on芯片的遊戲),畫面顯示撕裂或不準確的缺陷問題。
特別是原機的聲音部分,由於各種經典遊戲機用了各種特製的音頻芯片,現代硬件想要還原原聲,需要非常複雜的編程來解決,但開發模擬器的程序員大多都是自己興趣愛好,一般難以有投入時間精力去作極致的優化開發,能做到沒雜音、聽個響就很不錯了,但這些兼容性、準確性的問題,在FPGA的硬件模擬上就要容易解決很多了,因為FPGA本身可以通過定製編程來複制(replication)原機芯片的運行邏輯,達到與原來相同的效率和效果。

而且FPGA的硬件模擬,還可以解決用原機或者開源硬件來玩經典遊戲的兩大問題。第一個是顯示輸出,因為經典遊戲機年代久遠,原機用的都是RF、AV、分量那種舊式的模擬信號顯示輸出,原機需要通過採集卡或者魔改芯片,才能連接到現代採用HDMI數字顯示的電視機或者顯示器上,這帶來一點顯示延遲,也不夠“原味”,第二就是輸入延遲,在軟件模擬器,經典遊戲機的控制器輸入其實都是通過代碼轉換模擬輸入,所以在Raspberry Pi這樣的SBC開源硬件上,玩經典遊戲會有一定的輸入延遲,雖然數字上只是毫秒級,但一些技術高超的硬核,或者童年肌肉記憶深刻的玩家,始終覺得那些控制操作與原機的手感有明顯差別。
所以FPGA硬件模擬遊戲機這樣的產品,在Retro Gamer圈子裏面,一直都是奉為神器,目前實際的商用產品,比較知名的就是Analogue了,他們的Mega SG和Super Nt便是基於FPGA芯片,來硬件模擬回世嘉MD,以及任天堂的SFC兩大經典電視主機,實際運行效果獲得一眾Retro Gamer、老遊戲玩家的好評,譽為最佳的模擬遊戲主機,但它們售價不菲(190美元),而且也不容易買到(Super Nt已經買不到了)。

現在還有另外一個選擇,便是用FPGA開發板來自己做一台硬件模擬遊戲機了。國外有位非常棒的開發者做了個MiSTer項目,可以讓一塊DE10-Nano開發板,硬件模擬Commodore 64、Apple II、SNEC、Magadrive、GBA等在內超多的古董個人電腦、遊戲機,而這塊開發板上用的FPGA是來自Intel的Cyclone系列V SE,據説這是與Analogue用的同款,所以從YouTube對這塊開發板和MiSTer的測試,評價運行效果非常逼近真機的表現,讓人心動。
當然這塊DE10-Nano開發板本意並非是用來做模擬遊戲機的,它來自Terasic出品,這其實是一家國內的公司,名為友晶科技,在他們 官網便有提供 這塊開發板銷售,但那是非常傳統的電郵聯繫下訂單的方式,而在淘寶也是有得賣,價格同樣為1170元,但如果可以提供教師證、學生證的話,可以買到便宜不少,只要990元的教育版,雖然也不便宜,但綜合考慮的話,這個要比Analogue的主機划算很多,可玩性也更高。

與大多數人一樣,我沒學過集成電路、數字編程之類的相關內容,但看過MiSTer的教程介紹,其實折騰起來並不難,因為Mister提供了基本上是plug-and-play的教程,所以軟件部分的操作是比較容易,把編程文件鏡像拷進去一站MicroSD,再插回開發板裏面就行了,而硬件部分除了那塊開發板,還可以加上一些擴展子板,包括有SDRAM、RTC、I/O和USB Hub,都開放了PCB圖紙給大家自己DIY,其中SDRAM子板是原作者推薦的子板,因為據他介紹,DE10-Nano雖然內置有DDR3內存,但一些經典主機用的是很古老的EDO RAM,用同樣比較古老的SDRAM來模擬會效果更好。
目前我還沒有入手這塊DE10-Nano開發板,主要是還想研究下SDRAM、I/O子板怎樣弄出來,所以還沒有實物體驗測試一番,這裏只是分享有那麼一件好玩的事告知給大家,但如果你也對此很感興趣,可以訪問MiSTer在 Github上的Wiki頁面 摸索下,或者在YouTube上也有不少相關的視頻可以參考。