Pixl8 ← How-tos

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

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.