Put together some documentation on stat() function with help from @Soupster
0 memory usage // triggers a garbage collection
1 cpu usage // try to stay under ~0.9 to maintain 60fps)
2 reserved
3 raw memory usage // no GC, so value jumps around)
5 runtime, system version
7 operating fps (60,30,20,15)
86 epoch time
87 timezone delta in seconds
101 web: player cart id (when playing a bbs cart; nil otherwise)
150 web: window.location.href
151 web: stat(150) up to the end of the window.location.pathname
152 web: window.location.host
153 web: window.location.hash
301 total cpu usage
302 unknown: local mapped_name = stat(302, i), something about scancodes
303 unknown: printh(" ul -> "..pod{stat(303), stat(301)\0.001, stat(304)\0.001})
304 unknown: print(string.format("\014cpu: %02d mem: %04dk syscpu: %02d awin:%02d", stat(1)\0.01, stat(0)\1024, stat(304)\0.01, awin and awin.proc_id or 0), 30,251,7)

So I found an interesting approximation algorithm for converting to and from floating point data (bitwise not in a supported variable) but the issue is its based on the assumption one has u32 to work with.
I got some of the base code working in theory but the big int library doesn't work with byte anding and oring totally in a way I'm wrapping my head around entirely yet.
The problem is while I could do it one by one with a string, that would not be efficient.
Splitting bytes and relocating to just a high byte set on two variables should work but is melting my brain. Anyone else fall down this rabbit hole before?
this is a prototype for my ms paint roguelike. simulating what it is like to be an artist
the rules are a bit cryptic. i didnt have space for a tutorial.
i have an explainer on the itch page.
https://isyung.itch.io/fruit-game-003
looking for someone to help make this a full game. i have a lot of ideas for enemies, canvas behaviors and upgrades.

I recently upgraded my handheld. Out goes the original RG 35XX, in comes the RG CubeXX.
The stock OS (mine came with version 1.0.3) is actually pretty good and supports native PICO-8.
But I've decided to flash muOS on a separate SD card... And I don't reget it one bit! Experience is definitely superior, IMHO.
I could even enable the performance monitor. The steps are simple...
-
Make sure you run a cart and shutdown from the pause menu (do not press SELECT+START), so PICO-8 saves a default
config.txt. By the way, I prefer to always shutdown from the pause menu. SELECT+START is my last resource when a cart crashes to the prompt. - Open
config.txtin/MUOS/save/pico8. Change the line
map_scancodes |
to
map_scancodes 29=224, |
This will remap the L1 button to the left CTRL key. As the START button is already mapped to the P key, just press L1+START to open / close the performance monitor.


Controls
For a 1 player game, use the Up and Down arrows to move the palette.
For a 2 players game, you can use W and S to move the second player palette.
Rules
This is a simple remake of Atari's classic Pong. Move the palette to throw the ball to the opponent and continue playing. The first player to obtain 5 points win the game.
Behind the scenes
This is my second game (first using Picotron). My goal was to make the game by myself, without following any tutorial, and I am very happy that I could solve all the obstacles to finally recreate Pong successfully. 😀
I'm really happy because this is the first game I made by myself without following a guide :)
I referenced some info I found online when reading about collision detection and also a post I found regarding button press logic (to keep the function from being called again until the button is lifted).
Update - 2025/11/19
I fixed an oversite where the player was able to move in the opposite direction which triggered a game over. This wasn't really a problem on PC with a keyboard, but I quickly found it when playing the Pico-8 cartridge in a web browser from my phone.
I also added a title screen and updated the continue functionality on game over to account for this change rather than simply resetting the game.

Backrooms Level 0
The fluorescent lights hum gently but incessantly as you trudge across the damp yellow carpet. Weren't you already here? Or was that over there? It's either been days or minutes since you no-clipped through the floor of reality into this maze of rooms.
Find a way out--maybe back to the real world...
Controls
- Arrow Keys: Turn Left/Right, Forward/Backwards
- Z: Pickup Item, Open Door (if you have the key), Climb
Dev Notes
This game/demo is running on a portal-based engine that works with linked, convex sectors, somewhat similar to the Build engine. It handles textured walls, ceilings and floors at different heights as well as 3D prop items built out of vertical and horizontal surfaces. (The engine is far from perfect, but handles these sorts of worlds pretty well.)
I designed the levels using a custom editor (built in pico-8 because I like to make my life harder), which outputs level data as a really long string. It's a quirky beast, which somehow became about as complicated as the game engine.
Overall this was a fun exercise to build something atmospheric that I can get lost in myself.
--Electric Gryphon
You can find the level editor here, along with some basic instructions.
https://www.lexaloffle.com/bbs/?tid=154311
(Warning: The level editor is not especially user-friendly. But maybe it will be useful to someone.)

My latest game, Spooky Stylin' uses this "bitplaning" technique to store two 2-bit spritesheets instead of a single 4-bit spritesheet. I took a shot at animating the process to show how it works.
Read more about it on my neocities blog!
Acknowledgements
I owe a lot of my understanding to Two Owls and 8-bit Caaz. Check out these posts for more
I've noticed that listen sockets on Windows only seem to be listening on IPv6 interfaces. If I run the example from the manual, which uses socket("tcp://*:8899"), it seems that I can only connect to it from another machine if I use a hostname or IPv6 address. Even 127.0.0.1 doesn't work, but ::1 does. The same example works fine with IPv4 on Linux, so I assume this is a Windows-specific issue. I am on the latest version (0.2.1e).
I also checked Process Explorer and it confirms that there is only a TCPV6 socket:

Turno da Meia-noite foi lançado!
31 MAR 2026: versão 0.2.0
Baseando-se em Sokoban, o clássico jogo de empurrar caixas para o local correto, o jogador é um zelador de Cemitério que tem que fechar as covas com lápides para evitar que os mortos voltem. Adicionar outros elementos de corrida contra o tempo.
Jogo participando da GameJam de Halloween da comunidade do VictorIemini.
https://itch.io/jam/halloween2025

I've been interested in making my own markup language for a browser since my HTML browser on here, I've created my own basic markup language for Picotron - this simply links to my website where it's stored.
Page example (.picoml):
<title>my website!</title>
<text align="center">welcome to the website...</text>
<image align="center" width="auto" src="icon.png"></image>
https://discord.gg/A2UKMWN7AP - picotron web server with a PicoML section for: bug reports, requests, contributions (help me fr..) and any general talk about it!
PicoML library found at https://github.com/Astralsparv/picoml/blob/main/picoml.lua

So the Pico-8 supports GPIO on the Raspberry Pi and Pocket Chip, but I don't want to have to use Raspberry Pi or the pocket chip just for GPIO! The Pi Pico does have GPIO that could be used, but I don't know if it connects with the Pico-8, I really want to make something interactive and it would be really helpful. Does anyone know any alternatives?
I just want to make some LED's light up, nothing to fancy, just want to send stuff in and outside of the Pico-8!
It would also be extremely helpful if I could at least do the same on Picotron, because that has WAYYY more room to put microcontroller GPIO entries in





0 comments


