资讯详情

资讯详情

用 shadPS4 PS4 模拟器在 PC 上跑《血源诅咒》:从零到第一局

用 shadPS4 PS4 模拟器在 PC 上跑《血源诅咒》从零到第一局【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4《血源诅咒》60 帧跑在一台普通 PC 上这件事现在成立了。shadPS4 是一个用 C 写的 PS4 模拟器《血源诅咒》《黑暗之魂 重制版》《荒野大镖客救赎》已经在 Windows、Linux、macOS 上能跑。它自认早期开发阶段别指望完美体验但做的事是实的。先看明白这是源码不是安装包先说清楚一件事这个仓库是模拟器核心不含任何图形界面不是双击就能跑的安装包。只玩游戏的话去官方 QtLauncher 的 release 页下载安装版就行不用碰编译。这个仓库是给想改内核、追崩溃、提 PR 的人准备的。其实它已经帮你干了一半的活PS4 的 CPU 是 x86-64 架构游戏可执行代码在 PC 上原生运行不需要翻译。真正要重写的只剩内核和系统库代码在 src/core/libraries/kernel/GPU 是唯一需要下重功夫的部分。从 clone 到第一帧四条命令先装系统依赖Clang、CMake、SDL2、Vulkan 等十几个包完整清单在官方文档 documents/building-linux.md 里。编译器推荐 Clang 23Ubuntu 24.04 的默认 clang 还停留在 18得先加 LLVM 23 的仓库否则和官方构建环境差一截。然后整个过程就是几条命令git clone --depth 1 --recursive https://gitcode.com/GitHub_Trending/sh/shadPS4 cd shadPS4 cmake -S . -B build/ -DCMAKE_C_COMPILERclang -DCMAKE_CXX_COMPILERclang cmake --build ./build --parallel $(nproc)--recursive不能省所有第三方库都用子模块管理externals/ 目录下能看到一整排漏了它 clone 下来是不完整的。编译阶段如果卡死电脑把--parallel $(nproc)去掉单线程慢慢跑。编译产物出来直接传游戏 ID./build/shadps4 CUSA00900CUSA00900是《血源诅咒》美版的 ID游戏目录在 config.toml 里指好传 ID 就能启动。macOS 用户需要 26.0 以上系统Intel Mac 不支持Windows 用 Visual Studio 配 CMake步骤见 documents/building-windows.md。着色器重编译器PC 的 GPU 怎么读懂 GCNPS4 的 GPU 是 AMD GCN 架构的芯片代号利物浦——仓库里就有 liverpool.cpp 这个文件名。它有自己的指令集PC 上的 GPU 直接看不懂中间必须过一道重编译。这是整个项目里分量最重的模块。代码在 src/shader_recompiler/流程四步走frontend/ 下的前端把 GCN 字节码解码成中间表示IRIR 本体放在 ir/ir/passes/ 跑一串优化 pass看文件名就知道在干什么——constant_propagation_pass.cpp 是常量传播dead_code_elimination_pass.cpp 是死代码消除lower_fp64_to_fp32.cpp 把 64 位浮点降到 32 位最后 backend/spirv/ 产出 SPIR-V 交给 Vulkan 执行。这套设计参照 yuzu 的 Hades 着色器编译器当蓝本好处很实际优化器不用从零写可以专心解决模拟 AMD GPU 本身的问题。GPU 模拟本体在 src/video_core/amdgpu/liverpool.cpp 负责逐条解释 GPU 的寄存器级命令renderer_vulkan/ 负责 PC 这一侧的命令队列、帧图和交换链。踩坑清单大多数人会卡住的几个地方固件文件第一道要解决的关。模拟器要加载一批来自 PS4 官方固件的.sprx模块30 多个含libSceCesCs.sprx、libSceFontFt.sprx、libSceJson2.sprx放进sys_modules文件夹⚠️ 模拟器本体不带这些文件需要你从合法持有的 PS4 主机上 dump。没有主机的话这一步是死路绕不过去。编译器别乱选GCC 是坑。官方构建用 Clang 23GCC 14 只是CI 测过。用 GCC 可能撞上未知问题提交 issue 前对方还会要求你先用 Clang 复现一遍。先查兼容性再选游戏。项目维护着单独的游戏兼容性列表逐个记录各作的运行情况。盲选一款没人验证过的游戏大概率是在重复别人已经记录过的崩溃时间。没有手柄内置映射够用。WASD 是左摇杆IJKL 是右摇杆三角圆圈叉方块对应小键盘 8/6/2/4也可以按 C/B/N/V方向键就是方向键。F11 切全屏F10 看帧数F12 触发 RenderDoc 抓帧。Xbox 和 DualShock 手柄即插即用自定义绑定按游戏保存。真崩了怎么办。documents/Debugging/Debugging.md 讲了怎么用 RenderDoc 看一帧里到底发生了什么、bug 报告该带什么信息。Linux 上用 RenderDoc 记得设置SDL_VIDEODRIVERx11Wayland 下它不工作。挑一款能玩的它已经能跑《血源诅咒》《黑暗之魂 重制版》《荒野大镖客救赎》。去兼容性列表里挑一款确认能玩的下手卡住了就把日志丢进 issue一步一步来。【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →