ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

KytyPS5 完整指南:在 PC 上构建并运行 PS5 游戏

KytyPS5 完整指南:在 PC 上构建并运行 PS5 游戏

KytyPS5 完整指南:在 PC 上构建并运行 PS5 游戏

【免费下载链接】KytyPS5PlayStation 5 translation layer for Windows, Linux and macOS项目地址: https://gitcode.com/gh_mirrors/ky/KytyPS5

KytyPS5 是一款免费开源的 PS5 模拟器,用 C++ 编写,可在 Windows、Linux 和 macOS 上直接运行 PS5 游戏。它不依赖外部底层模拟模块,核心功能全部内置,目前能启动不少 2D 与 3D 作品。

动手前:环境与依赖清单

先把条件核对一遍,满足这些要求再动手最省事:

项目要求
系统Windows 10 1803 以上、主流 Linux 发行版,或 Apple Silicon 的 macOS
处理器64 位 x86 CPU(macOS 上 x86-64 代码经 Rosetta 2 运行)
GPU支持 Vulkan 1.3 且驱动最新(macOS 的 Vulkan 由 MoltenVK 提供)
编译器必须用 Clang:Windows 是 clang-cl,Linux/macOS 是 clang,官方不支持 MSVC 的 cl.exe
构建工具CMake 3.22+、Ninja、Git、Python 3(随附的 SPIRV-Tools 配置阶段会调用)
图形启动器Qt 6(含 Concurrent、Network、Widgets 组件)
辅助工具glslang(glslang或glslangValidator在 PATH 中)

Windows 还需要 Visual Studio 2022(或 Build Tools)带"使用 C++ 的桌面开发"工作负载和"C++ Clang tools for Windows"组件。Linux 上如果漏装音频、Wayland、udev 的开发库,随附的 SDL3 会悄悄跳过这些后端——构建照样成功,但成品没有声音和手柄热插拔,这点 README 专门提了醒。

三平台构建实战

三个平台的步骤是同一套节奏:克隆仓库、拉子模块、配置、构建、安装 ⚙️ 按你所在的系统选对应小节即可。

git clone https://gitcode.com/gh_mirrors/ky/KytyPS5 cd KytyPS5 git submodule update --init --recursive

Windows 构建步骤(clang-cl)

打开 Visual Studio 2022 的 x64 原生工具命令提示符,进入仓库根目录,配置时记得把 Qt 路径换成你实际安装的版本:

cmake -S . -B _Build/windows -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_PREFIX_PATH="C:/Qt/6.x.x/msvc2022_64"

接着构建启动器并生成可运行的安装目录,最终程序连同运行时依赖都落在_Build/windows/install:

cmake --build _Build/windows --target launcher cmake --install _Build/windows --prefix _Build/windows/install

Linux 构建步骤

先装工具链和 SDL3 需要的系统库,一次装全,避免上面说的那个"静默缺后端"的坑:

sudo apt-get install --no-install-recommends \ clang lld ninja-build cmake git glslang-tools python3 pkg-config \ libgl1-mesa-dev libx11-dev libxcursor-dev libxext-dev libxfixes-dev \ libxi-dev libxrandr-dev libxss-dev libxtst-dev libxkbcommon-dev \ libasound2-dev libpulse-dev libudev-dev libdbus-1-dev libwayland-dev wayland-protocols

Qt 6 用发行版自带的 qt6-base-dev 或官方安装都可以。然后配置、构建、安装(FFmpeg 是静态链接的,不需要系统包):

cmake -S . -B _Build/linux -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_PREFIX_PATH="$Qt6_DIR" cmake --build _Build/linux --target launcher --parallel cmake --install _Build/linux --prefix _Build/linux/install

安装步骤会把 Qt 的库和插件一并拷到可执行文件旁边,所以_Build/linux/install不依赖系统上恰好有同版本的 Qt。只想构建模拟器内核和测试、不要启动器的话,关掉KYTY_BUILD_LAUNCHER再单独开一个构建目录即可。

macOS 构建要点(Rosetta 2 + MoltenVK)

macOS 构建目标是 x86-64,在 Apple Silicon 上靠 Rosetta 2 跑。前置条件:装好 Rosetta(softwareupdate --install-rosetta)、Xcode 或 Command Line Tools,再用 Homebrew 装cmake ninja glslang python。注意 Homebrew 的 Qt 只有 arm64,链接会失败,必须用官方 Qt 6。

cmake -S . -B _Build/macos -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_PREFIX_PATH="$Qt6_DIR" cmake --build _Build/macos --target launcher --parallel cmake --install _Build/macos --prefix _Build/macos/install

