Intro
What if there was a fantasy console in a fantasy console? That's a question that I never got. Instead, I was curious to see if I could come up with a way to get some form of programming on Pico-8.
Well, here you go. The language resembles CPU instructions. The fantasy console allows up to 256 instructions in ROM and has 256 byte RAM which can be viewed at runtime.
The console itself comes with a 16x16 1-bit display and 6 buttons. All IO can be directly accessed and manipulated through RAM. For convenience, it's marked with green (display) and yellow (input) in the editor.
Also, I came up with this idea due to the Ludum Dare theme "The more you have, the worse it is". I actually did it during Ludum Dare and finished it in time. I guess it's an unofficial Ludum Dare entry :-)
[b]Usage

Goal of the game: Earn cash by opening cards and buy upgrades.
Everything is mostly pure chance.
Controls: Move cursor with arrowkeys. Open card or buy upgrades with Z
Made during Ludum Dare 40 Compo
Timelapse of gamedev: https://www.youtube.com/watch?v=Y-t3mRxAOVs

This is a port of Daniel Shiffman's Reaction Diffusion coded in P5 (JavaScript): https://github.com/CodingTrain/Rainbow-Code/blob/master/CodingChallenges/CC_13_ReactionDiffusion_p5.js/sketch.js
Runs on my laptop at about 2-3 seconds per frame, so it takes an hour or more to get going. You can tweak the feed rate (FEED) and kill rate (K) to get radically different emergent patterns.
I may try to optimize it further (believe it or not, I have done some speedups to get it here) and maybe add a menu with some interesting pre-sets, but it is working, albeit very slowly.
Reaction Diffusion is similar to cellular automata like the Game of Life, but can create really amazing organic emergent patterns over time.
This is my first PICO-8 cartridge, and my first time with Lua outside config files for i3wm.
Petri is a puzzle game based on a problem I've been obsessing over for a few years.
It's Conway's Game of Life, but run backwards. It's pretty tough, even the 6x6 board.
Let me know what you think.
1.0.1:
- removed todo in tab 1
1.0.2:
- fixed cart data bug. defaults to six if not present
- fixed graphical bug after resizing to 6x6. tiles deliberately zeroed now.

DIG↑ WAR, the intense two-player action game oriented around defeating your opponent!
How to play:
Each player plays as a farmer, which either has a red (P1) or blue (P2) hat.
Players control their farmers by using the arrow keys/ESDF for movement, Z/tab to jump, and Q/X to throw or "dig up" plants.
The goal of the game is to kill your opponent. Each player starts with 3 health, and all plants deal 1 damage. Plants are gathered by digging up sprouts with X/Q, and are thrown with the same input. Health can be increased by gathering extra fruits; every three that players gather beyond the first three will increase their health by one (health boost progress is shown by the hearts displayed below the player). The lava at the bottom will rise every 20 seconds as well, increasing intensity the longer matches last.
Although most plants do the same thing, there are two with alternate behaviors:
Melons- bounce across the ground
Banannas- function as boomerangs which go across the screen
Made in PICO-8 by @GunTurtle:
DIG↑ WAR, the intense two-player action game oriented around defeating your opponent!
How to play:
Each player plays as a farmer, which either has a red (P1) or blue (P2) hat.
Players control their farmers by using the arrow keys/ESDF for movement, Z/tab to jump, and Q/X to throw or "dig up" plants.
The goal of the game is to kill your opponent. Each player starts with 3 health, and all plants deal 1 damage. Plants are gathered by digging up sprouts with X/Q, and are thrown with the same input. Health can be increased by gathering extra fruits; every three that players gather beyond the first three will increase their health by one (health boost progress is shown by the hearts displayed below the player). The lava at the bottom will rise every 20 seconds as well, increasing intensity the longer matches last.
Although most plants do the same thing, there are two with alternate behaviors:
Melons- bounce across the ground
Banannas- function as boomerangs which go across the screen
Made in PICO-8 by @GunTurtle:
DIG↑ WAR, the intense two-player action game oriented around defeating your opponent!
How to play:
Each player plays as a farmer, which either has a red (P1) or blue (P2) hat.
Players control their farmers by using the arrow keys/ESDF for movement, Z/tab to jump, and Q/X to throw or "dig up" plants.
The goal of the game is to kill your opponent. Each player starts with 3 health, and all plants deal 1 damage. Plants are gathered by digging up sprouts with X/Q, and are thrown with the same input. Health can be increased by gathering extra fruits; every three that players gather beyond the first three will increase their health by one (health boost progress is shown by the hearts displayed below the player). The lava at the bottom will rise every 20 seconds as well, increasing intensity the longer matches last.
Although most plants do the same thing, there are two with alternate behaviors:
Melons- bounce across the ground
Banannas- function as boomerangs which go across the screen
Made in PICO-8 by @GunTurtle:
I ran into an odd bug with printing glyphs. I think what's happening is that if it detects a button glyph being used on a line with a btn() or btnp() function, it replaces all instances of the button glyphs on that line with the appropriate button number. This is a problem if you do something like the following two lines of code (obviously using actual glyphs instead of these unicode chars):
if (btn(⬅️)) print("⬅️")
print("❎",20,20,btn(⬅️) and 7 or 5)
|
The following gif shows the code for the cart above:


