Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
K

KytyPS5

> 编程语言
Open source

PlayStation 5 emulator for Windows, Linux and MacOS

1.1K stars0 likes3 views
WebsiteGitHub

About

PlayStation 5 emulator for Windows, Linux and MacOS

KytyPS5

KytyPS5 is a free and open-source PlayStation 5 emulator written in C++ for Windows and Linux, with experimental macOS support. It is based on a heavily modified version of Kyty. The project is in an early stage of development, so compatibility is limited and behavior may change significantly between builds.

[!IMPORTANT] KytyPS5 is not affiliated with Sony Interactive Entertainment or PlayStation. The project does not distribute games or copyrighted system software. Use only game files that you have obtained legally.

Current Status

KytyPS5 can boot 2D games and a selection of 3D games, including titles built with Unreal Engine 4/5, Unity, and custom engines. No external low-level emulation modules are currently required.

Development is focused on compatibility and boot reliability.

Windows is the primary platform and receives the most testing. Linux builds and runs; see Building on Linux.

macOS support is experimental. The emulator is built for x86-64 and runs on Apple Silicon under Rosetta 2, with Vulkan provided by MoltenVK. A small number of titles have been verified in-game on Apple Silicon hardware; see Building on macOS.

Community game test results are available in the KytyPS5 Compatibility List.

Bugs and Issues

The project is in an early stage, so please be mindful when opening new issues. Expect crashes, graphical glitches, low compatibility, and poor performance.

Screenshots

  Disgaea 6

  


  Dreaming Sarah

  






  Neptunia ReVerse

  


  SILENT HILL: The Short Message

  






  Hellboy

  


  Paleo Pines

And many more...

Contributing

Testing games and submitting detailed bug reports are useful ways to contribute. Search existing issues first, then use the Game Emulation Bug Report template and attach the complete log file.

Code contributions should be focused, build successfully on the platforms they touch, and include relevant tests where practical. Windows is the primary target, so a change that alters shared code should not regress it; changes confined to a platform's own code paths only need to build there. Because KytyPS5 is still evolving quickly, consider opening an issue before starting a large change.

Formatting

Set up the clang-format hook after cloning:

Install pre-commit using the method appropriate for your platform:

  • Arch Linux / CachyOS: sudo pacman -S pre-commit
  • Other Linux / macOS / Windows: python -m pip install pre-commit

Then install the Git hook:

bash
python -m pre_commit install --install-hooks

It formats staged .cpp, .h, and .inc files in src.

Developer Information

The PS5 graphics architecture is based on AMD RDNA 2. Use AMD's RDNA 2 Instruction Set Architecture Reference Guide (document 70648) as the primary instruction-encoding reference when working on shader decoding and recompilation.

Important areas of the codebase:

  • src/graphics/shader/recompiler — instruction decoding, intermediate representation, control flow, resource tracking, and SPIR-V emission
  • src/graphics/guest_gpu — PS5 (Prospero) GPU formats and command processing
  • src/graphics/host_gpu — Vulkan host backend and resource management
  • tests — focused memory, shader, and resource-tracking regression tests

The renderer targets Vulkan 1.3. Keep shader changes aligned with both the RDNA 2 ISA semantics and the Vulkan/SPIR-V validation rules.

Building

System requirements

  • Windows 10 version 1803, a current Linux distribution, or macOS on Apple Silicon
  • A 64-bit x86 processor (on macOS, an Apple Silicon processor with Rosetta 2)
  • A Vulkan 1.3-capable GPU with current drivers (on macOS, Vulkan is provided by the bundled MoltenVK)

Build requirements (Windows)

  • Git
  • CMake 3.12 or newer
  • Ninja
  • Visual Studio 2022 or Build Tools 2022 with the Desktop development with C++ workload and C++ Clang tools for Windows component
  • Qt 6 for MSVC 2022 64-bit, including Concurrent, Network, and Widgets
  • glslang (glslangValidator) on PATH

The Microsoft C++ compiler (cl.exe) is not supported; use clang-cl.

Open an x64 Native Tools Command Prompt for Visual Studio 2022 (or the equivalent Developer PowerShell), change to the repository root, and initialize the dependencies:

powershell
git submodule update --init --recursive

Configure the project. Replace the Qt path with the version installed on your system:

powershell
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 the launcher and stage a runnable installation:

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

The finished application and its runtime dependencies will be placed in _Build/windows/install.

Building on Linux

Install the toolchain and the libraries the bundled SDL2 needs. Without the audio, Wayland and udev development packages SDL2 quietly configures itself without those backends, and the resulting build has no working sound and no gamepad hotplug:

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

Qt 6 (Concurrent, Network, Widgets) is also required — either the distribution packages (qt6-base-dev) or an official Qt installation.

bash
git submodule update --init --recursive

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

The install step copies the Qt libraries and plugins next to the binaries, so _Build/linux/install runs without a matching system Qt. FFmpeg is linked statically from the pinned KytyPS5 FFmpeg core release, including VP9 and WebM support. System FFmpeg packages are not required.

As on Windows, the MSVC compiler is not used; Clang is required. cl.exe is rejected at configure time.

The CMake source root is the repository root.

Building on NixOS

A development shell provides Clang, CMake, Ninja, Qt 6, the Vulkan headers, and the SDL2 backend libraries. Enter it and configure exactly as on other Linux distributions; the shell exports CMAKE_PREFIX_PATH and QT_PLUGIN_PATH, so the -DCMAKE_PREFIX_PATH="$Qt6_DIR" argument is not needed:

bash
nix-shell # or: nix develop
git submodule update --init --recursive

cmake -S . -B _Build/linux -G Ninja -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++

cmake --build _Build/linux --target launcher --parallel
cmake --install _Build/linux --prefix _Build/linux/install

The configure step downloads the FFmpeg prebuilts and the xbyak/zydis sources, so it needs network access; a fully sandboxed nix build would require vendoring those inputs. A Vulkan 1.3 driver must be available at runtime (on NixOS, hardware.graphics.enable = true).

Building on macOS

macOS builds target x86-64 and run under Rosetta 2 on Apple Silicon, so the PS5's x86-64 game code executes through the same translation layer as the emulator itself. Prebuilt archives are attached to releases; the steps below are for building from source.

Requirements:

  • An Apple Silicon Mac with Rosetta 2 installed (softwareupdate --install-rosetta)
  • Xcode (or the Command Line Tools)
  • Homebrew packages: brew install cmake ninja glslang
  • Qt 6 (Concurrent, Network, Widgets) with x86-64 support. The official Qt installation is universal and works; Homebrew's Qt is arm64-only and will not link
bash
git submodule update --init --recursive

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

The build re-signs kyty_emulator with the JIT entitlements it needs to execute translated guest code; no manual signing step is required. When the launcher is built, the install also produces _Build/macos/install/KytyPS5.app — double-click to launch the GUI. A flat kyty_emulator is kept for CLI usage.

Vulkan comes from MoltenVK. Download MoltenVK-macos.tar from the MoltenVK releases, then copy MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib next to the flat kyty_emulator (and, for the bundle, into KytyPS5.app/Contents/Frameworks/) and ad-hoc sign it:

bash
codesign --force --sign - _Build/macos/install/libMoltenVK.dylib
# For the bundle (if present):
codesign --force --sign - _Build/macos/install/KytyPS5.app/Contents/Frameworks/libMoltenVK.dylib
codesign --force --sign - _Build/macos/install/KytyPS5.app

Release archives already include a signed libMoltenVK.dylib (both flat and inside the bundle).

Regression tests

Build every regression executable and run the registered tests with:

powershell
cmake --build _Build/windows --target kyty_tests
ctest --test-dir _Build/windows --output-on-failure

Use _Build/linux instead of _Build/windows for a Linux build.

Visual Studio Code

A ready-made Visual Studio Code setup is included in .vscode. It configures CMake Tools to build the project with Ninja and clang-cl and provides launch profiles for both launcher.exe and kyty_emulator.exe. It is Windows-only: VS Code settings cannot select a compiler per platform, so on Linux configure from the command line as shown above.

Before using it:

  1. Install the CMake Tools and C/C++ extensions in Visual Studio Code.
  2. Update CMAKE_PREFIX_PATH in .vscode/settings.json to point to your Qt 6 MSVC installation.
  3. Update the --game path in .vscode/launch.json for the Debug kyty_emulator profile.
  4. Open the repository in an x64 Visual Studio developer environment, configure the CMake project, and select a launch profile from Run and Debug.

Running

Update your graphics driver before reporting rendering problems.

To use the graphical launcher:

powershell
.\_Build\windows\install\launcher.exe
bash
./_Build/linux/install/launcher
bash
open _Build/macos/install/KytyPS5.app  # or double-click in Finder

On first launch, add one or more game folders in the global settings. The launcher searches those folders recursively for game directories containing eboot.bin. Select a detected game and run it from the game list.

The emulator can also be started directly with a legally obtained game directory or ELF file:

powershell
.\_Build\windows\install\kyty_emulator.exe --game "D:\Games\ExampleGame"
bash
./_Build/linux/install/kyty_emulator --game "/games/ExampleGame"

On macOS, the adjacent flat or app-bundled libMoltenVK.dylib is found automatically; no environment variable is required:

bash
./_Build/macos/install/kyty_emulator --game "/games/ExampleGame"

To override the Vulkan loader, set `SDL_

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C++cppemulationemulatorgpu

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言