引用:
|
作者野口隆史
史克威爾就太空戰士7 那個年代做的遊戲
光榮就三國志還有太閤立志等戰棋遊戲
Linux 跑 windows x86 遊戲不是模擬,是原生執行
Proton/Wine 是通過 dll 重寫,把這些 windows 程式呼叫的請求轉為對應的 Linux 系統 API 調用
目前這一套在 arm 上也接近 100% 原生執行了
|
太7那時代日廠主力都在家機上
建議直接玩模擬器就好了
早期PC不管軟硬體都百家爭鳴
還沒有DirectX一統天下,也沒有N卡獨大
業界類似UE引擎那樣完善的各種配套開發工具也欠缺
很多遊戲都是開發團隊硬搞出來的
也沒有現在的發達網路可以用更新修正Bug
所以家機那種封閉、單一規格硬體才是主流
不然PC實在很複雜難搞
---
至於Linux跑Win遊戲,我只能說中文很難找到正確的詞
因為我去問AI,以下3種詞彙都不正確...
問:Proton/Wine是模擬?轉譯?還是原生執行?
Proton 和 Wine 屬於兼容層 (Compatibility Layer),既不是模擬器也不是單純的轉譯,更不是原生執行。它們在 Linux 上即時將 Windows 的 API 呼叫轉換為 Linux API 呼叫,達成接近原生效能的執行效果,適合在 Linux 上玩 Windows 遊戲。
詳細解析如下:
● 不是模擬器 (Not Emulator): 模擬器(如 QEMU)會模擬整套硬體環境。Wine (Wine Is Not an Emulator) 則是動態翻譯 Windows 的系統呼叫 (Syscalls) 為 Linux 的系統呼叫,不會像模擬器那樣有高昂的效能損耗。
● 不是純粹的轉譯 (Not Translation): 轉譯(如 Rosetta 2)通常指將一種指令集(如 x86)轉換為另一種(如 ARM)。Wine 是 API 對應,即將 Windows 的 .dll 函數對應到 Linux 的 .so 函數。
● 是兼容層 (Compatibility Layer): Proton 基於 Wine,加上了 DXVK (將 DirectX 9/10/11 轉為 Vulkan)、VKD3D (將 DirectX 12 轉為 Vulkan) 等工具,讓 Windows 程式可以在 Linux 系統下「翻譯」並運行。
● 效能: 因為沒有作業系統模擬的開銷,效能通常非常接近原生。
總結來說,Proton/Wine 是一種動態的系統呼叫轉換技術。