AnyPS5:把 PS5 程序原生移植到 Linux/Windows 的非模拟器路线
阅读时间: 大约 8 分钟
AnyPS5:把 PS5 程序原生移植到 Linux/Windows 的非模拟器路线
主机游戏移植一直是模拟器社区和逆向工程圈的硬核话题。2026 年,一个名为 AnyPS5 的开源项目登上 GitHub 周榜第一,它走了一条与传统模拟器完全不同的路:不用 CPU 模拟器,不跑独立运行时,而是用重链接器把 PS5 可执行文件直接转换成 Linux 或 Windows 的原生格式。本文基于其官方 README、架构文档与社区进度图,分析这条路线的技术机制和现实边界。
一、背景:为什么不用模拟器
传统主机模拟器(如 RPCS3 模拟 PS3、Yuzu 模拟 Switch)的思路是:在 PC 上模拟目标主机的整个硬件环境——CPU 指令集、GPU、系统调用——让游戏以为自己还在原主机上跑。这种路线的代价是性能开销巨大:翻译一层指令、拦截一次系统调用、模拟一次 GPU 命令,每一步都有损耗。
AnyPS5 的思路更激进:直接把程序变成目标系统的原生二进制。PS5 基于 x86-64 架构(AMD Zen 2 定制 CPU),与 PC 指令集相同,不需要 CPU 指令翻译。剩下的问题只有两个:程序依赖的 PS5 系统动态库(PRX)在 PC 上不存在,以及 PS5 原生 GPU 着色器(GCN/RDNA 中间表示)不能直接在 PC GPU 上跑。AnyPS5 就解决这两个问题。
二、技术机制:重链接器 + 自研系统库 + 着色器重编译
根据官方 README,项目核心由三部分组成:
| 组件 | 作用 |
|---|---|
| 重链接器(relinker) | 把 PS5 可执行文件转换成目标系统(Linux/Windows)的原生 ELF/PE 格式 |
系统 PRX 库实现(core/libs/prx) | 自行实现 PS5 系统动态库,使重链接后的程序能动态链接到这些原生替代库 |
着色器重编译器(core/shader/recompiler) | 把 PS5 着色器重编译为 SPIR-V,通过 SPIRV-Tools 验证 |
关键区别:这不是模拟器。没有独立的运行时进程,没有指令翻译层,程序转换后就是一个普通的 Linux/Windows 可执行文件,直接在原生系统调用和原生 GPU 驱动上运行。官方称这种方式为”automatic executables porting”。
输入方面,项目支持 SDL 映射的游戏控制器(含模拟摇杆和扳机),键鼠可通过 anyps5-input.ini 配置。
三、进度数据:覆盖到什么程度
README 顶部有三个动态生成的进度徽章:系统库覆盖率、着色器编译进度、整体进度地图。官方特别加注了一个口径说明:
系统库徽章显示的是”项目目前已知的函数中已实现的百分比”,不是 PS5 全部系统函数的覆盖率。随着更多函数被声明,总数会增长,百分比分母也会变化。
这个口径很重要——它意味着徽章数字不能直接解读为”PS5 系统库完成了 X%“,而更像是”在已逆向出的函数中,我们覆盖了多少”。分母随社区贡献不断扩大。
逐游戏的进度由社区维护的 blocker map(基于公开 GitHub 数据自动生成)追踪,每个游戏一个测试线程,记录到达的阶段、未解决的阻塞项、库和 GPU 覆盖情况。
四、官方承认的局限
README 中有一段值得注意的设计决策:
不支持或意外状态会严格抛出
std::runtime_error,what()打印到 stderr 后进程终止。
这不是容错设计——它意味着一旦遇到未实现的系统调用或未预期的状态,程序直接崩溃,而不是尝试降级运行。对于早期项目这是合理的:宁可快速暴露问题,也不要静默产生错误结果。
Shader 重编译器虽然能产出 SPIR-V,但”成功产出”不等于”视觉正确”——SPIR-V 通过验证只说明格式合法,不意味着渲染效果与 PS5 原生一致。
五、版权灰色地带
README 的 Disclaimer 写得很清楚:
本项目用于互操作、研究、保存和兼容目的。它不包含、不分发、也不要求受版权保护的软件、固件、加密密钥或专有库。用户有责任确保以合法方式获取和使用与本项目配合的任何二进制文件。
这段话在法律上是标准的开源模拟器免责声明,但实际操作中存在灰色地带:
- 你需要自己拥有 PS5 游戏的合法副本——项目不提供任何游戏文件;
- 系统库是自研的,但行为模仿的是 PS5 专有接口——Sony 是否会主张侵权存在不确定性;
- GPL v2 许可——如果未来 Sony 提起诉讼,项目可能被迫关闭;
- PS5 系统仍有加密签名机制——能被重链接的二进制范围取决于破解进展。
Koala 周报提到的例子:2D 游戏 Dreaming Sarah 在 GTX 1050 Ti 上稳定 60 帧。这是一个已经发布多年、系统调用依赖较少的独立游戏,不能代表 3A 大作的移植成熟度。
六、客观分析
优势:
- 原生性能:无模拟层开销,理论上性能接近原生移植;
- x86-64 指令集同源:PS5 与 PC 同为 x86-64,省去了最昂贵的指令翻译;
- GPL v2 开源:社区可审查和贡献;
- 社区驱动的进度追踪:blocker map 透明公开。
局限:
- 早期阶段:系统库覆盖随已知函数数变化,分母不固定;
- 容错为零:遇到未实现功能直接崩溃;
- 着色器只保证格式合法,不保证视觉一致;
- 版权风险持续存在:Sony 随时可能法律行动;
- 3A 大作遥不可及:复杂的反作弊、加密 DRM、在线服务都不在项目范围内。
七、谁该关注
- 主机游戏保存研究者:互操作性研究有其学术和文化保存价值;
- 对 Rust/C++ 逆向工程感兴趣的开发者:重链接器和系统库实现是很好的学习材料;
- 想在 PC 上玩已拥有的 PS5 独立游戏的玩家:可以关注 blocker map 上你关心的游戏进度。
它不适合期待”PS5 模拟器即插即玩”的用户——这不是模拟器,且距离那个目标还很远。