Hope I’m not bringing up a topic which is too old, but I just happened to notice this thread while I was browsing the forums. And I happened to have PICO-8 set up and running on my Pi, including a Picade build!
Admittedly I’ve done this a while ago already and even at that time the online tutorials were slightly out-of-date already. I am not sure if anyone has made a newer tutorial in the mean time, but while I was busy I did write down some notes for a friend of mine. I might as well share those here, perhaps they are of use to you still, @Nahual! Now this is in no way tutorial-quality and it’s missing a few steps, but it might help you out. You’ll notice I’m referencing some files and a Google Drive. Those are obviously not included, but I can see what I can do! Just know that I sourced those logos from the internet anyway, so a Google search might help you out quicker. :-) Let’s see if copy-pasting them here doesn’t mess up the formatting (hint: it did, let me fix some things best I can):
Installing PICO-8 on Retropie
Instructions mostly gotten from https://www.lexaloffle.com/bbs/?tid=3935 but it’s a bit outdated and missing quite a few things.
- Make sure SSH is enabled in Retropie
You’ll want to have a direct network connection between your PC and your pi, for ease of set up. Go to the Retropie configuration menu and select Raspi-config. Within this menu, select option 5 Interfacing Options. From there you can turn on P2 SSH by following the instructions.
- Copy the PICO-8 executable to your pi
On your Windows system, open a command prompt and navigate to the folder where you’ve got your PICO-8 distributable zip file stored. You’ll want to copy the zip file to a folder on your pi, where the default user has access to. In this case, I would opt for /tmp/ but substitute whatever is to your liking. Now, use the scp command as follows substituting filename, login, machinename and target folder as desired:
scp <filename> <login>@<machine>:<folder>
In my case that would be as follows:
scp pico-8_0.1.12c_raspi.zip pi@picade:/tmp
When prompted, enter the password for the login. If you have left this to its default, this should be raspberry
- SSH into your Picade via your PC
Next connect to your pi via
ssh -l pi <name of machine>
For example, for me that would be:
ssh -l pi picade
When prompted, enter the default password.
- Move and unzip the pico-8 executable
Via SSH, move the file to the desired location and unzip it. I would recommend the ports folder to keep things organized. Do the following:
sudo mv /tmp/pico-8_0.1.12c_raspi.zip /opt/retropie/ports/
sudo unzip pico-8_0.1.12c_raspi.zip
This should create a pico-8 folder under your ports folder.
- Create a roms folder
For easy access from your network via samba, create a roms folder among the other emulators. While still SSH’d into the pi, this would be:.
- Adjusting themes: carbon
Let’s start with the default carbon theme. On the pi go to /etc/emulationstation/themes/carbon and create a pico-8 folder. So something like:
sudo mkdir pico-8
On a different prompt, scp the logos you want (p8*.png?) to the /tmp/ folder of your pi.
scp p8*.png pi@picade:/tmp
Next on your pi, move the transferred logos to the recently made /etc/emulationstation/themes/carbon/pico-8 folder, so you can reference them in the theme-file:
sudo mv /tmp/p8*.png /etc/emulationstation/carbon/pico-8/
(some missing instructions I’ll get to later, basically follow the theming instructions on the linked page)
- Adjusting themes: picade
Oh man, this one was simple! As long as you set up the es_systems.cfg properly as described below, you’ll only need to add an svg logo to make the picade theme work! Thanks to how the theme dynamically looks up assets by use of the theme tag in es_systems.cfg (I added an appropriate image to the Google Drive named pico-8.svg but you can use any that you want)
Just copy the svg file to the /tmp/ folder and then move it to the logos folder of the theme, like so:
sudo mv /tmp/pico-8.svg /etc/emulationstation/themes/picade/_inc/logos/
- Add PICO-8 to es_systems.cfg
sudo nano -w /etc/emulationstation/es_systems.cfg
Then add the following:
<extension>.p8 .p8.png .P8 .P8.PNG</extension>
<command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 "/opt/retropie/ports/pico-8/pico8 -run %ROM%"</command>
Next up, do the following:
sudo cp /etc/emulationstation/es_systems.cfg /opt/retropie/configs/all/emulationstation/
Note: I just found out that by manually editing and copying this file, you kind of get in the way of RetroPie auto-updating the config file as in it will only update one from then on. Not sure how to correct this yet. Just make sure to keep on copying this file whenever installing new systems/emulators or they won’t show up in the RetroPie menu.
- Copy roms to pi
Get your roms on the pi, via the network share or such. For some reason that I can’t grasp yet, make sure to rename any .p8.png extensions to .p8 for the games to be detected correctly!
rename.ul .p8.png .p8 *.p8.png
- Install libwiringpi
A few versions ago, a dependency was introduced which is no longer included by default with the distributable. Install it manually by executing the following:
sudo apt-get install wiringpi
- Set up a custom control scheme (for Picade only!) to remap the buttons correctly
The quickest and easiest way is to use the keyconfig menu, as described on https://pico-8.fandom.com/wiki/Keyconfig. For this you will need a keyboard, so I recommend hooking one up or using a bluetooth one. Now, either run a cartridge and press the escape button or quite EmulationStation via the F4 key, navigate to the PICO-8 folder and start pico-8 in development mode via
When you’re in the PICO-8 command prompt, input the keyconfig command to call up the menu and bind your controls as desired. I’d recommend using the Picade controls to map player 1 and leave player 2 on default (by pressing the delete key on your keyboard). Press escape to confirm and enter the command shutdown to exit. Now you can enter back into EmulationStation by exiting the prompt (with exit) or rebooting entirely. When now playing PICO-8 games the controls should work as setup, with the caveat that if you’ve mapped the escape key to a Picade-button, this will still put PICO-8 in dev mode when pressed. Keep a keyboard closeby for these occasions (or until I’ve figured out how to remap controls via Retropie and disable that escape key in PICO-8).
Now you’re all ready to play some faux-retro indie games on your faux-retro cabinet!