Adding Pixl8 to retro launchers
How to wire Pixl8 into Android frontends so PICO-8 carts launch straight into it from your existing library.
If you already keep your retro collection in a launcher like
ES-DE, you probably don't want to leave it just to play a
PICO-8 cart. Pixl8 is happy to be invoked from the outside —
its manifest accepts a standard
ACTION_VIEW intent with a
content URI pointing at a .p8
or .p8.png file, so any
launcher that can send that intent can launch carts into Pixl8.
This page collects the configuration recipes for the launchers
that need a manual entry today.
ES-DE (Emulation Station Desktop Edition)
Tested with ES-DE for Android 3.x. Until upstream ES-DE
ships Pixl8 as a built-in PICO-8 emulator option, you can
add it yourself via the
custom_systems folder.
What this gets you
A new Pixl8 (Standalone)
entry in the per-cart launcher picker for PICO-8 games.
When you select a .p8.png
from ES-DE's PICO-8 system, you'll see Pixl8 as one of the
launch options alongside whatever you already had
(Fake-08, Retro8, Infinity, etc.). Pick it once and ES-DE
remembers your choice per cart.
Where the config files live
On Android, ES-DE looks for user overrides in:
/storage/emulated/0/ES-DE/custom_systems/
You'll add two XML files there. If the folder doesn't exist yet, create it with any file manager — same name, exact case.
Step 1 — tell ES-DE Pixl8 exists
Create
custom_systems/es_find_rules.xml
with the contents below. This declares a launcher token
PIXL8 bound to Pixl8's
Android package name.
<?xml version="1.0"?>
<ruleList>
<emulator name="PIXL8">
<rule type="androidpackage">
<entry>be.codedreams.pixl8</entry>
</rule>
</emulator>
</ruleList>
If you already have a
custom_systems/es_find_rules.xml
from another customisation, just add the
<emulator name="PIXL8">
block inside the existing
<ruleList> — don't
replace the whole file.
Step 2 — register Pixl8 as a launch option for PICO-8
Create
custom_systems/es_systems.xml
with the contents below. This redefines the
pico8 system to include
a Pixl8 command. ES-DE merges custom systems with its
defaults by
<name>, so this
replaces the built-in pico8
system entry with this expanded one.
<?xml version="1.0"?>
<systemList>
<system>
<name>pico8</name>
<fullname>PICO-8 Fantasy Console</fullname>
<path>%ROMPATH%/pico8</path>
<extension>.p8 .P8 .png .PNG</extension>
<command label="Pixl8 (Standalone)">%EMULATOR_PIXL8% %ACTION%=android.intent.action.VIEW %DATA%=%ROMSAF%</command>
<platform>pico8</platform>
<theme>pico8</theme>
</system>
</systemList>
The command line is
what does the actual work — it tells ES-DE to fire an
ACTION_VIEW intent with
the cart's SAF URI as the data, which Pixl8's manifest
already accepts.
Keeping other emulators
alongside Pixl8? Add their existing
<command>
lines (Fake-08, Retro8, Infinity, whatever you use)
above or below the Pixl8 one inside the same
<system>
block. ES-DE will show every command in the
per-cart launcher picker so you can pick the runner
you want for each game.
Step 3 — drop your carts in the right place
ES-DE looks for PICO-8 carts under
%ROMPATH%/pico8/. On a
stock Android install that resolves to:
/storage/emulated/0/ROMs/pico8/
Drop your
.p8.png and
.p8 files there.
Step 4 — pick Pixl8 as the PICO-8 emulator
With the two XML files in place, open ES-DE and head to:
Settings → Other Settings → Alternative Emulators
Find the PICO-8 Fantasy
Console entry and switch its emulator to
Pixl8 (Standalone).
That sets the default launcher for every cart in the
PICO-8 system; selecting any
.p8.png from then on
opens it directly in Pixl8. No rescan needed — your
existing PICO-8 library is already discovered.
If Pixl8 doesn't show up
in the Alternative Emulators list, ES-DE was
almost certainly running when you dropped the XML
files in. ES-DE reads
custom_systems/
once on launch and doesn't reload it at runtime. Fully
quit ES-DE (swipe it out of recents on Android) and
reopen it — the Pixl8 entry will now appear.
Troubleshooting
-
"Emulator not installed"
error when launching a cart — Pixl8 isn't on
this device or the package name is wrong. Verify
be.codedreams.pixl8matches the installed Pixl8 build (Settings → Apps → Pixl8 → top-of-screen detail). -
Pixl8 launches but says
it can't read the cart — make sure you used
%ROMSAF%(not%ROM%) in the command line. Pixl8 reads carts via Android's Storage Access Framework, and ES-DE only grants Pixl8 read access to the SAF variant.
Got a launcher you'd like a recipe for, or a tweak to the ES-DE config above? Open an issue on GitHub and we'll fold it in.