Log In  
[back to top]


Ever noticed that when you load an old cart, sometimes it won't load because of API changes? You can see this for yourself if you try loading the popular cart "rougeris". After rougeris's release, 'do' was changed to not work with 'if' and vice versa. On desktop, fixing this is as easy as replacing 'do' with 'then', but on mobile or bbs, not as easy.

Now for the meat of this argument:

Why not make it so that old carts use an older version if pico-8? This doesn't need to be updated for every old cart, but maybe, when you submit a bbs cart from when/if this is changed to an API freeze, the bbs logs what version your cart uses, and when loaded, grabs a specific version of p8, loads it, then runs the cart in it, that would eliminate the possibility of future obsolete carts!

There's really no excuse not to do it, or not to even consider it. Every version of p8 (minus the mysterious "rc") is available to p8 owners on the download page under older versions.

1
3 comments



I've found some interesting things tucked away in picotron's code, and I'd like to share them!

First off, you can edit and view any file by typing edit name.ext, where name is the file and ext is the extension.

There are loads of gui features to mess with and ruin, and my favorite is notify_user(<text>). When called, it displays "text" in a little notification bar! Even works with vars! Another honorable mention is the gui text editor. It's buggy sometimes, but you can embed a text editor or code editor anywhere you want in your cart!

As for non-gui things, there are many. You can read keyboard presses (get_key_pressed(key)), actively playing sounds, running processes, open files, OPEN files, delete files, change and list directories, all from within your carts! I'm sure there's a way to make a program run in the background, so this could make for custom themes, keyboard remapping, BG music and sound effects, freaking integration with your, YOUR operating system, the list goes on.

[ Continue Reading.. ]

5
0 comments



The Pixel Toy (TpxT)

2nd picotron game ever made!?

To play, copy and paste code below (click "show") into picotron playground (or actual picotron when it comes out!)

If it says "clipboard can not be read", then don't use base Firefox. if you aren't using base Firefox, then give picotron clipboard permissions in site settings.

vvv Code vvv
[hidden]

--	ThePixelToy
--	by antibrain

--[[

todo:
maybe some sort of GOL type
sounds/graphics/prebuilt maps when ptron 0.1 comes out
scene loader from clipboard to make something like TPT's save browser
more pixel types
more reactions
make neut/prot act like they do in TPT instead of acting like GAS/FIRE
saving/loading saves to hard disc. maybe using printh as file? cartdata?
chemestry?
air pressure
heat
simulate each pixel individualy so we can track its heat, speed, mass, weight, etc.
virus because virus in TPT is very satisfying
make fill/line tool not terrible
deco layers
ability to change sim speed
full keyboard support?

]]--
j=0
dc=5
size=0
sim=1

function _update() --update loop
	mx,my,mb=get_mouse() --get mouse data
	simulatepixels() --simulate pixels
   controls() --allow game to be controlled
end

function _draw() --draw loop
 mousedraw() --draw with mouse
 ui() --draw ui
end

