跑 PS5 程序不靠模拟器AnyPS5 如何把主机可执行文件搬进你的 PC【免费下载链接】AnyPS5Tool for automatic PS5 executables porting to Linux and Windows项目地址: https://gitcode.com/GitHub_Trending/an/AnyPS5你手上有从 PS5 上提取出的input.elf想让它直接在你的 Linux 或 Windows 机器上跑起来。常规思路是搞一台模拟器但 AnyPS5 走了另一条路它叫 relinker把这份可执行文件重链成宿主系统的原生格式再让程序动态链接到项目自己实现的一组 PS5 系统库prx全程没有模拟层也不需要额外的运行时进程。一分钟看懂它一句话定义AnyPS5 是一个把 PS5 可执行文件移植成 Linux / Windows 原生程序的自动化工具核心动作是重链接而不是模拟。它不是模拟器——模拟器搭一台虚拟 PS5 替你跑游戏而 AnyPS5 是把你的程序直接改造成本机程序。对比维度传统模拟器AnyPS5运行形态独立的模拟进程游戏跑在虚拟硬件里转换产物就是普通本地进程./app.elf直接执行CPU 指令逐条解释或即时转译宿主原生指令需要时只改 AMD 专属指令系统调用在运行时里模拟系统 API链接到项目实现的 prx 系统库由操作系统动态加载图形路径模拟主机图形栈RDNA 着色器重编译为 SPIR-V走 Vulkan 管线原理拆解打个比方PS5 程序想调用系统功能时并不是直接喊函数名而是拿着一个叫 NID 的编号去找对应的库。AnyPS5 就是顺着这套编号规则给程序改地址、换宿主。relinkercore/relinker整个管线的总调度。它解析输入 ELF 的导入表校验系统调用重排成目标平台的动态节产出 Linux ELF 或 Windows PE--to-intel还能把 AMD 专属指令降级成 Intel 也能执行的版本。prx 系统库core/libs/prx几十个 PS5 系统库的原生实现从libkernel的线程与文件到libScePad的输入设备。构建完成后由 nid_patchercore/libs/nid把每个导出函数改名为它的 NID这样宿主的动态链接器就能按编号完成绑定——相当于把门牌换成 PS5 的牌号程序找不到原来的库也能找到新门。着色器重编译器core/shader/recompilerRDNA 汇编到 SPIR-V 的完整编译链从指令解码、控制流结构化、IR 翻译、优化到 SPIR-V 后端输出经校验后可被 Vulkan 直接使用。它被刻意做成输入决定输出的纯函数模块方便复用到别的项目。三者的关系relinker 负责改程序prx 库负责补系统重编译器负责画画面产物落地后就和你写的 C 程序没有任何区别。第一次跑起来先 clone 仓库并拉取子模块SDL、FFmpeg、glslang 等都在这里git clone https://gitcode.com/GitHub_Trending/an/AnyPS5 cd AnyPS5 git submodule update --init --recursive接着配置并完整构建。这一步跑完你手里多了一个relinker可执行文件FFmpeg 二进制会在配置阶段自动下载cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPERelease cmake --build build --parallel cmake --build build --target libs --parallel注意最后一条不是可省略的构建文档 说明libs是自定义目标默认构建并不会产出系统库漏掉它你拿不到任何.prx。此时build/core/libs/libs/里应该躺着一堆.prx文件。现在做转换。把干净 ELF 和随包模块按 USAGE.md 的布局放好source/ input.elf sce_module/ 随包 ELF 模块然后一条命令出结果Linux 和 Windows 各来一份relinker source/input.elf app.elf relinker --windows source/input.elf app.exe此时你多了一个本地可执行文件。把build/core/libs/libs/*.prx复制到它旁边的libs/游戏资源放进app0/转换后的随包模块会落在app0/sce_module/最后chmod x app.elf ./app.elf就能看到游戏窗口。系统库默认从可执行文件旁边的libs/加载因为--rpath默认值就是$ORIGIN/libs——路径是相对输出文件的不是相对你当前所在目录。如果你只想试试转换工具本身还有轻装模式-DANYPS5_RELINKER_ONLYON可以在不初始化子模块、不配 SDL/Vulkan/FFmpeg 的情况下单独构建 relinker 及其测试Linux、Windows、macOS 都支持。进阶玩法两个高频场景值得单独说。Intel 机器跑 AMD 指令。PS5 的 CPU 是 x86-64但混有 AMD 专属指令。加--to-intel后relinker 会把可执行文件和随包模块里的这些指令改写成 Intel 版本。边界在于运行时由游戏动态生成的 AMD 指令它管不了这类标题仍然只能上 AMD 主机。Apple 用户则走--macos产物是 x86-64 Mach-O在 Apple 芯片上经 Rosetta 执行--to-rosetta会额外降级 Rosetta 缺少的几条指令。输入自定义。手柄走 SDL 映射Xbox 和 PlayStation 手柄自动按 PS 键位识别摇杆与模拟扳机直通支持热插拔无需任何配置。想改键盘鼠标绑定时在生成的可执行文件旁放一个anyps5-input.ini格式是动作 类型:值比如Cross KEY:Space就能让空格当叉键用没放文件就用内置键位。设备列表与完整格式见 输入映射文档。当前边界先说清楚它现在能到什么程度官方验证过的游戏列表非常短——兼容列表 里是 Dreaming Sarah2D 平台游戏GTX 1050 Ti i5-7500 稳定 60 FPS和一个 DOOM Shareware 的 homebrew 版本Intel 集显环境尚未验证。README 顶部的进度徽章统计的是项目已声明函数中实现的比例不是全部 PS5 系统函数的比例且总数会随声明函数增多而变化所以别拿这个百分比直接推断还能玩什么。再看要注意什么。设计上任何不支持或未预期的状态会严格抛出std::runtime_error并终止进程——这是刻意的用崩溃换取问题定位速度而不是给你一个行为诡异的画面。环境上Windows 构建目前只支持指定的 MinGW-w64 GCC 15.2.0且自建的libs/需要配套三个工具链 DLL它们不会被从系统PATH找缺失时.prx明明在也会报 error 126Linux 侧部分显卡驱动走 dma-buf 导入直存内存用户需要对/dev/udmabuf有读写权限否则 GPU 直存会失败。这些细节在 使用文档 里都有对应章节。疑问快答问题一句话解答这是破解工具吗项目声明用途为互操作、研究、保存与兼容性不含、不分发任何受版权保护的软件、固件或专有库见 README 免责声明。为什么没有模拟器的卡顿感转换产物是宿主原生代码 原生系统库图形走 Vulkan 编译管线CPU 层面没有解释或转译层。libs/里能放原版 PS5 的.prx吗不能。libs/只放项目构建的系统库放原版模块在 Windows 上会被当成 DLL 加载报 error 193。进度怎么看README 顶部的 libraries/shaders 徽章与进度图配合 技术债清单 看哪些行为尚未对齐。Intel 核显能玩吗转换时加--to-intel运行时动态生成的 AMD 指令无法转换此类标题需要 AMD 主机。想读源码的话一条顺畅的路径先看 架构文档 里两张流程图把输入 → relinker 四步 → 宿主程序的整条链走一遍再翻 core/relinker 的RelinkerPipeline和 ELF/PE 补丁器看重定位与动态节是怎么拼出来的最后到 core/shader/recompiler 看 RDNA 解码到 SPIR-V 的纯函数式编译链。看完这三处这个项目在你面前就没什么黑盒了。【免费下载链接】AnyPS5Tool for automatic PS5 executables porting to Linux and Windows项目地址: https://gitcode.com/GitHub_Trending/an/AnyPS5创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考