shadPS4 模拟器完全指南:从源码构建、命令行启动到游戏调试的实战手册
【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C++项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4
shadPS4 是一个用 C++ 编写的早期 PlayStation 4 模拟器,支持 Windows、Linux、macOS(官方构建目标还包括 FreeBSD)等多平台运行。本文以仓库根目录的 README.md 为主线,结合 src/main.cpp、src/core/emulator_settings.h 与 documents 下的构建、调试文档,系统讲解 shadPS4 的项目现状、多平台构建方式、命令行启动参数、配置文件体系、键盘鼠标映射与固件(firmware)加载要求,帮助你在当前仓库中完成从「拉取源码」到「运行一款 PS4 游戏」再到「定位并报告问题」的完整流程。
项目概览与当前状态
shadPS4是一个处于早期开发阶段的PlayStation 4 模拟器,核心由 C++ 编写,目标是让 PS4 游戏在 Windows、Linux 和 macOS 上运行。官方项目定位与当前进度在 README 中有明确说明:
- 早期开发状态:README 明确指出 "shadPS4 is early in development, don't expect a flawless experience."(shadPS4 正处于早期开发阶段,不要期待完美无缺的体验),这意味着部分游戏可能无法启动、存在崩溃或图形错误。
- 可运行的游戏示例:目前可以成功运行 [Bloodborne]、Dark Souls Remastered、Red Dead Redemption 等游戏(截图见 documents/Screenshots/1.png 至 documents/Screenshots/4.png,分别展示了 Bloodborne、Hatsune Miku Project DIVA Future Tone、Yakuza 0 与 DRIVECLUB 的运行效果)。
- 项目动机:项目以兴趣为起点,因维护者业余时间有限,功能的推进以小步快跑的方式持续更新(见 README "Why" 一节)。
[!IMPORTANT] 仓库内是模拟器核心(emulator core),不包含图形界面。如果只想作为普通用户使用,请下载官方配套的QtLauncher发行版;如果要使用内置的大屏界面,可用命令行
-b(Big Picture 模式)启动,详见下文命令行章节。
从源码结构看,模拟器的核心模块分布在 src/core(内核、文件系统、库模拟)、src/shader_recompiler(GCN 着色器重编译到 SPIR-V)、src/video_core(AMD GPU 的 Liverpool 命令处理器与 Vulkan 渲染后端)等目录,这是理解其架构深度的起点。
构建 shadPS4:四种方式的完整步骤
README 的 "Building" 一节为每个平台都链接了独立文档,本仓库中对应文件位于 documents/building-docker.md、documents/building-windows.md、documents/building-linux.md 和 documents/building-macos.md。以下按平台整理出可直接复制的命令。
通用前提:递归克隆
项目依赖大量 Git 子模块(见 externals 目录下的 CLI11、SDL3、glslang、Vulkan-Headers 等),克隆时必须带--recursive:
git clone --recursive https://github.com/shadps4-emu/shadPS4.git cd shadPS4如果已经克隆过但缺少子模块,可随时补拉:
git submodule update --init --recursiveLinux 构建
Linux 官方文档明确建议:Clang 18 是推荐编译器(官方构建与 CI 均使用它);若用 GCC 构建遇到问题,请在提[APP BUG]问题或 PR 前至少先用 Clang 成功构建一次,以排除编译器差异。
安装依赖(不同发行版命令不同):
- Debian / Ubuntu:
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- Fedora:
sudo dnf install ninja-build clang git cmake libatomic alsa-lib-devel \ pipewire-jack-audio-connection-kit-devel openal-soft-devel \ openssl-devel libevdev-devel libudev-devel libXext-devel \ libXcursor-devel libXi-devel libXrandr-devel libXScrnSaver-devel \ vulkan-devel vulkan-validation-layers libpng-devel libuuid-devel- Arch Linux:
sudo pacman -S base-devel clang git cmake sndio jack2 openal \ sdl2 vulkan-validation-layers libpng注意:AUR 上的
shadps4-git包并非官方维护,且默认使用 GCC 编译器,请自行斟酌使用。
- OpenSUSE:
sudo zypper install clang git cmake libasound2 libpulse-devel \ libsndio7 libjack-devel openal-soft-devel libopenssl-devel \ zlib-devel libedit-devel systemd-devel libevdev-devel \ vulkan-devel vulkan-validationlayers libpng-devel- Nix Flake 开发环境(本仓库根目录自带 flake.nix):
nix develop cmake -S . -B build/ ln -s ./build/compile_commands.json .- Nix Flake 直接构建(debug / release / releaseWithDebInfo 三种配置):
nix build .?submodules=1#debug nix build .?submodules=1#release nix build .?submodules=1#releaseWithDebInfo推荐的终端构建方式(官方文档中的 Option 1,最推荐):
cmake -S . -B build/ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ cmake --build ./build --parallel$(nproc)- 如需调试版本,在第一条命令后追加
-DCMAKE_BUILD_TYPE=Debug; - 如果构建过程中电脑卡死(资源占用过高),去掉
--parallel$(nproc)即可; - 构建产物为
./build/shadps4,直接运行可查看选项列表。
其他两种方式:
- Option 2:cmake-gui——打开 cmake-gui,分别指定源码目录(如
/home/user/shadPS4)与构建目录(/home/user/shadPS4/build),Configure 时选择 "Unix Makefiles",在 "Specify native compilers" 中把 C/CXX 编译器设为/bin/clang与/bin/clang++,Configure 完成后点 Generate,再回到终端执行 Option 1 的步骤 2; - Option 3:Visual Studio Code——安装 "CMake Tools" 扩展,在 CMake 选项卡中配置并构建,可参考 documents/Screenshots/Linux 下的截图(
1.png对应关闭自动配置选项、3.png对应安装扩展、4.png对应 CMake 配置界面、5.png对应选择启动目标为shadPS4/build下的可执行文件)。
Windows 构建
Windows 官方文档强调两件事:ARM64 目前不受支持(无法构建也无法运行,相关说明仅面向开发者);测试旧版本构建时不要加--depth 1,否则会因缺少提交历史而无法切换到旧提交。
方式一:Visual Studio 2022
- 安装 VS2022 Community 时,勾选
Desktop development with C++,再在 "Individual Components" 中安装C++ Clang Compiler for Windows与MSBuild support for LLVM; - 安装 [Git for Windows],然后克隆:
git clone --depth 1 --recursive https://github.com/shadps4-emu/shadPS4- 在 Visual Studio 中选择
Open a local folder打开含CMakeLists.txt的源码目录; - 将配置从
Clang x64 Debug切到Clang x64 Release(常规非调试构建),把启动项设为shadps4.exe,执行Build -> Build All; - 产物位于
C:\path\to\source\Build\x64-Clang-Release\。
方式二:VSCode + Visual Studio Build Tools需要 Git for Windows、LLVM 19.1.1(文档说明 CI 格式校验使用 clang19)、CMake 4.2.3+、Ninja 1.13.2+,全部加入系统 PATH;然后安装 VS Build Tools(MSVC + Windows SDK)。构建前可用以下命令校验环境:
git --version cmake --version ninja --version clang --version仓库还提供了 VSCode 工作区配置思路(cmake.generator: Ninja、clangd智能提示、editor.formatOnSave+clang-format),对应扩展截图见 documents/Screenshots/windows/vscode-ext-1.png、vscode-ext-2.png 与 vscode-ext-3.png。构建后shadps4.exe位于shadps4\shared\Build\x64-Clang-Release\。
方式三:MSYS2/MinGW——官方文档提醒MSYS2 构建当前已损坏,Windows 上请优先使用方式一或方式二;ARM64 环境下的 MSYS2 CLANGARM64 步骤仅面向开发者。另外,MSYS2 产物依赖 MSYS2 运行环境与 DLL,不便直接分发。
macOS 构建
macOS 构建要求Xcode 26.0 或更新版本,且 README 明确:运行 shadPS4 至少需要 macOS 26.0,不支持 Intel Mac(src/main.cpp 在启动时也会通过sysctl.proc_translated检测 Apple Silicon 并弹出提示)。
- 安装 Homebrew 并配置 PATH:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> ~/.zprofile eval $(/opt/homebrew/bin/brew shellenv)- 安装构建工具与依赖:
brew install clang-format cmake- 安装构建 KosmicKrisp Vulkan 驱动所需依赖(可在配置时用
-DENABLE_SYSTEM_VULKAN=ON跳过,前提是你已有兼容的 Vulkan 环境):
brew install meson ninja pkg-config llvm spirv-tools spirv-llvm-translator libclc pip3 install --break-system-packages mako packaging pyyaml- 克隆、配置、构建:
git clone --recursive https://github.com/shadps4-emu/shadPS4.git cd shadPS4 cmake -S . -B build/ -DCMAKE_OSX_ARCHITECTURES=x86_64 cd build/ cmake --build . --parallel$(sysctl -n hw.ncpu)- 运行(直接传入游戏 eboot.bin 路径):
./shadps4 /"PATH"/"TO"/"GAME"/"FOLDER"/eboot.binDocker 容器构建(含 VSCode 支持)
仓库在 documents/Docker Builder/docker-compose.yml 中提供了容器编排文件,镜像内预置了 Clang、CMake、SDL2、Vulkan 等全部构建依赖,宿主无需手动安装任何工具链。
cd <path-to-repo> # 进入含 Docker Builder 目录的仓库根 docker compose up -d # 启动容器 mkdir emu && cd emu git clone --recursive https://github.com/shadps4-emu/shadPS4.git . git submodule update --init --recursive之后两种构建路径任选:
- CMake Tools(GUI):
CMake Tools > Configure > '>',再Build > '>',产物在Build文件夹; - 纯命令行:
cmake -S . -B build/ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ cmake --build ./build --parallel $(nproc)产物位于./build/shadps4。随后在 VSCode 中打开仓库,CMake Tools 扩展会自动识别容器内(或挂载卷上)的构建目录,可直接完成配置、构建与调试。官方文档还提示:容器内使用 Clang 可保证 Linux 与 macOS runner 的构建一致性,跨平台(含 Windows .exe)产物建议交给 GitHub Actions。
命令行使用:参数体系与启动游戏
README "Usage examples" 一节给出了常用的命令行模式,其底层参数解析实现在 src/main.cpp(基于 CLI11 库)。完整参数清单可用--help获取,以下为常用模式与对应源码行为:
shadPS4 CUSA00001 # 在游戏安装目录列表中查找名为 CUSA00001 的游戏文件夹并启动 shadPS4 --fullscreen true --config-clean CUSA00001 # 游戏参数永远放在最后, shadPS4 -g CUSA00001 --fullscreen true --config-clean # ...除非用 -g 显式指定 shadPS4 /path/to/game.elf # 直接启动 PS4 ELF 可执行文件,适合非 eboot.bin 命名的可执行文件 shadPS4 CUSA00001 -- -flag1 -flag2 # 把 '-flag1' '-flag2' 原样传给游戏进程的 argv位置参数与-g:guest_arg位置参数与-g/--game均用于指定"游戏路径或 ID"(src/main.cpp)。当传入的是游戏 ID(如CUSA00900,即美版 Bloodborne)而非实际路径时,主程序会遍历配置的游戏安装目录(EmulatorSettings.GetGameInstallDirs()),用Common::FS::FindGameByID按 ID 递归查找(最大深度 5 层)其 eboot(src/main.cpp)。--之后的所有参数会被完整收集到gameArgs并原样传给游戏(src/main.cpp)。
其他实用参数(源码确认):
| 参数 | 作用 |
|---|---|
-p, --patch <file> | 指定要应用的补丁文件,写入MemoryPatcher::patch_file |
-i, --ignore-game-patch | 禁用游戏补丁的自动加载(MntPoints::ignore_game_patches = true) |
-b, --big-picture | 以 Big Picture 模式启动(无参数运行时的推荐入口) |
--same-process | Big Picture 模式下在相同进程中启动游戏 |
-f, --fullscreen true\|false | 切换全屏(仅接受 true/false,其余值报错并退出) |
--show-fps | 显示 FPS 计数器 |
--config-clean | 使用 Clean 配置模式(忽略存档与游戏专属配置,仅用出厂默认值) |
--config-global | 使用 Global 配置模式(忽略游戏专属覆盖项) |
--add-game-folder <dir> | 把目录加入游戏安装目录列表并保存后退出 |
--set-addon-folder <dir> | 设置附加内容(addon/DLC)安装目录并保存后退出 |
--mount <src:dst> | 挂载源目录到目标路径 |
-e, --env <VAR> | 向游戏进程传递环境变量 |
--override-root <dir> | 覆盖用户根目录(必须是已存在目录) |
--wait-for-debugger/--wait-for-pid <pid> | 等待调试器 / 等待指定进程 |
--log-append | 以追加方式写日志(对应日志配置append) |
无参数直接运行
shadPS4会弹出提示框并打印帮助信息:这是一个 CLI 应用,可使用-b进入 Big Picture 模式,或改用 QtLauncher 获取独立 GUI(src/main.cpp)。
从源码调用链看,命令行解析完成后会依次完成:日志初始化(Common::Log::Setup("shadps4.log"))、IPC 初始化(IPC::Instance().Init())、用户设置与密钥管理器加载(UserSettings.Load()/KeyManager::LoadFromFile())、模拟器配置加载(EmulatorSettingsImpl::Load()),最终调用emulator->Run(ebootPath, gameArgs, ...)进入游戏运行流程(src/main.cpp)。
配置文件体系:config.json 与常用参数
README 与 documents/Debugging/Debugging.md 指出:模拟器启动后会在user文件夹生成config.json,通过编辑该文件可精细调整模拟器行为。其序列化与覆盖逻辑定义在 src/core/emulator_settings.h:每个配置项是Setting<T>,支持"出厂默认值 / 全局值 / 游戏专属覆盖值"三层模型(ConfigMode::Default/Global/Clean),这也是--config-clean、--config-global两个 CLI 参数的语义来源(emulator_settings.h)。
以下是文档与源码共同确认的值得调整的配置条目:
Log 日志配置
| 键 | 含义与取值 |
|---|---|
sync | 是否同步写日志。默认true(保证消息顺序);追求性能可设false;上报问题时建议恢复true以获得有序日志 |
filter | 按日志类设置级别,格式<类>:<级别> ...,多个用空格分隔,如Render:Warning Lib.Pad:Error;子类格式同控制台所见(如Core.Linker)。级别顺序trace, debug, info, warning, error, critical, off,设置某级别会屏蔽其之前所有级别并记录其后级别。示例:Lib.Pad:Critical只记录该类的 critical;*:Off Render.Vulkan:Info屏蔽一切但保留 Vulkan 渲染的 Info 级 |
flush_level | 达到该级别(含)即触发刷盘 |
skip_duplicate | 是否跳过完全相同的日志行(默认true,以Skipped N duplicate messages..提示) |
max_skip_duration | 相同日志行的去重时间窗口(毫秒),默认5'000 |
append | 是否追加写日志文件(默认覆盖,也可用 CLI--log-append) |
separate | 是否按游戏分文件写到log/{GAME ID}.log(默认写log/shad_log.txt) |
size_limit | 日志文件大小上限(字节),默认 100 MB |
type | 仅 Windows:wincolor(WriteConsole*)或msvc(OutputDebugString*),默认wincolor |
上述默认值与源码一一对应:sync{true}、filter{""}、max_skip_duration{5'000}、separate{false}、size_limit{100_MB}、skip_duplicate{true}(emulator_settings.h)。日志实现基于 spdlog,级别枚举在 src/common/logging/log.h 中定义为Trace/Debug/Info/Warning/Error/Critical/Off,与文档描述的过滤语法完全一致。
GPU 与 Vulkan 配置
| 键 | 含义 |
|---|---|
dump_shaders | 导出模拟器加载的着色器,导出目录为../user/shader/dumps(默认false) |
null_gpu | 关闭渲染(无 GPU 后端输出,用于性能/逻辑测试,默认false) |
window_width/window_height | 游戏窗口宽高(默认 1280×720) |
full_screen_mode | 以无边框全屏窗口显示游戏(默认Windowed) |
present_mode | 呈现模式,默认Mailbox |
hdr_allowed | 是否允许 HDR(默认false) |
fsr_enabled/rcas_enabled/rcas_attenuation | FSR 超分开关(默认关)、RCAS 锐化开关(默认开)与衰减强度(默认 250) |
vblank_frequency | 垂直同步频率,源码强制下限 30 Hz(emulator_settings.h) |
vkvalidation_* | Vulkan 校验层相关(enabled、core、sync、gpu) |
renderdoc_enabled | 安装 RenderDoc 时自动挂钩,便于调试着色器与游戏渲染(默认false) |
游戏专属覆盖(per-game overrides):从源码可以确认,General/Log/Debug/Input/Audio/GPU/Vulkan各配置组都暴露了GetOverrideableFields(),可对单个字段写入"游戏专属值",并在游戏退出时通过ClearGameSpecificOverrides()恢复全局设置(emulator_settings.h)。这与 README 中"自定义键鼠绑定按游戏分别保存"的说明相互印证。
键盘与鼠标映射(快捷键)
README 提供了完整的默认快捷键表。Mac 用户需用 Command 键代替 Control,并使用 Command+F11 进入全屏,以避免与系统快捷键冲突;部分键盘可能需按住 Fn 才能使用 F* 键。
| 按键 | 功能 |
|---|---|
| F10 | FPS 计数器 |
| Ctrl+F10 | 视频调试信息 |
| F11 | 全屏 |
| F12 | 触发 RenderDoc 捕获(若 RenderDoc 不可用则截取游戏画面) |
| Alt+F12 | 截取包含 HUD/对话框浮层的截图 |
控制器默认映射(Xbox 与 DualShock 手柄开箱即用):
| 控制器按键 | 键盘等价键 |
|---|---|
| LEFT AXIS UP / DOWN / LEFT / RIGHT | W / S / A / D |
| RIGHT AXIS UP / DOWN / LEFT / RIGHT | I / K / J / L |
| TRIANGLE / CIRCLE / CROSS / SQUARE | Numpad 8 或 C / Numpad 6 或 B / Numpad 2 或 N / Numpad 4 或 V |
| PAD UP / DOWN / LEFT / RIGHT | ↑ / ↓ / ← / → |
| OPTIONS | RETURN |
| BACK BUTTON / TOUCH PAD | SPACE |
| L1 / R1 / L2 / R2 / L3 / R3 | Q / U / E / O / X / M |
键盘鼠标输入可在设置菜单中点击 Controller 按钮进行自定义,自定义绑定按游戏分别保存;每个绑定最多支持三个按键,还支持鼠标按键、鼠标移动映射到摇杆等高级功能(README 末尾说明)。
固件文件:sys_modules 与 LLE 模块
PS4 游戏依赖部分系统固件模块,shadPS4 需要从sys_modules文件夹加载以下模块才能正常运行游戏。README 给出完整清单(节选),包括:libSceAt9Enc.sprx、libSceAudiodec.sprx、libSceAudiodecCpu*.sprx、libSceAvPlayer.sprx、libSceFont.sprx、libSceFreeType*.sprx、libSceJpegDec/Enc.sprx、libSceJson*.sprx、libSceLibcInternal.sprx、libSceNgs2.sprx、libScePngEnc.sprx、libSceRtc.sprx、libSceRudp.sprx、libSceSystemGesture.sprx、libSceUlt.sprx、libSceWkFontConfig.sprx、libSceXml.sprx、libSceDepth.sprx、libScePadTracker.sprx、libSceMoveTracker.sprx等。
[!Caution] 以上模块是游戏正常运行所必需的,且必须从你合法拥有的 PlayStation 4 主机中提取(dump),请勿分享或下载来源不明的固件文件。
从实现层面看,这些模块对应 src/core/libraries 下各库的 LLE(低级模拟)路径,模拟器会按需加载sys_modules中的 SPRX 文件;配置中的sys_modules_dir(见 emulator_settings.h)即指向该目录。
调试、诊断与问题报告规范
断点调试环境搭建
documents/Debugging/Debugging.md 详细说明了 Windows + Visual Studio 的调试配置流程:
- 以文件夹方式打开项目(不要手动运行
cmake ..之类命令); - 在解决方案资源管理器中切换到CMake Targets View;
- 右键
shadps4 (executable),Set as Startup Item(即可用 F5 调试); - 再右键选择Add debug configuration,在首个
configurations条目中加入"args": [],把游戏路径填为参数(如同命令行启动); - 选择合适的 CMake 配置:日常调试选
x64-Clang-Debug;需要带优化的 Release 测试建议选x64-Clang-RelWithDebInfo(仍会生成调试符号,便于排查仅在 Release 配置出现的 bug); - 用Debug > Start Debugging(F5)调试,或Start Without Debugging(Ctrl+F5)测试游戏性能。
Linux 注意:RenderDoc 在 Wayland 下不可用,需以SDL_VIDEODRIVER=x11环境变量运行模拟器。
游戏崩溃时的分析流程
文档给出的标准排查步骤(适用于任何平台):
- 分析日志:启动模拟器时默认会打开控制台,输出与日志文件(
<emulator executable>/user/log/{shadps4.log, shad_log.txt, {GAME ID}.log})相同的内容。推荐自底向上阅读:末尾是否有指向崩溃原因的 Critical/Error 消息?最后几条是否涉及游戏文件加载?游戏窗口是否画出了画面?随后再从开头扫一遍初始化、内存映射、链接器等错误;若shadps4.log含 error,应随问题一起上报; - 分析堆栈:调试器遇到异常/违规访问时会中断(break)。在堆栈跟踪窗口定位调用链,用 Locals / Watch 窗口检查变量与执行上下文;
- 判定崩溃原因:日志并不总能精确指示崩溃原因——部分 error 并非致命,
Critical级别最可能对应崩溃点;若堆栈末端是渲染相关函数,基本可断定是渲染问题,视频播放同理; - 识别"有意为之"的崩溃:如果出现写操作的访问违规(access violation),且函数看起来在做内存拷贝,这很可能是模拟器开发者故意抛出的预期异常(用于捕获游戏写入数据的过程),仅存在于开发期构建。此时应:在调试器中排除(忽略)此类访问违规异常后继续运行,观察堆栈、变量与寄存器变化——Release 构建下游戏正常就是这类异常的最佳旁证。
问题报告规范
- 报告游戏相关问题时,必须给出唯一可识别的游戏名与对应区域的
CUSA-xxxxx编码,最好补充版本号(尤其当不同版本行为不同时):- 好的命名示例:
Amplitude (2016) CUSA02480、Rock Band 4 (CUSA02084) v1.0、inFamous: Second Son [CUSA-00004]; - 不理想的示例:
The Witness、GTA 5、Watch Dogs(无法区分区域/版本)。
- 好的命名示例:
- 小问题或不确定定位时,可到 Discord 的 #development 频道简洁说明发现;兼容性进展建议发布到游戏兼容性追踪器;
- ⚠不要在模拟器问题追踪器里发布无法在源码中定位的、未经证实的游戏专属问题。好问题示例:"Crash in
Shader::Gcn::CFG::EmitBlocks(), out of bounds list access"(附堆栈、指向仓库代码);坏示例:"Amplitude crashes on boot, access violation"(重复标题、只谈游戏、拒绝补充细节)。
着色器补丁(Shader Patching)进阶技巧
对于需要修改渲染行为的场景,documents/patching-shader.md 提供了完整的着色器补丁工作流(与dump_shaders/patch_shaders配置项及shader/patch目录配合):
- 安装 Vulkan SDK,确保
spirv-cross与glslc已加入 PATH; - 在
config.toml中启用dumpShaders; - 运行模拟器收集着色器后,用
spirv-cross -V fs_0x000000.spv --output fs_0x000000.glsl把 SPIR-V 反编译为 GLSL; - 按需编辑 GLSL 文件;
- 用
glslc --target-env=vulkan1.3 --target-spv=spv1.6 -fshader-stage=frag fs_0x000000.glsl -o fs_0x000000.spv编译回 SPIR-V(务必把-fshader-stage换成与着色器对应的正确阶段,如vert/frag/comp); - 把更新后的
.spv放入shader/patch文件夹,文件名与原着色器一致; - 在配置中启用
patchShaders后重启模拟器。
社区、贡献与许可
- 主团队:georgemoralis、psucien、viniciuslrangel、roamic、squidbus、frodo、Stephen Miller、kalaposfos13 等;Logo 由 Xphalnos 设计(README "Main team" 一节)。
- 贡献方式:阅读 CONTRIBUTING.md 后提交 PR 即可。
- 特别致谢:README 提及项目受益于 Panda3DS(x64 原生执行 PS4 二进制问题的经验)、fpPS4(PS4 操作系统与库的逆向研究)、yuzu 的 Hades 着色器编译器(作为着色器编译器的蓝本,得以专注现代 AMD GPU 模拟)、felix86 与 emudev.org 社区。
- 许可证:项目采用GPL-2.0(见 LICENSE),各源文件与文档顶部均带 SPDX 头(如
SPDX-License-Identifier: GPL-2.0-or-later)。 - 版本演进:从 documents/changelog.md 可以看到项目自 2023 年 9 月首个公开版本(v0.0.1)以来的里程碑——v0.1.0 加入着色器重编译器后大量游戏开始可玩,v0.2.0 加入 macOS 支持,v0.3.0 加入作弊/补丁、DLC 与奖杯解锁,v0.4.0 引入帧图(frame graph)、精确 60fps 时序、触摸板支持、IME 与 videodec2 等,印证了 README 中"以小步快跑的方式持续更新"的定位。
通过本文,你已经掌握了 shadPS4 的完整使用链路:选择适合平台的构建方式编译出shadps4可执行文件,用游戏 ID 或 ELF 路径配合--fullscreen、--config-clean等参数启动游戏,通过config.json调整日志与渲染行为,依据键盘映射表操作,并在遇到问题时按规范完成调试与上报。项目的详细 Wiki、游戏兼容性列表与最新动态可通过 README 中的链接继续跟进。
【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C++项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考