Advent of Code 2024 is going on, and I've decided to do it in PICO-8. I'll try this for as long as I can, until I either run out of tokens or can't keep up with the days. Wish me luck, and happy holidays!
Spoiler alert: if you haven't solved these puzzles yet, these visualizations will give away the answers (and potentially the algorithms). If you want to solve these puzzles yourself, do that first!
How to use
- Select any day that's available with the arrow keys and X.
- Drag and drop your puzzle input onto the game.
- Watch it go!
- When it's finished, press X or Z to get back to the previous screen.
Also, check out my blog, where I'm solving Advent of Code in Python and explaining my solutions.

I created this cartridge to explore how the levels in Dr. Mario (NES) are generated. I also created a small writeup of the algorithm on my blog. Enjoy!
LEFT/RIGHT: choose seed digit/level number
UP/DOWN: change chosen value
X: generate level with chosen seed
Z: generate level with "curr seed" (the current seed after this level was generated)

Do not worry. It's going to be okay.
Has today been rough? Are you feeling a distinct lack of emotion due to outside factors? Come sit down, relax, and distract yourself for a little. Play games of Othello against this sentient void, who will be here to support you. It will be okay.
Made for A Game By Its Cover 2023. Inspired by Lumbud84's cover art for Apathello from the Famicase Exhibition 2023. Developed for PICO-8. Also available on itch.io.
Instructions
- Arrow keys: Move cursor, change player difficulty





A fun PICO-8 cover of the song "From the Gallows" by I DON'T KNOW HOW BUT THEY FOUND ME.
It also comes with a simple visualization modeled after the cover of their Razzmatazz album, courtesy of Tellexx.
The original song is here. (Content warning: reference to suicide in the lyrics.)
.png)

Ataxxmas is a Christmas take on a board game no one remembers. Flip the chips to your own color in this exciting up-to-4-player experience! You can even play against AI players...but good luck winning against them. 😉
Controls
ARROW KEYS to navigate menus/the game board.
Z/C/N to select.
X/V/M to go back.
Made for PICO-8 Advent Calendar 2020.




Have you ever wanted to use numbers that were bigger or smaller than the range you're given in PICO-8? Perhaps you want some more digits of precision for the fractional part of your numbers. Or maybe you're interested in doing math in a severely inefficient way...
Introducing, the Decimal Floating Point library for PICO-8!
(This example cart calculates the value of pi in all three "datatypes", using Viète's formula.)
Wait, what? Doesn't Lua have floating point already?
Not PICO-8's Lua. It actually uses 16.16 fixed point numbers. Because of this lack of floating-point numbers on PICO-8, I decided to make this library to fill that void (not that anyone asked it to be filled, but still).


PICO-8 games are getting so hard these days...
This is a port of a Flash game from Kian Bashiri called "You Have To Burn The Rope". It's a really hard game. You have to burn the rope there.
Here's a pretty apt description of the game, according to its original programmer:
You Have To Burn The Rope is, by formal definitions, a game since it has all the things that make up a game - besides losing condition which I regret not adding - but I wouldn't call it a game since it is hardly interactive in any meaningful way. The point was to make fun of other games that limit the player's interaction by being easy, linear, or heavily controlled and jokingly ask at which point these games also cease to be games.


.png)

 (1).gif)





