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 https://github.com/SethRobinson/proton.git
Now let's build Proton's RTPack utility, will come in handle later.
cd ~/proton/RTPack/linux sh linux_compile.sh
Now let's compile and run RTBareBones:
cd ~/proton/RTBareBones/linux sh linux_compile.sh cd ../bin ./RTBareBones
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 sh linux_compile.sh cd ../media sh update_media.sh cd ../bin ./RTSimpleApp
If that worked, enjoy the app. If it didn't… off to the forums and yell at Seth!
State of Proton on the Pi
- It runs fullscreen only both in or out of the desktop environment
- If SDL isn't compiled a certain way, mouse and keyboard won't work right. (use the RetroPi dist!)
- Even though mouse and keyboard can work, there is no mouse cursor, you'd need to draw it yourself
- 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/autostart.sh 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