shadPS4 PS4模拟器完整实战指南:在 PC 上跑 60 帧血源诅咒

发布时间:2026/11/4 6:13:48
shadPS4 PS4模拟器完整实战指南:在 PC 上跑 60 帧血源诅咒

shadPS4 PS4模拟器完整实战指南:在 PC 上跑 60 帧血源诅咒

【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C++项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4

《血源诅咒》在 Windows 笔记本上跑到 60 帧,这是 shadPS4 这款 C++ 编写的 PS4 模拟器现在的状态:让 PS4 游戏跑在 Windows、Linux、macOS 上。官方定位是早期开发阶段,别指望完美体验。本文面向只玩游戏的普通玩家和想动源码的新手,带你从零走到第一局。

哪些 PS4 游戏现在能玩:先查兼容性列表

结论先行:选游戏前先看列表。shadPS4 已验证可玩《血源诅咒》《黑暗之魂 重制版》《荒野大镖客:救赎》《如龙0》《DRIVECLUB》等作品,其中《血源诅咒》在 Windows 笔记本上能跑到 60 帧;《战神》目前跑不了。

项目维护着一份独立的游戏兼容性列表,逐作记录运行情况。直接盲选一款没人验证过的游戏,大概率是撞进别人已经记录过的崩溃。先查列表,再决定装哪款。

获取 shadPS4 的两条路径:官方启动器或三步自编译

源码仓库是模拟器核心,不是双击就能玩的安装包。路径因此分两条:

  • 只玩游戏:下载官方 QtLauncher,带完整图形界面,指好游戏目录就能启动,不用碰源码。
  • 想改内核或提代码:自己编译。

Linux 自编译先装约 20 个系统依赖(Clang、CMake、SDL2、Vulkan 等,完整列表见 building-linux.md)。编译器推荐 Clang 18,用 GCC 可能撞上未知问题。macOS 需要 26.0 以上系统,Intel Mac 不支持。

依赖装好后,编译就三条命令:

git clone --depth 1 --recursive https://gitcode.com/GitHub_Trending/sh/shadPS4 cd shadPS4 && cmake -S . -B build/ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ cmake --build ./build --parallel $(nproc)

--recursive不能省:所有第三方库都用子模块管理(主仓库里登记的代码引用,漏掉这个标志 clone 下来是不完整的)。编译把机器卡死,就去掉--parallel $(nproc)并行参数单线程慢慢跑。Windows 用 Visual Studio 配 CMake,步骤见 building-windows.md。

编译产物出来后直接启动:./build/shadps4 CUSA00900。CUSA00900 是《血源诅咒》美版 ID,游戏目录在配置里指好,传 ID 即可进入游戏。

原理拆解:CPU 原生跑,真正重写的是哪些部分

PS4 的 CPU 是 x86-64,和你 PC 同架构,游戏可执行代码在 PC 上原生运行,不需要翻译。真正要重写的是内核和系统库,代码在src/core/libraries/kernel/。

GPU 是全项目最复杂的部分。PS4 的 GPU 是 AMD GCN 架构芯片,代号"利物浦",PC 上的 GPU 读不懂它的指令集,每个着色器都要过一道重编译:

  • 前端解码 GCN 字节码,转成 IR(中间表示,编译器内部的通用数据格式)
  • 跑一串优化 pass
  • 产出 SPIR-V(可移植的着色器中间格式)
  • 交给 Vulkan(PC 显卡的 3D 图形接口)执行

整套设计参照了 yuzu 的 Hades 着色器编译器,省掉从零写优化器的工作量,把精力花在模拟 AMD GPU 本身上。

关键目录分工:着色器重编译器在src/shader_recompiler/,前端在frontend/,优化 pass 在ir/passes/,Vulkan 后端在backend/spirv/;GPU 模拟本体在src/video_core/,其中amdgpu/liverpool.cpp逐条解释 GPU 的寄存器级命令,renderer_vulkan/负责 PC 这一侧的队列、帧图和交换链。音频与输入走原生代码,手柄、键盘、鼠标统一由src/input/处理。

下面这张特写演出画面的输出,就是上面整条链路的最终产物。

开玩前要先做的三件事

⚠️ 第一件,固件文件,第一道坎。模拟器要加载一批来自 PS4 官方固件的.sprx模块,放进sys_modules文件夹:libSceCesCs.sprx、libSceFontFt.sprx、libSceJson2.sprx、libSceLibcInternal.sprx、libSceUlt.sprx等文件需要你自己从合法持有的 PS4 主机上 dump,模拟器本体不带这些文件。

第二件,没有手柄就用内置映射。WASD 是左摇杆,IJKL 是右摇杆,三角、圆圈、叉、方块对应小键盘 8/6/2/4(C/B/N/V 也可以),方向键就是方向键。F11 切换全屏,F10 显示帧数,F12 触发 RenderDoc 抓帧。Xbox 与 DualShock 手柄即插即用;自定义绑定按游戏保存,单个按键最多绑 3 个键,还支持把鼠标移动映射到摇杆。

第三件,崩了先看文档。Debugging.md 讲了怎么用 RenderDoc 查看一帧里到底发生了什么,以及 bug 报告该附哪些信息。Linux 上用 RenderDoc 记得设置SDL_VIDEODRIVER=x11。

《战神》现在还跑不了。去 Star 仓库,从兼容性列表里挑一款验证过的游戏开跑,卡住了就把日志带进 issue——每发一个版本,"能玩"两个字就近一步。

【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C++项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4

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