8d67d7afa6f1ad2fec39fb4a80551a68 Sony PlayStation 4仍是「現役中」的遊戲主機,而目前模擬器的發展進度除了元老級的Orbital之外,還有已經能執行特定遊戲的新秀Spine而這次要介紹的PS4Delta則不是以模擬的方式執行遊戲,而是透過相容層將PlayStation 4指令轉換給電腦執行。

轉傳PS4的指令

PS4Delta是由Force67開發的相容層,它的功能與一般的採用低階模擬(Low Level Emulation)模擬器接近,但運作的原理可是截然不同,其概念比較像WINE這類工具軟體,是透過高階模擬(High Level Emulation)的方式運作。

另一方面,PS4Delta也不像Orbital採用虛擬化的方式模擬PlayStation 4的行為, 而是將PlayStation 4的系統呼叫(System Call)轉換成Windows原生的系統呼叫。能這樣作很大的原因是PlayStation 4與Windows都採用x86-64架構的處理器,所以2者具有一定的相容性。

由於目前PS4Delta還處於開發初期階段,所以功能還不是很完整,不過目前已經可以執行ELF執行檔,並可以進入Journey這款遊戲的主要事件環(Main Loop),此外PS4Delta也已經實作部分檔案存取I/O,也會在下階段開始實際的PlayStation 4系統功能。

雖然現階段PS4Delta還無法執行遊戲,但根據開發社群的資訊,現在已經相當接近啟動遊戲的目標,因此實際成果的達成時間或許比我們想像的還要快。

PS4Delta是款以執行PlayStation 4遊戲為目標的相容層。

高、低階模擬差在哪?

一般我們熟悉的遊戲模擬器,大多採用低階模擬的方式執行,它會以軟體的方式模擬原始硬體的運作方式。低階模擬的好處在於具有較高的還原度,可以讓遊戲更貼近在原始硬體執行的狀況,但是這種方式的效率比較低,而且往往需要搭配原始硬體BIOS檔案才能正常運作。

高階模擬則是將原始硬體的各元件抽象化,在犧牲模擬還原度的情況下提高程式執行效率,這對於模擬效能與個人電腦越來越接近的當代遊戲主機來說相當重要。

舉例來說,早期Famicom的硬體速度都相當慢,因此我們可以系統各元件都用軟體方式進行模擬,達到接近100%的還原度,因此可以採用低階模擬。但是如果要用電腦的處理器模擬PlayStation 4的繪圖處理器,就會因為效率不足而讓遊戲無法流暢執行。

但如果改以高階模擬的方式,將PlayStation 4的繪圖工作直接轉換給電腦的顯示卡執行,如此一來便可以避免處理器因架構差異而有不適合繪圖工作的問題,也可以透過將部分運算負擔轉移到顯示卡,進而提升整體效率。

以目前主流的模擬器為例,以Sony PlayStation 3為對象的RPCS3,就是採用高階模擬方式達成,而WINE本身則是以相容層的方式在Linux作業系統上執行Windows程式,在相容性與效率上都有相對理想的表現。

RPCS3可以將原始遊戲的繪圖工作直接交給電腦的顯示卡處理。

WINE的名稱縮寫自「Wine Is Not an Emulator」,是能在Linux作業系統上執行Windows程式的相容層。

PS4Delta採用C++語言撰寫,並採開源型式發布,有興趣的人都可以在GitHub上協作、貢獻心力。

使用 Facebook 留言

發表回應

謹慎發言,尊重彼此。按此展開留言規則