☰
PS5SX2源码构建指南:ps5-payload-dev SDK + LLVM 18,从Makefile.vk到签名eboot.bin全流程
2026/10/15 15:16:08 网站建设 项目流程

【免费下载链接】PS5SX2

A port of PCSX2 for PS5

项目地址:https://gitcode.com/gh_mirrors/ps/PS5SX2
点击查看免费下载

PS5SX2是把经典 PS2 模拟器 PCSX2 移植到破解版 PS5 主机的开源项目。本指南带你走通PS5SX2 源码构建全流程:用ps5-payload-dev SDK交叉编译、LLVM 18链接,通过 Makefile.vk 编译全部目标文件,再由 link-vk.sh 链接、签名,最终产出可直接部署到主机的eboot.bin。

PS5SX2 是什么?为什么值得动手构建?

PS5SX2 的仓库根目录就是 PCSX2 本身(上游代码加上移植层的提交),ps5/目录则是 PS5 适配层。构建完成后,你可以在 PS5 Pro(固件 11.40)上运行完整的 PS2 模拟器:封面书架、设置网页、RetroAchievements 成就,图形走 PCSX2 的Vulkan 后端,驱动直接静态链接进 eboot。

下面这张 PCSX2 游戏库界面截图,就是移植项目最终要跑在掌机/主机上的那个模拟器:

而游戏画面则通过 Vulkan 渲染输出,效果与 PC 版一致:

构建环境要求:一份完整清单

⚠️先说结论:发行版构建依赖作者修改过的 SDK 与 Vulkan 驱动,官方原版 SDK + 上游驱动目前尚未验证可完全替代。完整的依赖准备记录在 ps5/docs/build-dependencies.md,动手前建议先读一遍。

在 Linux 上构建 PS5SX2,你需要准备三类东西:

类别内容说明
交叉工具链ps5-payload-dev SDK v0.42(sdk285/)提供prospero-clang/prospero-clang++,作者重建过其中crt1.o、libc++abi.a、libunwind.a
宿主工具LLVM 18(clang-18、clang++-18、ld.lld-18、llvm-objcopy-18、llvm-nm-18)链接、符号改名、构建签名工具用
其他zlib 开发库、Python 3prepare_console_elf.py等脚本需要 Python

依赖文件夹PS5SX2_DEPS的推荐结构(详见 ps5/README.md):

  • sdk285/:上述 SDK
  • ryml/:rapidyaml(0cd25a1,含 c4core 子模块)
  • glslang/:glslang(275822a),用 SDK 的 CMake toolchain 预编译出build-ps5/静态库
  • shaderc/:shaderc v2026.2,只用到头文件

另需单独准备Vulkan 驱动Swordpdf/PS5HB_Vulkan(commit5da7401),用其自带脚本tools/setup-native-dependencies.sh+tools/build-driver.sh构建,路径通过PS5_VULKAN_DIR指定。

每个路径也可以单独指定:RYML、PS5_PAYLOAD_SDK、GLSLANG、GLSLANG_BUILD、SHADERC_INCLUDE。

三步走:clone、编译、签名

第一步:获取源码并设置环境变量

git clone https://gitcode.com/gh_mirrors/ps/PS5SX2 cd PS5SX2 export PS5SX2_DEPS=/path/to/deps export PS5_VULKAN_DIR=/path/to/PS5HB_Vulkan

glslang 的 PS5 静态库可用 SDK 的 toolchain 编译:

cmake -S $PS5SX2_DEPS/glslang -B $PS5SX2_DEPS/glslang/build-ps5 \ -DCMAKE_TOOLCHAIN_FILE="$PS5_PAYLOAD_SDK/toolchain/prospero.cmake" \ -DCMAKE_BUILD_TYPE=Release -DENABLE_OPT=OFF -DENABLE_HLSL=OFF \ -DENABLE_GLSLANG_BINARIES=OFF -DGLSLANG_TESTS=OFF cmake --build $PS5SX2_DEPS/glslang/build-ps5 -j2

第二步:Makefile.vk 交叉编译

cd ps5/coreorbis make -f Makefile.vk -j"$(nproc)"

