技术参考
为什么 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。
- 安卓:Bachata S4 这类非官方项目用 FEX 把 x86-64 实时翻译成 ARM64,再配 shadPS4 的渲染器。手机显卡又远弱于电脑,所以目前只有高端骁龙手机能勉强跑一些游戏,详见 安卓上能玩 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 翻译层,安卓上的 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,这本身就会损失大量性能;手机显卡也远弱于电脑。所以安卓上目前只有实验性的项目,而且需要高端骁龙手机。
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)