Help:Building RPCS3

From RPCS3 Wiki
Revision as of 00:41, 9 December 2018 by JohnHolmesII (talk | contribs) (Per discussion here: hcorion and I feel that putting the build instructions for "weird" platforms and usages on the public wiki makes more sense than flooding the readme or the locked github wiki.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Many build platforms are supported partially by the development team. Meaning, pull requests are accepted from various members of the community who have taken to ensuring that other platforms build rpcs3 correctly. However, they are not always actively maintained by the dev team, and as a result many unices such as macOS and freeBSD break often. Below, several less-common platforms have their build processes detailed.


RPCS3 uses many 3rd party libraries and projects. Most notably, in order to build the project, you will need the following:

Vulkan SDK
CMake 3.8.2+
Python 3.3+
Qt 5.10+

In addition, a relatively modern compiler is needed. The project uses c++17, and as a result GCC 7.3 or Clang 5.0 are the minimum needed compilers.


Support for macOS is in its early stages. A few members of the community are working on getting Vulkan working on Macs, via Apple's awful MoltenVK. Support for OpenGL will likely never come to the platform. For development, it is recommended to use Xcode and install the following through the terminal

brew install glew llvm qt cmake

You will also need to remember to set environment vars:


OR, wherever llvm was installed


OR, wherever qt was installed


There is some support for non-MSVC based compilation on Windows. The Msys2 platform using the Mingw build tools did work at one point, though it should be noted that the following instructions are outdated.

## Deps
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

## Clone
git clone
cd rpcs3
git submodule update --init

## Configure
cd .. && 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

## Build
mingw32-make -jX #X is core count

## Install
cd ./bin
for l in $(ntldd.exe -R rpcs3.exe|grep mingw64|sed -e 's/^[ \t]*//'|cut -d' ' -f3);do cp $l .;done

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/

## Run

CMake Build Options

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.


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.


This forces RPCS3 to build with LLVM.

-DWITH_LLVM=ON/OFF (default = *ON*)

This builds RPCS3 with support for debugging PS3 games using gdb.

-DWITH_GDB=ON/OFF (default = *OFF*)

This builds RPCS3 with Vulkan support.

-DUSE_VULKAN=ON/OFF (default = *ON*)

This builds RPCS3 with -march=native, which is useful for local builds, but not good for packages.