Development

Adding new games can be done without recompiling Stable Retro, but if you need to work on the C++ code or make changes to the UI, you will want to compile Stable Retro from source.

Install Retro from source

Building Stable Retro requires at least either gcc 5 or clang 3.4.

Prerequisites

To build Stable Retro you must first install CMake. You can do this either through your package manager, download from the official site or pip3 install cmake. If you’re using the official installer on Windows, make sure to tell CMake to add itself to the system PATH.

Mac prerequisites

Since LuaJIT does not work properly on macOS you must first install Lua 5.1 from homebrew:

brew install pkg-config lua@5.1

Windows prerequisites

Install docker

Linux prerequisites

sudo apt-get install zlib1g-dev

Building Linux and Mac

git clone https://github.com/farama-foundation/stable-retro.git stable-retro
cd stable-retro
pip3 install -e .

Building Windows

Run the following

docker/build_windows.bat

Once complete use docker cp to copy the whl file out of the container.

Then you may pip install

git clone https://github.com/farama-foundation/stable-retro.git stable-retro
cd stable-retro
pip3 install -e .

Install Retro UI from source

First make sure you can install Retro from source, after that follow the instructions for your platform:

macOS

Note that for Mojave (10.14) you may need to install /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

brew install pkg-config capnp lua@5.1 qt5
cmake . -DCMAKE_PREFIX_PATH=/usr/local/opt/qt -DBUILD_UI=ON -UPYLIB_DIRECTORY
make -j$(sysctl hw.ncpu | cut -d: -f2)
open "Gym Retro Integration.app"

Linux

sudo apt-get install capnproto libcapnp-dev libqt5opengl5-dev qtbase5-dev zlib1g-dev
cmake . -DBUILD_UI=ON -UPYLIB_DIRECTORY
make -j$(grep -c ^processor /proc/cpuinfo)
./gym-retro-integration

Windows

The Retro UI is not currently supported in native Windows but you can use it easily via WSL2 (Windows Subsystem for Linux) by following the instructions above for Linux. From within WSL2 just launch gym-retro-integration binary like you would on linux.