Skip to content

Brooklyn-Dev/pico8-web-emulator

Repository files navigation

Web PICO-8 Emulator / Runtime

License GitHub issues

A web-based PICO-8 cartridge emulator built with JavaScript and Fengari.

Currently supports loading two preset `.p8.png` demo cartridges.
Shipwrecked badge

Screenshot

Features

  • Extracts hidden game data from .p8.png cartridge images
  • Transpiles PICO-8 Lua syntax into valid Lua code for execution
  • Runs game logic in browser using Fengari Lua VM
  • Implements core PICO-8 API functions
  • Supports keyboard inputs mapped to PICO-8 buttons
  • Cartridge selection UI

Usage

  • Go to the website and select a cartridge to load.
    • ⚠️ To ensure cartridges load properly, please disable browser shields or privacy settings that block image/script loading.
  • Limited functionality at this time. I plan to continue improving this beyond the minimum project requirements. Originally intended to support Celeste Classic or other full PICO-8 games, but underestimated how hard this would be.

Future Improvements

  • Support larger games like Celeste Classic
  • Allow uploading custom cartridges
  • Add mobile support
  • Add music and sound effects support

Cartridge Files Hosting

The .p8.png cartridge files are hosted separately on a static file server: https://brooklyn-dev-pico-8-cartridges.netlify.app/

The web emulator loads cartridges from this external source.

Due to file corruption issues when hosting cartridges on Vercel or GitHub, the cartridge files are hosted externally to ensure proper loading.

Credits

See the Credits for more information about the cartridge files and attribution.

Like this project?

If you find this project interesting or useful, consider giving it a star ⭐️!

License

This project is licensed under the MIT License. See LICENSE for more information.

About

A web-based PICO-8 cartridge emulator built with JavaScript and Fengari.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published