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 in #ppsspp on freenode (IRC) or just send pull requests / issues. For discussion use the forums on ppsspp.org.
Go to file
Florent Castelli eb6638bc8f Linux fixup
2012-11-24 17:40:08 +01:00
android Defer blend, cull and depth test changes to draw command 2012-11-24 15:19:29 +01:00
Common Several fixes to build under stricter C++11 2012-11-21 14:33:50 -03:00
Core Add some guards to audio funcs on channel. 2012-11-23 16:25:26 -08:00
ext Fix Windows and Android builds. 2012-11-05 15:42:21 +01:00
GPU Defer blend, cull and depth test changes to draw command 2012-11-24 15:19:29 +01:00
headless Add "slightly faster interpreter", optimizing the most common instrs. Not as helpful as I thought it would be on Android, really need a proper JIT. 2012-11-23 12:42:35 +01:00
native@2680dfe10c Linux fixup 2012-11-24 17:40:08 +01:00
pspautotests@7cfb6a3db4 Add some guards to audio funcs on channel. 2012-11-23 16:25:26 -08:00
SDL Change Blackberry build process (removed package script and integrated in to build). Removed old CMakeLists.txt. Added Blackberry build instrucions to README.md 2012-11-23 10:45:14 +10:00
Windows Defer blend, cull and depth test changes to draw command 2012-11-24 15:19:29 +01:00
.gitignore Add build*/ dirs to gitignore 2012-11-21 19:04:23 -03:00
.gitmodules Add pspautotests as a submodule. 2012-11-09 10:03:05 +01:00
build_ppgeatlas.sh Add internal 2D drawing library that goes through the Ge emulation for portability. 2012-11-18 13:04:49 +01:00
CMakeLists.txt Linux fixup 2012-11-24 17:40:08 +01:00
gentest.py More work on gentest, fix a VFPU bug it found comparing to real PSP! 2012-11-11 21:32:52 +00:00
Globals.h Fixes and optimizations to vertex decoding and lighting. 2012-11-16 15:16:14 +01: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
ppge_atlas.zim Add internal 2D drawing library that goes through the Ge emulation for portability. 2012-11-18 13:04:49 +01:00
ppge_atlasscript.txt Add internal 2D drawing library that goes through the Ge emulation for portability. 2012-11-18 13:04:49 +01:00
README.md Change Blackberry build process (removed package script and integrated in to build). Removed old CMakeLists.txt. Added Blackberry build instrucions to README.md 2012-11-23 10:45:14 +10:00
test.py Change test line numbers to match IDEs. 2012-11-23 10:07:38 -08:00

PPSSPP - a fast and portable PSP emulator

Written by Henrik Rydgård

Released under the GPL 2.0 in November 2012

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

To contribute, see the development page.

For the latest source code and build instructions, see our github page.

Basic build instructions

(for more detailed instructions, see the development page)

First of all, after having checked out the source, don't forget to run:

git submodule update --init

in order to get the "native" library.

Now, the actual building:

PPSSPP currently uses CMake for its build system. In order to build for most systems, create a build directory and run:

cmake path/to/ppsspp
make

You can specify the -G parameter to cmake to choose a generator. The NMake Makefiles, Visual Studio 11 (projects + sln), GNU Makefiles and Unix Makefiles generators have been tested.

Of course in-tree builds are supported, but that makes cleanup harder to do; with out-of-tree builds you can just remove the build directory.

Building for Linux/BSD/etc

Install the libsdl1.2 (SDL 1.2) development headers. This is called libsdl1.2-devel on Debian/Ubuntu, SDL-devel on Fedora/RHEL, sdl12 on BSD ports.

Currently the user interface is identical to Android's, operated with the mouse. A Qt-based interface is planned.

Building for OSX

Install the Xcode Command Line Tools and, using macports, fink or homebrew, install the SDL development headers. This is called sdl on homebrew. Just follow the basic build instructions afterwards.

Currently the user interface is identical to Android's, operated with the mouse. A Qt-based interface is planned.

Building for Android

To build for android, first you must set the ANDROID_NDK environment variable to point to the path of your NDK install. This is done on windows cmd with set ANDROID_NDK=X:\..., on bourne shells with export ANDROID_NDK=/path/to/ndk, and on C shells with setenv ANDROID_NDK /path/to/ndk.

Create a build-android directory and inside it run:

cmake -DCMAKE_TOOLCHAIN_FILE=path/to/ppsspp/android/android.toolchain.cmake path/to/ppsspp
make

After make finishes, it will have created the needed .so files in path/to/ppsspp/android/libs/armeabi-v7a. You can now use the build.xml in the android/ dir to build the final executable, or import the android/ folder as an existing project in Eclipse.

Note that Eclipse won't notice if you have made changes to the C++ code. Introduce a meaningless change to a random .java file such as a whitespace to get Eclipse to rebuild the project.

Also note that the Visual Studio generators aren't compatible with compilers other than microsoft's, but NMake Makefiles works fine.

Building for Blackberry

To build for Blackberry, you must first have the latest Native SDK installed from developer.blackberry.com/native and have compiled the SDL port available from github.com/blackberry/SDL to your NDK workspace. Then checkout the latest version of PPSSPP to your NDK workspace.

To set up your environment for cross-compiling you must then use: source ~/bbndk/bbndk-env.sh

Finally, you are ready to compile. Change directory to ppsspp/SDL and run: ./blackberry_build.sh

If you are on Windows, you will need GNU tools and CMake to run the bash script.

Currently SDL is required for sound output. EGL is used for the GLES2 interface, which is identical to the Android one. There are plans to move to a Qt interface and a different sound library (such as asound) in future.