Last updated 12NOV2020 (see Changelog for details)
Pico-8 is one of my favorite systems to run on handheld emulation devices, because there are thousands of indie games right at your fingertips, and they are a perfect match for a handheld system.
I’m particularly excited about Pico-8 on the RG351P, because its network connectivity allows you to browse, play, and download games onto the device itself from the internet. That’s pretty exciting.
Table of Contents: Purchase and download Pico-8 Add the system files Add the Pico-8 "system art" Set up the control configuration Add your Pico-8 games Boot up Pico-8 Shut down Pico-8 Changelog
Purchase and download Pico-8
I know we’re all used to running free and open-source software on these devices, but in order to run Pico-8, you need a legally purchased version of this microconsole. I personally think that $15 is a small price to pay to access thousands of awesome indie games, but it’s up to you. One neat feature: once you purchase the system, you can also download the PC, Linux, and Mac versions to play on your home computer!
If you have purchased a game bundle in the recent past, such as the viral Bundle for Racial Justice and Equality earlier this year, you may actually already own Pico-8. I recently purchased Pico-8, only to find out that I had already purchased it two other times as part of game bundles, and didn’t realize it.
So head over to the Pico-8 homepage and purchase the Raspberry Pi version of the console. Download and unzip the file.
Add the system files
In order to make the games run, you must add them to the Linux partition of the device and make them executable. The only way to access this part of the device is via WiFi FTP or through Linux file system software. For more info on this process, check out my File Transfer Guide.
Connect to your device via FTP, then go to the storage/.config/emuelec/ports folder. Inside this folder, create a folder named “pico-8”. Place all of your Pico-8 system files inside the new storage/.config/emuelec/ports/pico-8 folder. They should be the following files:
lexaloffle-pico-8.png license.txt pico-8.txt pico8 pico8_dyn pico8.dat sdl_controllers.txt
Right-click on the pico8 file and select “Properties” (or “Get Info” if using Forklift on a Mac). In the permissions box, you should see Read, Write, and Execute permissions for the file. Make sure that all of the Execute (“X”) permissions are checked YES. Do the same for the pico8_dyn file.
Next, we need to make a file that will execute the Pico-8 program. To do this, go back to the storage/.config/emuelec/ports folder and create a file named pico-8.sh. If there is already a .sh file in there, you could just make a copy of it and rename it to the pico-8.sh file you’ll need.
Open up the pico-8.sh file, and paste the following code:
#!/bin/bash /storage/.config/emuelec/ports/pico-8/pico8_dyn -splore -home -root_path /storage/roms/pico-8 -joystick 0
Save and close the pico-8.sh file. Now, right-click on the pico-8.sh file and select “Properties” (or “Get Info” if using Forklift on a Mac). In the permissions box, you should see Read, Write, and Execute permissions for the file. Make sure that all of the Execute (“X”) permissions are checked YES.
Add the Pico-8 “system art”
Still inside the storage/.config/emuelec/ports folder, create a folder named “images” if there isn’t one already. Go to the storage/.config/emuelec/ports/pico-8 folder and copy the lexaloffle-pico8.png file and paste it into the storage/.config/emuelec/ports/images folder. Rename this file to system-pico-8.png.
Back in the storage/.config/emuelec/ports folder, create a file named gamelist.xml if there isn’t one already. Open it up with a text editor, and paste in this code:
<?xml version="1.0"?> <gameList> <game> <path>./pico-8.sh</path> <name>pico-8</name> <desc>The Pico-8 is a virtual machine and game engine created by Lexaloffle Games. It is designed to mimic a "fantasy video game console," by emulating the harsh hardware limitations of the video game consoles around the 1980s.</desc> <image>./images/system-pico-8.png</image> <thumbnail>./images/system-pico-8.png</thumbnail> <developer>Lexaloffle Games</developer> <playcount>6</playcount> <lastplayed>20201104T095110</lastplayed> <gametime>1606</gametime> <lang>en</lang> </game> </gameList>
Note that if you already have an existing gamelist.xml file in the directory, don’t paste in the “<?xml version=”1.0”?> and <gamelist> tags, just take everything between the <game> tags.
Set up the control configuration
Head back over to the storage/.config/emuelec/ports/pico-8 folder. You need a proper “sdl_controllers.txt” file, which will map the controls for your system, but they don’t work with the RG351P right out of the box. Instead, download and unzip this file and drag it into this folder to replace the current sdl_controllers.txt file. That’s it.
Add your Pico-8 games
Head over to the storage/roms folder, and inside this folder, create another folder named “pico-8”. Inside this folder, add all of your Pico-8 game files. To find games to add, go to this page and browse through until you find something you like. You can even demo the game on your computer or phone ahead of time to see if you like it. To download the game, just click on the small “Cart” link on the bottom-left, and download the .png file. That’s actually the compressed version of your game. Rinse and repeat until you have all the games you want, then add them to that storage/roms/pico-8 folder.
Alternatively, if your RG351P is hooked up to the internet (via an OTG adapter and WiFi USB dongle), you can just boot up Pico-8 and check out games in the “Featured” or “New” sections. This is really awesome, because you literally can access and download games via the internet on this device in Pico-8 — as far as I know, this is the only system that allows you to do that!
Boot up Pico-8
If you’ve done everything correctly, Pico-8 should now show up as an option in the Ports section of EmuELEC. If you don’t see a “Ports” section, enable them in the settings:
- EmuELEC: go into UI Settings > Systems Displayed and make sure Ports is checked
- 351ELEC: go into Game Collection Settings > Systems Displayed and make sure Ports is checked.
When you first boot up the system, press left or right until you get to the folder icon, and you’ll see all of your downloaded games. If you are network-enabled, I recommend going to the “Featured” section and selection the UPDATE option, and then browsing from there. Press A to start up a game. To set a game as a Favorite, boot up the game and then press SELECT and select “Favourite”.
Shut down Pico-8
To exit a game, press SELECT then choose “Exit to Splore” which will take you to the Pico-8 menu. To exit the program, press SELECT again and select Options > Shutdown Pico-8.
– published guide