based off 'PICO-8 0.2.5', section 'Variable Width P8SCII Fonts', i changed the #font_snippet
to the full default PICO-8 font:
i find this #font_template
more useful than @zep's original #font_snippet
because it has All P8SCII characters

i made a new profile picture for myself, because
- i got the idea to draw a lavender-colored figure with a spiral on their belly as my profile picture
- i found this idea too cute to not do
because i use this website just for PICO-8, i wanted to make a profile picture that can be shown in PICO-8
tools
i did not use PICO-8 as my only tool.
just like with most PICO-8 cartridges that i make,
making and referencing mockups in Pixelorama is really important to save hours of time
limitations
i could not find a color combination with the PICO-8 extended palette that leaves the important details visible (according to my color contrast table) that has the figure in lavender.
so i changed the figure to purple — a color that is close enough to lavender that it still looks great
profile pictures
default profile picture, that i had before

new profile picture
the recent release of PICO-8 Education Edition proved that the PICO-8 editor can work on phones, but
> Sorry, touchscreen typing is not available ~ please plug in a keyboard!
i know why PICO-8 doesn't support touchscreen typing:
P8SCII is special, so it needs a special touch keyboard to work.
the standard phone keyboard has no [ctrl] and [tab] keys, that are important for PICO-8 programming:
- [ctrl] is needed for shortcuts like [ctrl]+[s]=Save or [ctrl]+[g]=Grid
- [tab] is needed for code indentation
(you can do this with spaces, but using tabs is the right way because you can change the tab width in Config)
also, using [shift] in PICO-8 is much different than everywhere else:
unless you choose to use Puny mode, [shift] switches the letters to glyphs instead of uppercase letters.
so showing that on the keyboard really helps.
here is my PICO-8 touch keyboard draft
(in 1× scale, so that it can more easily be worked into an actual PICO-8 app)
default state of the keyboard

default state of the keyboard; [ctrl] key activated

default state of the keyboard; all keys pressed

glyph keyboard ([shift] key activated)

glyph keyboard; all keys pressed

puny font keyboard

controller

controller; right arrow button pressed

controller; all buttons pressed

this is just a visual draft, so we need testing to confirm that it's comfortable to use.
also, the images are wider than PICO-8's screen width of 128px, which i think is okay because real keyboards of retro computers always looked more crisp than their screens.
if anything, the touch keyboard draft looks not crisp enough.
we could use the pixelated keyboard for testing the form factor, because it's easier to edit than vectors.
but once we know the final form factor, we can trace the pixel image in a vector program to get a realistically crisp keyboard.
i want the shells of some of my cartridges to look different than usual:
cartridge | source |
---|---|
![]() |
"my less good cartridges", section "2022-11-21: Welcome! — special edition 2" |
more examples
so i created a GUI tool to replace shells of pico-8 cartridges
download & source
every part of this program is licensed under one of these licenses:
how to use


the GUI has these steps:
- put the original cartridge into the 'original cartridge' field
- put the replacement shell in the 'edited shell' field
- save the edited cartridge
after saving the new cartridge, you can load and run it in pico-8
limitations
filetype limitations
this program acepts only PNG files
image limitations
- you can't change the image size of the cartridge
- you can't move the 128×128px thumbnail that will be shown in splore and on the lexaloffle bbs
- you also can't change the size of the thumbnail area
- if you use more than 16 colors from the pico-8 extended palette in the 128×128px thumbnail area, the thumbnail will look unnatural and wrong in splore
- if you use colors outside of the pico-8 extended palette in the thumbnail area, the thumbnail will look even more unnatural and wrong in splore
early history
you can read about the pre-release history of this tool in 'my less good cartridges':
- section "2022-11-20: Welcome! — special edition"
- section "2022-11-21: Welcome! — special edition 2"
- section "2022-11-25: the impossible cart"
sources
- original meme: 'it is a mystery' by @PIFTSdotexe on YouTube (YouTube video)
- original song: 'Happy Happy Christmas' by DRAX (YouTube video)
- sheet music: 'there is no need to be upset' by parpul on MuseScore
development log
i started when i got a YouTube recommendation of the 'it is a mystery' meme.
it took me three attempts in 2 weeks (with breaks) to finish this cartridge
most of the 2 weeks were forced breaks, because i had a lot of school work before winter holidays began.
so i have done one-third of the work (the whole last attempt of transcribing the song) today, because the holidays let me find more free time
the other 2 attempts sounded bad and not like music, because i did not know anything about how to read sheet music. i deleted them after i finished the good cartridge
i made a spooky scene to test if i could generate visual details procedurally — yes, i could
before i could create the full scene, i made a fake screenshot in a pixel art editor
so i could look at the picture and imagine which commands i would need to add the details
behind the scenes
warning: long text
cost
this scene uses 18 out of 63 sprites from the first sprite page
at the cost of 563 out of 8192 tokens.
if i had drawn the decorations in the spritesheet, i would have saved all tokens — at the cost of 22 more sprites
- 4 more pillar sprites
- 1 long connecting piece
- 3 tile variations of the capital (the top of the pillar)
- capital below light ledge
- capital below dark ledge
- capital below lamp
- 6 sprites for the emission lines around the lamp
- 1 sprite for the top part of the door
- 9 sprites for the clock face and surrounding wall
- 2 sprites to complete the outlines of the clouds
the original 18 sprites with these 22 more sprites would be 40 sprites. this would leave only 23 more sprites on the first sprite page
i just realized that the market for one-off character editors is oversaturated, but i already made my version, so here it is:
i got inspired by this πouπube video from πΉazy π±evs to make a character editor.
i don't know how i will want to use one-off characters yet — i really just thought that making this program was good for practicing π½πΆπ°πΌ-8 programming
controls
buttons | keys (on πΎππ²πΏππ keyboard) | action |
---|---|---|
d-pad | arrow keys | move the cursor |
π | π / πΊ | paint or erase the pixel over the cursor |
πΌ | π° / π» | copy the character to the clipboard |
my opinion
i just tried the other editors, and i find them not as nice as this one.
i like this editor better than the other editors because of the minimal design with the carefully-chosen colors, and because it has no features except the ones that i know i need:
- edit the character
- copy the π½8ππ°πΆπΆ character code
- visually balanced pixel grid
- realistic inline preview of the one-off character
- preview of the π½8ππ°πΆπΆ character code
or i like this editor better, only because i made it. please tell me your opinion
i will need to check the color contrast often when picking colors from the π½ico-8 palette for future projects. so i made a color contrast table to make it faster than using the contrast checker:

you can find the contrast level between 2 colors in the table by doing this:
- start from one of the 'BG' fields, corresponding to the background color you want to try
- navigate straight up or down the color palette in the same column.
every field shows the contrast level of the color if used as the foreground color on top of the column's 'BG' color
the numbers from 0 to 3 are contrast levels. the higher the contrast level, the better the readability. the contrast levels mean:
contrast level | description |
---|---|
0 | ββ nothing is readable. π±on't use colors with contrast this poor unless you can't avoid it, or on elements that are just decoration |
1 | ββ graphical objects like icons and borders are readable. large text is also readable. normal-sized text is not readable |
2 | ββ large text is easily readable. normal-sized text is also readable |
3 | ββ large and normal-sized text are easily readable |
π‘ secret tip
the contrast between 2 colors is the same when you swap foreground and background color.
so you can not only use the 'BG' fields to pick a background color and the rest of the column to pick a foreground color:
you can also use the 'BG' fields to pick a foreground color, and the rest of the column to pick a background color
βΉοΈ information sources used
- pico-8 color palette: https://pico-8.fandom.com/wiki/Palette#0..15:_Official_base_colors
- contrast checker: https://webaim.org/resources/contrastchecker/
the current version of PICO-8 (0.2.5) for Windows has white window title bars:

the white title bar is distracting, no matter if app colors are set to light mode or dark mode in Windows settings.
this mockup made in Microsoft Paint shows the Windows title bars in dark colors from the PICO-8 palette:

and here is a much more coarse hand-pixeled mockup of how the colors could look like:

- Inactive window's title bar (right)
- background: PICO-8 color #0
- foreground: PICO-8 color #6
- Active window's title bar (left)
- background: PICO-8 color #1
- foreground: PICO-8 color #7
this is where i dump my less good cartridges
i am doing this
- because i want to publish even my less good cartridges
- i also don't want to clutter the BBS, so i put them in the same thread
2022-11-17: Welcome!
i gave up on PICO-8 years ago when i buyed it since i got overwhelmed fast.
now i rediscovered PICO-8 and wanted to try it again, so i did.
this is my first PICO-8 cartridge i ever made.
2022-11-20: Welcome! — special edition
i wanted to make this 'special edition' cartridge since i rediscovered PICO-8 with the making of 'Welcome!' (previous section), so this happened:
when i watched this talk about PICO-8 that i found on the lexaloffle.com PICO-8 resources page, @zep explained how data is stored in PICO-8 cartridges:
> all of the data is stored in the Red Green Blue data bits,
> it's encoded in the low bits of the RGBA channels
so i made this cartridge by recoloring the original cartridge (previous section) with the paint bucket tool in Pixelorama.
since he didn't say how many of the low bits of the RGBA channels are used, i found out myself:
in my first attempt, i recolored the cartridge while keeping only the lowest bit the same as before:
Recolored bits: | β β β β β β β β¬ |
Unchanged bits: | β¬β¬β¬β¬ β¬β¬β¬β |
i stopped halfway through to test if the cartridge would load in PICO-8, and the cart was corrupted.
so glad that i saved it as 'welcome_special-edition.p8.png' and didn't overwrite the original 'welcome.p8.png' — although if i did overwrite that cart, i could redownload it from this post (previous section).
in my second attempt, i tested loading and running the 'special edition' cart in PICO-8 very often, and i changed to leaving the lowest Two bits unchanged:
Recolored bits: | β β β β β β β¬β¬ |
Unchanged bits: | β¬β¬β¬β¬ β¬β¬β β |
this time, even the finished version of the 'special edition' cart has unchanged PICO-8 data, but a different-looking shell. with roughly 1 to 2 hours of work in each of the 2 attempts, i did it.
to generate the color codes that i needed, i did this in each cycle of color-picking (as needed):
- copy-paste the 'target color' and 'original color' into a Notepad (plain text editor) window, converted from Hex to Binary (in an online converter)
- copy-paste the Binary 'target color' in a third column, but change the low bits of each byte of the RGBA channels to the same-position bits of the 'original color'
- convert the new 'result color' back to Hex — also with an online converter — and use it with the paint bucket tool to replace the 'original color'
here is a comparison of the original cartridge with the new 'special edition':
original | special edition |
---|---|
![]() |
![]() |
so it's the same cartridge as before, but with a blue-green shell.
2022-11-21: Welcome! — special edition 2
since making the special edition cartridge from before (previous section), i realized that i want to make more special edition cartridges soon. but i don't want to make them manually again because doing this manually is tedious.
so i am making a tool named 'Pico-8 cartridge special editioner'. i don't want to publish it yet since it's still too unstable — in the early testing phase after finishing the most basic version that works.


this tool is a User Interface with these steps:
- upload the original Pico-8 cartridge
- upload the Special Edition artwork for the cartridge
- the program automatically combines the images in a similar way how i made my first 'special edition' cartridge manually (previous section).
but because the computer is doing it for me, it's easy and instant (at least in comparison. i still have to make my custom shell for the cart, but now the 'special editioner' tool makes sure the final cart works, so i don't have to)
here is a comparison of both special editions:
special edition 1 (special-editioned manually) | special edition 2 (special-editioned with 'special editioner' tool) |
---|---|
![]() |
![]() |
2022-11-25: the impossible cart
i used GIMP to overlay a gradient with too many colors on a cart's artwork. then i used my special editioner tool (explained in previous section) to make a working cart with it.
i did this to test how the impossible cover image would look like in splore.
the cover image degrades nicely, so thank you to whoever made sure that it's not possible to break PICO-8 with an overly colorful cartridge (and also @zep for making PICO-8 in the first place):
cartridge | shown in splore |
---|---|
![]() |
![]() |
fun fact: the gradient in the cart's program is the same gradient, but degraded in GIMP and then copied by hand into PICO-8 for roughly five hours including breaks:
2022-12-26: Welcome! — WEBP cartridge
WEBP is a better image format than PNG and GIF, because it can store the same quality images in much smaller files.
i found that PICO-8 can save and load WEBP cartridges, but without the label image, and not as BBS carts:
i hope that PICO-8 will soon support WEBP cartridges in the same way as PNG cartridges