A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
Go to file
Unknown W. Brackets 93a712660c GPU: Avoid memory corruption on bone matrix > 96.
See #9574.  Seen in Zill O'll Infinite, thanks to Kitsu-neechan for
tracking this down.
2017-12-26 01:09:23 -08:00
.github Add a github issue template. Let's see if this works. 2017-12-01 23:11:58 +01:00
android Avoid including platform-specific headers in VulkanContext.h 2017-12-18 12:54:25 +01:00
assets WIP vulkan on linux stuff 2017-12-21 10:48:00 +01:00
cmake RPI: use new vendor graphics library names 2017-10-17 00:50:16 +01:00
com.bda.controller Add Gradle build. This time, we don't remove the old build system and we don't switch Travis. 2017-03-15 19:42:17 +01:00
Common Vulkan: Decimate the texture allocator. 2017-12-24 10:39:42 -08:00
Core GE Debugger: Save with alpha for PNGs. 2017-12-21 23:47:49 -08:00
dx9sdk@7751cf73f5 Windows: d3dcompiler_47.dll is redistributable, so add it to our installation package scripts. 2017-03-22 13:44:44 +01:00
ext Vulkan: Decimate the texture allocator. 2017-12-24 10:39:42 -08:00
ffmpeg@a2e98d7ba4 Update submodules 2017-03-29 10:29:16 +02:00
GPU GPU: Avoid memory corruption on bone matrix > 96. 2017-12-26 01:09:23 -08:00
gradle/wrapper Update gradle files to Android Studio 3.0 defaults. 2017-10-26 10:48:55 +02:00
headless Rework GL lost-device to work more like Vulkan. Gets rid of gl_lost manager etc. 2017-12-07 15:05:59 +01:00
icons Move unix-icons out of assets 2016-10-14 22:38:33 +02:00
ios Don't call functions in asserts, they get compiled out in release... 2017-10-20 14:45:00 +02:00
pspautotests@d02ba74070 Further steps towards Vulkan framebuffer support 2017-05-30 09:36:17 +02:00
Qt Move QtMain.cpp and PCMain.cpp to more sensible locations. Native isn't standalone anymore... 2017-12-19 18:04:26 +01:00
SDL SDL: unbreak on more non-Vulkan platforms 2017-12-21 21:31:26 +00:00
source_assets UWP: Add simple script to produce the square-shaped UWP logos. Add gold assets 2017-03-23 10:02:27 +01:00
Tools Add compiled file 2014-04-28 21:47:14 +08:00
UI Merge pull request #10430 from unknownbrackets/hwtess 2017-12-22 08:11:38 +01:00
unittest UnitTest: Correct vertex and jit tests. 2017-05-06 18:45:04 -07:00
UWP UI: Add a simple tween class. 2017-12-03 09:39:50 -08:00
Windows GE Debugger: Allow enable/disable of prim preview. 2017-12-23 02:16:43 -08:00
.editorconfig OSK: Limit allowed keyboards based on input mask. 2017-10-14 22:59:48 -07:00
.gitattributes Add a .gitattributes to normalize newlines. 2014-09-26 21:20:50 -07:00
.gitignore Update .gitignore for libretro builds. 2017-11-15 11:26:55 -08:00
.gitmodules Import SPIRV-Cross. This will be used later to translate post-processing shaders to the various shader languages we use. 2017-02-14 23:33:27 +01:00
.travis.sh Update travis config to use NDK 16b 2017-12-08 08:52:20 +01:00
.travis.yml Silence travis gcc version errors. 2017-11-17 09:47:09 -08:00
.ycm_extra_conf.py glew: Move to ext 2016-12-18 21:13:45 +01:00
appveyor.yml Appveyor: disable scanning for tests. 2017-03-20 07:22:11 -07:00
atlasscript_lowmem.txt Implement on-screen touch combo keys. 2015-10-24 13:22:43 +02:00
atlasscript.txt Implement on-screen touch combo keys. 2015-10-24 13:22:43 +02:00
b.sh CMakelist cleanup, might buildfix things on Linux Clang 2017-03-16 10:16:29 +01:00
build_ppgeatlas.sh Minor script updates 2017-03-18 16:33:16 +01:00
build.gradle Android: Update to gradle 3.0.1 2017-11-21 12:37:03 +01:00
buildatlas.sh Minor script updates 2017-03-18 16:33:16 +01:00
chinese.txt Update chinese.txt korean.txt (learning files for font atlas) 2016-09-17 12:38:07 +02:00
CMakeLists.txt Android cmake fix 2017-12-22 00:02:46 +01:00
copyrelease.sh Update copyrelease.sh 2017-05-17 20:20:47 +03:00
git-version.cmake Fix PPSSPP_GIT_VERSION_NO_UPDATE 1. 2015-09-21 19:26:29 -03:00
gradlew Add Gradle build. This time, we don't remove the old build system and we don't switch Travis. 2017-03-15 19:42:17 +01:00
gradlew.bat Add Gradle build. This time, we don't remove the old build system and we don't switch Travis. 2017-03-15 19:42:17 +01:00
history.md More features in 1.2.0. Split out pre-1.0.0 history to history.md 2016-02-07 13:07:56 +01:00
korean.txt Update chinese.txt korean.txt (learning files for font atlas) 2016-09-17 12:38:07 +02:00
LICENSE.TXT Switch to "GPL 2.0 or later" for various reasons. I wrote most of the code I imported from Dolphin (which is GPL2-but-not-later), so it should be OK. 2012-11-04 23:24:00 +01:00
macshaders.sh Add Gradle build. This time, we don't remove the old build system and we don't switch Travis. 2017-03-15 19:42:17 +01:00
make-font-textfiles.sh Move lang into assets. 2016-10-14 22:33:45 +02:00
notinstalled.txt Add InnoSetup script to make a basic installer. 2013-10-15 11:55:02 +02:00
ppge_atlasscript.txt Update PPGE atlas (font used for in-game save dialogs etc) 2016-02-15 19:24:39 +01:00
ppsspp_config.h Windows: Avoid UWP for desktop api family. 2017-11-25 14:08:51 -08:00
ppsspp.iss Finally move flash0 into assets, fixing #9468 and #9520 2017-04-01 00:20:53 +02:00
README.md v1.5.4 2017-12-05 14:51:51 +01:00
settings.gradle Add Gradle build. This time, we don't remove the old build system and we don't switch Travis. 2017-03-15 19:42:17 +01:00
tesselationhwON-mesa3drun.sh Script mesa3d enable for HW Tesselation 2017-01-28 04:47:41 +11:00
test.py Make test.py python3-compatible, print out command lines better. 2017-11-15 17:44:53 +01:00

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: https://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.5.4

  • Bugfixes and crashfixes!

