User Tools

Site Tools


Compiling Proton and its examples on the Raspberry Pi with GL ES

As a base, I started with a RetroPi image written to an SD card (tested with 4.4 on 1/28/2019) on a Raspberry 3B. Why? Because it comes with SDL2 pre-installed and pre configured so SDL will properly send mouse and keyboard input which saves a lot of hassle. (don't ask me why, but the version the standard stretch has on apt-get doesn't)

If you REALLY want to use a standard Raspbian stretch install you can, just do these commands first to get ready:

sudo apt-get install cmake
sudo apt-get install libsdl2-2.0-0 libsdl2-dev

Also, I think the GL driver needs to be set to “Legacy” to work, which is the default, but worth mentioning if you've changed it using raspi-config.

—- End Raspbian stretch part —-

First, make sure you gave git installed. SSH into your PI and:

sudo apt-get install git

Next, install Proton and compile its RTPack utility:

cd ~
git clone

Now let's build Proton's RTPack utility, will come in handle later.

cd ~/proton/RTPack/linux

Now let's compile and run RTBareBones:

cd ~/proton/RTBareBones/linux
cd ../bin

If that worked, enjoy the spinning triangle and text stretching!

Now let's do RTSimpleApp, same thing but it needs SDL2_mixer for its audio, so let's get that installed:

sudo apt-get install libsdl2-mixer-dev

Great. Now we compile and run like before, but we're adding a step - compiling media with the RTPack utility.

cd ~/RTSimpleApp/linux
cd ../media
cd ../bin

If that worked, enjoy the app. If it didn't… off to the forums and yell at Seth!

State of Proton on the Pi

  1. It runs fullscreen only both in or out of the desktop environment
  2. If SDL isn't compiled a certain way, mouse and keyboard won't work right. (use the RetroPi dist!)
  3. Even though mouse and keyboard can work, there is no mouse cursor, you'd need to draw it yourself
  4. Video acceleration works, audio works (see my Atari PaperCart project)

Hint: Using the RetroPi dist? You can edit the text file /opt/retropie/configs/all/ and comment out where it runs emulationstation and change that to run your own app - or nothing at all, so it drops into the shell on boot.

An easy way to replace the boot splash is replacing /opt/retropie/supplementary/splashscreen/retropie-default.png

proton/raspi_setup.txt · Last modified: 2019/02/06 02:56 by seth