this is a bootloader
I'm currently working on a project with it, but I'm exited to see what others come up with!
It should be possible to simulate linux (like was done in scratch). But, that is not what im working on.
Oh, the branding? Don't worry about it.
edit: this does not work in browser.
edit II: to be clear, this is not a real bootloader, like picoboot by @rikamori, but a way to execute cartridges differently. also, it is still a WIP because i cant figure out how to run it sandboxed yet.
Hello everyone. In the last couple of months I have started to appreciate arcade/retro console game design again and would like to focus my attention to this style as a game developer. Right now I'm working mainly in Love2D and the results are pretty good, for a pixel art game. However it's still fake retro, if you know what I mean, in theory I could do hires graphics with hi-fi sounds if I wanted to. There is something more to the games developed for real systems with real limitations, however weird this may sound. It's hard to describe.
What I'd like to ask you is, do you feel there is an added value to a retro pixel art game if it's developed for a system with hardware limitations? Would you be more inclined to buy such a game instead of a fake retro game made in modern engine?
Let's take ZeroRanger as an example - the game itself looks plenty retro but under the hood it's the modern and mighty Game Maker engine running on a system with gigabytes of RAM. Would you like the game more if it was made in Picotron even though in reality it would look and sound very similar? I know for sure that casual gamers would not care at all. But I'd rather focus on gamers that appreciate real retro game, even though the target audience is much smaller.
Made some creepy grasscritters (275 chars)
They are definitly staring at you
(275 chars)
r={}k={3,1,0}t=0for i=1,400do
add(r,rnd()-.5)end::_::t+=.02cls()s=sin
for c=1,2do
for x=1,17do
for y=1,17do
w=r[y+x]v=x*8+s(y/100)+c*2+s(t+r[y]/2+w/5+x/5+y/10)*4-10u=y*8-s(t+y/80)-w*s(t/20)*14-10line(x*8+8-10,y*8+8-10,v,u,k[c])pset(v,u,12)pal(3,131,1)end
end
end
flip()goto _
|
A cozy oracle tool with customizable dice rolling, yes/no question, and card drawing features (including standard and tarot).
Click the arrows to edit which dice you roll, your card deck set up, or what answers are possible from the magic eight ball. Click the bars to roll dice, populate a yes/no answer, or draw a card.
Go alone or grab your buddy and jump on a bike in this western themed 2 player action extravaganza, compete to get a high score, ram each other, steal sidecars, shoot the enemies, chase down the brain train.
instructions:
.fill the power gauge by shooting enemies
. once the gauge is full a sidecar will appear from the top
. ride onto the side car to gain extra fire power or shoot to cancel bullets
X=fire
O=launch sidecar
start menu to erase highscore / pvp tally

Having trouble grasping what the 0x5f5e memory address "color bitplane read/white masks" does?
This simple postcart should help you understand what it is about, and you can figure out the rest of that!
(262 chars)
c={}for i=1,4do add(c,{})for j=0,7do
add(c[i],{rnd(127),rnd(127),rnd(5)-2,rnd(5)-2})end
end::●::cls()for i=0,3do poke(24414,240+2^i)for j=1,#c[i+1]do
a=c[i+1][j]circfill(a[1],a[2],10+sin((t()+j)/8)*4,15)a[1]+=a[3]a[2]+=a[4]a[1]%=128a[2]%=128end
end flip()goto ●
|
Usage
This should be used to learn how the video memory works at the low level.
What this function does
It gives you a higher level wrapper for PICO-8s 4-bit framebuffer (0x6000-0x7fff) (lower 4-bits: left pixel, upper 4-bits: right pixel), and does some bitwise math and multiplication to put a single pixel on screen.
setp is recommended because it's the officially documented way writing single pixels directly.
Code Snippet
NOTE: This function should be only used sparingly, it's expensive to use and not fully optimized (e.g. batching and minimizing the code to only required calculations) (using it heavily can cause severe lag).
function putpixel(x,y,col) -- floor x & y to stop rounding errors in pixel position calculations x, y = flr(x), flr(y) -- prevent pixel from wrapping around the screen horizontally if x > 127 or x < 0 then return end -- get 1 dimensional bit offset, multiplying y by the screen width to iterate by line local pixel_pos = x + (y*128) -- divide the pixel position in half to fit into the 4-bit offset to a 2 pixel pair in memory local offset = 0x6000 + pixel_pos\2 -- do not draw pixels if they are outside the framebuffer if offset < 0x6000 or offset > 0x7fff then return end -- get the 2 pixel pair of colors we are writing to local pixel = peek(offset) -- get which nybble (4-bit) offset the color resides on local nybble_shift = (pixel_pos&1) * 4 -- mask and set the pixel color from `nybble_shift` offset pixel &= ~(0x0f << nybble_shift) pixel |= col << nybble_shift -- write pixel to framebuffer poke(offset, pixel) end |
Example Cartridge
This example shows how the putpixel function only overrides pixels at their specified positions without completely removing other unrelated pixels from the screen.

Hi, hope you are doing well! I made this cart of different tiles for you to use in a game! The art is free to use and you do not need to give me credit or anything to use any of the graphics. Run the cart to see a little demo of different scenes that you can use!
The artwork fits a creepy style horror game, but can be used and modified to fit your project!
Happy coding, friends!
Overview:
Re-Leaf is a simple but meditative cozy game made in Pico8 by Robin Funck and Daniel Johnson-Tobler for Comfy Jam Autumn 2026. Your only goals are to gently reflect on the changing of seasons & rake a pile of leaves big enough to lay down in.
Each time you rake, a gentle musical phrase is created, blowing around the air like dust in the wind. Keep raking over time to unfold new generative soundscapes each time you play.
Rake leaves into each other to create a pile, once your pile is big enough, rest a while and listen to the music you've created return back to itself.
Press Ctrl+R to restart when you're ready to begin again.
Thank you for playing <3

The lineoniums are plasmating early this season
(271 chars)
c=cos::_::pal({1,-13,3,-5,11},1)?"⁶1⁶c"
for y=4,124,5do for x=4,124,5do for p=0,1do
tt=t()+p*.03u,v=x/99,y/99for i=-.5,1do
u+=c(v-tt*i/5)/9v+=c(u+tt*i/6)/9end
a=c(u+v)if(p>0)r=abs(a-b)*200m,n=x+c(a)*r,y+r*sin(a)circfill(m,n,r/4,7)line(x,y,m,n,r/.7)
b=a end end end goto _
|

A small experimental prototype made for ocledot's prototyping courses.
Only one button is needed to play this game - X.
Press X to change direction of walk, hold X to light a lamp or to hide in shadow.
Walk around, light all lamps to open the door and leave corridor and dodge wolves that may eat you instantly.
Wolves don't like lit lamps and won't cross them, use that to your advantage.
Note: this prototype may be a bit buggy.





0 comments