What's new in 1.5.0

  • Full Vulkan support, also for Android now. Very fast on supported devices. (#10033, #10049)
  • Smarter graphics state management, reduced CPU consumption on all backends (#9899)
  • Android: Support for Arabic and other scripts we couldn't support before
  • Fix Android widgets, screen scaling (#10145)
  • Fixes to video dumping
  • Geometry problems fixed in Medal of Honor
  • Implement immediate draws, fixing Thrillville (#7459)
  • Software rendering improvements, speed and accuracy
  • Hardware tesselation of PSP Beziers and Splines (used by a few games)
  • Partial sceUsbGps and sceUsbCam support (Android)
  • Android "Sustained performance mode" to avoid thermal throttling (#9901)
  • Linux controller mapping fixes (#9997)
  • Assorted bugfixes and compatibility improvements

What's new in 1.4.2

  • Fixed longstanding bug causing games to crash on ARM64
  • Software rendering crashfix, plus hide it for Android users
  • D3D9 pixel offset bug fix (blurriness)
  • Fixes for homebrew: Timing, MEMSIZE

What's new in 1.4.1

  • Fixes for some common hangs and crashes (#9698, ...)
  • Vertex decoder optimizations (#9674)
  • Corrections to mipmap bias and selection function (#9633)
  • Major improvements and fixes to software renderer, including mipmap support (#9635, ...)
  • UI background image support
  • Basic mouse input support on Windows
  • Windows desktop touch fixes (#9560)
  • D3D11 "depal" color fixes, fixing Sonic Rivals
  • Fix crash in framebuffer blits affecting Persona 3 (#9566)

What's new in 1.4-2

  • Bugfix release - build system didn't copy the flash0 directory to the APK on Android.

What's new in 1.4

  • Support D3D11 (performs better than OpenGL or D3D9 on most hardware)
  • Audio quality improvement (linear interpolation) (#8950)
  • Hardware spline/bezier tesselation in OpenGL, D3D11 and Vulkan (...)
  • Post-processing shaders in D3D11
  • Prescale UV setting removed, now the default (improves perf) (#9176)
  • High DPI display fixes
  • Various fixes for UMD switching for multi-UMD games (#9245, #9256)
  • New audio setting to improve compatibility with Bluetooth headsets
  • Various desktop gamepad compatibility fixes
  • Workaround for mipmap issue, fixing fonts in Tactics Ogre Japanese
  • Assorted minor compatibility fixes, code cleanup and performance improvements

Support for Symbian, Maemo and Blackberry has been removed.

What's new in 1.3.0

  • Fix JIT problems on Galaxy S7 and iOS 9+ devices. (#8965, #8937)
  • Fix Android TV support and use latest FFmpeg. (#8651, #8870)
  • Texture replacement support - for custom textures and upscaling. (#8715, #8821)
  • Initial game recording / TAS features. (#8939, #8945)
  • Correctly map memory on Raspberry Pi 3, much better performance. (#8801)
  • Workaround rendering issues on Tegra K1/X1. (8294a54)
  • Disc streaming to play quickly from tablet/phone on wifi. (#8845)
  • Initial Vulkan support - not full featured yet. (#8601, etc.)
  • Experimental new CPU backend and CPU fixes. (#8725)
  • Allow insert/eject of memstick - required by some games. (#8889)
  • Better support for ps3 controller mapping. (#8949)
  • Better UI handling for settings with long names in some languages. (#8900, #8898)
  • Screenshots in compatibility reporting, better website. (#8812)
  • Fix type D cheat codes, allow for homebrew. (#8818)
  • Graphic glitch fixes in several games. (#8686, #8757, #8804)
  • Fix video playback glitches in several games. (#8793, #8803, #8867, #8914)
  • Various performance and compatibility improvements. (#8868, #8884, #8932, #8934, #8813, #8701, #8960)
  • Various debugger and GE debugger improvements. (#8882, #8762)
  • Fix some problems when switching away from and back to the app (#8968)

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: https://code.google.com/archive/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) :