Log In  

BBS > Superblog
Posts: All | Following    GIFs: All | Postcarts    Off-site: Accounts

Cart #pinbowling-10 | 2025-06-04 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
19

This is my first cart.

I hope you all enjoy. Please do not criticize my unoptimized coding, I just wanted to post this ASAP. Anyways this took a lot lot lot of play testing, and I am really satisfied with how it turned out!

Very curious to see the highest score..
Don't worry, the pin layout is not random!

Version 1.4:

  • Improved the customization menu greatly
  • Added CHAOS mode! Play classic but with only chaos!
  • Added ZEN mode! Play casually, just for practice and fun!
  • Added brief descriptions to some menu options!
  • Spent way too long optimizing tokens. This will probably be the last major update

[ Continue Reading.. ]

19
8 comments


expint(): Counting To Eleventy-Bajillion In PICO-8 With Exponential Integers (v 1.01)

Cart #mcg_expint_test-2 | 2025-06-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

Overview

Hello, everyone! I'm back with another Quick 'n' Dirty code snippet: extreme range, low precision Exponential Integers!

expint() lets you easily work with extremely large numbers at low precision in PICO-8. You can create them, add to them, "spend" from them, display them in a friendly format, and save/load them using a single 32-bit data slot.

expint() is particularly well-suited to games where you need to track very large amounts of points or money, like incremental games/idle clickers, large-scale exploration games, and other places where 32k just isn't gonna cut it.

Update: Version 1.01

  • Fixed weirdness with the print() function
  • Shaved a few tokens off, to boot

The Snippet And Its Use

Install

Paste the following snippet into your cart:

[hidden]

function expint(new_sig, new_exp) 
	local num = {}

	function num._step_up(steps)
		while steps > 0 do
			num.sig \= 10
			num.exp += 1
			steps -= 1
			if num.sig == 0 then -- we've lost all precision; for whatever we're doing, this number is as good as zero
				num.exp += steps
				steps = 0
			end
		end
	end

	function num._norm()
		while num.sig >= 10000 do
			num._step_up(1)
		end
		while num.sig < 1000 and num.exp > 0 do
			num.sig *= 10
			num.exp -= 1
		end
	end

	function num.add(val, sig)
		local to_add = expint(val, sig) -- be non-destructive with arithmetic; copy info into another expint to protect precision
		to_add._step_up(num.exp-to_add.exp) -- instead of doing any logic, just run step_up 
		num._step_up(to_add.exp-num.exp) -- on both the numbers. It'll only affect one of them.
		num.sig += to_add.sig
		num._norm()
	end

	function num.spend(val, sig)
		-- if val < num, subtracts val from num and returns true
		-- otherwise, returns false
		local to_spend = expint(val, sig)
		if to_spend.exp > num.exp or to_spend.exp == num.exp and num.sig < to_spend.sig then
			return false -- to_spend is greater than num; can't make the spend
		end
		to_spend._step_up(num.exp-to_spend.exp) -- instead of doing any logic, just run step_up 
		num._step_up(to_spend.exp-num.exp) -- on both the numbers. It'll only affect one of them.
		num.sig -= to_spend.sig
		num._norm()
		return true
	end

	function num.print()
