2012-11-01 15:19:01 +00:00
|
|
|
PPSSPP - a fast and portable PSP emulator
|
|
|
|
=========================================
|
2012-11-21 22:04:13 +00:00
|
|
|
|
2012-11-01 15:19:01 +00:00
|
|
|
Written by Henrik Rydgård
|
|
|
|
|
2012-11-02 06:48:45 +00:00
|
|
|
Released under the GPL 2.0 in November 2012
|
2012-11-01 15:19:01 +00:00
|
|
|
|
|
|
|
Official website:
|
|
|
|
http://www.ppsspp.org/
|
|
|
|
|
2012-11-21 22:04:13 +00:00
|
|
|
To contribute, see [the development page][ppsspp-devel].
|
2012-11-01 15:19:01 +00:00
|
|
|
|
2012-11-21 22:04:13 +00:00
|
|
|
For the latest source code and build instructions, see [our github page][ppsspp-repo].
|
2012-11-02 06:48:45 +00:00
|
|
|
|
2012-11-21 22:04:13 +00:00
|
|
|
Basic build instructions
|
|
|
|
------------------------
|
2012-11-01 15:19:01 +00:00
|
|
|
|
2012-11-21 22:04:13 +00:00
|
|
|
(for more detailed instructions, see [the development page][ppsspp-devel])
|
2012-11-01 15:19:01 +00:00
|
|
|
|
2012-11-03 21:33:53 +00:00
|
|
|
First of all, after having checked out the source, don't forget to
|
|
|
|
run:
|
|
|
|
|
2012-11-21 22:04:13 +00:00
|
|
|
git submodule update --init
|
2012-11-05 20:40:16 +00:00
|
|
|
|
2012-11-03 21:33:53 +00:00
|
|
|
in order to get the "native" library.
|
|
|
|
|
|
|
|
Now, the actual building:
|
|
|
|
|
2013-05-03 16:32:02 +00:00
|
|
|
Building for Windows
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
Use Visual Studio 2010+, Visual C++ Express is fine. 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.
|
|
|
|
|
|
|
|
|
|
|
|
Building for Android
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
Install the Android SDK and NDK.
|
|
|
|
|
|
|
|
To build the native C/C++ part, from a shell or command prompt, run:
|
|
|
|
|
|
|
|
./ab.sh
|
|
|
|
|
|
|
|
or, on Windows:
|
|
|
|
|
|
|
|
ab.cmd
|
|
|
|
|
|
|
|
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. 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.
|
|
|
|
|
|
|
|
There's an alternate method of building for Android using CMake below.
|
|
|
|
|
|
|
|
|
|
|
|
Other platforms
|
|
|
|
---------------
|
|
|
|
|
2012-11-21 22:04:13 +00:00
|
|
|
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
|
|
|
|
|
2012-11-25 11:25:07 +00:00
|
|
|
Alternatively, run b.sh which will create the directory for you.
|
|
|
|
|
2012-11-21 22:04:13 +00:00
|
|
|
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.
|
|
|
|
|
2013-01-10 06:46:00 +00:00
|
|
|
Note: There is also a Qt frontend available. Simply open
|
|
|
|
PPSSPPQt.pro in [Qt Creator 2.6+][qt-creator] and press run. The
|
|
|
|
Qt frontend currently supports Windows, Linux, Blackberry 10,
|
|
|
|
Symbian and Meego.
|
2012-12-23 10:26:18 +00:00
|
|
|
|
2013-04-11 16:58:58 +00:00
|
|
|
Building for Linux/BSD/Meego Harmattan/Pandora/etc
|
2012-11-21 22:04:13 +00:00
|
|
|
--------------------------
|
|
|
|
|
2013-04-11 16:58:58 +00:00
|
|
|
Qt (recommended)
|
|
|
|
A Qt-based frontend is available in the Qt/ dir.
|
|
|
|
Open PPSSPPQt.pro with [Qt Creator 2.6+][qt-creator].
|
|
|
|
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,
|
2012-11-21 22:04:13 +00:00
|
|
|
`sdl12` on BSD ports.
|
|
|
|
|
|
|
|
Currently the user interface is identical to Android's, operated
|
2012-12-23 10:26:18 +00:00
|
|
|
with the mouse.
|
|
|
|
|
2012-11-21 22:04:13 +00:00
|
|
|
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.
|
|
|
|
|
2013-05-03 16:32:02 +00:00
|
|
|
Building for Android using CMake (not recommended, see above)
|
|
|
|
-------------------------------------------------------------
|
2012-11-21 22:04:13 +00:00
|
|
|
|
2013-05-03 16:32:02 +00:00
|
|
|
To build for Android using CMake, first you must set the ANDROID\_NDK environment
|
2012-11-21 22:04:13 +00:00
|
|
|
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:
|
2012-11-01 15:19:01 +00:00
|
|
|
|
2012-11-21 22:04:13 +00:00
|
|
|
cmake -DCMAKE_TOOLCHAIN_FILE=path/to/ppsspp/android/android.toolchain.cmake path/to/ppsspp
|
|
|
|
make
|
2012-11-01 15:19:01 +00:00
|
|
|
|
2012-11-21 22:04:13 +00:00
|
|
|
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.
|
2012-11-01 15:19:01 +00:00
|
|
|
|
2012-11-21 22:04:13 +00:00
|
|
|
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.
|
2012-11-01 15:19:01 +00:00
|
|
|
|
2012-11-21 22:04:13 +00:00
|
|
|
Also note that the `Visual Studio` generators aren't compatible with compilers
|
2012-12-16 16:45:51 +00:00
|
|
|
other than Microsoft's, but `NMake Makefiles` works fine.
|
2012-11-23 00:45:14 +00:00
|
|
|
|
2013-02-13 06:37:51 +00:00
|
|
|
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
|
|
|
|
|
2012-11-23 00:45:14 +00:00
|
|
|
Building for Blackberry
|
|
|
|
-----------------------
|
|
|
|
|
2012-12-23 10:26:18 +00:00
|
|
|
To build for Blackberry, you must first have the [latest Native SDK][blackberry-ndk] installed.
|
2012-11-23 00:45:14 +00:00
|
|
|
|
|
|
|
To set up your environment for cross-compiling you must then use:
|
2013-02-13 06:37:51 +00:00
|
|
|
|
2012-11-23 00:45:14 +00:00
|
|
|
source ~/bbndk/bbndk-env.sh
|
|
|
|
|
2013-01-23 01:14:23 +00:00
|
|
|
Finally, you are ready to compile. Go to ppsspp/Blackberry/ and run:
|
2013-02-13 06:37:51 +00:00
|
|
|
|
2013-01-23 01:14:23 +00:00
|
|
|
./build.sh
|
2012-11-23 00:45:14 +00:00
|
|
|
|
2012-12-16 16:45:51 +00:00
|
|
|
If you are on Windows, you will need GNU and CMake to run the bash script.
|
|
|
|
|
2012-12-23 10:26:18 +00:00
|
|
|
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+][qt-creator].
|
2012-12-16 16:45:51 +00:00
|
|
|
|
|
|
|
Building for Symbian
|
|
|
|
--------------------
|
2012-11-23 00:45:14 +00:00
|
|
|
|
2012-12-16 16:45:51 +00:00
|
|
|
To build for Symbian, you require:
|
|
|
|
|
2012-12-23 10:26:18 +00:00
|
|
|
1) [GCC 4.6.3][symbian-gcc] from Mentor Graphics.
|
|
|
|
|
|
|
|
2) Symbian Qt libraries. You can find these in the final Nokia Qt SDK or online.
|
|
|
|
|
2013-01-10 06:46:00 +00:00
|
|
|
3) Set up your SDK to use Symbian GCCE 4.6.3. See a tutorial here: http://www.summeli.fi/?p=4220
|
2013-01-31 09:59:59 +00:00
|
|
|
You will need to add the GCCE 4.6.3 variant to Symbian\tools\sbs\lib\config\variants.xml as follows:
|
2013-04-24 21:36:05 +00:00
|
|
|
|
|
|
|
```
|
2013-04-24 20:18:09 +00:00
|
|
|
<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>
|
2013-04-24 21:36:05 +00:00
|
|
|
```
|
2013-01-10 06:46:00 +00:00
|
|
|
|
2013-04-23 12:32:07 +00:00
|
|
|
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:
|
2013-04-24 21:36:05 +00:00
|
|
|
|
|
|
|
```
|
2013-04-24 20:18:09 +00:00
|
|
|
<set name="RW_BASE" value="$(RW_BASE_OPTION)0x700000"/>
|
2013-04-24 21:36:05 +00:00
|
|
|
```
|
2013-04-23 12:32:07 +00:00
|
|
|
|
2013-04-11 16:58:58 +00:00
|
|
|
Then simply compile the PPSSPPQt.pro with `qmake` from the SDK or the included QtCreator.
|
2012-12-16 16:45:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
[ppsspp-repo]: <https://github.com/hrydgard/ppsspp>
|
|
|
|
"https://github.com/hrydgard/ppsspp"
|
|
|
|
[ppsspp-devel]: <http://www.ppsspp.org/development.html>
|
|
|
|
"http://www.ppsspp.org/development.html"
|
2012-12-23 10:26:18 +00:00
|
|
|
[qt-creator]: <http://qt-project.org/downloads>
|
|
|
|
"http://qt-project.org/downloads"
|
|
|
|
[blackberry-ndk]: <http://developer.blackberry.com/native>
|
|
|
|
"http://developer.blackberry.com/native"
|
|
|
|
[symbian-gcc]: <http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/>
|
|
|
|
"http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/"
|