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.
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.
In the game's lib directory, there is no folder for aarch64 or armv7.
In the renpy directory:
If there is a versions.py file: open it, look for the first line that starts with Version around line 50:
Version("main", 3, "8.2.0", "64bit Sensation")
The version here is 8.2.0.
If there's none, open the __init__.py file and looks for the version_tuple variable around line 43:
version_tuple = (6, 18, 3, vc_version)
The version here is 6.18.3, and it won't work with this guide.
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.
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 itch.io 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.