The short version
PPSSPP is a mature, widely used PSP emulator. It plays nearly every PSP game, on Windows, macOS, Linux, Android, iOS and more, and more than a decade of development shows: save states, fast-forward, a friendly menu and fixes for a huge range of games.
PSPC is a young project, at version 0.1.2, with a different design. It compiles each game ahead of time into a native PC program instead of emulating the processor while the game runs. It runs games on a native reimplementation of one exact PSP operating system, firmware 4.01 with the M33 custom firmware, which lets it boot Sony's real XMB and load M33 plugins. And it brings its own online servers. PSPC 0.1.2 publishes a Windows installer (Linux is included in the tagged source, with no prebuilt download), and seven retail games have been tested on it so far.
PSPC isn't a replacement for PPSSPP, and isn't trying to be one. The two answer different questions, and PSPC relies on PPSSPP's work throughout.
Running game code: just in time or ahead of time
A PSP game is machine code for the PSP's MIPS processor. Both projects have to turn it into code your PC can run; they do it at different times.
- PPSSPP: while the game runs
- PPSSPP translates the game's instructions as it reaches them, with a just-in-time (JIT) recompiler on platforms that allow one, and interpreters elsewhere. Nothing has to happen before you press Play, and code that a game generates or rewrites while running is handled naturally.
- PSPC: before the game runs
- PSPC's recompiler analyzes every executable module of the game in advance, translates each function into C++, and a full optimizing C++ compiler (Clang) builds it into a DLL. That happens once per game, in about a minute per disc by PSPC's estimate, and is cached. At run time nothing is translated: the game's functions are native functions. An interpreter that shares the recompiler's instruction definitions runs whatever the analysis missed, including code generated at run time.
The trade-off: PSPC needs a build step and a compiler, which the Windows installer bundles, and code created at run time runs in its slower interpreter. In exchange, the whole game is compiled with the same tools as any native program, and the instruction semantics are shared, so the interpreter can check the recompiler: the pspautotests suite gives identical results in both, test by test.
PSPC hasn't published speed comparisons with PPSSPP, and doesn't claim to be faster. Some games are still slow in places on PSPC today.
The PSP's operating system
Both projects reimplement the PSP's system software in native code, rather than running Sony's. They aim at different targets:
- PPSSPP reimplements what games need, refined over years of testing across the PSP's library. It needs no Sony software at all: it has its own menu instead of the XMB, and ships replacement system fonts.
- PSPC reimplements one specific firmware, 4.01 with M33, using the decompiled firmware as the specification: its kernel, its libraries, and M33's SystemControl and VshCtrl. It reproduces details games rarely touch but system software and plugins do: the boot sequence, module records and export tables, display priorities, kernel-only functions.
That exactness is what lets PSPC run Sony's own user-mode system software unchanged. With your copy of Sony's 4.01 update, the real XMB boots as recompiled code on PSPC's kernel, lists your games and starts them, and M33 kernel plugins such as DarkFrost load as on a modded PSP. Without the firmware, games still run, but PSPC has no replacement fonts, so text a game draws with the system fonts stays invisible.
Side by side
| Topic | PSPC | PPSSPP |
|---|---|---|
| Game code | Compiled ahead of time to native code, once per game; interpreter for the rest | Translated while the game runs (JIT), or interpreted |
| System software | Native reimplementation of firmware 4.01 with M33 | Native reimplementation of what games use |
| Sony firmware | Optional, for the XMB and system fonts | Not needed; replacement fonts included |
| PSP menu | Sony's real XMB, with your copy of the 4.01 update | PPSSPP's own menu |
| Cheats and plugins | M33 plugins from seplugins, kernel cheat devices such as DarkFrost included | Built-in cheat support (CWCheat format) |
| Games | Seven retail games tested into gameplay | Nearly the whole PSP library |
| Platforms | Windows 10/11 x64 installer. Linux from the v0.1.2 source, in progress; no prebuilt package | Windows, macOS, Linux, Android, iOS and more |
| Graphics | Software reference renderer; Direct3D 11 (Windows) and OpenGL (Linux source builds) at up to 16×, with bit-exact GPU transform | Vulkan, OpenGL and Direct3D renderers, upscaling, texture packs and post-processing shaders |
| Save states | No | Yes |
| Online | Bundled PSN stand-in, Combat Ops and GameSpy servers; PPSSPP-compatible ad hoc | Ad hoc with its built-in server; infrastructure play through community revival servers |
| License | GPL-2.0-or-later | GPL-2.0-or-later |
PPSSPP's features change with every release; see ppsspp.org for its current ones.
Online play
- Ad hoc: PSPC's ad hoc server speaks PPSSPP's protocol and uses its port offset, so PSPC and PPSSPP players can share one server, PSPC's, PPSSPP's built-in one or a public one, and play together.
- Revival servers: PSPC reads PPSSPP's
infra-dns.jsontables unchanged, so community redirects made for PPSSPP work in PSPC too. - What PSPC adds: PSPC Network, a stand-in for the PlayStation Network with accounts, sign-in tickets in Sony's format and friend lists, and game servers for Syphon Filter: Combat Ops, Elite Squadron and Super Squadron. They come with PSPC and start from the launcher's Online page; Super Squadron also defaults to the public server
swss.pspc.online: see Play online.
How PSPC builds on PPSSPP
- A reference: PPSSPP is one of the references PSPC's correctness is judged against, second only to a real PSP. When a game misbehaves in PSPC, how it behaves in PPSSPP is one of the first things to check.
- Tests: pspautotests, the suite of hardware-recorded expectations that PSPC is measured by, comes from the PPSSPP community.
- Code: parts of PSPC are ported from PPSSPP, under the same GPL-2.0-or-later license and marked as such, among them system library behavior, relocation handling, VFPU math, error codes, GE semantics, the networking libraries and the ad hoc server, the layout of system dialogs, the SAS sound mixer and the ATRAC decoders.
PSPC is an independent project. Credit for everything ported goes to PPSSPP's developers; any mistakes in PSPC are its own.
Which should you use?
Choose PPSSPP to
- Play your PSP library today, whatever is in it.
- Play on a Mac, a phone or a tablet.
- Use save states, fast-forward or texture packs.
- Play without any Sony files at all.
Try PSPC to
- Run PSP games as natively compiled PC programs.
- Boot and use Sony's real XMB on your PC.
- Use M33 plugins the way a modded PSP does.
- Play Combat Ops, Elite Squadron or Super Squadron online, with servers you can host.
- Follow, test or contribute to a different approach.
There's no need to pick just one: they share ad hoc servers and revival tables, and your game dumps work in both. See what PSPC can and can't do for the full picture.