Guides
Why PS4 Emulation Works and PS5 Is So Hard: x86, AMD GPUs, Shaders and Encryption (with Glossary)
Key points
- PS4 and PS5 both use AMD x86-64 CPUs, the same instruction set as a PC. Emulators do not translate CPU instructions; game code runs directly on your processor.
- The real work is the GPU. Games target custom AMD GPUs (GCN on PS4, RDNA 2 on PS5), and emulators translate their commands and shaders for Vulkan in real time, the main source of stutter.
- PS5 is harder because of a newer GPU architecture, a different graphics API, much bigger games, and hardware like the decompression unit and fast SSD. Serious PS5 emulation work only started in 2026.
- Game and system files are encrypted. Emulators read already-decrypted files; decryption is not part of the emulator.
- Phones and Apple Silicon Macs are ARM. x86 code must be translated first (Rosetta 2, FEX), which makes them much harder targets than an x86 PC.
On this page
PS4 emulation works as well as it does because the PS4's CPU is x86-64, just like a PC, so game code runs directly on your processor. What an emulator really has to do is translate the commands and shaders written for PlayStation's custom AMD GPU to your PC's GPU, and rewrite a large set of system libraries. The PS5 CPU is also x86-64, which is why PS5 emulation started quickly. But its GPU architecture is newer, its graphics API is different, its games are bigger, and it has hardware the PS4 lacked, such as a dedicated decompression unit and a fast SSD. As of November 2026 that keeps big PS5 games far from playable. Phones and Apple Silicon Macs are ARM, which adds a CPU translation layer and makes things harder again.
The hardware: what is inside PS4 and PS5
| PS4 (2013) | PS5 (2020) | |
|---|---|---|
| CPU | AMD Jaguar, 8 cores, 1.6GHz, x86-64 | AMD Zen 2, 8 cores, up to 3.5GHz, x86-64 |
| GPU | Custom AMD GCN, 18 compute units | Custom AMD RDNA 2, 36 compute units, up to 2.23GHz, 10.28 TFLOPS |
| Memory | 8GB GDDR5 (176GB/s) | 16GB GDDR6 (448GB/s) |
| Storage | Hard drive | 825GB custom SSD, 5.5GB/s raw, hardware decompression (zlib and Kraken) |
Both generations use an AMD chip that combines CPU and GPU, with the same CPU instruction set as a PC. The PS4 was the first PlayStation built on x86. The PS3 before it used IBM's Cell processor, which has nothing in common with a PC CPU, so PS3 emulators had to solve CPU translation first.
What an emulator has to do
| Part | On the real console | How the emulator handles it (shadPS4) | Difficulty |
|---|---|---|---|
| CPU | AMD Jaguar runs the game's x86-64 code | Not emulated. Runs directly on your CPU, which only needs the right instruction level (x86-64-v3, including AVX2) | Low |
| GPU | Games send command packets and shaders straight to the AMD GPU | Parses the command packets, recompiles GCN shaders to SPIR-V, and submits them to your GPU through Vulkan | High |
| System libraries | The PS4 OS provides libraries for graphics, audio, networking, controllers and more | Mostly reimplemented (HLE); a few real modules can be loaded (LLE) | High, lots of work |
| File system | Games read decrypted files from the drive | Maps the game folder into the PS4 directory layout and layers updates on top | Medium |
| Input, audio, network | DualShock 4, PSN and so on | Maps to PC controllers and keyboard/mouse; online play uses the team's own servers (shadPS4's shadNet) | Medium |
The shadPS4 wiki puts it directly: "We don't emulate the CPU." The GPU is the only hardware truly being emulated. That is the main reason PS4 emulation went from "boots" to "Bloodborne at 4K60" in a few years.
Hard part 1: the GPU and shaders
Console games are written for one fixed GPU. PS4 games generate command packets (PM4 format) and shaders (small programs on the GPU that handle lighting, materials and effects) in a form the AMD GCN GPU understands directly. NVIDIA and Intel GPUs do not understand any of it, and even AMD's PC drivers do not accept commands that way.
So the emulator has to:
- Parse command packets: work out what the game wants to draw, with which state and which textures;
- Translate shaders: recompile GCN machine code to SPIR-V (Vulkan's portable shader format), then have your GPU driver compile it;
- Handle GPU behaviors: for example, data the GPU writes that the CPU later reads back ("readbacks"). shadPS4 added this in v0.10.0 (July 2025), fixing the infamous "vertex explosion" glitches in Bloodborne.
Step 2 takes time, so the first time a game uses a shader you get a hitch: shader compilation stutter. Results go into a shader cache (shadPS4 keeps it in user/cache/<game ID>), so the second time is smooth. Digital Foundry noted in January 2026 that with a shader cache, Bloodborne's stutter was essentially gone.
PS5 emulators do the same work for RDNA 2. KytyPS5 recompiles RDNA 2 shaders to SPIR-V for Vulkan 1.3, and SharpEmu combines HLE with SPIR-V shader translation. When Tom's Hardware covered SharpEmu's progress, the headline credited exactly that: improved shader translation and Vulkan support.
Hard part 2: what PS5 adds
Because the PS5 CPU follows the PS4's path, developers could reuse PS4 emulation experience, which is why PS5 emulators ran indie games within weeks in 2026. Beyond that, difficulty climbs quickly:
- A newer GPU. RDNA 2 has more instructions and features than GCN, and the command format and graphics API are not the PS4's. They have to be reverse-engineered from scratch.
- Bigger games. Big PS5 games have far more assets and shaders and lean on memory bandwidth much harder than PS4 games, which magnifies translation overhead. In current reports, Demon's Souls and Astro Bot run at single digits to a few dozen fps, often with graphics errors.
- SSD and hardware decompression. The PS5 has a dedicated decompression unit (zlib and Oodle Kraken), and games assume data streams in very fast. PCs lack that unit, so emulators have to do it in software.
- A late start. PS4 emulation has four years behind it counting from shadPS4 in 2022. Serious public PS5 projects only appeared in July 2026.
The PS5 plays PS4 games because its RDNA 2 GPU includes extra logic for compatibility with the PS4's GCN GPU. That is hardware compatibility. Emulators have no such hardware, so PS4 and PS5 are separate projects in software.
AnyPS5 takes another route. Instead of emulating at runtime, it rewrites (relinks) PS5 executables into native Windows or Linux programs with reimplemented system libraries, similar in spirit to Proton on Steam. Tom's Hardware's headline credits the PS5's AMD Zen 2 (x86-64) architecture for making this Proton-like approach possible.
Current status is in PS5 emulator status.
Hard part 3: encryption
PS4 and PS5 install packages (PKGs) and system files are encrypted, and only the console itself can decrypt them. Emulators read game folders that are already decrypted; decryption is not part of the emulator. Since v0.8.0, shadPS4 no longer contains any code for handling encrypted install packages. For the game folder layout and where system modules go, see shadPS4 firmware modules and game formats. For the legal side, see are PS emulators legal.
Why phones and Apple Silicon Macs are harder
Phone chips and Apple's M-series are ARM64 and cannot run x86-64 code directly, so the "free CPU" advantage of PS4 emulation disappears:
- Mac: shadPS4 for macOS is itself an x86-64 program that runs through Apple's Rosetta 2. It needs Apple Silicon and macOS 26 or later, and far fewer games are reported playable on Mac than on Windows or Linux.
- Android: unofficial projects like Bachata S4 use FEX to translate x86-64 to ARM64 on the fly, paired with shadPS4's renderer. Phone GPUs are also far weaker than PC ones, so only high-end Snapdragon phones manage some games. See PS4 emulation on Android.
- Single-game ports avoid part of the problem. Bloodborne-Android translates Bloodborne's x86 code to native ARM ahead of time, skipping real-time translation.
Glossary
CPU and system
| Term | Meaning |
|---|---|
| x86-64 | The PC CPU instruction set, also used by the PS4 and PS5 CPUs. The shared instruction set is why game code can run directly on a PC |
| x86-64-v3 / AVX2 | A feature level of x86-64 that includes newer instructions such as AVX2. shadPS4 needs at least this level (Intel Haswell, AMD Excavator or newer) |
| ARM64 | The instruction set of phones and Apple M-series chips, not compatible with x86-64 |
| Rosetta 2 | Apple's tool for running x86-64 programs on Apple Silicon Macs. The Mac versions of shadPS4 and KytyPS5 rely on it |
| FEX | An open-source x86-64 to ARM64 translator used by Android PS4 projects |
| Jaguar / Zen 2 | The AMD CPU core architectures in PS4 and PS5 |
| HLE | High-level emulation: the emulator reimplements system libraries. Fast, but unfinished parts break |
| LLE | Low-level emulation: loading the console's original system modules. Accurate, but needs the module files |
| Translation layer | Translating a game's system and hardware calls to the PC instead of emulating the whole machine. KytyPS5 and SharpEmu both describe themselves this way |
| Relinker | AnyPS5's tool that rewrites PS5 executables into native PC programs |
GPU and graphics
| Term | Meaning |
|---|---|
| GCN / RDNA 2 | The AMD GPU architectures in PS4 / PS5 |
| GNM | The PS4's low-level graphics API, through which games command the GPU directly |
| PM4 | AMD's GPU command packet format, which emulators parse one by one |
| Shader | A small program on the GPU for lighting, materials and effects |
| SPIR-V | Vulkan's portable shader format. PS4/PS5 shaders get translated into it |
| Vulkan | A cross-platform graphics API. shadPS4 and KytyPS5 need Vulkan 1.3 |
| MoltenVK | Translates Vulkan to Apple's Metal. The Mac versions of KytyPS5 and SharpEmu use it |
| Shader cache / pipeline cache | Stored compiled shaders, so they do not stutter again |
| Shader compilation stutter | The brief hitch when a new shader is compiled for the first time |
| Readback | GPU output that the CPU reads back. shadPS4 v0.10.0 fixed Bloodborne's vertex explosions by implementing it |
| FSR | AMD's upscaling technology, supported by shadPS4 since v0.7.0 |
Files and games
| Term | Meaning |
|---|---|
| PKG | The PS4/PS5 install package format, encrypted. shadPS4 stopped installing them in v0.8.0 |
| eboot.bin | The game's main executable |
| param.sfo | Game metadata (title, ID, version) in the sce_sys folder |
| .sprx / .prx | PlayStation dynamic library files |
| sys_modules | shadPS4's folder for PS4 system modules (.sprx) |
| PUP | A PlayStation system update file (PS4UPDAT.PUP on PS4) |
| CUSA / Title ID | A PS4 game's ID: four letters and five digits, one per regional release |
| Updates / DLC | In shadPS4, placed in <folder>-UPDATE and user/addcont respectively |
Compatibility levels (used by shadPS4, SharpEmu and others)
| Level | Meaning |
|---|---|
| Playable | Runs properly; minor issues possible |
| Ingame | Gets in-game but has major problems or is too slow |
| Menus | Reaches menus or the title screen only |
| Boots | Starts and shows something, but does not reach menus |
| Nothing | Does not start |
Online and other
| Term | Meaning |
|---|---|
| PSN | Sony's PlayStation Network. Emulators do not connect to it |
| shadNet | The shadPS4 team's own online servers; since v0.20.0 they enable online Bloodborne in the emulator |
| Remote Play | Streaming a real console to a PC or phone. Not an emulator, and scammers often pass it off as one |
| Native port | Rewriting a single game as a native PC or phone program, like the Bloodborne port bbport. Not a general emulator |
Ready to play? See the best PS4 emulator in 2026 and PS4 emulator system requirements.
FAQ
Why did PS4 emulation progress so fast?
Because the PS4's CPU is AMD x86-64, the same as a PC. The shadPS4 wiki says plainly that it does not emulate the CPU: game code runs directly on your processor, and the emulator handles the GPU and system libraries. The PS3, by contrast, used the Cell processor, which has nothing in common with a PC CPU.
Why is PS5 harder to emulate than PS4?
Not because of the CPU; both are x86-64. The GPU is the problem: PS5 uses the newer RDNA 2 architecture with a different graphics API and command format, games are much bigger, and they rely on PS5-specific hardware decompression and a fast SSD. Public PS5 emulators also only appeared in July 2026, years behind PS4 work.
What causes stutter in PS4 and PS5 emulators?
Mostly shader compilation. Game shaders are written for PlayStation's AMD GPU, so the first time the emulator sees one it must translate it to SPIR-V and hand it to your GPU driver to compile. That causes a hitch. The result is stored in a shader cache, so it does not stutter the next time.
Why is PS4 emulation on phones so hard?
Phone chips are ARM and cannot run the PS4's x86 code directly. A translation layer like FEX has to convert it to ARM first, which costs a lot of performance, and phone GPUs are far weaker than PC ones. That is why Android only has experimental projects that need high-end Snapdragon phones.
The PS5 plays PS4 games, so why can't PS5 emulators just do the same?
The PS5 runs PS4 games because it has an x86-64 CPU and extra logic in its RDNA 2 GPU for compatibility with the PS4's GCN GPU. That is hardware compatibility. Emulators have no such hardware and must rebuild everything in software, so PS4 and PS5 are separate jobs. SharpEmu and others have early PS4 compatibility modes.
What do HLE and LLE mean?
HLE (high-level emulation) means the emulator reimplements the console's system libraries itself. LLE (low-level emulation) means it loads the console's original system modules. shadPS4 is mostly HLE, with only some modules loadable through LLE.
Sources
- shadPS4 official site
- Wikipedia: PlayStation 4 technical specifications
- Wikipedia: PlayStation 5
- PlayStation.Blog: Unveiling new details of PlayStation 5 hardware technical specs (2020-03-18)
- Eurogamer / Digital Foundry: PlayStation 5 specs and tech (2020-03-18)
- Emulation General Wiki: PlayStation 4 emulators
- Emulation General Wiki: PlayStation 5 emulators
- Tom's Hardware: PS5 emulator runs six titles at 60fps as shader translation and Vulkan support improve (2026-09-27)
- Tom's Hardware: AnyPS5 runs PS5 games natively on PC (2026-09-26)
- KytyPS5 official site
- VideoCardz: SharpEmu and KytyPS5 become community-driven (MoltenVK on Mac, 2026-07-17)
- Notebookcheck: shadPS4 now supports AMD FSR, HDR and more (2025-03-24)
- Wccftech: shadPS4 0.10.0 fixes Bloodborne vertex explosions (2025-07-07)
- Digital Foundry: Bloodborne PC emulation can now exceed 4K at 60fps (2026-01-17)