Controls
Z to start. Arrows move the helicopter. Z (held) deploys ropes to save survivors (if any are near enough).
Commentary
Yet another one of those games where I finally have a good idea in the last few hours of the month, but this one came together so well I can't be mad.
I am on a pretty good streak of games that don't involve killing/shooting (a gentle challenge I set myself). This one puts you in the active role of a rescuer - albeit, one who never has to recover dead people, as the real volunteers/coast guard often find themselves doing. In this world everyone is save-able, if you're quick.
Watch your fuel and do passes around the darkened sea in order to find the eye-catching life rings. Then use your trusty ropes (hold Z) to pull people up.
itch.io page: here.
This is Pico-8 on the GamePad Digital GPD-WIN palmtop gaming computer. I won't give this a detailed review because there are better sources of info on this machine, and it's no surprise that it can run Pico-8. But since I posted pics of RaspiBoy I thought it'd be fun to show it off in comparison.
GPD-WIN is a bit famous for being surprisingly good at what it does, but if you haven't seen it before: 5.5 inch touch screen, Intel Atom processor, teeny keyboard, built-in game controls (including shoulder buttons), and it runs Windows 10. Install the Windows version of Pico-8 and not only can you play games, but you can make games as well. The keyboard is implausibly small, but it compares favorably to a PocketChip. The whole thing folds up to the size of a 3DS.
I made a half-hearted attempt at setting up the game controls with Pico-8. You can choose between three controller modes using a hardware switch, including a mouse-and-keyboard emulation mode for regular Windowing. I ended up using this mode and Pico-8's keyconfig to get a reasonable result with the D-pad and buttons. I bet another mode and proper SDL controller set-up would also work. Mouse-and-key mode is also plausible for the editors: left stick to move the mouse, left shoulder button to left-click, etc. Touchscreen mousing is surprisingly good in general, but I personally would prefer the stick for drawing. There is one (and only one) USB-A port for external peripherals. It also supports Bluetooth.
The GPD-WIN sells for ~$400 USD, so a bit pricier than a RaspPi set-up (or any handheld game machine subsidized through licensing). It's also a plausible option (only option?) for playing Steam games in a handheld-like, which appears to be its chief purpose. I don't think I'd use it for apps unless I were desperate, or could use its mini-HDMI out and peripherals.
GPD-WIN has a subreddit of devoted fans, and the subreddit has a FAQ.

This is the RaspiBoy handheld console kit running Pico-8. Inside, it's a Raspberry Pi Zero connected to a TFT display, a LiPo rechargeable battery, a small speaker, a custom controller board, and a built-in full-size SNES-style controller including shoulder buttons on the back. The custom board provides two USB-A ports for data, a microUSB port strictly for charging, mini-HDMI video out, a headphone jack, a volume wheel for the speaker, and buttons for adjusting the display. RaspiBoy ships as a solderless kit that does not include the RaspPi Zero.
The two big ideas here are the full-size SNES-like controller grip and the injection molded case. Injection molding and silicone membrane pushbuttons do more to recreate the mass-market handhelds than any 3D-printed equivalent can. The controller size is comfortable and familiar. Overall, there are a lot of good ideas in the RaspiBoy that we haven't seen yet in this increasingly populated category of small-run manufacturing of Raspberry Pi-based handheld game consoles. The general design ticks a lot of boxes in my ideal version of this concept.
Unfortunately, there are some significant failures in the details. The large grip comes at the expense of a wide frame around the TFT screen. As shown in the picture, Pico-8 by default doesn't fill the frame, and the low resolution makes even Pico-8's chunky typeface difficult to read. (I have not yet experimented with options and config to fix this. The -width and -height command-line arguments may come in handy.) A flaw common to RaspPi-based handhelds is the need to formally shut down the operating system before turning it off, or risk corrupting the filesystem. (This could be fixed with custom software and a "soft" power button, but it'd be a project that I haven't seen anyone attempt yet.)
While the silicone membrane buttons have a familiar feel, they're a pain to assemble as part of the kit. Plastic buttons sit atop the membrane, and the membrane makes contact with simple copper pads on the circuit board. Getting these to line up while you push the two sides of the case together is difficult, and it took me multiple tries to get it to fit together correctly. Even when fully assembled, the buttons are too unreliable for gaming performance. I had far better luck sticking a prefab USB controller into one of the ports than I did with the built-in controller.
RaspiBoy doesn't use any custom software: it's just RetroPie in a common RaspPi configuration, and you install it yourself. So I'm not sure how to explain that Pico-8 misbehaves and crashes after a few minutes of play. I'm tentatively inclined to blame the RaspiBoy, the RaspPi Zero, or possibly the way the controller board connects to the Zero using pogo pins pressed up against the test pads. Needless to say, it's a deal breaker if I can't actually use it to play games reliably. I doubt I'll have the time or patience to troubleshoot this properly.
The basic RaspiBoy kit sells for 75 euros (~$90 USD) from http://www.8bcraft.com/.






10 comments