function simulatepixels()
if sim==1 then
for i=1,4000 do	--4000 times per frame (30fps?)

		local x=rnd(480) --get random x and
		local y=rnd(270) --y values and
		local c=pget(x,y) --get the color of that pixel.
		if c==8 then --is red

			if pget(x,y+1)!=5 and pget(x,y+1)!=7 then --check all bordering pixels and if any of them arent a wall
				pset(x,y+1,c) --then set it to red
			end
			if pget(x,y-1)!=5 and pget(x,y-1)!=7 then --repeat for all other bordering pixels
				pset(x,y-1,c)
			end
			if pget(x+1,y)!=5 and pget(x+1,y)!=7 then
				pset(x+1,y,c)
			end
			if pget(x-1,y)!=5 and pget(x-1,y)!=7 then
				pset(x-1,y,c)
			end		
		end	

		if c==15 then --sand
		 if pget(x,y+1)==0 then --sand

			pset(x,y+1,c) --f a l l
			pset(x,y,0)	
		 end
		 if pget(x,y+1)==12 then 
		 	pset(x,y+1,c)
		 	pset(x,y,12)
		 end
		 if pget(x,y+1)==1 then
		 	pset(x,y+1,c)
		 	pset(x,y,1)
		 end
		end

		if c==2 or c==10 or c==11 then --gas (fire?)/neut/prot (i couldnt get neut/prot to act normal so i gave up :p )
				local j=flr(rnd(4)) --pick random number
				local q=flr(rnd(2))
				if q==1 and c==2 then --decay randoly
					pset(x,y,0)
				end
				if q!=4 and j==0 and pget(x+1,y)==0 then --go in random direction
					pset(x,y,0)
					pset(x+1,y,c)
				end
				if q!=4 and j==1 and pget(x-1,y)==0 then	
					pset(x,y,0)
					pset(x-1,y,c)
				end
				if q!=4 and j==2 and pget(x,y+1)==0 then
					pset(x,y,0)
					pset(x,y+1,c)
				end
				if q!=4 and j==3 and pget(x,y-1)==0 then
					pset(x,y,0)
					pset(x,y-1,c)
				end
				if c==11 then
					if pget(x+1,y)==1 and pget(x+1,y)==0 then
					 pset(x+1,y,11)
					end
					if pget(x-1,y)==1 and pget(x-1,y)==0 then
					 pset(x-1,y,11)
					end
					if pget(x,y+1)==1 and pget(x,y+1)==0 then
					 pset(x,y+1,11)
					end
					if pget(x,y-1)==1 and pget(x,y-1)==0 then
					 pset(x,y-1,11)
					end

				end
				if c==2 and pget(x,y+1)==12 or pget(x,y-1)==12 or pget(x-1,y)==12 or pget(x+1,y)==12 then
					pset(x,y,0)
				end
		end
		if c==12 or c==1 or c==9 then --warder/deut/lava physics

			if pget(x,y+1)==0 then --let it fall down
				pset(x,y,0)
				pset(x,y+1,c)
			elseif pget(x-1,y)==0 then --if there's an open space and it isnt in free-fall,
				pset(x-1,y,c) --allow it to drip left and
				pset(x,y,0)
			elseif pget(x+1,y)==0 then
				pset(x+1,y,c) --right as well
				pset(x,y,0)
			end
			if c==1 and pget(x,y+1)==11 or pget(x,y-1)==11 or pget(x-1,y)==11 or pget(x+1,y)==11 then
				pset(x,y,11)
			end
		end
		if c==16 then --remove fill border
			pset(x,y,0)
		end
		if c==3 or c==4 then --wood/plant/foliage
		 if pget(x,y+1)==2 or pget(x,y+1)==9 then
		  pset(x,y,2)
		 end
		 if pget(x,y-1)==2 or pget(x,y-1)==9 then
		  pset(x,y,2)
		 end
		 if pget(x+1,y)==2 or pget(x+1,y)==9 then
		  pset(x,y,2)
		 end
		 if pget(x-1,y)==2 or pget(x-1,y)==9 then
		  pset(x,y,2)
		 end
		 if c==3 then
		  if pget(x,y+1)==12 then
		   pset(x,y+1,3)
		  end
		  if pget(x,y-1)==12 then
		   pset(x,y-1,3)
		  end
		  if pget(x+1,y)==12 then
		   pset(x+1,y,3)
		  end
		  if pget(x-1,y)==12 then
		   pset(x-1,y,3)
	   	  end
	   	end
		end
		if c==14 then
		 if pget(x,y+1)==0 then
		  pset(x,y,0)
		  pset(x,y+1,14)
		 end
		 if pget(x,y+1)>0 and pget(x,y+1)!=5 and pget(x,y+1)!=14 and pget(x,y+1)!=29 then
		  circfill(x-4,y-4,16,2)
		 end
		end
		if c==6 then
			if pget(x,y+1)==10 or pget(x,y+1)==9 then
				pset(x,y,9)
			end
			if pget(x,y-1)==10 or pget(x,y-1)==9 then
				pset(x,y,9)
			end
			if pget(x+1,y)==10 or pget(x+1,y)==9 then
				pset(x,y,9)
			end
			if pget(x-1,y)==10 or pget(x-1,y)==9 then
				pset(x,y,9)
			end

		end
		if c==7 then
			if pget(x,y+1)==0 then
				pset(x,y,0)
				pset(x,y+1,7)
			end
			if pget(x,y+1)==12 then
				pset(x,y+1,7)
			end
			if pget(x,y-1)==12 then
				pset(x,y-1,7)
			end
			if pget(x+1,y)==12 then
				pset(x+1,y,7)
			end
			if pget(x-1,y)==12 then
				pset(x-1,y,7)
			end

			if pget(x,y+1)==2 or pget(x,y+1)==9 then
				pset(x,y,12)
			end
			if pget(x,y-1)==2 or pget(x,y-1)==9 then
				pset(x,y,12)
			end
			if pget(x+1,y)==2 or pget(x+1,y)==9 then
				pset(x,y,12)
			end
			if pget(x-1,y)==2 or pget(x-1,y)==9 then
				pset(x,y,12)
			end
		end
		if c==9 then
			local q
			if pget(x+1,y)==6 and q==0 then
				pset(x+1,y,c)
			end
			if pget(x-1,y)==6 and q==0 then
				pset(x-1,y,c)
			end
			if pget(x,y+1)==6 and q==0 then
				pset(x,y+1,c)
			end
			if pget(x,y-1)==6 and q==0 then
				pset(x,y-1,c)
			end

			if pget(x+1,y)==12 or pget(x-1,y)==12 or pget(x,y+1)==12 or pget(x,y-1)==12 then
				pset(x,y,6)
				q=1
			else
			 q=0
			end

		end
	end
end
end

function mousedraw()

if mb==1 and not(btn(5)) then --if left click then
  circfill(mx,my,size,dc) --draw red/wall at mouse pos
 elseif mb==2 then --if right click (or ctrl click)
  circfill(mx,my,size,0) --erase (draw black at mouse pos)
 end
if btn(5) then --check if x is pressed
	if mb==1 and j==0 then --only do this once per fill!
		ox=mx --set old mx to mc
		oy=my --same for old my
		j=1 --j
	end
	if mb==1 then-- if mousedown
	 omb=1 --set old mouse click to 1
	 rect(ox,oy,mx,my,16) --fill outline
	elseif omb==1 then --if its one then
	 rectfill(ox,oy,mx,my,dc) --fill
	 omb=0 --set old mouse button to 0 (because mouse was released)
	 ox=nil --nil ox and oy
	 oy=nil
	 j=0 --j
	end
else
	ox=nil --if x isnt pressed, nil x and y, then j
	oy=nil
	j=0	
end

end

function ui() --ui bar
 rectfill(0,0,480,8,29) --bar
 circfill(4,4,2,dc) --current color
 rect(0,0,8,8,5) --outline on current color
 print("size:"..flr(size),50,1,0)--brush size
 print(scolor,12,1,0)
 print("Cpu: "..flr(stat(1)*10),100,1,0) 
 if sim==1 then
 	print("running",445,1,0)
 else
   print("paused!",445,1,0)
 end 
 if dc==0 then scolor="erase"end
 if dc==1 then scolor="deut"end
 if dc==2 then scolor="fire"end
 if dc==3 then scolor="plant"end
 if dc==4 then scolor="wood"end
 if dc==5 then scolor="wall"end
 if dc==6 then scolor="stone"end
 if dc==7 then scolor="snow"end
 if dc==8 then scolor="eater"end
 if dc==9 then scolor="lava"end
 if dc==10 then scolor="proton"end
 if dc==11 then scolor="neutron"end
 if dc==12 then scolor="water"end
 if dc==13 then scolor="paint"end
 if dc==14 then scolor="bomb"end
 if dc==15 then scolor="sand"end
end

