技術參考
為什麼 PS4 能模擬、PS5 這麼難?x86、AMD 顯示卡、著色器和加密講清楚(附術語表)
要點
- PS4、PS5 的 CPU 都是 AMD 的 x86-64,和電腦同一種指令集,模擬器不用翻譯 CPU 指令,遊戲程式碼直接在你的處理器上跑。
- 真正的工作量在顯示卡:遊戲是為 AMD 定製顯示卡(PS4 是 GCN,PS5 是 RDNA 2)寫的,模擬器要把顯示卡命令和著色器即時翻譯成 Vulkan 能用的格式,這也是卡頓的主要來源。
- PS5 更難,是因為顯示卡架構更新、圖形介面不同、遊戲規模更大,還有硬體解壓和高速 SSD 這類 PS4 沒有的東西;而且認真研究 PS5 模擬到 2026 年才開始。
- 遊戲和系統檔案都是加密的,模擬器讀的是解密後的檔案;這一步不在模擬器裡。
- 手機和蘋果晶片 Mac 是 ARM 架構,要先把 x86 程式碼翻譯成 ARM(Rosetta 2、FEX),所以比 x86 電腦難得多。
PS4 能模擬得這麼好,是因為它的 CPU 和電腦一樣是 x86-64,遊戲程式碼可以直接在你的處理器上跑;模擬器真正要做的,是把 PlayStation 定製 AMD 顯示卡的命令和著色器翻譯到電腦顯示卡上,再重寫一大堆系統庫。 PS5 的 CPU 同樣是 x86-64,起步也快,但它的顯示卡架構更新、圖形介面不同、遊戲更大,還多了硬體解壓、高速 SSD 這類 PS4 沒有的東西,所以截至 2026 年 11 月大作還遠不能玩。手機和蘋果晶片 Mac 用的是 ARM,要多一層 CPU 翻譯,難度又上一個臺階。
先看硬體:PS4 和 PS5 裡裝的是什麼
| PS4(2013) | PS5(2020) | |
|---|---|---|
| CPU | AMD Jaguar 8 核,1.6GHz,x86-64 | AMD Zen 2 8 核,最高 3.5GHz,x86-64 |
| 顯示卡 | AMD GCN 架構定製,18 個計算單元 | AMD RDNA 2 架構定製,36 個計算單元,最高 2.23GHz,10.28 TFLOPS |
| 記憶體 | 8GB GDDR5(176GB/s) | 16GB GDDR6(448GB/s) |
| 儲存 | 機械硬碟 | 825GB 定製 SSD,原始速度 5.5GB/s,帶硬體解壓(支援 zlib 和 Kraken) |
兩代都是 AMD 的「CPU + 顯示卡做在一顆晶片上」的方案,CPU 指令集和電腦一樣。PS4 是第一臺用 x86 的 PlayStation;在它之前的 PS3 用的是 IBM 的 Cell 處理器,和電腦的 CPU 完全不同,PS3 模擬器得先解決 CPU 指令翻譯這一關。
模擬器要做哪幾件事
| 部分 | 真機上 | 模擬器(以 shadPS4 為例)怎麼處理 | 難度 |
|---|---|---|---|
| CPU | AMD Jaguar 執行遊戲的 x86-64 程式碼 | 不模擬,直接在你的 CPU 上執行;只要求 CPU 支援對應的指令(x86-64-v3,含 AVX2) | 低 |
| 顯示卡 | 遊戲把命令包和著色器直接交給 AMD 顯示卡 | 解析命令包,把 GCN 著色器重編譯成 SPIR-V,再通過 Vulkan 交給你的顯示卡 | 高 |
| 系統庫 | PS4 系統提供圖形、音訊、網路、手把等大量函式庫 | 大部分自己重寫(HLE),少數可以載入真實模組(LLE) | 高,工作量大 |
| 檔案系統 | 遊戲從硬碟讀解密後的檔案 | 把遊戲資料夾對映成 PS4 的目錄結構,更新補丁疊加上去 | 中 |
| 輸入、音訊、網路 | DualShock 4、PSN 等 | 對映到電腦手把、鍵鼠;聯機用自建伺服器(shadPS4 的 shadNet) | 中 |
shadPS4 官方 wiki 原話是「我們不模擬 CPU」,顯示卡是唯一真正被模擬的硬體。這就是 PS4 模擬器幾年裡從「能啟動」走到「《血源》4K 60 幀」的根本原因。
難點一:顯示卡和著色器
遊戲機遊戲是為一種固定的顯示卡寫的。PS4 遊戲直接生成 AMD GCN 顯示卡能懂的命令包(PM4 格式)和著色器(顯示卡上跑的小程式,負責光照、材質、特效),電腦上的 NVIDIA、Intel 顯示卡根本不認識這些東西,就算是 AMD 顯示卡,驅動也不接受這種直接下發的方式。
所以模擬器得:
- 解析命令包:讀懂遊戲要畫什麼、用什麼狀態、繫結哪些貼圖;
- 翻譯著色器:把 GCN 機器碼重編譯成 SPIR-V(Vulkan 的通用著色器格式),再交給你的顯示卡驅動編譯;
- 處理顯示卡特性:比如 GPU 寫出、CPU 再讀回的數據(readback)。shadPS4 在 v0.10.0(2025 年 7 月)實現了這一項,解決了《血源》裡著名的「頂點爆炸」畫面錯誤。
第 2 步要花時間,遊戲第一次用到某個著色器時就會卡一下,這就是「著色器編譯卡頓」。編譯結果存進著色器快取(shadPS4 放在 user/cache/<遊戲編號>),第二次就不卡了。Digital Foundry 2026 年 1 月測試時也提到,有了著色器快取後《血源》的卡頓基本消失。
PS5 模擬器做的是同一件事,只是物件換成 RDNA 2 顯示卡:KytyPS5 把 RDNA 2 著色器重編譯成 SPIR-V 走 Vulkan 1.3,SharpEmu 也是 HLE 加 SPIR-V 著色器翻譯。Tom's Hardware 報道 SharpEmu 的進展時,說的也正是「著色器翻譯和 Vulkan 支援」在進步。
難點二:PS5 多出來的東西
PS5 的 CPU 和 PS4 同一路線,模擬器開發者可以直接借用 PS4 模擬器的經驗,這是 2026 年 PS5 模擬器能在幾週內跑起獨立遊戲的原因。但再往前走,難度明顯變大:
- 顯示卡更新:RDNA 2 的指令和功能比 GCN 多,命令格式、圖形介面也不是 PS4 那一套,需要從頭逆向。
- 遊戲更大:PS5 大作的資源量、著色器數量、對顯示記憶體頻寬的要求都遠高於 PS4 遊戲,翻譯開銷被放大。媒體報道里,《惡魔靈魂》《太空機器人》目前只有個位數到幾十幀,還常有畫面錯誤。
- SSD 和硬體解壓:PS5 有專門的解壓單元(支援 zlib 和 Oodle Kraken),遊戲假定數據能以極高速度讀進來。電腦上沒有這個單元,模擬器只能用軟體來做。
- 起步晚:PS4 模擬器從 2022 年的 shadPS4 算起已經做了四年,PS5 像樣的公開專案 2026 年 7 月才出現。
PS5 能玩 PS4 遊戲,是因為 PS5 的 RDNA 2 顯示卡里專門加了相容 PS4 GCN 顯示卡的電路——這是硬體相容。模擬器沒有這層硬體,PS4 和 PS5 在軟體裡是兩份獨立的工作。
另一條路是 AnyPS5:它不在執行時模擬,而是把 PS5 遊戲的執行檔改寫(重連結)成 Windows / Linux 原生程式,再配上重寫的系統庫,思路類似 Steam 的 Proton。Tom's Hardware 的報道標題就點明,是 PS5 的 AMD Zen 2(x86-64)架構讓這種類似 Proton 的做法成為可能。
現狀見 PS5 模擬器出來了嗎。
難點三:加密
PS4、PS5 的遊戲安裝包(PKG)、系統檔案都是加密的,只有主機自己能解開。模擬器讀取的是已經解密的遊戲資料夾,解密這一步不在模擬器裡。shadPS4 v0.8.0 起徹底刪掉了處理加密安裝包(PKG)的程式碼。遊戲資料夾的結構、系統模組放哪,見 shadPS4 韌體模組和遊戲格式;法律上的問題見 PS 模擬器合法嗎。
為什麼手機、蘋果晶片 Mac 更難
手機晶片和蘋果 M 系列晶片是 ARM64 架構,不能直接執行 x86-64 程式碼,於是 PS4 模擬「CPU 免費」的優勢沒有了:
- Mac:shadPS4 的 Mac 版本身是 x86-64 程式,靠蘋果的 Rosetta 2 翻譯執行,只支援 Apple 晶片和 macOS 26 以上;相容報告裡 Mac 上可玩的遊戲明顯少於 Windows、Linux。
- Android:Bachata S4 這類非官方專案用 FEX 把 x86-64 即時翻譯成 ARM64,再配 shadPS4 的渲染器。手機顯示卡又遠弱於電腦,所以目前只有高階驍龍手機能勉強跑一些遊戲,詳見 Android上能玩 PS4 嗎。
- 「單遊戲移植」能繞開一部分問題:Bloodborne-Android 事先把《血源》的 x86 程式碼翻譯成 ARM 原生程式碼,省掉了即時翻譯。
術語表
CPU 和系統
| 術語 | 一句話解釋 |
|---|---|
| x86-64 | 電腦 CPU 的指令集,也是 PS4、PS5 CPU 的指令集。指令集相同,遊戲程式碼才能直接在電腦上跑 |
| x86-64-v3 / AVX2 | x86-64 的一個「功能等級」,包含 AVX2 等較新指令。shadPS4 要求 CPU 至少達到這一級(Intel Haswell、AMD Excavator 或更新) |
| ARM64 | 手機和蘋果 M 系列晶片的指令集,和 x86-64 不相容 |
| Rosetta 2 | 蘋果在 Apple 晶片 Mac 上把 x86-64 程式翻譯成 ARM64 的工具,shadPS4、KytyPS5 的 Mac 版都靠它 |
| FEX | 開源的 x86-64 → ARM64 翻譯層,Android上的 PS4 模擬專案用它執行遊戲程式碼 |
| Jaguar / Zen 2 | PS4 / PS5 的 AMD CPU 核心架構 |
| HLE(高層模擬) | 模擬器自己重新實現主機的系統庫。快,但沒寫完的功能會出錯 |
| LLE(低層模擬) | 直接載入主機原本的系統模組。準確,但需要模組檔案 |
| 翻譯層(translation layer) | 不完整模擬整臺機器,只把遊戲對系統和硬體的呼叫翻譯到電腦上。KytyPS5、SharpEmu 都這樣自稱 |
| 重連結器(relinker) | AnyPS5 用的工具:把 PS5 執行檔改寫成電腦原生程式 |
顯示卡和畫面
| 術語 | 一句話解釋 |
|---|---|
| GCN / RDNA 2 | PS4 / PS5 顯示卡的 AMD 架構 |
| GNM | PS4 的底層圖形介面,遊戲通過它直接給顯示卡下命令 |
| PM4 | AMD 顯示卡的命令包格式,模擬器要逐條解析 |
| 著色器(shader) | 跑在顯示卡上的小程式,負責光照、材質、特效 |
| SPIR-V | Vulkan 使用的通用著色器格式。PS4 / PS5 的著色器要先翻譯成它 |
| Vulkan | 跨平臺的圖形介面。shadPS4 要求顯示卡支援 Vulkan 1.3,KytyPS5 也是 |
| MoltenVK | 把 Vulkan 轉成蘋果 Metal 的翻譯層,KytyPS5、SharpEmu 的 Mac 版用它出畫面 |
| 著色器快取 / 管線快取 | 存放編譯好的著色器,避免下次再卡 |
| 著色器編譯卡頓 | 第一次遇到新著色器時編譯造成的短暫卡頓 |
| readback(回讀) | 顯示卡算出的數據再被 CPU 讀回來用。shadPS4 v0.10.0 實現後修好了《血源》的頂點爆炸 |
| FSR | AMD 的超解析度技術,shadPS4 v0.7.0 起支援 |
檔案和遊戲
| 術語 | 一句話解釋 |
|---|---|
| PKG | PS4 / PS5 的安裝包格式,內容加密。shadPS4 v0.8.0 起不再安裝 |
| eboot.bin | 遊戲的主程式(執行檔) |
| param.sfo | 遊戲的後設資料檔案(標題、編號、版本),在 sce_sys 資料夾裡 |
| .sprx / .prx | PlayStation 的動態庫檔案 |
| sys_modules | shadPS4 放 PS4 系統模組(.sprx)的資料夾 |
| PUP | PlayStation 的系統更新包(PS4 是 PS4UPDAT.PUP) |
| CUSA / Title ID | PS4 遊戲的編號,4 個字母加 5 位數字,每個地區版本各一個 |
| 更新補丁 / DLC | shadPS4 裡分別放在 <資料夾名>-UPDATE 和 user/addcont |
相容性等級(shadPS4、SharpEmu 等通用)
| 等級 | 含義 |
|---|---|
| Playable(可玩) | 能正常玩,可能有小問題 |
| Ingame(能進遊戲) | 能進到遊戲裡,但有嚴重問題或太慢 |
| Menus(到選單) | 只能到選單或標題畫面 |
| Boots(能啟動) | 能啟動,有畫面但進不了選單 |
| Nothing(不能啟動) | 打不開 |
聯機和其他
| 術語 | 一句話解釋 |
|---|---|
| PSN | 索尼的 PlayStation Network,模擬器不連線它 |
| shadNet | shadPS4 團隊自建的聯機伺服器,v0.20.0 起讓《血源》能在模擬器裡聯機 |
| 遠端遊玩(Remote Play) | 把真主機上的畫面串流到電腦、手機。它不是模擬器,騙局常拿它冒充模擬器 |
| 原生移植(native port) | 把單個遊戲改寫成電腦或手機的原生程式,比如《血源》的 bbport,不是通用模擬器 |
想直接開始玩,見 2026 年 PS4 模擬器推薦 和 PS4 模擬器配備需求。
常見問題
為什麼 PS4 模擬器發展得這麼快?
因為 PS4 的 CPU 是 AMD 的 x86-64,和電腦一樣。shadPS4 官方 wiki 寫明它「不模擬 CPU」,遊戲程式碼直接在電腦處理器上執行,模擬器只需要處理顯示卡和系統庫。相比之下,PS3 用的是特殊的 Cell 處理器,模擬器得逐條翻譯指令。
PS5 為什麼比 PS4 難模擬?
CPU 方面差別不大,兩者都是 x86-64。難在顯示卡:PS5 用的是更新的 RDNA 2 架構,圖形介面和命令格式也和 PS4 不同;遊戲體量更大,還會用到 PS5 專門的硬體解壓和高速 SSD。再加上 PS5 模擬到 2026 年 7 月才有像樣的公開專案,積累比 PS4 少好幾年。
模擬器卡頓是什麼原因?
最常見的是著色器編譯。遊戲的著色器是為 PlayStation 的 AMD 顯示卡寫的,模擬器第一次遇到時要翻譯成 SPIR-V 再交給你的顯示卡驅動編譯,這一下就會卡。編譯過的結果會存進著色器快取,第二次就不卡了。
為什麼手機上模擬 PS4 這麼難?
手機晶片是 ARM 架構,不能直接執行 PS4 的 x86 程式碼,要先用 FEX 這類翻譯層把指令轉成 ARM,這本身就會損失大量效能;手機顯示卡也遠弱於電腦。所以Android上目前只有實驗性的專案,而且需要高階驍龍手機。
PS5 能玩 PS4 遊戲,為什麼模擬器不能順便支援?
PS5 能玩 PS4 遊戲是因為它的 CPU 同為 x86-64,而且 RDNA 2 顯示卡里加了相容 PS4 GCN 顯示卡的專閘電路,這是硬體層面的相容。模擬器沒有這層硬體,只能在軟體裡一點點重寫,所以 PS4 和 PS5 在模擬器裡是兩份獨立的工作。SharpEmu 等 PS5 模擬器有一部分 PS4 相容模式,但還很早期。
HLE 和 LLE 是什麼意思?
HLE(高層模擬)是模擬器自己重新實現主機的系統庫;LLE(低層模擬)是直接載入主機原本的系統模組。shadPS4 以 HLE 為主,只有少數模組能用 LLE 載入。詳見 shadPS4 韌體模組一文。
資料來源
- shadPS4 官網
- Wikipedia:PlayStation 4 technical specifications
- Wikipedia:PlayStation 5
- PlayStation.Blog:PS5 硬體技術規格詳解(2020-03-18)
- Eurogamer / Digital Foundry:PS5 規格與技術解析(2020-03-18)
- Emulation General Wiki:PlayStation 4 emulators
- Emulation General Wiki:PlayStation 5 emulators
- Tom's Hardware:SharpEmu 6 款遊戲可玩(著色器翻譯與 Vulkan 進展,2026-09-27)
- Tom's Hardware:AnyPS5 把 PS5 遊戲轉成原生程式(2026-09-26)
- KytyPS5 官網
- Notebookcheck:shadPS4 支援 AMD FSR、HDR(2025-03-24)
- VideoCardz:SharpEmu、KytyPS5 轉為社群專案(Mac 版用 MoltenVK,2026-07-17)
- Wccftech:shadPS4 0.10.0 解決《血源》頂點爆炸(2025-07-07)
- Digital Foundry:《血源》模擬已超過 4K 60 幀(2026-01-17)