Rain with its most stalwart companions, melancholy and misogyny
Figure out the controls yourself I don't even care
You know what don't even play it'd go over your head anyway
Older versions, for those who won't stop living in the past
Here I'll be posting modular resources for use in your cartridges! Each cartridge includes both shortened code, taking up a minimum of tokens, as well as expanded code, with lots of nice formatting and explanatory comments. They're all released under the zlib/libpng license so please feel free to use them in your own project!
Like me, you may think the default font is kind of awful. If you do, here's some code that will help you render your own! The example font has 64 characters and starts at 0 in sprite memory, but you have full control over which characters are included and where they're located at and in which order they appear by making easy modifications to just a few variables. Take a look at the code to see how it's done!
You might find yourself needing more input functionality than just btn and btnp. In this cartridge you can find functions to tell you when a button has been pressed (without repeating like btnp), when a button has been released, and how long a button has been pressed or how long it's been released.
Pathfinding can be tricky, so this cartridge includes an implementation of the A* algorithm. This particular implementation is confined to pathfinding on 2D grids, but otherwise it's very flexible. You'll be able to assign your own movement cost and heuristic functions, and a good deal more. The implementation also comes with sensible defaults, so if you're not sure about the details you can mostly leave them up to the code as it is.
The console is amazing and I'm loving making stuff in it but, to be honest, the in-console editors suck sometimes. Especially the code editor. And sometimes I'd really like to be editing the graphics and music in a more robust program.
One fairly simple feature that would help a lot is auto-reload when a cartridge changes. I pretty much always have a cartridge open in both a text editor, to write Lua code, and in Pico, to test changes. The text editor reloads automatically and that's awesome, but I have to manually reload the cartridge in Pico whenever I make changes to the code. And not only is it tedious, but I'm also prone to forgetting and making and saving some change in Pico, thereby overwriting the data that had been previously saved by the text editor.
In the same vein of making it easier to write code in an external program: Please don't lower-case all my code. It might not matter in Pico's text editor but it does when viewed in an external program.
An alternate cartridge format could help with using external editors, especially for sprite and audio data. A cartridge could be represented by a directory containing one Lua file, an image file containing the sprite data, a data file (perhaps in TMX format, that looks fairly popular?) for map data, another data file for sprite flags, more data files for sound effects and music, hopefully in a standard format. It might get dodgy with the way data can be shared across sprites and maps, for example, but I'm sure there's a way to make it work.
Minesweeper! Features multiple difficulty levels and amazing sound effects. Released under the zlib/libpng license.
Arrows transport cursor and navigate menu
Z reveal tiles or activate menu options, menu opened when tiles not revealed
X flag tiles for knowledge