function controls() --controls
		if btn(1) then dc+=0.1 end --change brush color
		if btn(0) then dc-=0.1 end
		if dc<0 then dc=0 end --dont let color be too much or little or else
		if dc>15 then dc=15 end --the screen dies :(
		if btn(2) then size+=0.1 end --change brush size
		if btn(3) then size-=0.1 end
	   if size<0 then size=0 end--dont let it go negative
		if btn(4)==true then sim=0 else sim=1 end --pause when z is held
		if btn(1)==false and btn(0)==false then dc=flr(dc) end
end

[ Continue Reading.. ]

1
2 comments



1K Demo Collection By @AntiBrain (Me)

This is a collection of 5 democarts that are all under 1KB in total. you can find specific sizes and downloads at the links below or play them at the bottom of this post.

I recommend downloading the executables at my itch page below, because some of them can slow down the web player.

!!EPILEPSY WARNING!!

Many of these carts, especially GradGen and Barf, contain quickly flashing lights and colors. in barfs case, to make as much noise as possible, and in GradGen's case, to create a scrolling effect. if that sounds like it could hurt you, stay away from GradGen and Barf, and show discretion playing any carts here or in any other blog posts. your health always comes first.

Jam:
https://itch.io/jam/pico-1k-2023

Demo Collection Submission Page:
https://itch.io/jam/pico-1k-2023/rate/2262904

Itch.io page w/ downloads:
https://antibrain.itch.io/democollection1k

Individual carts:

GradGen:
[hidden]

Cart #grad1k-0 | 2023-09-15 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

[ Continue Reading.. ]

1
0 comments



Cart #wdm1k-0 | 2023-09-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

Cart for PICO-8 1K Jam!

Itch.io link:

https://antibrain.itch.io/wdm1k

2
0 comments



I was looking at the Pico-8 changelog and saw that themes were made easier to change. this got me thinking, how hard would it be to make a custom theme, or even accompanying thememaker.exe program? this seemed really cool to me, so i threw myself headfirst into pico-8's files. here are my findings/questions i have.

Firstly, in "pico8.dat" i found that it not only contains data code which i have no idea what it contains, but it also contains a lot of pico-8 code! after a bit of digging, i found that in this order, this pico-8 code is:

1: the pico-8 boot sfx
2:pico-8 democarts
3: i have no clue

I also found around 5 copies of the same lines of terminal syntax (eg 'ls' 'folder' 'load' etc.), which is interesting. i was mainly looking for the color codes that tell pico-8 what colors certain UI elements are, but i could not find them. they had to be in the mess of .dat stuff.

After awhile, i found that pico8.dat is byte-checked, meaning that pico-8 wont boot if pico8.dat has been altered at all. makes sense, it would significantly impact monetary gain if everyone could just write their own pico-8.

[ Continue Reading.. ]

1 comment



Anyone know why the site was down for the past 7ish hours? maintenance? did we get hacked?

EDIT: DOWN AGAIN but it seems were back?

Ive also noticed its impossible to create posts/comments. strange. at least edits work?

@zep do you know whats going on? are we getting ddosed?

it also seems that times are incorrect. i am editing this at 10:09 GMT-7 , and the edit date is wrong.

edit 2: seems posts are back? someone posted abt their movement system, so i guess posts are back. comments still dont work. very odd.

edit 3: i guess posts are gone again. maybe its a me issue. someone try posting.

also ive noticed that if you try to post and cant, changing "pid=" in the search bar to "pid= any number" will, if there is a corresponding post, let you view that post as if you were editing posts. even drafts.

edit 4: ive still been getting update notifications from the automated lexaloffle thing, but the links are wrong. maybe an api is down or something broke somewhere.

[ Continue Reading.. ]

7
5 comments



Cart #mangle-0 | 2023-08-17 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

Mangle08 (!!!SEIZURE WARNING!!!)

What this cart does is poke as many values as possible to mangle pico-8 into an almost unusable state. it will mess with colors, drawing, the map(?), and sounds.

This cart is best experienced when downloaded and ran on desktop pico-8, or at https://www.pico-8-edu.com/ . just type "load #mangle" to load it. after running it for a bit try messing around with the sprite editor, sounds, map, or anything else.

2
2 comments



Cart #grow-1 | 2023-08-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
7

GROW

Simple Democart i made.

I came across this idea when working on my other game (info on my twitter :) ), and decided to horribly code unglue it from that game and edit it into a little pico-8 democart! I tried to keep it similar to p8's builtin demos, but i couldn't help myself from adding little sounds and stuff. (Also if you want it @zep , its yours :) ) feel free to yoink code from this cart if you feel like it! i commented out everything that needs it so that even beginners can make sense of whats going on under the floorboards. er- what makes the-- never mind. i also left some map spaces open if you want to make your own levels!

Thank you all from the pico-8 community for not yelling about my awful code! i really appreciate all the support from my other projects and im glad im apart of this little community.

[ Continue Reading.. ]

7
0 comments



Cart #rndcart-0 | 2024-01-31 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
7

