Native Pico-8 on Android (Guide)

Last updated: 23APR2025 (see Changelog for details)

Pico-8 is an awesome fantasy console, and one of its biggest strengths is that it works on Windows, Mac, Linux, and any number of Linux-based handhelds with ease. Unfortunately, getting it to run natively on Android devices is not as simple; there are some excellent Pico-8 emulator cores available for RetroArch, but none of them replicate the thrilling experience of navigating the Splore menu and downloading/playing carts directly within that native environment.

In this guide we’re going to trick our Android devices into running a Windows environment that will launch Splore. Once set up, it takes a couple extra taps to get running, but it’s pretty neat.

Note that this will require a somewhat powerful Android device to run, I would recommend something like the Retroid Pocket 3+ or higher. Also note that running Pico-8 through a Windows container on Android like this is inherently buggier than running it natively on Windows, Mac, or Linux. There will simply be some moments where the app or controls will freeze. It’s not perfect!

This guide was inspired by redditor jtischer1979’s post; thanks for the tips!

Add Pico-8 to your device

  • Download the latest Winlator APK from their releases page, and install it on your Android device.
  • If you haven’t already, purchase Pico-8 (generally $15 USD), then download the windows.zip version (not the “setup.exe” version). Image below.
  • One you have downloaded the .zip version of Pico-8, unzip the package so that you have a folder named “pico-8”. Now you want to transfer this folder to the Internal Storage > Download folder of your device. There are many ways you can do it, but the simplest may be to transfer the folder onto your device’s microSD card, then within your device’s Files app, copy the folder to Internal Storage > Download.

Set up Winlator

  • Start up the Winlator app on your device, and enable all permissions requirements at startup. It will install some System Files, which might take a minute.
  • In the Containers heading, you tap the “+” button on the top-right.
    • Rename the Container to something memorable (like Pico-8)
    • Under Screen Size, select “Custom”, and then make a square resolution that matches your display and Pico-8’s native scaling
      • Pico-8 has a resolution of 128×128. To calculate the appropriate resolution, divide the smallest number of pixels (horizontal or vertical) on your device’s display by 128 and choose the nearest integer (without rounding up).
      • As an example, the Retroid Pocket Classic has a resolution of 1240 x 1080. 1080 / 128 = 8.4375, so 8 is the nearest integer. 8 x 128 = 1024, so you want a custom resolution of 1024 x 1024. This will allow Pico-8 to scale to full screen on the RP Classic.
      • Another example: the Anbernic RG Cube has a resolution of 720 x 720. 720 / 128 = 5.625, so 5 is the nearest integer. 5 x 128 = 640, so you want a custom resolution of 640 x 640.
    • For Graphics Driver, you have a few options depending on the device and it’s chipset
      • In most cases, I recommend Vortek (Universal)
      • For Odin or other Snapdragon devices, try Turnip (Adreno)
      • For Audio Driver, choose ALSA
      • In the Win Components tab, choose DirectX > Direct Sound > Native (Windows)
      • In the Advanced tab, you can remove CPU cores under “Processor Affinity”, although I have found the default settings work well.
  • One you have made these adjustments, click the blue check mark on the bottom right to save the container settings

Make a Pico-8 shortcut

Now that the container has been created, click on the hamburger (three dot) menu and select “Run”. This will create a Windows desktop environment. To navigate in this environment, think of your device’s touch screen as a laptop’s touchpad; press and drag your finger to move the mouse cursor, and tap to click (and tap with two fingers to right-click).

  • Once in Windows, an Explorer window should appear, showing multiple storage drives.
  • Navigate to the D: drive, then open the Pico-8 folder that we previously added to the device’s internal storage. Inside, find the pico8.exe file, then right click by tapping with two fingers, and choose “Create Shortcut”.
  • This will create a shortcut on your desktop. Verify it is there, then navigate to the Windows Start > Wine Boot > Exit Desktop to exit the Windows environment.

Boot into Pico-8 Splore

Back in the main Winlator interface, tap on the Menu icon to the left of the word “Containers” in the top menu bar, and select Shortcuts. You should now see a Pico-8 shortcut in this menu, but it needs some additional configuration.

  • Tap on the hamburger (three dot) menu button on the right, then select Settings
  • Scroll down to the tabs, choose Advanced > Exec Arguments and add “-splore” (minus the quotations) in the text box.

In an ideal world, that should be it. You can press OK and then tap on the pico8 shortcut to boot into Splore and enjoy Pico-8!

To exit out of this environment, hover over any game within the Splore menu and select Options > Shutdown Pico-8. After a moment it should boot you back into Winlator.

From now on, getting into Pico-8 is pretty fast. Open Winlator, navigate to Menu > Shortcuts, tap on the pico8 shortcut. DONE.

Sideloading carts

Some Pico-8 carts are not available within Splore. One of my favorites is Cosmic Collapse, which is commercially available via itch.io. After buying the game, you can download the Pico-8 cart in PNG format.

To add it to your device for easy Splore access, place the PNG file in the same Downloads > pico-8 folder you placed your Windows Pico-8 files. Then, open Winlator and go to Containers and open the Pico-8 container we made earlier.

  • In the Windows Explorer window that appears, navigate to the D: drive > pico-8 and find your PNG file. Click on it and then select the “Copy” button at the top of the Windows Explorer menu bar.
  • Now, navigate to C: drive > Users > xuser > AppData > Roaming > pico-8 > carts folder and select the “Paste” button at the top of the Windows Explorer menu bar. You should see your PNG file appear.
  • Navigate to the Windows Start > Wine Boot > Exit Desktop to exit the Windows environment.

The next time you open your Pico-8 shortcut, you will see your PNG file appear in the Splore file browser section! You can also add it your Favorites and access it from there.

