hi, i'm /dev/urandom, i'm a coder, gamer, and overall dork. You can follow me on the Fediverse or check out my website.
This is a small work-in-progress demo thingy that tries to imitate the way special stages in the first Sonic game work.
Is very unfinished and probably very buggy.
Changelog:
Current version:
- Added the special stage music, as composed by Gruber.
- Modified the check for whether the character is in the air by only checking sensors that are close to the ground.
- Fixed a rounding bug that resulted in in-air checks failing half of the time on walls facing two of the four directions.
- Debug functionality: the background is changed from blue to purple whenever the main character is in the air.
Version 2:
- Replaced manual scrolling with automatic one
- Implemented the R block functionality
- Made it possible to move the character with the directional pad (slower in air than on ground).
Version 1:
This is a small snippet of code that asks the player for their birth date, checks if they're over 18 years old, and either passes or blocks them from playing whatver game is implemented in the cartridge.
If the player already passed the check once, it's saved in the cartdata, so they don't have to do it every time.
To implement this in your game:
- copy the entire contents of tab 1 into your game code somewhere
- add
🐱ok=false
at the start of your game code - add the
🐱init()
call in the beginning of your game, but after thecartdata()
call. If your game doesn't use cartdata, you may skip this step, but the game will ask for the player's birth date every time it's launched. - add
if (not 🐱ok) then return 🐱draw() end
as the first line in your draw routine - add
if (not 🐱ok) then return 🐱update() end
as the first line in your update routine
Inspired by this demo, I decided to implement the same idea using PICO-8. Instead of using spare RAM for effects, I went with the newly-introduced spritemap/screen mapping feature, by drawing the spirograph to the spritesheet and then drawing that onto the screen, so that hands can be added later.
Change log:
Version 2 (current)
- added the ability to use the O button to accelerate the drawing process
- set the cart to run at 60fps
Version 1:
Sounds very irritating, I know, but that's also the problem with the original tune :-(
Pattern 0 is title theme.
Pattern 10 is the ending theme.
This is my attempt to implement an RPG-style name entry dialog, which should be helpful for others as well.
It doesn't use any sprites or map elements, so its code should be easily usable in other cartridges.
You can use this code according to the CC-BY-SA-NC 4.0 license, as is default, or according to the MIT license below:
Today is the 20th birthday of the minimalist conlang "toki pona". An event is held to celebrate that. I made a small PICO-8 cartridge to celebrate it.
Controls: UP/DOWN -- move time one hour ahead or behind
LEFT/RIGHT -- control the wind
O+X (Z+X on keyboard by default) -- activate easter egg
Changelog:
Version 2 (current) -- fixed time calculation so the cartridge doesn't crash long before or after the event.
Version 1:
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.
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.
Version 3: added a rendering hack that simplifies the topmost and bottommost parts of walls hidden by other walls, should make the game run at a stable 30 FPS all the time.
Old versions:
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.
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.
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
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
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/).
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.
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?).
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:


Changelog:
Version 1.1 (current):
- slight adjustments to some characters, an easier-to-understand "moli"
Version 1.0:
- initial version
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!")
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.
Changelog:
- v2: made the game apply the second palette whenever the first one is updated, now that its existence is official and pal() resets it as well.
Old versions:
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.
INSTRUCTION BOOKLET
Rules of the game
Changelog:
Version 1.8.4 (current):
- Replaced the mention of my now-inactive Twitter account with a link to my website.
Version 1.8.3:
- Fixed the space character in the alternate font for the Russian translation.
Version 1.8.2:
- Added an "inverse" style to the currently-selected label in the title screen when the mouse is used, so that it's easy to tell what will happen when the mouse is clicked.
- Made it so that when you switch from the mouse back to the controller, the controller is ignored for 8 frames -- this way, the button press used to switch is not read by the rest of the game.
Version 1.8.1:
- Made the mouse work in the credits screen.
- Made sure the user can use any mouse button.
Version 1.8:
- Added basic mouse support.
Version 1.7.2:
- Edited a toki pona string on the "Run" button to fit in the space better.
Version 1.7.1:
- Fixed some rather embarrassing bugs that caused the game to crash when using non-English translations.
Version 1.7:
- Added a toki pona translation. The language is now selected by using the left and right directions in the menu.
Version 1.6:
- Fixed some typos and transliteration errors in the Russian translation.
Version 1.5:
- 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:
- Added an option to use a more traditional set of suit graphics.
Version 1.3:
-
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:
-
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:
-
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:
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.