构建会自动给kyty_emulator重新签名它执行翻译代码所需的 JIT 权限,你不用手工签名主程序;Vulkan 则由 MoltenVK 提供——从它的发布包取libMoltenVK.dylib,放到程序旁(以及KytyPS5.app/Contents/Frameworks/里)再 ad-hoc 签名。官方发布归档里已带签名好的库,直接解压就能用。

第一次运行

构建成功后,最舒服的路径是图形启动器,命令行则是一条命令的事。先运行启动器(Windows 为kyty_launcher.exe,macOS 直接双击KytyPS5.app):

./_Build/linux/install/kyty_launcher

然后按三步走 🚀

  1. 在全局设置里添加一个或多个游戏文件夹,启动器会递归搜索含eboot.bin的游戏目录和.zar(ZArchive)转储
  2. 在游戏列表里选中目标游戏
  3. 点击运行即可

.zar转储是只读挂载、直接流式读取的,不用先解压。偏好命令行的话,最简用法就一个参数:

./_Build/linux/install/kyty_emulator --game "/games/你的游戏"

游戏目录、ELF 文件、.zar档案都能传给它。想看图形、日志、校验、性能分析这些调试开关,跑一下kyty_emulator --help。

上图是 3D 动作游戏 Neptunia ReVerse 在模拟器中运行时的截图。

兼容性一览

看看目前能跑什么,官方截图是最直接的证据,以下条目都来自 README 的截图列表:

游戏类型代表画面
Astro Bot3D 平台跳跃
SILENT HILL: The Short Message3D 恐怖
Cyberpunk 20773D 开放世界—
Demon's Souls3D 动作 RPG—
MLB The Show 23 / UFC 6体育竞技—
Saros / Neptunia ReVerse3D 动作 / 视觉小说—

覆盖面从 2D 到 3A 级 3D 都在快速扩张,但别把某一版的结果当成定论 🔍 社区还维护着独立的游戏测试结果列表,核对时以你手上的版本为准。

五分钟看懂内部

能跑起来之后,拆骨架其实不难,三个目录就能抓住主干,每个用一句话概括:

  • 加载器 src/loader/:输入是游戏的 ELF 文件(eboot.bin),处理是解析 ELF 段、做运行时链接和符号解析,输出是放进客人内存、随时可执行的代码
  • 内核与系统库 src/kernel/、src/libs/:输入是客人程序发起的系统调用,处理是模拟 PS5 内核(内存地址空间、线程、信号量、文件系统)以及音频、控制器、字体、网络等系统模块,输出是宿主机的真实资源
  • 图形管线 src/graphics/:输入是 PS5 那颗 RDNA 2 GPU 的 PM4 命令流和着色器字节码,处理是把着色器重编译成自定义 IR、经优化 pass 后发射 SPIR-V,输出是 Vulkan 1.3 渲染进窗口的画面

最后一条链路是项目里最复杂的部件,横跨客 GPU 命令处理、着色器重编译、宿主 Vulkan 后端三层,也是开发精力最集中的地方。

边界与下一步

深入之前,先弄清楚当前的边界在哪里。

  • 成熟度:处于活跃开发,版本之间行为可能明显变化;Windows 和 Linux 是主力测试平台,macOS 仍是实验性支持
  • 回归测试:tests/ 里有一批覆盖内存、着色器、资源追踪等关键路径的测试,一条命令构建并跑完:
cmake --build _Build/windows --target kyty_tests ctest --test-dir _Build/windows --output-on-failure
  • Bug 报告:官方最需要的贡献是带完整日志的报告,注明你测试的版本,套用 Game Emulation Status Report 模板提交
  • 贡献门槛:PR 必须对应具体游戏的 bug 或启动问题,泛泛的重构或与游戏无关的捆绑提交会被自动关闭;AI 辅助的代码必须披露参与范围和人工审查、测试过程
  • 合法性:项目采用 GPL-2.0 许可(见 LICENSE),与索尼无官方关联、不分发游戏,请只使用合法获取的游戏文件

结语

如果你想知道 PC 上 PS5 模拟目前推进到了哪一步,或者想读一套现代 C++ 着色器重编译器的完整实例,KytyPS5 现在就很值得动手:先编译跑通几款 2D 游戏热身,再顺着图形管线往深处走,门槛比预想的低 🎮

【免费下载链接】KytyPS5PlayStation 5 translation layer for Windows, Linux and macOS项目地址: https://gitcode.com/gh_mirrors/ky/KytyPS5

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

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进