shadPS4 PS4 模拟器新手指南:从 clone 到跑通 Bloodborne
shadPS4 PS4 模拟器新手指南:从 clone 到跑通 Bloodborne
【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C++项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4
在 Linux 终端敲进几行命令,Bloodborne 的加载界面出现在屏幕上——这就是现在用 PC 跑 PS4 游戏的状态。shadPS4 是一个用 C++ 写的 PS4 模拟器,支持 Windows、Linux、macOS。README 的 Status 一节把 Bloodborne、Dark Souls Remastered、Red Dead Redemption 都列进了能运行的名单。
shadPS4 是什么:一个处于早期阶段的 PS4 模拟器
一句话定义:C++ 写的 PS4 模拟器。官方给自己的定位是"early in development, don't expect a flawless experience",即早期开发阶段,别指望完美体验。这个仓库是模拟器核心,不带图形界面。只玩游戏的话,官方建议直接下载独立的 QtLauncher;想改代码或提 PR,才需要编译这个仓库。
PS4 模拟器要解决什么:GPU 重编译与内核重写
PS4 的 CPU 是 x86-64,游戏可执行代码在 PC 上原生运行。不需要 CPU 翻译层,这是它能快速推进的原因之一。
真正的大头在 GPU。PS4 的 GPU 是 AMD 的 GCN 芯片,代号 Liverpool,指令集是它自己的,PC 的 GPU 看不懂。做法是重编译:解码 GCN 字节码,转成中间表示(IR),跑一串优化 pass,最后输出 SPIR-V 交给 Vulkan。这是整个项目体量最大的模块,位于 src/shader_recompiler/:frontend/负责解码,ir/passes/是优化 pass,backend/spirv/是 Vulkan 输出口。设计上参照了 yuzu 的 Hades 着色器编译器,有成熟优化器打底,作者能专心对付 AMD GPU 本身。
GPU 模拟本体在 src/video_core/:amdgpu/liverpool.cpp逐条处理 GPU 命令,renderer_vulkan/负责 PC 这侧的队列与交换链。游戏调用的内核和系统库用 C++ 重写,放在 src/core/libraries/kernel/。音频和输入走原生代码,由 src/input/ 统一处理。
shadPS4 Linux 编译与首次运行教程
先装构建依赖(以 Ubuntu 为例,完整清单见 documents/building-linux.md):
sudo apt install build-essential clang git cmake libasound2-dev \ libpulse-dev libopenal-dev libssl-dev zlib1g-dev libedit-dev \ libudev-dev libevdev-dev libsdl2-dev libjack-dev libsndio-dev \ libvulkan-dev vulkan-validationlayers libpng-dev官方推荐 Clang 23,GCC 14 也有 CI 测试,但用 GCC 可能撞上未知问题。Ubuntu 24.04 默认源里的 clang 可能还是 18,需要先从 apt.llvm.org 加 Clang 23,文档里有现成命令。
clone 仓库并配置。--recursive不能省,所有第三方库都在子模块里,漏了它 clone 下来的是残缺代码:
git clone --recursive https://gitcode.com/GitHub_Trending/sh/shadPS4 cd shadPS4 cmake -S . -B build/ -DCMAKE_C_COMPILER=clang-23 -DCMAKE_CXX_COMPILER=clang++-23然后编译并启动。游戏安装文件夹要在config.toml里指好,之后直接传 Game ID 就能启动:
cmake --build ./build --parallel$(nproc) ./build/shadps4 CUSA00900CUSA00900是 Bloodborne 美版的 ID。编译时如果机器卡死,把--parallel$(nproc)去掉改单线程。macOS 要求 26.0 以上且不支持 Intel 机型,Windows 步骤见 documents/building-windows.md。
shadPS4 常见报错与排查
固件文件是硬前提。模拟器要加载一批.sprx固件模块,必须放进sys_modules文件夹。
⚠️
libSceFontFt.sprx、libSceJson2.sprx、libSceUlt.sprx等模块要从你合法持有的 PS4 主机上 dump,模拟器本体不带这些文件,缺了游戏无法正常跑。
没手柄就用内置映射。WASD 是左摇杆,IJKL 是右摇杆,三角/圆圈/叉/方块对应小键盘 8/6/2/4,也可以按 C/B/N/V。F10 看帧数,F11 全屏,F12 触发 RenderDoc 抓帧。Xbox 和 DualShock 手柄即插即用。
选游戏前先查兼容性。项目维护着单独的游戏兼容性列表,逐作记录了运行情况。盲选一款没人验证过的游戏,大概率是在浪费别人已经记录过的崩溃时间。
Linux 上 RenderDoc 打不开。Wayland 下它不工作,运行前设SDL_VIDEODRIVER=x11。抓帧和 bug 报告要带什么的详细要求,见 documents/Debugging/Debugging.md。
先去兼容性列表挑一款能玩的游戏,卡住了就带上日志提 issue。这个 PS4 模拟器每出一个版本,"能玩"的圈子就大一点。
【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C++项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考