PICO-8 games are getting so hard these days...
This is a demo of an upcoming port of a Flash game called You Have To Burn The Rope. (I say "demo", but it's only missing the ending cinematic.) The game, according to its original creator, was made "to make fun of other games that limit the player's interaction by being easy, linear, or heavily controlled and jokingly ask at which point these games also cease to be games."
It's a really hard game. You have to burn the rope there.

It's Christmas Day, and you're the only one working the snowplow today. Can you clear out all the snow?
Controls
ARROW KEYS to move your snowplow.
Z/C/N to select things in menus.
X/V/M to go back.
Hold X/V/M on the title screen to erase your progress (don't worry, you probably won't do it by accident!).
There are 100 levels to complete. Can you clear them all before seasonal depression kicks in?
Made for PICO-8 Advent Calendar 2019.




Description
Welcome to the mystical land of Ancient Egypt! One day, you find yourself lost within a mysterious temple, when you come across a goddess incarnated as a jewel. Your job is to restore the goddess's power by breaking the seals found throughout the temple.
To break a seal, you must match together all of the idols within it. This is done by moving your jewel onto arrow tiles, which shift your row or column in the given direction (and the idols along with it). Once you match up all the idols in a level, the game is over.
Controls
- D-PAD: Moves your jewel UP, DOWN, LEFT, or RIGHT.
- Z/C/N: Lets you choose a magic spell to use. Use LEFT and RIGHT to choose between them, and X/V/M to confirm. Use Z/C/N to go back.






I am undertaking a project to port Super Mario Bros to the PICO-8! (Yes, I know a few people have tried to do this before, but this one is mine, so I want to make it extra special, and extra accurate.)
So far, I've gotten the level renderer to work (almost! missing a few items and functionalities, but the general idea is here). It takes hex data just like you'd see in the original game, and renders it exactly like the game would. I give an example of World 1-1 here, but I've tested this with the entirety of the first two worlds and a few of the bonus areas. If anyone has any questions about this project, please let me know!






Description
Uh-oh! After browsing the quotes from your favorite book, you discover that all the letters have been jumbled up and replaced with random other letters! Your mission is to reconstruct the text of all 100 of your quotes using only your knowledge of the English language.
Controls
Use the arrow keys to navigate the letters on the board.
Hold X and use the arrow keys to fill in a guess for a letter. You are not penalized for wrong guesses.
Press Z to erase a guess for a letter.
Version History
- v1.0.1.1 (October 16, 2019)
Corrected a small typo in one of the quotes - v1.0.1 (June 29, 2019)
Made the cryptogram text static, as opposed to bobbing up and down







Scaled text without any lost cartridge/screen data? At last we have it, and to that I say:
Everything you need to start scaling your text is in tab 0 of this cart. If you don't feel like looking at the cart, just copy-paste these fully-commented, fully-optimized routines you see here:
function mcpy(dest,src) --because poke4() is so --relatively fast, it actually [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=65232#p) |
"I'm sick of this guy always doing ports. Why can't he make his own game for once?" - snarky PICO-8 player who is somewhat familiar with my current library of games
First off, Wal-Rush! was original.
Second off, I'm beginning progress on an original game called DESCENT! It's based on a game of the same name that I made for the TI-84+ and TI-84+ CE back in 2017. Only, instead of delivering boxes, in this game you're slowly becoming insane.
I've implemented almost every mechanic I plan to use in the game, and I've made 4 stages with basic demonstrations of the first few of them. (There are ways to get stuck in these stages, and I don't have a restart-stage function yet. If you get stuck, you'll have to reset the cart. Sorry!)



Description
Who needs gameplay when you have ACHIEVEMENTS? Don't worry about beating levels, finding ways to kill enemies, or beating the final boss...there are none. Focus solely on your ultimate destiny...doing random tasks that have nothing to do with anything. Metagame yourself with ease! Self-satisfaction never felt so...artificial!
Controls
Use the arrow keys...if you dare.
Version History
- v1.02 (May 17, 2019)
Fixed a bug with the 0th achievement description, and with holding UP immediately upon starting - v1.01 (May 6, 2019)
Made some important secrets even more secret - v1.0 (May 5, 2019)
Initial release


I haven't released a cart since I last released a cart. Let's change that, shall we?
This time, it's a curiosity. I wanted to make a custom font, and so I did. The routines for rendering it do not require the use of the spritesheet (though the glyphs are all in there, for my own benefit while creating this cart).
I've set this up as a demoscene-like or cracktro-like scroller, demonstrating the different glyphs of this font. It's based on the font on the cover of Panic! at the Disco's album "Pray for the Wicked". I hope to use this font (and this song!) in a P!ATD-related demo cart.
In the meantime, you should try out this font somewhere! Tab 2 in the code gives all the details on using it ;) .



Based on one of the most controversial games for the NES (warning: NSFW), Jayson Lowis Harwin (i.e. me) brings you: Magic Bubble!
Description
Playing "Magic Bubble" is easy. Bubbles of many colors come floating upward. You must fit the Bubble Clusters together so four or more Bubbles of the same color touch one another. When four or more of the same colored bubbles press together, the pressure inside the Bubbles increases causing them to pop.
Keep the bubbles bursting since in every space a Bubble gets stuck there is one less place to put the next Bubble Cluster, and they just keep coming. If you can't pop the Bubbles fast enough, the cave fulls up, and the game will end.







Introducing the first ever fully-featured e-book reader for the PICO-8!
I decided to include Poe's "The Black Cat" as an example story, mostly because it almost perfectly fits within the length requirements of this e-book engine (this story happens to be 21747 characters long uncompressed).
The text of the story is not stored as strings within the program, but it is encoded with Huffman coding in the bytes of the spritesheet and map. This is a more complete version of this project, so look at the details of that to learn more.
One thing I added here is the ability to save your progress through resets, and also add one bookmark that you can set and jump to anytime, with the X and O buttons respectively.

Compression seems to be a thing I've been doing recently. Continuing this tradition, I am releasing an (only partially done) e-book reader for the PICO-8, with the first two chapters of Moby Dick! (It's also got some of the third one, too.)
Some things to note:
-
Text is stored in the graphics, map, and sprite property data, as Huffman-coded bytes.
-
The text is divided up into sections that encode up to 6351 characters each (the length of user RAM minus one screen's worth of characters). These sections are byte-aligned.
- With Huffman coding, each character of the source text is basically replaced with a variable-length bit sequence (one that is sure to never be a substring of any other), with the bit sequences getting shorter the more frequent a character is.


