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
Henrik Rydgård c1a2ee51ab Merge pull request #1544 from cyb3rm4n/master
More language fixes
2013-04-27 04:32:34 -07:00
android Combine the two JitCache implementations (x86, ARM) into one. 2013-04-27 01:32:03 +02:00
assets Update fonts again 2013-04-22 22:45:48 +02:00
Blackberry Update Symbian+Blackberry version numbers. 2013-04-14 21:54:09 +10:00
Common JIT: Get rid of one memory access per dispatch, and get rid of blockcodepointers. 2013-04-27 01:32:03 +02:00
Core Buildfix 2013-04-27 12:04:42 +02:00
ext DLC bug fix 2013-04-26 12:05:21 +08:00
flash0/font Revert to JPCSP's jpn0.pgf font. Should've checked the last one more carefully. 2013-04-09 23:55:27 +02:00
GPU Mask clut indexes for > 8-bit clut indexes. 2013-04-27 01:19:09 -07:00
headless Correct sceUtilityGetSystemParamString() per tests. 2013-04-20 09:37:47 -07:00
ios Update ViewController.mm 2013-04-24 17:44:43 +09:00
lang@e961d0d328 Update lang 2013-04-27 01:40:33 +02:00
native@c59ee2bccc Delete lang. Don't worry, coming back in the next commit as submodule. 2013-04-23 21:17:38 +02:00
pspautotests@a46907d2fc Update tests. 2013-04-20 09:39:12 -07:00
Qt Fixed version number for symbian 2013-04-24 19:07:35 +03:00
SDL Move blackberry files in to their own directory as it is unrelated to SDL 2013-01-23 11:14:23 +10:00
source_assets Switch main UI font to one built to include Hiragana and Katakana. Don't know if that is enough. 2013-04-17 16:39:01 +02:00
Tools/SaveTool Fixed two other memory leaks I missed. 2013-01-25 15:07:36 -05:00
UI More lang fixes 2013-04-27 14:28:06 +03:00
unittest Add Winsock2 to Unittest (links in a report call.) 2013-04-19 08:42:41 -07:00
Windows Un-Pause and closes Dissambly on Emulation Stop 2013-04-21 10:54:25 +08:00
.gitignore Update fonts again 2013-04-22 22:45:48 +02:00
.gitmodules Now lang is a submodule. Less commit noise! :) 2013-04-23 21:21:18 +02:00
atlasscript.txt Use the Roboto font for Latin and Russian chars, keep Arial for the rest for now. Add missing chars. 2013-04-21 21:55:08 +02:00
b.sh MacOSX buildfix. Doesn't run right yet though. 2012-11-25 12:25:07 +01:00
build_ppgeatlas.sh Switch main UI font to one built to include Hiragana and Katakana. Don't know if that is enough. 2013-04-17 16:39:01 +02:00
buildatlas.sh Move non-Android specific stuff from android/jni to /UI. 2013-03-30 15:46:26 +01:00
chinese.txt Update fonts again 2013-04-22 22:45:48 +02:00
CMakeLists.txt Combine the two JitCache implementations (x86, ARM) into one. 2013-04-27 01:32:03 +02: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
git-version.cmake Fix typo breaking git-version.cpp gen in cmake. 2013-03-17 23:45:41 -07:00
Globals.h Walk a pointer when enqueuing audio. 2013-01-29 08:19:06 -08:00
korean.txt Update fonts again 2013-04-22 22:45:48 +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
ppge_atlasscript.txt Add most Japanese kanji, the brute force way. 2013-04-18 14:59:00 +02:00
README.md Another attempt at fixing README.md 2013-04-24 23:36:05 +02:00
test.py Update tests. 2013-04-20 09:39:12 -07: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

Alternatively, run b.sh which will create the directory for you.

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.

Note: There is also a Qt frontend available. Simply open PPSSPPQt.pro in Qt Creator 2.6+ and press run. The Qt frontend currently supports Windows, Linux, Blackberry 10, Symbian and Meego.

Building for Linux/BSD/Meego Harmattan/Pandora/etc

Qt (recommended) A Qt-based frontend is available in the Qt/ dir. Open PPSSPPQt.pro with Qt Creator 2.6+. Install libsdl1.2 if you want to use USB Gamepad. If the build has an error about finding mobility or multimedia:

  • Install the package "qtmobility-dev"

SDL Alternatively, install the libsdl1.2 (SDL 1.2) development headers. This is called libsdl1.2-dev 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.

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 iOS

Create a build-ios directory and inside it run:

cmake -DCMAKE_TOOLCHAIN_FILE=../ios/ios.toolchain.cmake -GXcode ..

Then open the generated project in Xcode.

For more information, see: http://code.google.com/p/ios-cmake/wiki/HowTo

Building for Blackberry

To build for Blackberry, you must first have the latest Native SDK installed.

To set up your environment for cross-compiling you must then use:

source ~/bbndk/bbndk-env.sh

Finally, you are ready to compile. Go to ppsspp/Blackberry/ and run:

./build.sh

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

Alternatively, you can use the Qt frontend by compiling the PPSSPPQt.pro in the Qt/ directory with qmake from the NDK or QtCreator 2.6+.

Building for Symbian

To build for Symbian, you require:

  1. GCC 4.6.3 from Mentor Graphics.

  2. Symbian Qt libraries. You can find these in the final Nokia Qt SDK or online.

  3. Set up your SDK to use Symbian GCCE 4.6.3. See a tutorial here: http://www.summeli.fi/?p=4220 You will need to add the GCCE 4.6.3 variant to Symbian\tools\sbs\lib\config\variants.xml as follows:

    <var name="gcce4_6_3" extends="gcce_base">
      <env name="SBS_GCCE463BIN" type="toolchainpath" />
      <set name="GCCEBIN" value="$(SBS_GCCE463BIN)" />
      <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.6.3"/>
      <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
      <set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_6"/>
      <set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_6__"/>
      <set name="LINKER_DEFAULT_LIBS" value="-lsupc++ -lgcc -lgcc_eh"/>
      <set name="PLATMACROS.CONFIG" value="ARMV6"/>
      <set name="ARMMACROS.CONFIG" value="__MARM_ARMV6__ __ARMV6__"/>
      <set name="LINKER_GROUP_END_OPTION" value="-Wl,--end-group"/>
      <set name="LINKER_GROUP_START_OPTION" value="-Wl,--start-group"/>
      <set name="CC.ARMV5" value="-march=armv6"/>
      <set name="CC.SOFTVFP_MAYBE_VFPV2" value="softfp"/>
    </var>

You will also need to increase the data section of the executable in linking stage by modifying Symbian\tools\sbs\lib\config\gcce.xml as follows:

    <set name="RW_BASE" value="$(RW_BASE_OPTION)0x700000"/>

Then simply compile the PPSSPPQt.pro with qmake from the SDK or the included QtCreator.