Random Cart loader

This cartridge loads a random numerical id cartridge of bbs. basically any cart on bbs thats cart id is a number.

Update 2.0 : Compress code + fix display bug

7
5 comments



Cart #picotemplate-0 | 2023-05-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

PICOTEMPLATE

Nothing special, nothing crazy. just a simple template cart for making games.

How to use:

click the little cartridge icon in the corner of the cart and right click the image to download. then just load it and start making your own cart! don't forget to save it as a new filename after you make something so that it doesn't save to the template cart.

0 comments



Cart #kaizoleste-1 | 2023-05-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
11

KAIZOLESTE: A NEW MOUNTAIN

A new mountain has been discovered where the impossible becomes possible and chaos becomes order and order becomes chaos. Random peaks, Deep caves, and penguins galore, Madeline faces her hardest challenge yet in Kaizoleste.

IMPORTANT:

This mod has SAAAAAVE DAAATAAA!!!! all of your progress is saved no matter where you play, even online! all your data is saved including: your current level; your total time played; your death count and; your berry count! if you click "delete save" in the pause menu, all of your savedata is gone. if you accidently click it, no worries! just beat your current level and you wont lose any progress.

Also credits to evercore team for evercore, because i used it as a base for this mod.

[ Continue Reading.. ]

11
20 comments



Cart #picobrowser-16 | 2023-11-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
10

READ THIS FIRST

Click the cartridge icon at the bottom of the cart and right click on the image to save it, then just plop it in your /carts/ folder. To use it in desktop pico-8, just put it in your carts folder. For use in pico-8-edu, go to immediate mode (the terminal) and type load #picobrowser, then type save [NAME].p8 where name is whatever you want. then, in pico-8 or edu, just type load name.p8, again where [name] is what you named the file.

more info:

This cart was made using @dw817 's "free roaming directory" cart. Their version, however could only see in /carts/ and couldn't load anything.

[ Continue Reading.. ]

10
7 comments



Cart #artgeneratorthing-0 | 2023-05-15 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

randomly draws a random pattern over time!

very fun to look at.

thats all

have fun :)

3
0 comments



Cart #textgamdemo-2 | 2023-03-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

Text game!!

read this for context:

Update 2.0!!!
changelog:
added more blocks and geometry to play around with.
made the air lifty thing easier to see.
added some spikes
made it harder to fall out of the world
fixed collision being terrible
revised code
Bug fixes:
fixed left/right collision for all objects
fixed jumping on spikes
fixed momentum being terrible
fixed top collison sometimes eating jump inputs
fixed top collision sometimes not existing
fixed visual bug where player would be in the ground
made blocks and players and other objects easier to see/differentiate against other objects

Info/credits:
this is a pico 8 "game" made without the sprite sheet or sprite, draw, fill, map, or any graphical tool outside of just the basic print() command! every asset in the game is a built-in text character! all code was made by me, which explains how messy it is, and was written in about 1 week.

this is really meant as a demo/proof of concept thing and more for learning purposes. since everything and more can be drawn as a simple text char, and most data is made up of basic math, this cart has a really low file size, and can be used to save space for sprites, tokens, map data... really anything that can be represented by a simple text character!

if you need any more info, or want to know how to implement these concepts into your own projects, just click "view code", or download the cart and boot it. dont worry if you are new to pico-8, because the whole program is heavily commented out, with even an entire tab dedicated to explanations/credits!

i hope everyone finds this cart as cool and interesting as i did! have fun creating!

...Oh yeah! almost forgot! controls are arrow keys to move and X to jump! have fun!!

vv OLD VERSION vv

[ Continue Reading.. ]

3
0 comments



Cart #celestenograv-1 | 2022-11-18 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
9

Celeste without gravity!

this was really fun to make! i hope you enjoy!

INSTRUCTIONS
Celeste mountain seems to have flown off into space somehow! get ready for the weird gravity and the mood-like surroundings to get to the top! sounds and music have slowed down and everything is all moon-like and gray!

IMPORTANT
Original game make by Matt Thorson and Noel Berry. make sure to check out the og game too!
If you get stuck, you can retry your current level in the pause menu. (Enter/P to open)

Make sure to grab balloons to get another dash when your stuck!

Have fun!

9
13 comments