Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Switch P8
General
Authorvoliva
TypeComputer
Version0.5.0
LicenseMIT License
Last Updated2025/10/25
Links
Download
Website
Source

An emulator to run pico-8 cartridges on a Switch built on devkitPro.

Pico-8 is a Fantasy Programmable Console made by Lexaloffle Games. This emulator is compatible with built pico-8 cartridges in PNG format, to build your own games you will need the original Pico-8 console

Project status:

  • This is a work-in-progress. Compatibility is still limited, but there are many cartridges it can run already.
  • print: It prints text on the screen, but it's missing some P8SCII control codes, non-ascii characters.
  • Sprites: Done
  • Sfx: Playable. Room of improvement for sound quality, and sound filters are missing (damp, buzz, reverb, etc.)
  • Music: Playable.
  • Menu: WIP.
  • Memory manipulation: Almost complete.
  • Maps: Done.
  • Custom P8-Lua: Some edge cases missing.

Features

  • Modified lua interpreter compatible with pico8's lua.
  • 16-bit fixed point decimal arithemtic just like pico8.
  • Save states (at the moment simplistic, one save state per cartridge).
  • The most used predefined pico8 functions are implemented: 90 functions implemented out of 105.
  • Console options:
    • CRT/DOT matrix filters.
    • Volume control.
    • Invert controls.

Installation

Copy the .nro to sdmc:/switch/SwitchP8/.

Release comes with a set of bundled games which have been used to improve the compatibility.

More .p8.png cartridges can be bundled with the .pkg file by adding them into /assets/misc folder, or they will be loaded in runtime from console's /data/p8-cartridges folder.

A list of some playable cartridges can be found here

Changelog

v0.5.0

  • Features
    • New options menu
    • CRT/DOT matrix filters
    • Volume control
    • Invert O/X button controls
  • Compatibility fixes
    • math functions (ceil, sqrt, sin, cos) can take optional parameters

v0.4.1

  • Features
    • Custom font compatibility
    • Support games with their own rendering loop through "flip". Save states for these games will not work yet.
  • Compatibility fixes
    • stat(table) should behave like stat(0)
    • printing backspaces
    • stop looping SFX after length mark
    • tonum("") should return empty instead of 0
    • time() should go in exact intervals based on frame rate instead of the actual time.

v0.4.0

    • switch: Move all application data (cartridges, savestates, etc.) to /switch/switch-p8 to reduce clutter.
    • enable pico-8 saves without needing a specific folder setup.
    • splore: add a context menu accessible with "pause" (button +) to save a BBS cartridge to the local SD.
    • local cartridges: add a context menu to delete cartridges from the local SD.
    • add animation to splore cartridges
  • Fixes
    • implement pico-8 load() function, a function that loads external cartridges.
    • avoid skipping too many frames

v0.3.2

v0.3.1

  • Switch version.
  • Fix crash on exit, set metadata, update readme, adjust resolution.

External links

Advertising: