Linux 平台编译 shadPS4 指南

编译环境说明

推荐使用 Clang 18 编译器,这是官方构建和持续集成使用的工具链。若选择 GCC 编译可能会遇到兼容性问题,如发现任何问题请及时反馈。特别提醒:提交 BUG 报告或 PR 前,请确保已使用 Clang 成功编译过项目。

准备工作

安装依赖项

Debian/Ubuntu 系统

  1. sudo apt install build-essential clang git cmake libasound2-dev \
  2. libpulse-dev libopenal-dev libssl-dev zlib1g-dev libedit-dev \
  3. libudev-dev libevdev-dev libsdl2-dev libjack-dev libsndio-dev \
  4. qt6-base-dev qt6-tools-dev qt6-multimedia-dev libvulkan-dev \
  5. vulkan-validationlayers libpng-dev

Fedora 系统

  1. sudo dnf install clang git cmake libatomic alsa-lib-devel \
  2. pipewire-jack-audio-connection-kit-devel openal-devel \
  3. openssl-devel libevdev-devel libudev-devel libXext-devel \
  4. qt6-qtbase-devel qt6-qtbase-private-devel \
  5. qt6-qtmultimedia-devel qt6-qtsvg-devel qt6-qttools-devel \
  6. vulkan-devel vulkan-validation-layers libpng-devel

Arch Linux 系统

  1. sudo pacman -S base-devel clang git cmake sndio jack2 openal \
  2. qt6-base qt6-declarative qt6-multimedia qt6-tools sdl2 \
  3. vulkan-validation-layers libpng

注意:AUR 中的 shadps4-git 包非官方维护,默认使用 GCC 编译,请谨慎使用。

OpenSUSE 系统

  1. sudo zypper install clang git cmake libasound2 libpulse-devel \
  2. libsndio7 libjack-devel openal-soft-devel libopenssl-devel \
  3. zlib-devel libedit-devel systemd-devel libevdev-devel \
  4. qt6-base-devel qt6-multimedia-devel qt6-svg-devel \
  5. qt6-linguist-devel qt6-gui-private-devel vulkan-devel \
  6. vulkan-validationlayers libpng-devel

NixOS 系统

  1. nix-shell shell.nix

其他发行版解决方案

建议两种方案:

  1. 通过包管理器搜索对应名称的依赖包安装
  2. 使用 distrobox 创建基于上述发行版的容器(例如 Arch Linux 容器):
    1. distrobox create --name archlinux --init --image archlinux:latest
    该方案特别推荐用于不可变文件系统发行版(如 Fedora Kinoite、SteamOS)。

获取源码

  1. git clone --recursive https://github.com/shadps4-emu/shadPS4.git
  2. cd shadPS4

编译选项

推荐方案:终端编译

  1. 生成构建目录(启用 Qt GUI):

    1. cmake -S . -B build/ -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++

    禁用 Qt GUI 请移除 -DENABLE_QT_GUI=ON 参数,调试版本请添加 -DCMAKE_BUILD_TYPE=Debug

  2. 开始编译:

    1. cmake --build ./build --parallel$(nproc)

    若系统资源紧张导致卡顿,请移除 --parallel$(nproc) 参数

  3. 运行模拟器: • Qt GUI 版本:

    1. ./build/shadps4

    • 命令行版本(需指定游戏路径):

    1. ./build/shadps4 /游戏路径/文件夹/eboot.bin

    也可通过游戏 ID 启动(需在 config.toml 中配置游戏目录),例如美版《血源诅咒》ID 为 CUSA00900

图形化配置(cmake-gui)

  1. 安装 cmake-gui 工具(通常随 cmake 自动安装)
  2. 指定源码目录(如 /home/user/shadPS4)和构建目录(如 /home/user/shadPS4/build
  3. 配置时选择: • 生成器:Unix Makefiles • 指定原生编译器:选择 /bin/clang/bin/clang++
  4. 修改红色标记的配置项后点击生成
  5. 返回终端执行上述编译命令

Visual Studio Code 方案(适合开发调试)

  1. 下载 VSCode 或安装发行版提供的 Code - OSS
  2. 安装 “CMake Tools” 扩展: 扩展安装示意图
  3. 配置设置: • 禁用 @ext:ms-vscode.cmake-tools configure 选项 设置界面1 • 添加 Qt GUI 参数 -DENABLE_QT_GUI=ON 设置界面2
  4. 在 CMake 标签页确保配置如下: CMake配置
  5. 依次点击:配置 → 构建 → 调试/运行
  6. 调试前请确认: • 构建类型设为 Debug • 启动目标指向 shadPS4/build/shadps4

调试配置