Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Download the source code
(for additional information that's partially outdated, see the development page)
Install git and check out the source code (git clone https://github.com/hrydgard/ppsspp.git , or fork and clone that). Afterwards, run (this is important!):
git submodule update --init --recursive
in order to get the translations (lang), ffmpeg libraries, and other submodules.
If you choose to build from tarballs of the source code instead of cloning the full git repository, you will need to manually download the tarball releases of each of the submodules as well (submodules are listed in this repo's
- Windows :: Microsoft Visual Studio 2015 Community Edition or higher. NOTE: It is necessary to install the Visual Studio component "C++ support for Windows XP".
Linux :: gcc/g++. Debian/Ubuntu uses the
build-essentialpackage. Fedora/RHEL uses the "Development Tools" package group.
Mac OS X :: Xcode Command Line Tools. You will also need Homebrew installed with the
brew install sdl2 cmake).
- Android :: You should have the latest SDK and NDK installed.
- Blackberry :: You should have the latest Native SDK installed. Minimum version of 10.2.0 is required.
- Symbian :: You need GCC 4.8.3 and the NDK from xsacha's github.
iOS :: OS X 10.10+ with Xcode 6+ installed. If compiling a fakesigned binary intended for jailbroken iOS, you also need iOSOpenDev installed with a patched iPhoneOS SDK (
sudo iod-setup sdk)
Compilers --- you will need one of the following:
- Clang :: Minimum version of 3.4 is required. Clang is preferred over GCC.
- GCC :: Minimum version of 4.8 is required.
- MSVC :: Minimum version of MSVC 2015 is required (though 2013 may be close to working).
CMake (minimum version of 3.6) is also required.
Frameworks and libraries --- you will need all of these:
- A front-end development kit, either
- Qt :: Minimum version of 5.0 is required. All versions of Qt5 are known to work. This can make use of SDL1.2 (below) to allow controllers and improve audio.
- or SDL :: To target the SDL frontend, install the libsdl1.2 development headers. This is called libsdl1.2-dev on Debian/Ubuntu, SDL-devel on Fedora/RHEL, sdl12 on BSD ports.
- ffmpeg :: Be very careful about using a system FFmpeg. The FFmpeg API changes frequently, and different versions than what PPSSPP is built for are known to result in crashes and broken music/videos within games. Use the ffmpeg submodule instead to have it work properly.
- libglvnd (on some platforms)
- Snappy, the file compression tool by Google
Now, the actual building:
Building for Windows
Open the solution and just build, it'll work. You may just need to set up a path or two to the Windows SDK (which includes the DX SDK) nowadays. A step-by-step compiling guide can be found here.
Building for Android with Android Studio
Open the PPSSPP folder as a project in Android Studio and build and run. Everything should work, provided you have installed the NDK properly.
Building for Android with Eclipse and the NDK
Install the Android SDK and NDK.
To build the native C/C++ part, from a shell or command prompt, run:
or, on Windows:
in android/. You may need to tweak the paths in the ab file.
Then just open the project in Eclipse and run on your device. Alternately,
you may run
android update project --path "ppsspp-dir/android/" and
ant release to build without the need for Eclipse.
When you make changes to the native code, you may have to refresh or add a few spaces to PPSSPPActivity.java for Eclipse to rebuild the APK when you run it on your device the next time.
Building for Qt platforms
The Qt frontend currently supports Linux and any other platform that has Qt available (though not officially, apart from Linux). We use CMake to build for Qt.
A Qt-based frontend is available in the Qt/ dir.
For building the package via command-line, you will need to
ensure Qt5 is installed for your target platform
(on Linux: Development libraries are
qt5-qmake qtsystems5-dev qtmultimedia5-dev qttools5-dev-tools for Qt5. Install SDL 1.2 if you want to use USB Gamepad or improve Linux audio. For Qt's built-in audio, use
qtmultimedia5-dev on Qt5.). After installing these package components, simply open up the terminal and:
On Mac, you can use brew to install the required dependencies:
brew upgrade brew install qt
Then build using (this is new):
For all platforms, the application is automatically packaged in to an installable file (.app for iOS and Mac OSX, .exe for Windows and a standalone binary on Linux).
CMake (Other platforms)
PPSSPP currently uses CMake on platforms that do not have Qt installed and wish to target SDL or native (iOS/Android/Blackberry) frontends. 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.
Visual Studio 11 (projects + sln),
GNU Makefiles and
Unix Makefiles generators have been tested.
b.sh, on Linux, which will create the directory for you.
If you are on Windows, you will need GNU and CMake to run the bash scripts.
Building for Android (CMake)
This is not recommended and may not be maintained. Please use the method mentioned earlier.
To build for Android using CMake, 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.
Then run the script:
After this completes successfully, 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 iOS (CMake)
Run the script:
Then open the generated project in Xcode using: open *.xcodeproj Or use the command line: xcodebuild -configuration Release
Alternate method which seems to work better:
cmake -DCMAKE_TOOLCHAIN_FILE=./cmake/Toolchains/ios.cmake -DIOS_PLATFORM=OS -H. -Bbuild.ios -GXcode
Then go to the target, and set developer profile as iOS developer. Go to the General tab of the target and check the box to automatically manage signing. After that, things should work.
The PPSSPP.app bundle will be in /path/to/ppsspp/build-ios/Release-iphoneos/PPSSPP.app. You may then scp or afc it to /Applications/ and launch PPSSPP.
If this is your first time installing PPSSPP to your iOS device, you may need to run
uicache as mobile in a terminal session to rebuild the SpringBoard UICache, or simply reboot.
Building For Linux (Clang 3.4)
In order to build it under Clang environment, you will need
clang-3.4 packages from the repository and install it. Then, you will need to run the command to locate where is
c++config.h located at
/usr/include/<arch>/c++/<version>/bits depending kinds of machine and installation. After located the
c++config.h and other header file components, simply copy the
c++config.h and other header files to
/usr/include/c++/<version>/bits and placed it into the location in order to make Clang building the project without problems.
Clang works perfectly with Cmake build method, so you might need to do something before building it is run the command to set the Clang as the working compiler before building it via Cmake method:
export CC=clang export CXX=clang++
You can also put these command into
.bashrc file to make it as a default compiler.