ShadPS5 logo

shadps5

In Development

Open-Source PS5 Emulator

We're building a PlayStation 5 emulator that runs on Windows, Linux, and macOS. It's open source, and we're working on it to bring PS5 exclusives games on pc.

What We're Building

Here's what ShadPS5 is focused on right now and where it's headed.

GPU Emulation

We're writing a Vulkan-based renderer that maps PS5 RDNA 2 GPU commands to your desktop hardware. This includes the GFX ring, compute queues, and a custom shader recompiler that translates GCN/RDNA shaders to SPIR-V.

CPU Emulation

A custom x86-64 dynarec translates PS5 Zen 2 instructions into native host code at runtime. We handle the full ISA including AVX/SSE, with block-level caching and constant folding for tight loops.

Cross-Platform

Windows, Linux, and macOS from day one. The Vulkan backend uses MoltenVK on macOS. We test builds on all three and won't ship anything that only works on one OS.

Open Source

Every line of code is on GitHub under GPL. Fork it, read it, break it, fix it. Pull requests are welcome.

Game Compatibility

We track what boots, what hits the main menu, what renders, and what's actually playable. The list is small right now but grows with every HLE stub and GPU fix we land.

Active Development

This isn't a dead repo. We push code regularly and talk about progress on Discord. Come hang out and see what's happening.

Under the Hood

A closer look at how ShadPS5 emulates the PS5 hardware.

The PS5 runs a custom AMD APU: an 8-core Zen 2 CPU at 3.5 GHz and an RDNA 2 GPU. ShadPS5 emulates each of these components on your PC's hardware.

On the CPU side, we use a dynamic binary translator (dynarec) that JIT-compiles PS5 x86-64 code into host-native code. The dynarec handles the full instruction set including AVX2, SSE4.2, and BMI extensions. Hot blocks are cached and reused, and we apply constant propagation and dead code elimination at the IR level.

The GPU side is trickier. PS5 games submit work through hardware command rings (GFX, compute, DMA) that the GPU command processor reads directly. We intercept these ring buffers and translate the PM4 command packets into Vulkan API calls. Shaders are compiled from AMD's GCN/RDNA ISA to SPIR-V and cached on disk.

The PS5 OS (Orbis OS, a FreeBSD derivative) provides services like thread scheduling, memory mapping, and file I/O. We implement these using HLE (high-level emulation), stubbing out system calls and replacing them with equivalent host OS functionality. This is faster than full LLE but requires more reverse engineering per syscall.

Roadmap

Current progress and what coming next.

FoundationIn Progress
  • -x86-64 dynarec with block cache and ISA coverage
  • -GPU command processor (GFX/compute/DMA rings)
  • -HLE kernel: threads, mutexes, semaphores, event flags
  • -PFS/PKG loader and virtual filesystem
RenderingUpcoming
  • -GCN/RDNA to SPIR-V shader recompiler
  • -Texture cache with hash-based invalidation
  • -Vulkan swapchain and frame presentation
  • -Audio output via ADPCM / Opus decode
CompatibilityUpcoming
  • -Per-game patches and HLE stub expansion
  • -Public compatibility tracker and test reports
  • -CPU/GPU profiling and hotspot optimization
  • -DualSense controller input and haptic feedback

About the Project

ShadPS5 is an experimental PS5 emulator. The PS5 uses custom AMD silicon (Zen 2 + RDNA 2) running Orbis OS, a hardened FreeBSD fork. Our job is to replicate that entire stack on commodity PC hardware using a JIT recompiler and a Vulkan rendering backend.

This is genuinely hard. The GPU alone has its own command processor, multiple hardware queues, a proprietary shader ISA, and tightly coupled shared memory. Reverse engineering each of these subsystems takes time. We're prioritizing correctness over speed for now, getting the memory model and synchronization right before we start chasing frames per second.

If you know your way around x86 assembly, Vulkan, kernel internals, or just want to run test ROMs and file bugs, we could use your help. Everything happens in the open on GitHub and Discord.

FAQ

Stuff people usually ask about ShadPS5.

What is ShadPS5?

It's a PS5 emulator. We're building it from scratch to run PlayStation 5 games on PCs. The whole thing is open source but not ready to yet.

What hardware do I need?

PS5 emulation is heavy. You'll want a CPU with AVX2, a GPU that supports Vulkan (think GTX 1060 / RX 560 minimum), and 16 GB of RAM. These numbers will probably change as we optimize things.

Can I actually play games with it today?

Not yet. We're still building out the core emulation layer. Some things boot, some things render a frame or two, but it's nowhere near playable. Check our GitHub (will be up soon) or Discord for the latest status.

What OS does it run on?

Windows, Linux, and macOS. All three are on priority but windoes will come first.

How do I get involved?

Jump into the GitHub repo and look at open issues, or join the Discord and ask what needs help. We need people who can write code, test games, report bugs, or just spread the word.