Blocks of War: Village of Annoyance
This game is discontinued because it was super boring and no one liked this game.a
About
This game is about villagers who had a disagreement with the Noisy Villagers because of loud noises at night. The Noisy Villagers would yell every day and night to wake everyone up to assure they wouldn't get enough rest. One group, the Pumkin' Villagers, decided they had enough of the Noisy villagers' yelling. They decided to go to "war" with the Noisy Villagers.
How to play
Your objective is to get rid of the smiling light-gray blocks on your turn. Below is what the sprite looks like:
|
|
[0x0] |
When you win, you'll hear this SFX:
Hi, I'm trying to write a game in a very clean way instead of cramming multiple copies of the same code on multiple carts, most of this is solved with #include but for what I've tried, you can't do include from subfolders, what I mean is that for example, if I have a cart on a subfolder called "font" but wanna include functions from a cart located on the parent folder, something like
#include ../cart_with_functions.p8
won't work, is this even possible to do with include or am I just out of luck?

According to the manual
:: Special Commands These commands all start with "\^" and take between none and 2 parameters (P0, P1) s set tab stop width to P0 pixels (used by "\t") |
However, it appears to me that it isn't in pixels, but rather by characters.
This code snippet
?"1234567890" ?"----------" for i = 1,9 do ?"\^s"..tostr(i).."1\t2\t3\t4\t5" end |
yields this output
Additionally, if \t is the first character in the string, it seems to be ignored.
?"\t1234567890" |
outputs exactly as if no tab were included.

so, i'm planning on doing kind of a demake of rhythm heaven(with new minigames cuz, nintendo y'know?) but i don't think a single pico cart would be able to hold all music/sprites (i've only been able to hold 8 songs w/ pic-o-beat)
i've been looking around and i saw some options but i have no idea on what would work better for me, this is what i found so far:
compression: there's a lot of code about this here on the bbs that i find fascinating, but have zero idea on how it works to make it do the songs intead of the spritesheet
load a cart per stage: have a main menu cart and load each stage in different carts, the loading isn't great but if it's the best way to do it its allright
load only the music and spritesheet: i remember seeing this somewhere but i can't find it anymore, i imagine the loading would be quicker, and i could easily reuse mechanics between minigames but i have no idea on how to do it
a ton of peeking and poking: have a main cart with all the song and sprite data that "set up" the data on a series of "cartdatas" that can be memcpy-ed at runtime. this would allow community submissions with, i imagine, little to no difficulty but would be really awkward for the user

Description:
In this game you play as a monkey who LOVES BANANAS! As all monkeys he's willing to solve outrageous puzzles to get some bananas.
Controls:
(<) and (>) keys to move
(up) or (O) to jump
Push boxes by walking into them
Climb by touching vine and pressing (up) or (down)
ALL LEVELS ARE UNLOCKED FROM THE START!!!

Hello, i need to know if i can install and use pico-8 on my chromebook ARM, im new to everything so talk to me in simple English please, not up to speed on the lingo yet. i purchased it and downloaded the zip file, i dont know where to go from there. do i put the file in my linux files and what, type in commands or something? Like i said big NOOB here. please help and thank you.

Chamber Escape
My latest Pico-8 game is now available to play! It's a single screen platformer with 24 levels to play through. It's quite short - you can beat it in under 5 minutes if you're good enough. Can you beat it in under 5 minutes?
Also available on itch.io:
https://niall-chandler.itch.io/chamber-escape

It'd be really intuitive and helpful if the select() function also detected a boolean value for the first argument, and returned the first arg if true and the second arg if not.
A lot of us write our own ternary function that does this anyway, because it can work around some gotchas with the cond and tval or fval structure, so this would obviate the need for it while extending the existing API in a very intuitive way.
e.g.
-- this works as you'd expect a C/C++/JS-style "cond? nil : that" ternary op to work this = select( cond, nil, that ) -- this doesn't, it returns 'that' regardless of 'cond' this = cond and nil or that |
Plus I think this would evaluate faster on the host.
Should probably also treat nil as false, btw, for maximal usefulness and congruence with Lua's concept of conditions.

Hi guys!
I am not sure if I am in the right place to ask this. Feel free to move the thread if convenient.
I just built a small handheld to play pico-8 games, but after using it on a plane I realize how convenient would it be to bulk download all cartridges, in order to "splore" them later while being off-line.
Is there a way to do this? I already tried to find an answer.
Thank you!
p.s.: This is the device

GRVRBBR
By: Superheavyduty
[superheavyduty.itch.io]
(MOUSE REQUIRED TO PLAY)
Context:
As a necromancer, your most valuable asset is a large collection of bones. Unfortunately you need to source these bones yourself, but the ghosts who owned them won't let you escape their final resting place alive!
Use your mage hand to send them to the next plane and return to the entrance of the tomb to claim your collection!
The tools at your disposal:
-
Mage Hand [Left click/hold]:
A powerful focus spell that can send spirits to the next plane of existence. - Lingering Platform [Right click]:
A friendly entity will form a platform to help you navigate the crypts.
Play Now:

I'm not 100% sure but I think I found a bug related to PAL and sprite fill patterns. The manual says
PAL() resets to system defaults (including transparency values and fill pattern) |
However, the following cart shows that PAL does not clear out the fill pattern applied to sprites.
Here's the code for that cart. Note that you have to uncomment fillp() in order to reset the fill pattern.
function _draw() cls() pal() --fillp() sspr(8,0,8,8,10,10,24,24) sspr(16,0,8,8,10,40,24,24) fillp(0b1111111111111111.01) sspr(8,0,8,8,70,10,24,24) sspr(16,0,8,8,70,40,24,24) end |
Please let me know if I'm misunderstanding something! It could be that this is expected behavior and I just misread the docs.
There's a strange issue happening when i try to edit the bottom two visible rows of the map using the new "fullscreen" map editor mode (shift+tab). Basically, the bottom two rows are uneditable; I assume pico8 is mistakenly trying to prevent me from editing the area underneath the red chrome that shows up in nonfullscreen mode
It seems to fix itself if you pan around in the normal map editor?
Hi! I wrote this little cheat code function and decided to share it here if anyone wants to put cheat codes on their games, here's how it works:
paste all code labeled as requiered onto your cart, this includes:
- chsys={}
- all code on the _update function
- the add_chsys function
then, to call a cheat code, write it down on a table like this:
konami_code={⬆️,⬆️,⬇️,⬇️,⬅️,➡️,⬅️,➡️}
and then call the add_chsys function once (if you call it on an update function/every frame you'll chug the system):
add_chsys(name_of_your_cheatcode_table,function_to_load_if_it_succeeds)
So for example if I wanted to make the game stop when the Konami code was detected then I'd put this on my _init function (or any function that only acts once):






0 comments





