AnyPS5 到底是什么:三步在 PC 上原生跑通一个 PS5 程序
【免费下载链接】AnyPS5Tool for automatic PS5 executables porting to Linux and Windows项目地址: https://gitcode.com/GitHub_Trending/an/AnyPS5
AnyPS5 是一个 PS5 可执行文件原生移植工具。它把 PS5 的游戏程序转换成 Linux 或 Windows 上的普通程序,直接运行,不经过模拟器。本文写给刚接触这个项目的开发者和想尝鲜的普通用户,读完你能讲清它是什么、怎么跑起来、边界在哪。
🎮 它不是什么
先说最常见的误解:AnyPS5 不是 PS5 模拟器。模拟器在运行时逐条模拟 CPU 指令,有模拟层损耗;AnyPS5 则是在运行前把程序转换成宿主系统的原生格式,运行时没有任何模拟层。
它也不是一个"虚拟主机"进程。转换完的游戏就是系统里的一个普通进程,它调用的系统 API 由项目自己实现的 PS5 系统库来响应。
另外它不是一键开箱工具。你需要自己准备好游戏的 ELF 可执行文件和随包模块,项目也不包含任何受版权保护的内容。
🚀 三步跑起来
假设你手上已有游戏的input.elf(干净的 ELF 可执行文件)和随包模块。
第一步,构建项目:
git clone https://gitcode.com/GitHub_Trending/an/AnyPS5 cd AnyPS5 git submodule update --init --recursive cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release cmake --build build --parallel cmake --build build --target libs --parallel要求 x86-64 系统、CMake 3.22.1 以上、Ninja、C++20 编译器。Linux 用 GCC 即可,Windows 目前只支持指定的 MinGW-w64 GCC 15.2.0。
第二步,整理输入目录,格式很简单:
source/ input.elf sce_module/ <随包模块>第三步,一条命令完成转换。转换 PS5 可执行文件的入口就是relinker,输出就是一个普通可执行文件:
relinker source/input.elf app.elf要 Windows 版就加--windows参数,输出app.exe。
最后摆运行时目录。路径相对可执行文件:
app.elf(或 app.exe) libs/ *.prx # 项目构建出的系统库 app0/ <游戏资源> sce_module/ # 转换后的模块把构建产物build/core/libs/libs/*.prx拷进libs/,Linux 下执行./app.elf,Windows 下执行.\app.exe,游戏就起来了。
小贴士:
--rpath默认是$ORIGIN/libs,即从可执行文件旁边的libs/加载系统库。注意别把 PS5 原始的.prx文件放进去,Windows 加载不了。
它是怎么做到的
打个比方。PS5 游戏像一本用特殊方言写成的书。模拟器是逐字翻译的译员,你读一句他翻一句,慢。AnyPS5 更像一家翻译公司:提前把整本书翻译成你的语言,再附一本新术语词典。你运行时查任何一个词,直接翻新词典就行。
这家公司就是 Relinker,词典就是 prx 系统库。转换在 core/relinker 完成:它解析可执行文件和随包模块,把对系统函数的引用(PS5 程序靠名为 NID 的标识符查找函数)重定位到项目自己构建的库上,输出原生 ELF 或 PE 文件。词典那部分在 core/libs/prx,有libkernel、libScePad、libSceAgcDriver等几十个库的实现,运行期动态链接。图形走着色器重编译器,把 RDNA 着色器(AMD GPU 的指令格式)编译成 SPIR-V 交给 Vulkan 渲染,全程没有 CPU 模拟层。
边界与现状
- 输出固定是 x86-64。CPU 是 Intel 的话转换时加
--to-intel改写 AMD 专属指令,但游戏运行时动态生成的指令转不了,这类标题需要 AMD 机器。 - 已验证的兼容性列表很短:Dreaming Sarah 在 GTX 1050 Ti 上稳定 60 FPS,DOOM Shareware(homebrew 作品)可玩。
- 系统库覆盖率是相对"项目目前知道的功能"的百分比,不是相对整个 PS5 系统 API,缺口还在持续补。
- 遇到不支持或意外的状态会直接抛
std::runtime_error并终止进程。这是刻意设计,方便你定位兼容性问题。 - Linux 下 Intel GPU 尚未验证;非 NVIDIA 专有驱动的 Vulkan 路径需要给
/dev/udmabuf加读写权限。
继续深入
- 构建说明:docs/dev/BUILD.md,含只构建转换工具的轻量模式和全部 CMake 开关。
- 用法手册:docs/user/USAGE.md,
relinker的全部选项、运行时目录与环境变量。 - 兼容记录:docs/user/COMPATIBILITY.md,每个游戏在各平台上的实测细节。
- 读源码建议从
core/relinker(重链接管线)和core/shader/recompiler(着色器编译)两个目录入手。
下一步
- 想先快速跑起来,用
-DANYPS5_RELINKER_ONLY=ON只构建转换工具,不拉全部第三方依赖,几分钟搞定。 - 拿 Dreaming Sarah 这类已验证标题,完整走一遍"转换 → 摆目录 → 启动"流程,建立直观印象。
- 上新的游戏前,先跑
tools/import_audit.py检查这个游戏缺哪些系统函数,比运行时撞墙快得多。
【免费下载链接】AnyPS5Tool for automatic PS5 executables porting to Linux and Windows项目地址: https://gitcode.com/GitHub_Trending/an/AnyPS5
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考