shadPS4 PS4 模拟器编译教程:三条命令在 PC 上启动《血源诅咒》
【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C++项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4
shadPS4 是 C++ 写的 PS4 模拟器,Windows、Linux、macOS 全平台支持,已能实机运行《血源诅咒》《如龙 0》等商业大作。官方定位仍是早期开发阶段,别期待完美,但核心链路是通的。
跑起来之前:它到底在模拟什么
PS4 的 CPU 是 x86-64 架构,游戏代码在 PC 上直接原生执行,不用任何翻译。真正要重写的有两块:一是系统内核和系统库,入口在src/core/libraries/kernel/;二是 GPU 指令。PS4 的 GPU 是 AMD "利物浦"芯片,自家 GCN 指令集 PC 显卡看不懂,得先翻译再渲染。
说白了,这台模拟器的含金量都压在 GPU 那半边上。
从下载到第一次成功输出
装好 Clang、CMake、SDL2、Vulkan 等依赖后(完整列表见 building-linux.md),核心步骤只有两条命令:
git clone --depth 1 --recursive https://gitcode.com/GitHub_Trending/sh/shadPS4 cd shadPS4--recursive是关键,所有第三方库都以 git submodule 挂进来,漏了它源码是不完整的。
cmake -S . -B build/ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ cmake --build ./build --parallel $(nproc)指定 Clang 是因为官方 CI 全程用 Clang,GCC 可能撞上未知问题(据官方文档)。第二条按核心数并行编译,机器撑不住就去掉--parallel $(nproc)单线程跑。
产物是build/下的可执行文件shadps4。跑一次./build/shadps4能列出全部参数就说明它活了;config.toml里指好游戏文件夹后,直接传游戏 ID 即可启动,比如《血源诅咒》美版是 CUSA00900。
macOS 要求系统 26.0 以上、Intel Mac 不支持;Windows 走 Visual Studio 加 CMake 的路子,步骤见 building-windows.md。
核心模块:最硬的骨头是怎么啃下来的
全项目最重的部分是着色器重编译器,住在src/shader_recompiler/:前端解码 GCN 字节码转成 IR,一串优化 pass 跑完后产出 SPIR-V 交给 Vulkan 执行。设计直接参照了 yuzu 的 Hades 着色器编译器,省掉从零写优化器的工作量,团队才能专心解决模拟 AMD GPU 本身的问题。GPU 侧逐条解释命令的代码在src/video_core/amdgpu/,Vulkan 渲染管线在src/video_core/renderer_vulkan/。
你会踩的 3 个坑(及绕过方式)
固件文件缺失。模拟器启动需要一批来自 PS4 官方固件的.sprx模块。> ⚠️libSceCesCs.sprx、libSceFontFt.sprx、libSceJson2.sprx、libSceLibcInternal.sprx、libSceUlt.sprx等文件必须从自己合法持有的 PS4 主机上 dump,模拟器本体不带,放进sys_modules文件夹。
没查兼容性表就上手。项目维护着独立的游戏兼容性列表,逐个游戏记录了运行情况。先查表再挑游戏,别拿没人验证过的作品试错。
RenderDoc 抓帧不工作。Linux 上 RenderDoc 不支持 Wayland,用SDL_VIDEODRIVER=x11环境变量启动模拟器即可;抓帧后按 F12 触发,具体流程见 Debugging.md。
下一步
目前它还没法运行《战神》,整体仍是早期状态,个别游戏会有画质和性能问题。现在就可以做一件事:打开兼容性列表挑一款标为能玩的,跑通了就 Star 一下,卡住了把日志带上下文丢进 issue。
【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C++项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考