# Awesome PICO-8

A curated list of PICO-8 resources, tutorials, tools and more. Inspired by the awesome list thing. You might also like awesome-lua and awesome-love2d.

PICO-8 is a fantasy console for making, sharing and playing tiny games and other computer programs. When you turn it on, the machine greets you with a shell for typing in a subset of Lua commands and provides simple built-in tools for creating your own cartridges.

## Contents

- Community
- Demoscene
- Resources
- Tutorials
- Tools
- Assets
- Text Editors Language Support
- Hacks
- Hardware
- Articles & Posts
- Talks
- Clones
- Contributing
- License

### Community

- Lexaloffle
  - Blog
  - PICO-8
  - Forum/BBS
  - Twitter
  - Facebook
  - Youtube
- Subreddit
- #pico8 on Twitter
- #pico8 on Freenode
- Pico-8 Console News
- Pico-8 Wiki
- Slack Team - PICO-8 Slack chat.
- Discord Server - PICO-8 Discord chat.

### DemoScene

- Pico-8 demos on Demozoo
- Pico-8 demos on Pouet
- Article with demoscene effects code
- Pico-8 demos on Youtube

### Resources

- Official Manual - Placeholder dump of pico-8.txt! (Proper manual coming soon).
- PicoZine #1, #2, #3 and #4 - PICO-8 Zine is a 48-page fanzine made by and for PICO-8 users.
- Going from Lua 5.2 to PICO-8’s Lua - This document is here to help folks with a proficiency in Lua understand the limitations and discrepencies between Lua and PICO-8’s Lua.
- Cheat Sheet (printable) - A reduced cheat sheet in a printable format. German and English version available.
- Cheat Sheet (wallpaper) - An enhancement of the printable cheat sheet for use as a desktop wallpaper.

### Tutorials

- Music Tracker Tutorial Series - Making audio with PICO-8.
- Tron Lightcycle game from scratch - A quick introduction to PICO-8 writing a game from scratch.
- A PICO-8 Spaceshooter in 16 GIFs - Screencaptures of writing a Spaceshooter game step by step.
- Token optimization - tips&tricks for saving tokens.
- Tweetjam, BBS thread - cards which code fits in a tweet (really useful to learn some fun techniques).
- Sample code on the BBS - the search is not 100% accurate, but some of those cards features some nice tricks you can re-use in your future code.
- Newgrounds Medals Tutorial - a little tutorial to add Newgrounds Medals to PICO-8 games.
- Binary save system - Custom game save system that supports various data types

### Tools

- Sprite Editor - Keyboard only 8x8 pixel art tool.
- pico2png - Spritesheet extraction written in perl.
- Spritesheets and tools for the PICO-8 Palette - Compilation of works assest and tools using the PICO-8 palette.
- Pico8Utils - Compilation of lua scripts based on the unix philosophy for working with .p8 files.
- picotool - Tools and Python libraries for manipulating Pico-8 game files.
- p8dl - Carts Downloader - Python - Downloads cartridges into the correct folder (looks at your config.txt).
- Pico-8 Carts Downloader - Bash - Downloads cartridge from the BBS (single cart, whole index or dump your favourited entries) & rename them according to their metadata.
- p8 responsive webplayer transform - Python script that makes your HTML export page responsive.
- Color Palette - Hex and RGB colors codes for web.
- PICO-8 font - by RhythmLynx.
- pico-test - PICO-8 testing framework.
- Lib-Pico8 - A Pico-8 library of useful common functions.
- pico8-missing-builtins - Provides Lua built-in functions to pico8.
- P8Coder - A programming tool that replaces the lua code in pico-8 cartridges (p8) with the code you write in P8Coder.
- Pico-Kit - An opinionated collection of Pico-8 helpers that make it easier to get going. Adds OOP, better debugging, and physics.
- picoDeploy - Deploy Pico-8 carts as standalone applications on desktop (Electron) and mobile (Ionic).
- pico8Grunt - A build system for pico8 games, using gruntjs.
- PICO-EC - A tiny scene-entity-component library created for the PICO-8 fantasty console.
- PICO-Tween - A small library of tweening/easing functions for use in the PICO-8 fantasy console, inspired by Robert Penner’s easing functions.
- p8 - A dependency manager and build tool. Lets you share code/sprites, `require()` dependencies, and auto-reload carts on save. Works with any external code editor and supports MoonScript.
- MIDI to PICO-8 - A tool to convert MIDI files to PICO-8 music.
- midi2pico - A MIDI to PICO-8 converter.
- Denote - Converts MIDI files into SFX data– interactive and web based.
- Custom template - A simple and clean template, that fixes issues with fullscreen, mouse and just looks nice.
- Fillp Tool - A simple helper tool for generating fillp patterns.
- Depict - Converts image into a dithered image using PICO-8 colors and reduces it to a maximum size of 128 x 128.
- picoCAD - A PICO-8 program to build and texture lowpoly 3D models.
- pico8-deploy - An easy way to export and deploy PICO-8 projects to itch.io
- yap8b - Build tool for creating pico carts from multiple source files.
- TS-PICO-8 - Create PICO-8 games using TypeScript.
- Shrinko8 - A minifier that aggressively shrinks Pico-8 code size. Also includes a linter and other tools.
- parens-8 - Bypass the Lua token limit with a tiny lisp interpreter/compiler.

