2014-04-07 14:40:50 +02:00
RPCS3
2012-11-03 16:16:18 +01:00
=====
2015-04-08 20:02:54 +02:00
[![Build Status ](https://travis-ci.org/RPCS3/rpcs3.svg?branch=master )](https://travis-ci.org/RPCS3/rpcs3)
2015-08-04 17:52:16 +02:00
[![Build status ](https://ci.appveyor.com/api/projects/status/411c4clmiohtx7eo/branch/master?svg=true )](https://ci.appveyor.com/project/rpcs3/rpcs3/branch/master)
2015-01-26 19:53:00 +01:00
2018-10-10 03:25:41 +02:00
The world's first free and open-source PlayStation 3 emulator/debugger, written in C++ for Windows and Linux.
2014-02-09 18:41:20 +01:00
2018-10-10 03:24:48 +02:00
You can find some basic information on our [**website** ](https://rpcs3.net/ ). Game info is being populated on the [**Wiki** ](https://wiki.rpcs3.net/ ).
For discussion about this emulator, PS3 emulation, and game compatibility reports, please visit our [**forums** ](https://forums.rpcs3.net ) and our [**Discord server** ](https://discord.me/RPCS3 ).
2014-02-09 18:41:20 +01:00
2017-08-23 01:17:43 +02:00
[**Support Lead Developers Nekotekina and kd-11 on Patreon** ](https://www.patreon.com/Nekotekina )
2017-01-21 12:57:23 +01:00
2014-04-13 03:19:48 +02:00
2017-06-04 17:44:48 +02:00
## Development
2014-04-13 03:19:48 +02:00
2018-10-10 03:24:48 +02:00
If you want to contribute, please take a look at the [Coding Style ](https://github.com/RPCS3/rpcs3/wiki/Coding-Style ), [Roadmap ](https://github.com/RPCS3/rpcs3/wiki/Roadmap ) and [Developer Information ](https://github.com/RPCS3/rpcs3/wiki/Developer-Information ) pages. You should also contact any of the developers in the forums or in the Discord server to learn more about the current state of the emulator.
2014-04-13 03:19:48 +02:00
2017-06-04 17:44:48 +02:00
## Dependencies
2014-02-09 18:41:20 +01:00
2017-06-04 17:44:48 +02:00
### Windows
2016-12-19 20:46:08 +01:00
* [Visual Studio 2017 ](https://www.visualstudio.com/en/downloads/ )
* [Visual C++ Redistributable Packages for Visual Studio 2017 ](https://go.microsoft.com/fwlink/?LinkId=746572 )
2018-08-29 02:55:43 +02:00
* [CMake 3.8.2+ ](https://www.cmake.org/download/ ) (add to PATH)
2018-08-07 06:05:22 +02:00
* [Python 3.3+ ](https://www.python.org/downloads/ ) (add to PATH)
* [Vulkan SDK ](https://vulkan.lunarg.com/sdk/home ) (See "Install the SDK" [here ](https://vulkan.lunarg.com/doc/sdk/latest/windows/getting_started.html ))
* [Qt 5.10+ ](https://www.qt.io/download-open-source/ )
2016-12-19 20:46:08 +01:00
**Either add the** `QTDIR` **environment variable, e.g.** `<QtInstallFolder>\5.11.1\msvc2017_64\` ** , or use the [Visual Studio Qt Plugin ](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2017 )**
2014-04-07 14:40:50 +02:00
2017-06-04 17:44:48 +02:00
### Linux
2018-02-22 23:08:14 +01:00
* [Qt 5.10+ ](https://www.qt.io/download-open-source/ )
2018-08-29 02:55:43 +02:00
* GCC 7.3+ or Clang 5.0+
* CMake 3.8.2+
2018-12-18 04:51:49 +01:00
* Debian & Ubuntu: `sudo apt-get install cmake build-essential libasound2-dev libpulse-dev libopenal-dev libglew-dev zlib1g-dev libedit-dev libvulkan-dev libudev-dev git qt5-default libevdev-dev`
2018-06-02 21:29:41 +02:00
* Arch: `sudo pacman -S glew openal cmake vulkan-validation-layers qt5-base`
2018-06-04 03:47:07 +02:00
* Fedora: `sudo dnf install alsa-lib-devel cmake glew glew-devel libatomic libevdev-devel libudev-devel openal-devel qt5-devel vulkan-devel`
2017-12-11 00:48:26 +01:00
* OpenSUSE: `sudo zypper install git cmake libasound2 libpulse-devel openal-soft-devel glew-devel zlib-devel libedit-devel vulkan-devel libudev-devel libqt5-qtbase-devel libevdev-devel`
2018-06-02 21:29:41 +02:00
**If you have an NVIDIA GPU, you may need to install the libglvnd package.**
2014-04-07 14:40:50 +02:00
2017-09-06 01:43:24 +02:00
### MacOS
MacOS is not supported at this moment because it doesn't meet system requirements (OpenGL 4.3)
2018-08-29 02:55:43 +02:00
* Xcode 10
2017-08-08 18:20:41 +02:00
* Install with Homebrew: `brew install glew llvm qt cmake`
2014-04-29 19:55:03 +02:00
2014-02-09 18:41:20 +01:00
2017-06-04 17:44:48 +02:00
## Building on Windows:
2018-10-10 03:24:48 +02:00
To initialize the repository, don't forget to execute `git submodule update --init` to pull the submodules.
2017-06-04 17:44:48 +02:00
2018-08-07 06:05:22 +02:00
### Configuring the Qt plugin (if used)
2018-04-30 11:23:40 +02:00
2016-12-19 20:46:08 +01:00
1) Go to the Qt5 menu and edit Qt5 options. Add the path to your Qt installation with compiler e.g. `<QtInstallFolder>\5.11.1\msvc2017_64` .
2018-06-27 20:19:02 +02:00
2) While selecting the rpcs3qt project, go to Qt5->Project Setting and select the version you added.
2017-06-04 17:44:48 +02:00
### Building the projects
2018-06-26 23:24:19 +02:00
2018-10-10 03:24:48 +02:00
Open `rpcs3.sln` . The recommended build configuration is `Release - LLVM` for all purposes.
2018-08-07 06:05:22 +02:00
You may want to download precompiled [LLVM libs ](https://github.com/RPCS3/llvm/releases/download/continuous-master/llvmlibs.7z ) and extract to root rpcs3 folder (which contains `rpcs3.sln` ), as well as download and extract [additional libs ](https://drive.google.com/uc?export=download&id=1A2eOMmCO714i0U7J0qI4aEMKnuWl8l_R ) to `lib\%CONFIGURATION%-x64\` to speed up compilation time (unoptimised/debug libs are currently not available precompiled).
2017-11-20 02:10:27 +01:00
2018-06-26 23:24:19 +02:00
If you're not using precompiled libs, build the projects in *__BUILD_BEFORE* folder: right-click on every project > *Build* .
2017-11-20 02:10:27 +01:00
2018-06-26 23:24:19 +02:00
`Build > Build Solution`
2017-11-20 02:10:27 +01:00
2017-01-22 15:57:09 +01:00
2018-08-29 13:27:10 +02:00
## Building on Windows (MinGW):
1) Install packages
- `pacman -S base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-yasm mingw-w64-x86_64-python2 mingw-w64-x86_64-ntldd-git mingw-w64-x86_64-qt5 mingw-w64-x86_64-openal mingw-w64-x86_64-glew git`
2) Clone repository
- `git clone https://github.com/RPCS3/rpcs3.git`
3) Update submodules
- `cd rpcs3`
- `git submodule update --init`
- `cd ..`
2018-10-10 03:24:48 +02:00
4) Configure and compile RPCS3
2018-08-29 13:27:10 +02:00
- `mkdir rpcs3_build && cd rpcs3_build`
- `cmake -G "MSYS Makefiles" -DCMAKE_MAKE_PROGRAM=mingw32-make ../rpcs3/`
- `mingw32-make.exe GitVersion && mingw32-make.exe discord-rpc`
- If you use ```-DUSE_SYSTEM_FFMPEG=OFF```, run `mingw32-make ffmpeg-mingw`
2018-10-10 03:24:48 +02:00
5) Build RPCS3
2018-08-29 13:27:10 +02:00
- Run `mingw32-make` or `mingw32-make -jX` where X is your CPU cores.
6) Copy dependencies
- `cd ./bin`
- `for l in $(ntldd.exe -R rpcs3.exe|grep mingw64|sed -e 's/^[ \t]*//'|cut -d' ' -f3);do cp $l .;done`
7) Copy qt plugins
- `mkdir -p ./qt/plugins/{bearer,imageformats,platforms,styles}`
- `cp /mingw64/share/qt5/plugins/bearer/qgenericbearer.dll ./qt/plugins/bearer/`
- `cp /mingw64/share/qt5/plugins/imageformats/{qgif.dll,qicns.dll,qico.dll,qjpeg.dll,qtga.dll,qtiff.dll,qwbmp.dll,qwebp.dll} ./qt/plugins/imageformats/`
- `cp /mingw64/share/qt5/plugins/platforms/qwindows.dll ./qt/plugins/platforms/`
- `cp /mingw64/share/qt5/plugins/styles/qwindowsvistastyle.dll ./qt/plugins/styles/`
8) Run RPCS3 with `./rpcs3`
2017-06-04 17:44:48 +02:00
2017-09-06 01:43:24 +02:00
## Building on Linux & Mac OS:
2017-06-04 17:44:48 +02:00
2018-06-26 23:24:19 +02:00
1) `git clone https://github.com/RPCS3/rpcs3.git`
2) `cd rpcs3/`
3) `git submodule update --init`
2017-10-01 08:26:42 +02:00
4) `cd ../ && mkdir rpcs3_build && cd rpcs3_build`
2018-06-26 23:24:19 +02:00
4) `cmake ../rpcs3/ && make GitVersion && make`
5) Run RPCS3 with `./bin/rpcs3`
2017-01-22 15:57:09 +01:00
2018-10-10 03:24:48 +02:00
If you are on MacOS and want to build with brew llvm and qt, don't forget to add the following environment variables:
2017-08-08 18:20:41 +02:00
* `LLVM_DIR=/usr/local/opt/llvm/` (or wherever llvm was installed).
* `Qt5_DIR=/usr/local/opt/qt/lib/cmake/Qt5` (or wherever qt was installed).
2017-01-22 15:57:09 +01:00
2015-12-16 15:20:46 +01:00
When using GDB, configure it to ignore SIGSEGV signal (`handle SIGSEGV nostop noprint`).
2014-04-29 19:55:03 +02:00
2017-06-04 17:44:48 +02:00
2017-09-06 01:43:24 +02:00
## CMake Build Options (Linux & Mac OS)
2016-07-01 06:07:16 +02:00
2018-06-27 20:19:02 +02:00
- ```-DUSE_SYSTEM_LIBPNG=ON/OFF``` (default = *OFF* )
2018-10-10 03:24:48 +02:00
Build against the shared libpng instead of using the built-in one. libpng 1.6+ highly recommended. Try this option if you get version conflict errors or only see black game icons.
2016-07-01 06:07:16 +02:00
2018-06-27 20:19:02 +02:00
- ```-DUSE_SYSTEM_FFMPEG=ON/OFF``` (default = *OFF* )
2018-10-10 03:24:48 +02:00
Build against the shared ffmpeg libraries instead of using the built-in patched version. Try this if the built-in version breaks the OpenGL renderer for you.
2016-12-02 11:40:41 +01:00
2018-06-27 20:19:02 +02:00
- ```-DWITHOUT_LLVM=ON/OFF``` (default = *OFF* )
2018-10-10 03:24:48 +02:00
This forces RPCS3 to build without LLVM (not recommended).
2017-09-06 00:29:46 +02:00
2018-06-27 20:19:02 +02:00
- ```-DWITH_GDB=ON/OFF``` (default = *OFF* )
2018-10-10 03:24:48 +02:00
This builds RPCS3 with support for debugging PS3 games using gdb.
2017-09-14 20:02:09 +02:00
2018-06-27 20:19:02 +02:00
- ```-DUSE_VULKAN=ON/OFF``` (default = *ON* )
2017-09-14 20:02:09 +02:00
This builds RPCS3 with Vulkan support.
2017-06-04 17:44:48 +02:00
2018-06-27 20:19:02 +02:00
- ```-DUSE_NATIVE_INSTRUCTIONS=ON/OFF``` (default = *ON* )
2018-10-10 03:24:48 +02:00
This builds RPCS3 with -march=native, which is useful for local builds, but not good for packages.
2018-02-19 04:55:46 +01:00
2017-06-04 17:44:48 +02:00
## License
2016-12-02 11:40:41 +01:00
2018-10-10 03:24:48 +02:00
Most files are licensed under the terms of GNU GPLv2 License; see LICENSE file for details. Some files may be licensed differently; check appropriate file headers for details.