首页 / 资讯中心 / 文章详情

不靠模拟器跑 PS5 程序:AnyPS5 非模拟器 PS5 原生移植路线拆解

不靠模拟器跑 PS5 程序:AnyPS5 非模拟器 PS5 原生移植路线拆解 ★ FEATURED ARTICLE
不靠模拟器跑 PS5 程序AnyPS5 非模拟器 PS5 原生移植路线拆解【免费下载链接】AnyPS5Tool for automatic PS5 executables porting to Linux and Windows项目地址: https://gitcode.com/GitHub_Trending/an/AnyPS5一份 PS5 程序的 ELF 文件不需要逐条模拟 CPU 指令就能被改写成本地 Linux 或 Windows 的原生可执行文件。这就是 AnyPS5——一个非模拟器路线的 PS5 原生移植工具它不扮演 PS5而是把程序本身改写成宿主系统可以直接运行的形态。 原生移植 vs 模拟两句话讲清区别一句话模拟器在运行时穿着 PS5 的外套逐条翻译指令、逐个拦截系统调用AnyPS5 在运行前就把程序改写成了宿主的母语。维度传统模拟器AnyPS5 原生移植程序代码运行时逐条翻译或解释转换期一次性转为宿主原生 ELF / PE系统功能伪系统层拦截执行直接链接到项目构建的 prx 系统库运行形态独立的模拟进程普通宿主进程无额外运行时所以中间不存在模拟层跑起来的就是程序本身唯一带客字的是那套系统库。⚙️ 跟一次运行从解析到画出第一帧转换好的游戏跑起来之前时间线上只发生三件事。解析与重链接。relinker 读入 ELF按 NID 梳理程序需要的系统函数、过滤未使用的导入把随包模块一并转换然后写出目标系统的原生格式——这就是relinker 转换 PS5 可执行文件的全部管线入口在 core/relinker/main.cpp。启动时系统调用被接管。程序一启动它就是普通的宿主进程它调用的每个系统函数都由操作系统加载器解析到libs/里的 prx 系统库libkernel、libScePad、libSceVideoOut等来源见 core/libs/prx。这些库的导出名在构建期被统一改写成 NID两边因此能找到彼此。渲染走 Vulkan 管线。画面帧到达时游戏把命令缓冲提交给图形驱动RDNA 着色器指令被解码、翻译成中间表示、优化最后由着色器重编译器输出 SPIR-V 交给 Vulkan——整条管线在 core/shader/recompiler/Recompiler.cpp编译结果有磁盘缓存第二次启动明显更快。 三步把 input.elf 变成能跑的程序第 1 步准备输入目录。干净的 ELF 可执行文件与随包模块放在一起目录结构见 docs/user/USAGE.mdsource/ input.elf sce_module/ 随包 ELF 模块第 2 步一条命令完成转换。relinker 一次生成目标系统的原生文件relinker source/input.elf app.elf # 输出 Linux ELF relinker --windows source/input.elf app.exe # 输出 Windows PEIntel 平台上可加--to-intel下文 FAQ 有说明macOS 的 x86-64 Mach-O 也支持。第 3 步摆放运行时目录。以下路径都相对于输出可执行文件app.elfLinux或 app.exeWindows libs/ *.prx # 项目构建出的系统库 app0/ 游戏资源 sce_module/ # 转换后的随包模块把build/core/libs/libs/*.prx拷进libs/Linux 下执行./app.elfWindows 下执行.\app.exe。贴士--rpath默认值是$ORIGIN/libs即系统库默认从可执行文件旁边的libs/加载。注意libs/只放本项目构建的.prx不要放 PS5 原版.prx——在 Windows 上它会被当成 DLL 加载并直接报 error 193。⚠️ 现在能跑什么边界在哪诚实地交代进度已验证的游戏完整列表见 docs/user/COMPATIBILITY.mdDreaming Sarah2D 平台游戏在 Windows 下可进游戏游玩GTX 1050 Ti / i5-7500 下 60 FPSIntel HD 620 下 36 FPS自制游戏 DOOM Shareware 在 Windows 和 Linux 都能进 E1M1实机内游戏约 35 FPS其中一个测试环境甚至是 llvmpipe 软渲染。Linux Intel GPU 的组合尚未验证。失败是显式的不支持或未预期的状态严格抛出std::runtime_errorwhat()打到 stderr进程终止不存在半死不活的降级。构建环境x86-64、CMake 3.22.1 起、Ninja、C20Linux 用 GCC/GWindows 目前只支持 MinGW-w64 GCC 15.2.0FFmpeg 二进制在配置阶段自动下载。细节在 docs/dev/BUILD.md。git clone https://gitcode.com/GitHub_Trending/an/AnyPS5 cd AnyPS5 git submodule update --init --recursive cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPERelease cmake --build build --parallel cmake --build build --target libs --parallel最后一行的libstarget 是必须的一步build/core/libs/libs里的.prx靠它产出。 手柄、键盘、鼠标怎么接手柄自动识别SDL 映射下的 Xbox 与 PlayStation 手柄使用标准 PS 键位摇杆和模拟扳机直通运行中热插拔也不影响第一个被识别的手柄生效。键盘和鼠标默认用内置键位想自定义就在可执行文件旁新建anyps5-input.ini每行一条Action Type:Value比如把 Cross 改成 F 就写Cross KEY:F。文件想放别处可用ANYPS5_INPUT_CONFIG指定。支持的动作列表、摇杆死区、鼠标灵敏度参数都在 docs/user/INPUT_MAPPING.md。❓ 你大概率会问的三件事要不要自备 PS5 固件或专有库不需要。README 的免责声明写得很清楚项目服务于互操作、研究、保存与兼容目的不包含、不分发、也不要求任何受版权保护的软件、固件、密钥或专有库。你运行哪个二进制、它是否合法获取责任在你自己。报错时为什么直接终止而不是降级继续因为静默降级会把兼容性问题埋掉。AnyPS5 的策略是不对就抛异常、死得干脆错误信息精确告诉你卡在哪游戏跑不起来时你能直接对着报错修文档甚至明确警告为调试启用那些弃用标志会让程序极其不稳定不适合通用。我的 CPU 是 Intel能跑吗部分可以。--to-intel会把可执行文件和随包模块里发现的 AMD 专属指令改写成 Intel 兼容指令但游戏运行时动态生成的新指令无法提前翻译这类游戏就要求 AMD CPU 宿主。 接下来读什么想深入源码从两个入口开始core/relinker重链接管线从main.cpp顺着读能看到完整路径和 core/shader/recompiler独立、纯函数式的模块以Recompiler.cpp为主线。文档先读三份就够docs/user/USAGE.md转换与运行时布局、docs/dev/ARCHITECTURE.md架构图与数据流、docs/user/COMPATIBILITY.md游戏清单。core/libs/tests 里的测试集则展示了每个系统库是怎么被验证的。已验证的游戏名单每长一点这条原生路线的成色就实一分。【免费下载链接】AnyPS5Tool for automatic PS5 executables porting to Linux and Windows项目地址: https://gitcode.com/GitHub_Trending/an/AnyPS5创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站