成功时输出VK COMPILE OK: N objects。几个新手容易踩的点:

  • 🔧编译器不是普通的 clang:Makefile.vk 使用 SDK 里的bin/prospero-clang++,如果找不到会直接报错提示设置PS5SX2_DEPS或PS5_PAYLOAD_SDK。
  • 目标架构是 znver2:-march=znver2 -msse4.1 -mavx2 -mno-vzeroupper,为 PS5 的 Zen 2 核定制,还禁用了 LLVM 的 store 宽度收窄优化。
  • 源码覆盖面很广:除pcsx2/核心外,还包含ps5/frontend/(封面书架与设置页)、ps5/third_party/里内置的 zlib / zstd / LZ4 / libarchive / mbedTLS / libnfs 等 C 库(清单见 ps5/third_party/README.md)。
  • 头文件依赖有跟踪(-MMD -MP),修改头文件后增量构建不会用到过期对象。

第三步:link-vk.sh 链接、准备并签名

ORBIS_BUILD_TAG=my-build bash link-vk.sh

link-vk.sh 一次完成五件事,这也是整个流程最精妙的部分:

  1. 用 SDK 的 clang 18 编译入口 main-boot.cpp 与 CRT 对象;
  2. 收集Makefile.vk产出的全部目标文件(objects.txt);
  3. 引入四个驱动静态库(--whole-archive)+ Mesa 工具对象 + glslang 静态库;
  4. 用LLD 18做两轮 PIE 链接(第二轮通过app-symbols.map把非导入符号全部本地化),并应用热点函数排序文件 orbis-hot.order 提升缓存命中率;
  5. 构建宿主签名工具ps5-native-tool(首次会自动编译),执行 native link →prepare_console_elf.py主机化准备 →自签名输出eboot.bin,最后打印 SHA-256 校验。

📦最终产物位置:

  • 签名好的 eboot:ps5/build-vk/app/eboot.bin
  • 中间产物:ps5/build-vk/build/{llvm-pie.elf, eboot.elf, eboot-console-ready.elf}

部署到 PS5 主机

应用参数由 ps5/sce_sys/param.json 定义,标题 ID 为PPSA99203。在主机上把以下内容放进/data/homebrew/PPSA99203/:

文件来源
eboot.bin本次构建产物
sce_sys/仓库 ps5/sce_sys/
sce_module/libc.prx驱动仓库里make libc生成

注意主机需先运行 PS5SX2 Helper payload 完成越狱并挂载/data沙箱。若启动失败,收集数据目录下的boot.log与stderr.log排查(切勿外传achievements-secrets.ini)。

常见问题排查

现象原因与解法
no SDK at ... set PS5SX2_DEPS环境变量没设对,检查 Makefile.vk 的报错提示
裸make -f Makefile.vk只编译一个文件旧版本曾把fe_https.o变成默认目标,现在已用.DEFAULT_GOAL := all修复,请更新到最新提交
链接报符号冲突 / 驱动校验失败link-vk.sh会把驱动的vkGetInstanceProcAddr改名为避免与 PCSX2 冲突,确认驱动版本与 link-vk.sh 注释中描述匹配
想用原版 SDK 构建参见 ps5/docs/build-dependencies.md 中的 RADV 实验性构建路径,注意主机兼容性未经验证

写在最后

从make -f Makefile.vk到签名eboot.bin,PS5SX2 的构建链路清晰且脚本化程度很高:SDK 交叉编译 + LLVM 18 链接 + 宿主工具自签名,三个环节各司其职。构建成功后,你可以把ORBIS_BUILD_TAG设为自己的版本号,方便在主机日志中确认运行的正是自己的构建。

📚 延伸阅读:

  • 依赖准备细节:ps5/docs/build-dependencies.md
  • RetroAchievements 集成:ps5/docs/retroachievements.md
  • PS5 适配层总览:ps5/README.md
  • 主机 ELF 准备脚本:ps5/tools/prepare_console_elf.py

【免费下载链接】PS5SX2

A port of PCSX2 for PS5

项目地址:https://gitcode.com/gh_mirrors/ps/PS5SX2
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询