Log In  

hi, i'm /dev/urandom, i'm a coder, gamer, and overall dork

Cart #tearing_test-0 | 2021-07-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

This is just a simple test cartridge I made so I can test for screen tearing. It draws vertical lines that scroll around every frame. If the lines are completely straight, there's no screen tearing. If the lines "break" at a certain point, there is screen tearing.

P#95092 2021-07-20 06:58

Cart #fubuki_spacerace-0 | 2021-06-20 | Code ▽ | Embed ▽ | No License

This is a WIP remake/port of the "Space Race" TIC-80 game by Fubuki. I have managed to make a version of the game that, with some compromises, runs at a stable 30fps and provides a simple game experience, in which the ship has to run along an endless tube, avoiding walls.

I have added collision detection and a simple scoring system to the game, as well as made the game use perspective-correct maths for everything.

P#93774 2021-06-20 08:48 ( Edited 2021-06-20 09:40)

Cart #battlecity-0 | 2021-05-15 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

This is a work-in-progress port of "Battle City" (1985, Namco, Famicom) for PICO-8. The basic mechanics have been introduced, but the enemy AI is absent, certain UI elements aren't implemented yet and there's very few sounds and no music.

The goal is to implement all of the game mechanics completely, and then to try and improve on the game by adding extra features, like 4-player support.

Notice: so far, the more playable version is "Pico Tanks" by Shogal.

P#91987 2021-05-15 17:52

Cart #perasunoru-0 | 2021-05-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

This is a simple demo that draws a spinny spiral in PICO-8's rainbow colors.

I used the "Approximating log" function described on the PICO-8 wiki, but I added a step where it interpolates between values to achieve some degree of smoothness.

To achieve 30fps operation, every frame, only 1/4 of the screen is drawn, and the bottom half of the screen is always mirrored and flipped from the top half.

P#91356 2021-05-01 15:22

Cart #passcard-0 | 2021-04-28 | Code ▽ | Embed ▽ | No License

This is a simple PICO-8 implementation of the PasswordCard website and the PassCard application. This application generates a card with 8 different 29-character sequences of letters and numbers (and optionally also symbols) that is supposed to be used as a paper password storage.

WARNING: this program relies on PICO-8's standard random number generator, which may be not suitable for cryptographic purposes.

The original program is released under the terms and the conditions of the GNU GPL license, version 3, and so does this one.

PassCard for PICO-8
Copyright (C) 2014-2017 Eugene Gusev, 2021 /dev/urandom

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see (http://www.gnu.org/licenses/).
P#91247 2021-04-28 14:03 ( Edited 2021-05-02 09:32)

Cart #console_wars_intro-0 | 2021-04-15 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

I decided to cover the "Console Wars" web series' intro tune, and make a little PICO-8 cartridge to go along with it. Since there's no real gameplay, I guess it's kind of like a demo, but it doesn't really stretch the PICO-8 capabilities in any noticable way or do anything impressive. Just a thing I did for fun.

P#90595 2021-04-15 07:36 ( Edited 2021-04-15 08:03)

Cart #ritokembo-0 | 2021-03-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

The decoration feature of PICO-8 v0.2.2 could also be useful to also draw dakuten / handakuten marks above the kana characters, rather than to the side of them, but sadly, since the current syntax only allows them to be shifted horizontally between -2 and 1 pixels.

Maybe it's worth it to adjust the "\v" character syntax so that it works differently after wide characters, or add a different one where the horizontal shifts use 3 bits instead of 2 (and allow for horizontal adjustments between -4 and 3 pixels?).

P#89742 2021-03-30 07:49

Cart #sitelenpona-1 | 2021-02-15 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Continuing my topic of custom fonts, here's one that replaces almost every character in the later half of the character set (which is usually taken by patterns, hiragana and katakana) with the 120 official characters of the "sitelen pona" writing system for the minimalist conlang "toki pona".

Here's the charts of characters:


Version 1.1 (current):

  • slight adjustments to some characters, an easier-to-understand "moli"

Version 1.0:

Cart #sitelenpona-0 | 2021-02-15 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • initial version
P#87666 2021-02-15 09:01 ( Edited 2021-02-17 10:52)

Cart #rusfont-0 | 2021-02-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

This cartridge uses the PICO-8 v0.2.2's custom font functionality to provide an additional font with Russian letters (with the exception of Ё).

The characters are mapped similarly to the KOI8-R encoding, so that similar Latin characters are mapped to similar Russian ones. For example, "РУССКИЙ ТЕКСТ" (Russian text) is encoded as "RUSSKIJ TEKST".

To use the font, just copy the "setfont" function into your program, call it at the start of the program, and use the commands to switch to the custom font and back whenever you need to print Russian characters.

For example, this line will output "привет, мир! pico-8 пишет по-русски!" ("hello world! pico-8 is writing in russian!")

print("\014priwet, mir! \015pico-8 \014pi{et \npo-russki!")

P#87630 2021-02-14 14:18

Cart #jelpi_altpaltest-0 | 2021-02-10 | Code ▽ | Embed ▽ | No License

This is basically me testing how the "second palette" pokes work on PICO-8. The lower 24 rows of the screen are now occupied by a HUD strongly inspired by the game "Ultracore", which displays (fake) number of lives and ammo and (real) number of gems collected and level number.

The status bar area uses its own palette with lots of colors from the second set of 16 colors, but doesn't interfere with the game itself (though the camera had to be raised a bit to make it work).

2-player mode is not tested, probably will break.

P#87469 2021-02-10 17:03 ( Edited 2021-02-10 17:06)

Cart #donsol8_v1-9 | 2021-04-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

This is a PICO-8 port of Donsol by John Eternal and Hundred Rabbits, a dungeon-crawler game built around a deck of 54 cards.


RND Software thanks you for selecting Donsol for the PICO-8 system. Please read these instructions before starting for maximum enjoyment of this game.


After a long evening of playing cards at the local tavern, you head off home to get some sleep, but something goes wrong. You suddenly find yourself trapped in a nightmarish dungeon, which is infested with fiends, monsters and wicked witches intent on making sure you stay trapped in the dungeon forever. As you suddenly seem unable to find any exits, your amulet warns you that a strong curse has been placed on the dungeon by these same monsters. Armed only with your trusty dagger, will you be able to eliminate all the monsters, dispel the curse that prevents you from leaving and exit the dungeon, or will you suffer the wrath of the Donsols?


It's clear that as long as the dungeon is cursed, it will be impossible to leave it. Since the best way to break a curse is to destroy the creature that cast it, the only way out is to completely purge the dungeon of evil. Luckily, the dungeon isn't just inhabited with dark and fiendish monsters -- you can clearly see helpful shields, healing potions and mages shining with red light. Use them carefully to stay alive while clearing the dungeon and you will surely find your way out!


This is a single-player game. Only use the controller connected to Control Port 1.


  • On the title screen, use the left and right directions to pick the difficulty level.

  • During gameplay, use left and right to choose a card, or press up or down to select the "run" or "restart" options.

Cross Button

  • This button is never used in this game.

Circle Button

  • On the title screen, use this button to start the game.

  • During gameplay, use this button to flip the selected card, or to use the "run" or "restart" button when it's selected.

Pause Button

  • Use this button to pause the game and display the Pause Menu.


After you turn on the game, you will see the title screen. Here, you can select the difficulty level for the game by using the left and right directions on the D-Button and pressing the Circle Button to select. Alternatively, you can choose the "CREDITS" option to see the names of the people responsible for making the game.


  1. Your health points

  2. Your shield's durability (if available) and defense

  3. Your experience (number of cards flipped)

  4. "Run" / "Restart" button

  5. Name of currently selected card

  6. A flipped card

  7. An unselected card

  8. A selected card and its cursor

  9. Status messages

On this screen, you see your current status, the cards comprising the current room of the dungeon and the last status message. Your task is to clear the dungeon by flipping all 54 cards of the deck. To do that, use the left and right directions on the D-Button to select a card and then press the Circle Button to flip it. Different cards have different effects:

♠Spades and ♣Clubs -- Monsters

The spades(♠) and clubs(♣) are the dungeon's monsters. When you flip them, they will attack you, dealing damage equal to their value. If you survive the attack, you defeat the monster.

♦Diamonds -- Shields

The diamonds (♦) are shields and helpful red mages. When you flip them, you equip (or they join you) to provide defense from monster attacks. When a monster attacks you, the shield will reduce the amount of damage you take by its own value. If the monster is weaker than the shield's defense, their attack will not hurt you at all!

However, there's a catch. After a monster hits your shield, it will be unable to withstand attacks from equal or stronger monsters without breaking and leaving you unguarded. To prevent that, be sure to attack stronger monsters before weaker ones!

♥Hearts -- Potions

The hearts (♥) are potions and helpful white mages. When you flip them, you will consume the potion (or ask for help) and they will restore an amount of health equal to their value.

However, there's another catch. The potions' and mages' restorative magic doesn't like being overused, and if you try to use two or more heart cards in a row, the latter ones will do nothing. An hourglass symbol above the health meter will warn you if healing up is useless.

🃏Jokers -- Donsols

The two joker (🃏) cards are Donsols -- extremely powerful monsters that rule this dungeon. In fact, they are so strong, that meeting them without an untouched shield is sure to end your journey once and for all! Be extremely cautious in rooms with them.

Running away

If you feel like you can't deal with the room you're in, you may want to try running away from it. To do that, use the up or down directions on the D-Button so that the "Run" button is selected, and then press the Circle Button.

The curse of the dungeon may have made it very hard to navigate, but sometimes you still have the opportunity to quickly escape into a different room with a new set of cards in it. The flipped cards will not reappear, but you will still have to deal with the rest eventually -- hopefully with better equipment and in better health.

The situations in which you can escape depend on your difficulty level:

  • On EASY, you can escape any rooms that don't have monsters left or if you haven't escaped from the previous room.
  • On NORMAL, you can only escape if you haven't escaped from the previous room.
  • On HARD, you can only escape if the room you're in doesn't have monsters left.
  • On EXPERT, you can't run from any rooms at all.

Luckily, the dungeon's curse only gains its full power once you've interacted with any of the cards. If you haven't attacked any monsters, equipped any defense or healed yourself up (i.e. your XP is 0), you can always run from rooms. Use this to find a starting room that lets you survive the dungeon more easily.


Pressing the Pause Button at any time will open the Pause Menu with the following options:

  • Continue - Resume playing the game back where you left off.
  • Trad. Suits - The minimalist suit graphics used in Donsol may be confusing to some users. By enabling this option, the suit graphics will be replaced with ones more like those used in traditional playing card decks.
  • ⬅️ English ➡️ - Change the language that the game uses by using the left and right directions on the D-Button. The game can be played in English, in Russian, or in toki pona.
  • Reset Cart - Restart the game from the title screen. This is the only way to change the difficulty level once it's been selected.

Use the up and down directions on the D-Button to select an option and press either the Cross Button, the Circle Button or the Pause Button to select the item you want.


  • If your shield breaks, you receive the full damage of the attack. That's why it's better to have a weak shield that hasn't been touched by monsters than a strong one that already has low durability.

  • If you've defeated all monsters in a room and you see potions and shields you don't need, it's best to run away from that room. That way, those shields and potions may find themselves useful later!

  • Donsols have an attack value of 21 -- higher than all other monsters and equal to your maximum health. Don't even think of attacking them without a brand-new shield!


A PICO-8 cartridge is a delicate electronic device and must be handled carefully. Please abide by the following rules to make sure the cartridge lasts as long as possible:

  • Do not expose the cartridge to extreme temperatures.

  • Do not try to dismantle or break apart the cartridge.

  • Keep both the cartridge's and the PICO-8 system's connectors clean. Do not use water to clean the connectors.

RND Software and Lexaloffle Games are not liable for damage caused to the game cartridge or the PICO-8 system if these rules are violated or if the damage is caused by abusing the game or the system.

Rules of the game

The rules of this version (other versions may have slight differences) are as follows:

The deck is shuffled, and four cards are given into your hand. These cards are the contents of a dungeon room.

  • The spades and clubs are monsters. Flipping a monster card will start a battle, in which the monster will deal you its value worth of damage before being defeated. Number cards are worth 2 to 10, jacks, queens, kings and aces are 11,13,15 and 17.

  • The diamonds are shields. Flipping a shield card will equip the shield, and reduce the damage dealt by monsters by its value. However, a shield can only be used against monsters in descending order of value, otherwise it breaks and you receive full damage. Number cards are worth 2 to 10 and face cards are worth 11.

  • The hearts are health potions. Flipping one will consume the potion and recover health points according to its value, up to a maximum of 21. However, if you try drinking two or more potions in a row, the later potions will not have any effect. Number cards are worth 2 to 10 and face cards are worth 11.

  • The jokers are Donsols, the two extra-powerful monsters with a value of 21. This means that even at full health, you need a brand-new shield to defeat them.

Once all the cards have been flipped, they are discarded and another four (if available) are picked from the deck to form a new room.

Alternatively, under some conditions, you can run from the room into another one. In this case, the flipped cards are discarded and the rest are put back into the deck, which is reshuffled to form a new hand of up to four cards.

  • On easy difficulty, you can run if the room you're in has no undefeated monsters or if you haven't ran away from the previous room.
  • On normal difficulty, you can run only if you haven't ran away from the previous room.
  • On hard difficulty, you can run only if the room you're in has no undefeated monsters.
  • On expert difficulty, you can not run away at all.
  • Regardless of difficulty, you can always run away if you haven't flipped any cards in the game. Feel free to use it as many times as possible if the first room feels impossible or too hard (for example, if it has too many powerful monsters and no shields).

Your goal is to complete the dungeon by eventually flipping and discarding all 54 cards while remaining alive (health above zero).


This version resembles the web-app version in its visuals. On the top of the screen are the bars displaying your current health (HP), defense (shield endurance / defense points) and experience (how many cards you have flipped so far), as well as a "run" button, which will be grayed out completely if running is unavailable.

Below that, four cards are displayed. The currently selected card's name and value are displayed above the cards, and the currently selected card is displayed slightly above the others. Flipped cards, as well as empty spaces, are displayed in gray.


  • On the main menu, use left and right on the d-pad to select an option. Press 🅾️ to confirm your selection.

  • During gameplay, use left and right to pick a card, or use up or down to toggle between picking a card or using the "run" option (if available), and press 🅾️ to flip the card or run away.


Version 1.7.2 (current):

  • Edited a toki pona string on the "Run" button to fit in the space better.

Version 1.7.1:

Cart #donsol8_v1-8 | 2021-03-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Fixed some rather embarrassing bugs that caused the game to crash when using non-English translations.

Version 1.7:

Cart #donsol8_v1-7 | 2021-03-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Added a toki pona translation. The language is now selected by using the left and right directions in the menu.

Version 1.6:

Cart #donsol8_v1-6 | 2021-02-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Fixed some typos and transliteration errors in the Russian translation.

Version 1.5:

Cart #donsol8_v1-5 | 2021-02-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Added a Russian font and a (rough) Russian translation of the game. To enable, use the pause menu to select "-> RUSSIAN". To switch back to English, use the same menu item.

Version 1.4:

Cart #donsol8_v1-4 | 2020-06-02 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Added an option to use a more traditional set of suit graphics.

Version 1.3:

Cart #donsol8_v1-3 | 2020-05-22 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Changed some graphics for the "clubs" suit to match the Electron app version more closely.

  • Changed the palette to use an alternate darker red color for more contrast.

Version 1.2:

Cart #donsol8_v1-2 | 2020-05-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Sound changes:

    • A sound for whenever a new hand is picked (running away or flipping all 4 cards in a hand).
    • A separate sound for when a monster's attack is partially absorbed by the shield.
    • Slight changes to sound logic to reduce situations when two sounds are placed simultaneously.
  • Graphical changes:

    • When you are dead, the "restart" button is colored red, like in the Electron version.
    • The cards have a longer animation when being taken from the deck.
    • The HUD no longer displays the equipped shield's maximum attack value before the first attack (also like in the Electron version).

Version 1.1:

Cart #donsol8_v1-1 | 2020-05-16 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Implemented lots of UI changes based on feedback from Devine Lu Linvega:

    • The status bar is now more compact and has the "run" button next to it (controls have been changed to allow both "up" and "down" to select the "run" option).
    • Cards that have been selected in the hand display as "flipped". There is no gameplay difference between a "flipped" card and an empty space.
    • The "DP" field only displays "0" if there's no shield being equipped.
    • A small cursor is shown below a card (or empty space) that is being selected.
    • Selecting the "run" option (except on first turn) or the "restart" option will deselect the "run"/"restart" button.

Version 1.0:

Cart #donsol8_v1-0 | 2020-05-02 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

The original game, as well as this version, are released under the terms of the MIT license.
Click "Show" or open the source code of the game to see it.

MIT License

Copyright (c) 2017 Hundredrabbits, 2020 /dev/urandom

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.


P#75741 2020-05-02 10:17 ( Edited 2021-05-01 15:39)

Follow Lexaloffle:        
Generated 2021-07-23 15:01:11 | 0.119s | Q:70