Troubleshooting issues

Depending on your device and how its controller / graphics profiles were programmed, you may run into other issues. Here is a (not comprehensive) list of things you could do to make sure it’s working properly.

Graphics issues?

  • In Winlator, go to Menu > Shortcuts and to the right of the pico8 shortcut, tap the hamburger (three dot) menu button on the right, then select Settings
    • Adjust the graphics driver. For example, for the Anbernic RG Cube, changing the Graphics Driver to Turnip (Adreno) allowed Splore to boot
    • Adjust the DX Wrapper. I have found that WinD3D seems to work best, but it’s worth toggling the others to see if they work
    • Under the Advanced tab, set the Box86 and Box64 presets to Compatibility

Controller issues?

By default, the app should detect your device’s controls, but with some devices (especially those from Anbernic), it may not. Let’s set them up manually.

  • In Winlator, go to Menu > Input controls
  • Under Profile, tap the “+” icon and create a new input profile of your choice (“RGcube”, etc).
  • Once created, click on the drop-down menu under “Profile” and choose the one you just created
  • Under the External Controllers heading, you should see the name of your controller input (“retrogame_joypad” for Anbernic devices), tap on that.
  • Now, in this next section, you can press a button on your controller, and then map it to whatever you’d like.
    • I have found that for Anbernic devices, which don’t seem to properly detect xinput controls within Winlator, it’s best to map the controls to keyboard inputs, which work great in Pico-8. Here is the input mapping that I used for the RG Cube:
      • Button A: Keyboard X
      • Button B: Keyboard C
      • Button Start: Keyboard ENTER
      • Dpad Up: Keyboard UP (and so on)
      • Analog stick Up (Axis Y+): Keyboard UP (and so on)
  • Now that the controls are set up, let’s assign this profile to your Pico-8 shortcut.
    • In Winlator, go to Menu > Shortcuts and to the right of the pico8 shortcut, tap the hamburger (three dot) menu button on the right, then select Settings
    • Under the Advanced tab, select Input Controls > Profile and choose your control profile. Set the DirectInput Mapper Type to XInput.

Running Pico-8 through a Windows container on Android like this is inherently buggier than running it natively on Windows, Mac, or Linux. There will simply be some moments where the app or controls will freeze. It’s not perfect!

Other resources

In addition to my written guide, there are two other helpful YouTube videos. The first is a setup guide video from Adin Walls going through a process very similar to this written guide (albeit with an older version of Winlator, so there may be some inconsistencies). The second option is to manually install the fake08 RetroArch core, using ET Land xoxo‘s video.

Alternatively, if you just want to try out a few games, you could always navigate to the Pico-8 cart repository on your device’s browser and play the games from there. Just note that it’s a slightly miserable experience, with crackly audio, virtual controls taking up screen real estate, and a fullscreen mode that will often make the image *smaller* rather than larger. Below is a demonstration of the experience.

Pico-8 via Chrome on the Anbernic RG Cube

Changelog

23APR2025
– updated guide to account for Pico-8 integer scaling and recent driver update options
– added instructions on how to side-load carts that aren’t available in Splore (like Cosmic Collapse)

21JUN2024
– published guide

14 thoughts on “Native Pico-8 on Android (Guide)

  1. Nice. The RG Cube definitely needs the Turnip driver; otherwise it boots to a black screen.

    Another problem I’m having is that my guest container seems to have no network connectivity from the host. I can’t actually go sploring until I figure it out.

    Like

  2. tried this on my retroid pocket 4 pro, unfortunately doesn’t work (pico-8 0.2.5g). the .exe launches and immediately exits. tried a few settings, no good. if anyone can get this to work i’d love to know your settings!

    Like

  3. I followed the ET Land xoxo video that Russ linked to install the Fake08 core into Retroarch, and it worked for launching games via Retroarch’s “Load Content” function, but I could not launch any games via ES-DE on Android.

    Her instructions state to rename the file to “fake08_libretro.so”, but for it to work with ES-DE, it actually needs to be named “fake08_libretro_android.so”. If you rename the file to that and then use that .so to install the core into Retroarch, Pico8 .png games will then launch via ES-DE on Android.

    Like

  4. Rus in RG Cube is better to have a 640×640 screen resolution to have borderless experience. Pico8 games can only be scaled x5 an the max resolution is 640×640 in 720×720 we have borders. Good guide!

    Like

    1. Thank you for the tip (and I apologize for the delay in replying), I’ve adjusted the guide to show how to properly set custom resolutions.

      Like

  5. hello, thank you for the tutorial, this is the only one that worked for my RG Cube! I tried retroarch’s fake08 but it didnt pan out well. im so happy i can play pico8 games now.

    I just wanted to ask how to load pico games that i purchased somewhere else?(like cosmic collapse).

    i tried putting the file inside the pico-8 folder (inside my internal storage>downloads folder) but i cant find it when i boot up pico-8 on winlator. I hope im making sense! Any help will be much appreciated x

    Like

    1. Hi sbear, you are in luck, I just added a new section to this guide called “Sideloading carts”, which will let you load games like Cosmic Collapse. Enjoy!

      Like

  6. Thanks for this guide! As Retro Joe mentioned, Pico8 games can only scale up to 5x so setting the resolution to 1024×1024 on the Retroid Pocket Classic or Mini (with the updated screen) results in it running with borders around the top and bottom edges. Setting the resolution to 640×640 worked for me. I get some audio crackling after ~10 minutes of use, but other than that works great!

    Like

  7. Thanks for the guide! Any way to get the keyboard in splore to work if you wanted to search for a game?

    Like

  8. Thank you for all that you do! I’m wondering if you could add instructions to export the winlator shortcuts so that they will be visible within a front-end launcher? Cheers!

    Like

Leave a comment