Porting PPSSPP

It's great to see PPSSPP ported to new platforms, feel free to give it a go.

Platforms

Here's an incomplete list of platforms that PPSSPP could or could not be ported to (last updated 2025):

PlatformStateComments
Windows1Donex86‑32/⁠64, ARM64 2
Android3Donex86‑64, ARM32/⁠64 4
LinuxDonex86‑32/⁠64, ARM32/⁠64, LoongArch64, RISC‑V64
macOSDoneLimited native UI
iOSDoneJIT works but not on the App Store builds.
Windows UWP,
Xbox Series X|⁠S,
Xbox One,
Windows 10 Mobile5
Donex86‑64, ARM64 6
Nintendo SwitchDoneHomebrew enabled consoles only.
Raspberry PiDoneR4+ recommended

These platforms were supported once, but aren't anymore due to lack of maintainer interest:

PlatformStateComments
DragonBox PyraProof-of-concept
PandoraWorked
BlackBerry 10WorkedJIT for ARM
SymbianWorkedJIT for ARM
MeeGoWorked
Maemo 5Worked
Wii UProof-of-concept
Xbox 360Proof-of-conceptHacked consoles only.

These are ports that never happened or are deemed impossible:

PlatformStateComments
PlayStation 3Barely possibleHacked consoles only. Will not happen.
Windows Phone 8NOT POSSIBLEJIT not allowed, way too slow.
Windows Phone 7.xNOT POSSIBLENo native code support.
WiiNOT POSSIBLENot enough RAM.
Xbox originalNOT POSSIBLENot enough RAM. Weak CPU?
PlayStation 2NOT POSSIBLENot enough RAM, weak CPU.
GameCubeNOT POSSIBLENot enough RAM, weak CPU.
DreamcastNOT POSSIBLENot enough RAM, weak CPU.

Why not the PlayStation 3?

It's a common question why there's no homebrew port of PPSSPP for the PlayStation 3. Unfortunately, while techically possible, it's a lot harder than it seems, and would need somebody doing months of dedicated work, maybe a year, to make it run well.

The main issue is that the PS3 uses "big-endian" CPUs. All platforms that PPSSPP currently run on are little-endian, just like the PSP itself. With all the memory copying and low level bit manipulation that happens during emulation, it's very easy for code that assumes little-endian byte order to slip in. So, first of all somebody would need to bring up PPSSPP on some other easier-to-debug big-endian platform (like old PowerPC Mac, perhaps) and fix all the endian-ness bugs.

Second, the PS3 uses the CELL processor, which is really unsuitable for emulation due to being terrible at executing branchy code, the main core being PowerPC-based, and the SPUs would be nearly useless. The IR interpreter would run far too slowly, so JIT compilation would be the only option. PowerPC is simply unsuitable because PPSSPP doesn't have any PowerPC JIT backends, and writing a good one would be a major effort.

Third, programming the PS3 GPU isn't very easy, and we'd need to link a full shader compiler into the app. I don't know if there's an existing suitable one.

Finally, the number of people who are interested enough in the PS3 and PSP to do this, and have the skills to do a good emulator port (including JIT), appears to be zero.

Footnotes

  1. Windows 7 or newer. XP support is discontinued. Vista compatibility is not tested.

  2. ARM32 was never officially supported on Windows.

  3. Android 5.0 "Lollipop" or newer. 4.x support is discontinued.

  4. x86‑32 and ARMv6 (legacy armeabi) support on Android is discontinued.

  5. Windows 10 Mobile was never officially supported. JIT didn't work correctly, CPUs in Lumia devices were slow and the graphics driver was extremely buggy.

  6. x86‑32 and ARM32 support on UWP is discontinued.