Skip to content

Repository files navigation

RPCS4

GitHub Actions RPCS4 Discord Server

An open-source PlayStation 4 emulator, written in C++ for Windows, Linux, and macOS.

RPCS4 is a Qt6-based desktop emulator that provides a familiar game management interface, Vulkan rendering, and high-level emulation of the PS4 operating system. The project aims to preserve the desktop-emulator workflow that PS4 enthusiasts expect while delivering accurate and performant emulation.

You can find more information on our Wiki. For discussion about this emulator, PS4 emulation, and game compatibility reports, please visit our Discord server.

Features

  • Qt6 GUI — A desktop-native interface with list and grid game library views, real-time search, and a comprehensive settings dialog
  • Vulkan Renderer — GCN ISA decompilation to GLSL/SPIR-V with shader and pipeline caching, texture detiling, and render target management
  • HLE OS Emulation — 25+ emulated PS4 system libraries including kernel, filesystem, audio, input, networking, and video output
  • Native x86-64 Execution — PS4 binaries run directly on the host CPU with HLE symbol interception
  • Game Library Management — Automatic game scanning, per-game custom configurations, and compatibility tracking
  • Configuration Persistence — All settings are saved to INI files via QSettings, with global and per-game profiles
  • Cross-Platform — Built with CMake for Windows, Linux, and macOS (x86-64)

System Requirements

Component Minimum Recommended
OS Windows 10 (64-bit), Ubuntu 22.04, macOS 12 Windows 11, Ubuntu 24.04, macOS 14
CPU x86-64 with AVX support Modern x86-64 (Zen 2 / 10th Gen Intel+)
GPU Vulkan 1.2 compatible (4 GB VRAM) Vulkan 1.3 compatible (8 GB+ VRAM)
RAM 8 GB 16 GB
Storage 100 GB SSD 500 GB NVMe SSD

Contributing

If you want to help the project but do not code, the best way to help out is to test games and make bug reports on our issue tracker.

If you want to contribute as a developer, please take a look at the following:

You should also contact the developers in our Discord server to learn more about the current state of the emulator.

AI Use

Use of AI tools for research and reverse engineering purposes is permitted. However, contributors are expected to fully own and understand all code they submit. Any communication with the team — including code, code comments, and GitHub comments — must come from the human contributor, not an AI agent acting autonomously.

We have unfortunately seen a rise in untested and unverified AI-generated slop being submitted to open-source projects. This wastes maintainer time and, in worse cases, such changes get merged and break functionality for all users. Repeated violations will result in a ban from the repository. Please be respectful of everyone's time.

Pull requests opened by AI agents or automated tools must include a disclosure in the PR description stating the scope of AI involvement — which parts were AI-generated and what human testing or review was performed prior to submission. PRs that omit this disclosure may be closed without review.

If you are unsure about your work, open a discussion issue to talk it through with the team, or reach out to a maintainer on Discord.

Building

See BUILDING.md for detailed instructions on setting up a build environment and compiling RPCS4 for Windows, Linux, or macOS.

Running

  1. Install PS4 firmware through File → Install Firmware in the emulator menu.
  2. Place your game directories (containing eboot.bin and sce_sys/param.sfo) in the configured game install directory.
  3. Select a game from the library and click Boot, or double-click it.

Make sure your graphics driver is up to date. Windows users should install the Visual C++ Redistributable Packages for Visual Studio 2022.

Compatiblity

You can check game compatiblity at RPCS4 Compatiblity List

Emulated Libraries

Library Status Notes
Kernel (memory, process, modules) Implemented Core OS services
pthread (threads, mutex, cond, rwlock) Implemented Threading primitives
SceVideoOut Implemented Display output and flip
SceGnmDriver Implemented Graphics command submission
SceAudioOut Implemented Audio output via SDL2
ScePad Implemented Controller input via SDL2
SceSysmodule Implemented Module loading
SceSaveData Implemented Save data management
SceRtc Implemented Real-time clock
SceNet Implemented Networking (RPCN4)
SceNpManager Implemented PSN management
SceNpTrophy Implemented Trophy system
SceComposite Implemented VSH compositor
SceZlib Implemented Compression
SceAppContent Implemented App content info
SceUserService Implemented User account management
SceSystemService Implemented System information
SceRandom Implemented Random number generation
SceAudio3d Stubbed 3D audio
SceAjm Stubbed Audio/video processing
SceVideodec Stubbed Video decoding
ScePlayGo Stubbed Chunk downloading
SceRegMgr Stubbed Registry manager
SceMbus Stubbed Internal bus

Credits

RPCS4's emulation core is based on ChonkyStation4. The GUI and build system are original work.

The project makes use of the following open-source libraries:

  • Qt6 — GUI framework
  • Vulkan — Graphics API
  • SDL2 — Audio and input
  • glslang — Shader compilation
  • VulkanMemoryAllocator — GPU memory management
  • ELFIO — ELF parsing
  • Zydis — x86 disassembly
  • xbyak — JIT assembler
  • CLI11 — Command-line parsing
  • asio — Async I/O
  • miniz — Compression
  • And others — see Dependencies/ and individual license headers

License

Most files are licensed under the terms of the GNU General Public License v3.0 or later; see LICENSE for details. Some files may be licensed differently; check appropriate file headers for details.

About

PlayStation 4 emulator

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages