A PSP emulator for Android, Windows, Mac, Linux and Blackberry 10, written in C++. Want to contribute? Join us in #ppsspp on freenode (IRC) or just send pull requests / issues.
C++ C Objective-C CMake Java Python Other
Latest commit d31d268 Aug 29, 2016 @hrydgard committed on GitHub Merge pull request #8940 from hrydgard/blocklink
Fix block linking with W^X mode
Permalink
Failed to load latest commit information.
Blackberry Update version numbers to 1.2.2, more README fixes Mar 19, 2016
CMakeTests Improve FFmpeg detection on debian systems; fix build when git is ins… Sep 16, 2015
Common Remove checks for various iOS non-jit situations in settings Aug 28, 2016
Core Fix block linking with W^X mode Aug 28, 2016
GPU Implement W^X-compatible path. Works on Windows and Android, hopefull… Aug 28, 2016
Qt UI: Add a generic word wrapper class. Jul 4, 2016
SDL fix indentation Dec 21, 2015
Tools Remove unused SQL database that's in the wrong place anyway (needs to… Jan 4, 2015
UI Remove checks for various iOS non-jit situations in settings Aug 28, 2016
Windows Properly allow triggering a core context. Aug 9, 2016
android Merge pull request #8871 from unknownbrackets/android-power Aug 6, 2016
assets Update PPGE atlas (font used for in-game save dialogs etc) Feb 15, 2016
dx9sdk @ ec19e64 Update dx9sdk (got rid of redundant headers) Sep 7, 2014
ext Merge pull request #8913 from unknownbrackets/ui-tweaks Aug 16, 2016
ffmpeg @ b49a12f Upgrade to FFmpeg 3 / clang. Jul 24, 2016
flash0/font Wrong permission in jpn0.pgf. It should have the same as other files … Aug 4, 2014
headless Avoid directly calling osm from Core/GPU code. May 28, 2016
ios iOS buildfix, fix another comment Aug 28, 2016
lang @ fcfae51 Update glslang, lang submodules Apr 7, 2016
pspautotests @ e18cfac update Jan 19, 2016
source_assets Implement on-screen touch combo keys. Oct 24, 2015
unittest x86jit: Fix params in Replace_fabsf. May 31, 2016
.editorconfig Use an explicit Unicode reference. Aug 8, 2016
.gitattributes merged with upstream / amended SDL2 multi monitor support Oct 15, 2014
.gitignore Add a couple missing ignores for MSVC. Nov 15, 2015
.gitmodules Add ppsspp-glslang as a submodule (shader compiler for future Vulkan … Feb 17, 2016
.travis.sh Update Travis to NDK r12b. Jul 24, 2016
.travis.yml Enable ccache for Symbian. May 22, 2016
.ycm_extra_conf.py YCM config update (vim plugin) Oct 14, 2015
CMakeLists.txt UI: Add a generic word wrapper class. Jul 4, 2016
Globals.h Color conv attempt 2. Start consolidating simple color conversion fun… Apr 8, 2015
LICENSE.TXT Switch to "GPL 2.0 or later" for various reasons. I wrote most of the… Nov 4, 2012
README.md Update version numbers to 1.2.2, more README fixes Mar 19, 2016
atlasscript.txt Implement on-screen touch combo keys. Oct 24, 2015
atlasscript_lowmem.txt Implement on-screen touch combo keys. Oct 24, 2015
b.sh IOS buildfix Jan 3, 2016
build_ppgeatlas.sh Make build_ppgeatlas.sh executable. Sep 16, 2015
buildatlas.sh Native merge part 2: update build files. Sep 6, 2015
chinese.txt Update font atlas (Chinese, Korean updates) Feb 14, 2016
git-version.cmake Fix PPSSPP_GIT_VERSION_NO_UPDATE 1. Sep 21, 2015
history.md More features in 1.2.0. Split out pre-1.0.0 history to history.md Feb 7, 2016
korean.txt Update font atlas (Chinese, Korean updates) Feb 14, 2016
make-font-textfiles.sh Quick script to prepare the "learning files" for the font atlas building Jan 31, 2015
notinstalled.txt Add InnoSetup script to make a basic installer. Oct 15, 2013
ppge_atlasscript.txt Update PPGE atlas (font used for in-game save dialogs etc) Feb 15, 2016
ppsspp.iss Add compat.ini as a dependency to our various build systems Sep 27, 2015
test.py Update tests. Sep 5, 2014

README.md

PPSSPP - a fast and portable PSP emulator

Created by Henrik Rydgård

Additional code by many contributors, see the Credits screen

Originally released under the GPL 2.0 (and later) in November 2012

Official website: http://www.ppsspp.org/

No BIOS file required to play, PPSSPP is in many ways a "HLE" emulator.

To contribute, see the development page.

For the latest source code, see our github page.

For build instructions and other development tutorials, see the wiki.

What's new in 1.2.2

  • Went back to the old way of initializing graphics on Android. Should fix many recent issues.
  • Some graphical fixes, a vertex cache performance improvement and a screen clear optimization
  • Fix for dual source blending on most SHIELD devices, causing graphical issues.
  • Fix the homebrew store incorrectly unzipping some games. This will lead to more games being added.
  • Slightly faster ISO handling

What's new in 1.2.1

  • Fixes for some crash-on-shutdown and app switching problems.

What's new in 1.2.0

  • A major rework of sceAtrac audio decoding, fixing various music hangs and similar issues
  • Many fixes and workarounds to depth and stencil buffer usage, and also FBO management
  • Audio reverb support
  • Combo keys - custom touch buttons that press multiple PSP buttons
  • 5xBR upscaling on GPU (postprocessing effect)
  • Fix problems with playback of video with mono audio
  • Performance improvements like multithreaded audio mixing
  • ARM64 JIT crash bug fixes
  • GLSL shader cache to reduce stuttering ingame
  • Support render-to-CLUT functionality that some games use to change colors of various monsters
  • x86-64 support on Android
  • Auto-hide on-screen controls after a while of no usage
  • Fixes to prescale UV speedhack, now seems reliable
  • Faster ISO RAM cache
  • New UI for moving around the PSP display on larger screens
  • Minor UI fixes like better slider controls
  • Assorted stability fixes (ffmpeg crash, etc)
  • Volume setting is back
  • Preparations for supporting more graphics APIs
  • AdHoc port offset
  • Support another HD remaster (Sora no Kiseki Kai HD)

What's new in 1.1.1

  • Fixed new crash in Persona and other games on ARM64, like Galaxy S6
  • Fixed crashes when trying to launch web browser when not present on Android, like on Android TV
  • Fix crash in games that used "depal" functionality (OpenGL)
  • Fixed rounding mode problems in the JITs
  • Fix crash when loading savestates many times, and savestate compatibility on Android-x86
  • Fix minor glitch in Ridge Racer

What's new in 1.1

  • Support for ARM64 on Android, for improved performance on new devices. Has some new optimizations.
  • Support Android TV, like nVidia Shield TV
  • Screen rotation on PC, useful for vertical games like Star Soldier
  • Many minor performance improvements and compatibility bug fixes
  • GPU emulation fixes like correct depth rounding, fixing text in Phantasy Star
  • Other graphical fixes like UV rotation
  • Support savestates for homebrew apps
  • Simple integrated "Homebrew Store" to download PSP homebrew apps
  • Minor AdHoc multiplayer improvements. Still many issues left.
  • Disable a dangerous optimization on ARM, causing walk-through-walls in Tenchu
  • sceAtrac music compatibility fixes, fixing noise in a few games
  • Better texture scaling performance
  • Direct3D closer in features to OpenGL
  • Works better on BSD operating systems
  • Savedata management UI

What's new in 1.0.1

  • Bugfixes like the save state scroll issue, cosmetic issues like overscroll
  • Some cheat code bugfixes
  • Adler32 and Mersenne Twister modules added (fixes some obscure games)
  • Fix for Jak & Daxter slowdown
  • Graphics hack for Phantasy Star Portable 2 for Direct3D9
  • Fix compatibility with some PowerVR devices broken since v0.9.5-959-g4998044

What's new in 1.0

  • Many, many bug fixes in JIT and elsewhere, improving compatibility
  • Proper fix for Zenfone and related devices
  • Direct3D 9 supported as a rendering backend on Windows, helps on old GPUs and can be faster than OpenGL in many cases
  • You can now create specific configs per game
  • FPU rounding modes much better supported, fixes the Peace Walker boss that was undefeatable. NOTE: This breaks saves in Gods Eater - you must turn off the better rounding, load your save game, turn it on and save.
  • The JIT now uses SSE on x86, improving speed considerably. This does not affect ARM devices, that's for the next version or two.
  • Improved audio output code on both Windows and Android, reducing audio latency on Windows and on some Android systems
  • FFMPEG upgraded, fixed some music hangs ("GHA phase shifts")
  • Some Ad Hoc improvements, coldbird.net is now default adhoc server. Ad Hoc still unfinished and hard to use.
  • Graphics fixes: Bezier/spline drawing fixes, vertex position fixes, DanganRonpa on Adreno fixed, flat shading fixed, vertex cache improved, some PowerVR blockiness issues fixed, screen scaling filter added, Google Cardboard support
  • Simulate UMD speed better, fixing hangs in several games
  • More Atrac3 fixes, fixing hangs
  • Somewhat better disk full handling
  • Fixes to dynamic unloading of code, fixing problems in GEB and TRM 2/3
  • Updated to SDL2 where applicable (Linux, Mac)
  • Some new features, like analog/dpad-swap hotkey, graphics hack for Phantasy Star, show last bit of debug log in dev tools, etc

ADHOC SUPPORT (by Igor Calabria)

This is based on coldbird's code: http://code.google.com/p/aemu/ All credit goes to him!

Status

Code is a bit of a mess and it's not fully functional yet, I still need to implement some functions and add a upnp lib(really important for people with routers).

I did test it with some games(emulator <-> real psp with the server running locally) and it's looking good:

  • Worms Open Warfare: Ran just fine, I was able to play a whole match without problems
  • Monster Hunter Freedom Unite: Runs fine too. Gathering Hall and embarking on quests works
  • Dissidia Duodecim 012: Doesn't work. It requires some functions that I haven't implemented yet. Also, it uses a port < 1000 and thats reserved for admin apps on linux, running the emu as sudo "solves" it, but it's far from ideal.
  • Pacman World Rally: Works too.

Update (Kyhel) :