How to run Ren'Py games on a Raspberry Pi (or other ARM Linux)

In this quick guide I'll explain how to make Ren'Py games run on ARM Linux machines (armv7 and aarch64). You can do this guide from a Windows PC if you want.

Ren'Py is mostly python, and only needs few generic binaries to run on ARM. We don't have to decompile and recompile the whole project, we just need to get the required binaries from Ren'Py's example project inclued in the SDK.

This only works for Ren'Py 7.5.0 or newer.


I'm a game creator: how to make my game compatible with Raspberry Pi / ARM Linux

On Ren'Py's download page (pick whatever version you use), choose "Download ARM Linux (Raspberry Pi and Chromebook) SDK tar.bz2".

Open your project with this SDK, and when compiling, select "Linux". And that's it, your game should be compatible with Rasberry Pi and other ARM machines.

Note: the "PC: Windows and Linux" and the "Windows, Mac, Linux for Markets" options don't include the ARM build.

I found a game somewhere, it's not built for ARM and I want to make it work

In the game's lib directory, there is no folder for aarch64 or armv7.

Step 1: find the Ren'Py version the game is using

In the renpy directory:

Step 2: Download the Ren'Py SDK and compile something


I prepared the files for some versions, if yours is listed here you can just download it, skip step 2 and jump to step 3.

On the download page for that version, select "Download ARM Linux (Raspberry Pi and Chromebook) SDK tar.bz2".

Run the SDK, select the example project The Question on the left, and in Actions, select Build Distributions.

In the Build Packages options, select Linux. We don't need the others options.

Now, in the SDK's folder, there's a new the_question-something-dists directory, and inside, a ...linux.tar.bz2 archive file. Extract it.

Step 3: Moves compiled files in your game

In the extracted archive, in the lib directory, we'll need the folder for aarch64 or armv7l (pick both if you don't know which one you need).

In the game you found on or somewhere else, there's also a lib directory, but it only contain the folders for linux x86_64. Copy the aarch64/armv7l folders there.

In the new folder, rename the the_question file with the filename the game is expecting, usually the name of the project. If you're unsure, run the .sh file and you will get an error about a file not found, this is the filename we want.

And finally, make everyting in our new lib folder executable (chmod +x lib/*/*)

Done! You can now run the game from the sh file in the game's root directory.