[DE10-Nano]"硬體"的懷舊遊戲模擬器,MiSter專案。
既是"硬體",又是"模擬器",感覺有點微妙對吧?
[定義]
先定義一下:
硬體:指的是像FPGA這類的用硬體線路執行指令集或特定設計(如DMA)的硬體。
軟體模擬器:用CPU去模擬執行不同架構硬體的指令集及特殊硬體單元(如上面寫的DMA)。
[差異]
簡單說就是執行時間有差異。
用FPGA或原始硬體去模擬,例如x68000的CPU好了,同樣的指令,例如加法:Add指令,其執行時間是固定的。
而用CPU去模擬,可能會因為OS或是其他資源分配等特性(clock也不一樣),則會有不穩定的狀態(不是不夠快,而是不穩定!)!也就是說,如果用FPGA做,一個Add指令的執行時間是"1ms",用CPU模擬的話,可能是在0.9ms~1.1ms之間變化(這只是一個類比,不是真的是這個範圍)
也就是說:硬體線路"理論上"執行起來會跟原始的硬體更類似。
而微妙之處在於:就算是用FPGA模擬原始硬體(例如前面說的x68000),但也只是無限接近原始硬體,但....還是不是原始硬體。
我想這是絕大多數人的疑問。
這整件事聽起來就很愚蠢對吧?要我花US$100去買DE10-Nano,為啥我不直接去買二手的Mega Drive就好了呢?
接USB Hub,內建的Micro USB port無法接多個外接USB裝置,需要額外購買一個USB Hub(需要接鍵盤輔助操作)。
再接上USB Saturn手把。
因為你不再使用CRT電視,而是使用數位電視,數位電視的Scaler和影像處理晶片要做A/D,和處理,結果反而增加了jitter(對顯示而言),甚至錯誤的影像處理會讓類比輸入訊號被破壞。
此時,最完美的解決方案就是:硬體的模擬器,也就是今天要介紹的MiSter專案。
之前有介紹過DE10-Nano,其實買來除了玩Verilog外,主要就是想弄這個MiSter專案。
[只買DE10-Nano]
只能玩Mega Drive和PC-Engine。
[加上擴充記憶體]
加上額外的子版(模擬EDO RAM)後,可以玩Neo-Geo,任天堂(FC/NES),超任(SFC/SNES),等模擬器。甚至還可以模擬Apple II或486,對,真的可以模擬486...
記憶體子卡,鼴鼠弟是在露天買的(其實是SDRAM,用於模擬EDO RAM,主要是Timing的問題)。
[模擬度與跟軟體模擬器的差異]
模擬度本身還是看硬體的,畢竟說是應體模擬器,也是需要人去寫code模擬硬體,不是真的硬體,所以還是會有相容度的問題。
至於差異,鼴鼠只能說:很微妙。
最明顯的差異在輸入手感:也就是按鈕會變得很輕快。
甚麼意思?因遊戲本身有差異,但是硬體模擬器的(手柄)輸入和畫面的反應是很靈敏的,你按下按鈕,畫面會立刻有反應,此時你會覺得輸入手感很"輕快"。
而PC上的軟體模擬器會有一定的延遲,此時你會覺得你按下手柄按鈕後,稍微延遲一點點後,畫面才有反應,此時你會覺得"很重手"。
但這個差異,說實話,相對非常的微妙,嚴格說起來,除非你是個格鬥遊戲高手,可以掌控那種3~5真輸入差的高手,否則對一般人而言影響不大。
畫面方面,以MD的模擬器為例,有些針對Composite輸出做的特殊處理,可以重現一些特別的MD效果,類似"模擬的透明色","倍增發色"等技術,這是PC上的模擬器目前沒看到支援的。但缺點是畫面會變模糊。
而且無法使用PC上一些比較高階的filter,除非你真的很愛類似CRT的模擬畫面,否則現代人恐怕很難接受那種二十年前的遊戲畫面,懷舊就算了,看久了真的會感覺有點自虐...
為啥我不直接玩PS4上的戰神就好....
圖片的話,因為被鼴鼠誤刪,所以暫時沒有,周末如果有機會鼴鼠在重拍一次!
總而言之,如果你不想買CRT配真的老主機玩遊戲,DE10-Nano+Mister專案是會很適合你的,可以直接插USB手柄使用,鼴鼠實驗過USB的Saturn手把都是可以用的(正版或盜版都可以),DE10-Nano的板子搜尋一下就可以找到代理商,有在學的朋友可以在省一點點錢。遊戲的話,把ROM放在TF Card上插進去就可以讀了(支援.zip格式,但Neo Geo的遊戲需要先解碼)。
擴充版的話,鼴鼠只推薦買記憶體子版,露天就有賣家在賣,不想讓他賺的話,就去淘寶,基本上都是淘寶上弄來的吧!
模擬NeoGeo,插上128MD SDRAM子卡後,玩惡狼傳說Special,目前看起來還不錯,鼴鼠弟說還是有些模擬上的Bug。
用硬體模擬器,除了延遲更低外(注意到鼴鼠弟是用MisTer的HDMI直入反應速度極高的電漿電視,不經擴大機,減少影像處理晶片和DSP造成的延遲),很多因類比Scaler產生的問題都不存在了!之前鼴鼠用Scart轉HDMI轉換器玩真的Neo Geo,就發現了很多嚴重的問題!實際上查察Yotube,都可以找到很多老外的研究,這個轉換器不只jitter嚴重(對那些hard core的傢伙而言罪不可赦),很多地方也都轉換錯誤了!包含解析度,cmposite處理,比例等,都不正確!
用這類非針對遊戲主機(DCDi之類的晶片是用來處理影片的,一般是480i/1080i@60Hz)的Scaler,除了造成延遲外(Jitter嚴格說起來叫做不穩定的延遲,其延遲是亂跳的),還有解析度跟比例不正確的問題,會造成之前說的那種詭異線條,或是橫移時卷軸不穩定的問題!
而這些,在MiSter中都有很好的解決!因為夠Hard core,所以鼴鼠真心覺得如果你很愛玩Retro game,是極度的老遊樂器Game愛好者,MisTer就是終極方案,比你買真的舊主機在新款顯示器上完還要更優!(除非你想繼續使用高階CRT螢幕)
這就要說一些歷史了,晚點補充,或請去Youtube看低分少年,或上面的影片。
根據低分少年的分析:MD是有透明色機能的,但是其alpha belending的功能是針對整個overlay plane(你可以理解為只有一整塊透明色開跟關,沒有類似mask的功能);而後期SEGA推出一種特殊的透明色疊合功能,則是透過Dither來辦到的(這功能也能達到傳說中的"發色"倍增功能,其實就是抖色),而這個功能,只能在composite輸出時達到,原理請參考上面的影片。
提太多考古對對MD沒興趣的人可能很無趣,不過因為鼴鼠算是(半個)SEGA/MD迷,因為加成的關係,對這類的東西比較在意。
總之,在MiSter上實作的"composite blenging"功能可以用來模擬當年的composite訊號的Dither效果!!理論上,這是任何硬體或模擬器都要能做到的,鼴鼠甚至在一些模擬器的論壇上找到reference shader code,基本上可以當作一個後處理,不過比較詭異的是,鼴鼠弟說他沒有在任何現存的軟體模擬器上看到相關的實作,可能是$$$不到位的關係?
好吧,先看一些時機範例吧!對MD硬體沒執念得人可能不太懂就是了(SFC有內建透明色處理硬體,但MD當年常被攻擊說沒有透明色機能),總之這是很有趣的應用(對遊樂器歷史有興趣的話)!此外,開啟composite blending後,畫面會變模糊(廢話),因為原理就是Dither,後處理的方式其實就是做blending,因此處理後的畫面會沒原始的RGB Raw data那麼銳利!
這是MD CD版的Final Fight,沒開Composite Belnding(注意主角的褲子,和磚頭及馬路邊緣):
打開CB後!注意路邊的網點和褲子上的網點都不見了:
這邊也一樣,鼴鼠跟鼴鼠地討論過,理論上這個PC的模擬器也能做到,不過目前只見過MiSter上的MD模擬器有支持:
著名的Sonic透明瀑布(關):
開:
有意思吧:
這邊是插上記憶體子卡後的圖示(可以玩NeoGeo等特殊硬體模擬):
鼴鼠弟用的MiSter版本:
著名的格鬥四人組透明燈光效果(關):
不是用硬體透明色,而是用Dither技巧做出來的,所以不會有整層變透明的Bug(部分透明色遮罩效果,開):
燈光透明效果(開):
這也算是一種醍醐味吧?
以上!
P.S.鼴鼠弟想叫鼴鼠說一下MiSter可以模擬的一些特殊功能,例如oa486或Amiga,Commandore,不過鼴鼠覺得在台灣(除了486)這些硬體不太流行,玩過的人估計很少(Amiga在美國,Commandore在歐洲),對懷舊硬體沒興趣的人可能真的會提不起興致(喜歡MD的人就已經不多了...QQ),所以就不提了,更何況有Youtube影片消失的潛力在(默)....好吧,有興趣的人請留言,鼴鼠再考慮看看要不要寫一篇。
鼴鼠難得很認真的寫了這篇,不過....感覺相當小眾啊,讓人有點難過QQ