User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
proton:raspi_setup [2016/06/23 07:28]
proton:raspi_setup [2019/02/06 02:56] (current)
Line 1: Line 1:
-** Experimental ​and for linux pros only **+** Compiling Proton ​and its examples on the Raspberry Pi with GL ES **
-Here is how to setup the Raspberry Pi to support normal OpenGL or GLES (both with acceleration) and be able to compile the Proton SDK examples  ​(tested with Raspbian "​Jessie" ​on 6/18/2016)+As a base, I started ​with a [[https://​​download/​|RetroPi image]] [[https://​​etcher/​|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)
-From my tests I got it working two ways:+If you REALLY want to use a standard Raspbian stretch install you can, just do these commands first to get ready:
-1 Set it up using the OpenGL experimental driver. ​ Result: Proton examples only work in X11 in windows mode.  Fullscreen (using the SDL2 harness) didn't work.  [[proton:​raspi_opengl_setup|Directions to setup]]+<code bash> 
 +sudo apt-get install cmake 
 +sudo apt-get install libsdl2-2.0-0 libsdl2-dev 
-2.  Set it up using GL ES, won'​t ​work in X11works full screen by starting from console. ​ This is more useful for me as it's more pedal to the metal and easier to get 60 fpsno x overhead. ​ With this method we're setting up our own EGL context manually, but still using the SDL2 harness for other things+Also, I think the GL driver needs to be set to "​Legacy"​ to work, which is the defaultbut worth mentioning if you've changed it using raspi-config.
 +---- End Raspbian stretch part ----
-** Instructions to setup GLES with Raspberry Pi and run Proton SDK examples **+First, make sure you gave git installed. SSH into your PI and:
 +<code bash>
 +sudo apt-get install git
-These steps are what I use to compile stuff by copying things from my Windows computer. ​ A normal user would probably just grab the svn tree and run .sh files.+Next, install Proton ​and compile its RTPack utility:
-  * Give the video card more memory on the pi.  Run raspi-config and give it at least 128 or so to be safe. +<code bash> 
-  * Install cmake on the pi (sudo apt-get install cmake) +cd ~ 
-  * Do "sudo rpi-update"​ to make sure your firmware is updated +git clone https://​​SethRobinson/​proton.git 
-  * Run the following from a shell:+</​code>​
-<​code>​ +Now let's build Proton'​s RTPack utility, will come in handle later.
-sudo apt-get -y install xcompmgr libgl1-mesa-dri && sudo apt-get -y install libalut0 libalut-dev && sudo apt-get -y install mesa-utils+
-sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev libgles2-mesa-dev libgegl-dev+<code bash> 
 +cd ~/​proton/​RTPack/​linux 
 </​code>​ </​code>​
-  * Do the following from a shell window to install SDL2 from source:+Now let's compile and run RTBareBones:
-<​code>​ +<​code ​bash
-cd ~  +cd ~/proton/RTBareBones/linux 
-wget​SDL2-2.0.4.tar.gz ​ +sh 
-tar zxvf SDL2-2.0.4.tar.gz ​ +cd ../bin 
-cd SDL2-2.0.4 && mkdir build && cd build  +./RTBareBones
-../configure --host=armv7l-raspberry-linux-gnueabihf --disable-pulseaudio --disable-esd --disable-video-mir --disable-video-wayland --disable-video-x11 --disable-video-opengl +
-make -j 5  +
-sudo make install ​+
 </​code>​ </​code>​
 +If that worked, enjoy the spinning triangle and text stretching!
-Step 2Proton stuff+Now let's do RTSimpleApp,​ same thing but it needs SDL2_mixer for its audio, so let's get that installed:
-  * Install linux tools for Windows, rsync and ssh should work from the command line +<code bash> 
-  * Setup a ssh key pair so you don't have to type passwords +sudo apt-get install libsdl2-mixer-dev 
-  * Edit SetupVars.bat and edit the IP to the pi +</code>
-  * Run CopyStuffToPi.bat. ​ There should now be a ~/proton tree on the pi +
-  * Edit the RTBareBones/​linux/​CMakeLists.txt file and make sure OPTION(RASPBERRYPI_GLES11 OPTION(RASPBERRYPI_GLES11 "​Compile for Raspberry PI GLES" ON) is uncommented and OPTION(RASPBERRYPI_OPENGL "​Compile for Rasperry PI OpenGL"​ ON) is commented out.  +
-  * RTBareBones/CopyStuffToPiAndCompileLoop.bat and it should update that example and compile it in a loop+
-The last step of the build copies the rtbarebones binary to /​RTBareBones/​bin (as that's where the media is), so go to that dir and run "​./​rtbarebones"​ and it should work.+Great. ​ Now we compile and run like before, but we're adding a step - compiling media with the RTPack utility.
-RTSimpleApp is much the same, although you'll need SDL2's mixer as well.  Unlike with the base SDL2, we can just grab a pre-compiled one like this: +<​code ​bash
-<​code>​ +cd ~/​RTSimpleApp/​linux 
-sudo apt-get libsdl2-mixer-dev+sh 
 +cd ../media 
 +cd ../bin 
 </​code>​ </​code>​
-And that should compile ok. It should run at least 60 fps at 720p. 
 +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 [[https://​​watch?​v=bk6jVk7t4i4|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.1466666931.txt.gz · Last modified: 2016/06/23 07:28 by seth