### Assets

- midilib - Custom SFX instruments

### Text Editors Language Support

- Visual Studio Code: pico8-ls - PICO-8 Language Server, providing full language support for the PICO-8 dialect of Lua.
- Atom: language-pico8
- Sublime: Sublime PICO-8 - PICO-8 plugin for the Sublime Text editor (color scheme, font, build system, code completion, snippets…).
- Vim: vim-pico8-syntax
- Emacs: pico8-mode

### Programming Fonts

You might be interested to install pico-8 programming fonts they support the pico-8 custom characters as well as various fonts (bitmap and regular anti-aliased fonts). Check the BBS thread here.

How to install the font(s):

- Linux: copy the files on ~/.fonts and `sudo fc-cache -f -v`
- Windows: copy the files on c:/windows/fonts/

### Hacks - undocumented PICO-8 features

- Mouse - How to retrieve mouse coordinates (with demo).
- p8keyboard.js - Javascript “keyboard adapter” for the Pico-8. Send ASCII characters to a Pico-8 program running in a browser.
- SFX Modifications - Four effects that can only be applied by modifying memory (with demo).
- Tracker State/Audio Memory Locations - How to access and modify audio data as it is playing.

### Hardware

- GameShell - A modular handheld game console that allows you to play & modify retro games and DIY new devices. Check the GameShell Docs for how to run PICO-8 on the GameShell.
- PocketChip - A handheld designed for playing and coding anywhere. Officially supported by pico-8. PoketChip version of pico-8

### Articles & Posts

- Indie Retro News - A great introduction to PICO-8 by @ABrugsch.

### Talks

- Sharing the love - Making games with PICO-8. linux conf au 2017 - Hobart, Australia

### Clones

- TIC-80 by Nesbox - Tiny Computer, available on HTML 5, Windows, Linux 32/64bit, Android & MacOSX
- PicoLove - Pico-8 Reimplementation in LÖVE.
- LIKO-12 - An open source fantasy computer made using LÖVE with 96kb RAM.
- Pikuseru - Open Source Fantasy Console in pure Rust [Core].
- tac08 - tac08 is an emulation of the runtime part of the Pico-8 fantasy console, running on RG350 handheld game console.
- LowRes NX - Fantasy Console available on IOS, MacOS, Windows, Linux, and GameShell (BASIC code support)

### I Want to Contribute!

Great! :smiley:

Please, read the contribution guidelines first.

### License

To the extent possible under law, Felipe Bueno has waived all copyright and related or neighboring rights to this work.

See LICENSE for more information.