--		local suffixes = split("K,m,g,T,P,E,Z,Y,R,Q") -- SI suffixes
		local suffixes = split("K,m,b,t,qU,qI,sX,sP,oC,nO,dE") -- number suffixes
		local return_string = num.sig
		if num.sig > 1000 then
			local modval = num.exp%3+1
			local suffix = num.exp\3+1
			if suffix > #suffixes then
				return_string = sub(return_string,1,1).."."..sub(return_string, 2).."X10^"..(num.exp+3)
			else
				return_string = sub(return_string, 1, modval).."."..sub(return_string, modval+1)..suffixes[suffix]
			end
		end
		return return_string
	end

	function num.save(cart_slot)
		dset(cart_slot, num.sig | num.exp>>16)
	end

	function num.load(cart_slot)
		num.sig = dget(cart_slot)\1
		num.exp = dget(cart_slot)<<16
	end

	num.sig = new_sig
	num.exp = new_exp or 0

	-- handle special cases: input can also be either an integer in string format or a table (assume it's another expint()!)
	if type(new_sig) == "string" then
		num.sig = tonum(sub(new_sig, 1, 4))
		num.exp = max(#new_sig-4, 0)
	elseif type(new_sig) == "table" then
		num.sig = new_sig.sig
		num.exp = new_sig.exp
	end

	num._norm()
	return num
end

[ Continue Reading.. ]

2
2 comments


Cart #nesadekase-0 | 2025-05-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
8


Well I am now 99% complete my Pico-8 version of Mr. Robot and His Robot Factory. I loved this game back in the day when it was new on my Commodore 64 and now here is a Pico-8 version for everybody to enjoy. I can't believe I am right at the limit of the Pico-8 memory and made it fit. barely.
It is complete, although I have about 6 more levels to draw still and my trampoline logic needs some love. I doubt very much that I will fix the trampoline logic since the levels with trampolines were difficult to make work just like the original due to the limitation in screen width. Regardless I think I got the general look and feel of the original game pretty close, and the sounds aren't too bad either.

[ Continue Reading.. ]

8
3 comments


Cart #pico_go-0 | 2025-05-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Hi there!

I've made an (almost) fully-featured Go board game for the Pico-8 inspired by this tweetcart by Munro. Feel free to submit any bug reports if you encounter any weird behaviors.

Features:

  • Auto capture
  • Suicide restriction on placing pieces in eyes
  • Piece capture counter
  • Illegal placement feedback (cursor flashes red and won't allow you to make an illegal move)
  • Awesome design - entirely thanks to Munro

I'm still a bit new to the game of Go, so I may have missed a few rules I'm not aware of, feel free to let me know if there's something I should add.

Planned features:

  • Auto-scoring
  • Pre-defined rulesets

[ Continue Reading.. ]

0 comments


Cart #todigoworo-0 | 2025-05-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
13

My jam game called Sun Break, finished in 7/8h. Very short scope but worth it, hope someone like it. The itch.io is https://raphaelkieling98.itch.io/sun-break

> You are a girl in a temporal loop. Are you able to escape? 10/15m of playtime :)

13
5 comments


Cart #scinotation0-0 | 2025-05-30 | Code ▽ | Embed ▽ | No License

So yeah
I joined the pico-eightely world of Pico-8 and decided to try to do some stuff.

One of the things I (and assumedly many others) noticed is the quirk of the numbers range only going up to ~32700 because it's only stored on 8 bytes, and I figured I could try improving on this system...

Now of course many others did before me, and I could have tried to improve on their systems but I decided to do my own whole thing so instead of trying to recreate a mechanical calculator or a double-type number system, I went for the "scientific approach".

I made these snippets (located in tab 1) to turn a simple "12" into "1.2e+1" and to have the ability to do some math operations with it, all in just a bit over 200 tokens.

[ Continue Reading.. ]

0 comments


Hi, I have an RGB30 with an up-to-date version of Rocknix and the latest RPi (64 bit) version of Pico-8 installed.

Some games run and play just fine, Celeste 2 for example. But some games quit after they've loaded when I try to play them. For example, ExTerra - It loads okay, but when I select 'play' and then 'retro' or 'modern' from the in-game menu, it flashes "loading" briefly on the screen and then quits.

Does anyone have any ideas on what might be happening? Thanks.

2 comments


Cart #picospeedrunners-3 | 2025-06-08 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

4
7 comments


Cart #thevenuschildren-3 | 2025-06-04 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

1
2 comments


I’m a low-vision developer who recently fell head-over-heels for Pico-8 and Picotron—honestly, the low-res aesthetic is a game-changer for central vision loss. With fewer pixels and tight constraints, these platforms are some of the most playable and buildable game dev environments I’ve come across.

That said, I’ve been running into some accessibility bumps—especially with the IDE tooltips. The red-on-brick-red color scheme is tough to parse, and jumping my gaze from one side of the screen to the other really adds up in eye strain over long sessions.

Here’s my wishlist:
• Screen reader support: If tooltips and field labels had ARIA tags or other hooks for screen readers, I could fly through tools without as much visual fatigue.
• Retro screen reader mode: Even better? Imagine a built-in reader that sounds like an old-school ’80s computer voice. Bleeps, bloops, the whole vibe. Functional and fun.

I know accessibility work takes time, but even a small tweak—like upping the contrast on tooltips—would go a long way. I’d love to hear if others have worked around this or if it’s on the roadmap.

[ Continue Reading.. ]

3
2 comments


Cart #pong21-0 | 2025-05-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2


A pong game that I created. Definitely easier than tic tac toe! (I'm not that good at coding in PICO-8/Lua ._.)

2
0 comments


hello! i'm just posting, because i was wondering if anyone else has made some kind of floating point type thing here on pico-8! i just really wanna see if anyone has broken free from pico-8's fixed-point numbers. if you have, or know somebody that has, please let me know!

3 comments


Cart #picopanic-3 | 2025-05-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Ten days of hyperfocus later, I have a working playtest ready!

The "how to play" section needs a lot of love, but the game is functional. The logic is based on the Andy Looney game Icehouse (https://www.youtube.com/watch?v=Zjow6EJflw4&t=192s), which is a real time board game played with 3-4 players.

0 comments


Just a little snippet I use when looking sfx that haven't been used in the pattern editor.

p,s={},"" for a=0x3100,0x31ff do p[@a]=true end for i=0,63 do if not p[i] then s..=i.." " end end print(s)

Paste into the terminal and hit enter.

WARNING: This only shows sfx that are unused in any pattern. You are responsible for checking whether they are:

  • Used as sfx in the program
  • Used as instruments by another sfx (i.e. for sfx 0 to 7)
  • Used in some other way I haven't thought of
2
0 comments


Cart #picozip-0 | 2025-05-29 | Code ▽ | Embed ▽ | No License
4

PicoZip

A PICO-8 rendition of LinkedIn's daily Zip puzzles. Procedurally generates a square grid with checkpoints that must be crossed in order, and all squares in the grid must be filled in order to complete the puzzle.

Controls (Game):
Up/Down/Left/Right: Extend path in direction if possible, or backtrack last move
X: Backtrack last move, or open exit menu

Features:

  • Random color scheme per game
  • Adjustable grid size (3-6) and checkpoint count (2-9, may be less in smaller grids)
  • Random wall generation in grid

To-do:

  • Add SFX/Music
  • Need to optimize the path generation algorithm for 6x6 and higher grid sizes. Even 6x6 can take up to a minute to generate right now with naive Hamiltonian path generation.
4
2 comments


Cart #zorionak_agly_josue-0 | 2025-05-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

0 comments


Cart #duzonozka-0 | 2025-05-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

0 comments


Cart #picopanic-2 | 2025-05-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

A new WiP for a 4 player RTS game. It's also my first pico project. yay!

Pyramid Panic – A Game of Tactical Geometry  🚀

Hey PICO‑8 pals! I’m brewing a snappy 3–4‑player skirmish where every pyramid you fling can flip the table. Try it, break it, tell me what hurts!


Quick Pitch

Redirect lasers? Nah—redirect pyramids! Stack attacks, juggle defenses, and overload your rivals before the buzzer.


Controls

Each player drives one cursor with three modes (cycle with ⬅️ / ➡️):

Mode What it does
Attack Plant an 8‑pixel pyramid aimed at any defender. Hitting your own defender scores 0 but still fuels Overcharge.
Defend Keep a defender alive at all times. Lose it and you’ve got 10 s to drop another or you’re out.
Capture Triggered by Overcharge—snatch an attacker pointed at your defender, then redeploy it anywhere.

Scoring

We recalc right after every placement:

  • Attackers earn 1 pt if 2 + attackers point at the same defender of another color.
  • Defenders earn 1 pt if facing 0 – 1 attackers.
  • Everything else = 0.

Each player totes 6 pieces36 pyramids max in a 4‑player frenzy.


Overcharge ⚡

Three or more attackers locking on one defender? That defender Overcharges. Its owner gets an instant Capture move before play rolls on.


Endgame

  • 3‑minute round timer, or
  • Player 1 may end early by holding both buttons 5 s.

Highest score wins. Tie = sudden‑death; first point steals the crown.


State of the Panic

Alpha build live! I need your hot takes on:

  • Attack/defense balance
  • Is six pieces each spicy enough?
  • Can you always tell which cursor mode you’re in?

Drop feedback, gifs, and victory dances below. Salty taunts encouraged.

0 comments


Hi, I got this crash while picotron was running in the background. I had loaded my cartridge that was playing a song, but then I had manually called music() to turn off the music since it was just looping.

If you look in the catridge you'll see I added a while loop to keep the cartridge running; without that it would only play the first note of the song (song is Lemonade by Gucci Mane by the way). Maybe it's a memory leak that it kept printing in a loop (I still haven't figure out where to see this print output.)

I'm hitting "submit" but that'll go to Apple so I thought I'd post it here as well.

On to the error details:

Process:               picotron [6154]
Path:                  /Volumes/VOLUME/*/Picotron.app/Contents/MacOS/picotron
Identifier:            com.lexaloffle.picotron
Version:               0.2.0d (0.2.0d)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           picotron [6154]
User ID:               501

[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=167748#p)
1
1 comment






Top    Load More Posts ->