Is there any way of editing the spritesheet at runtime so that I can use the spritesheet as the save location for a game?
The game consists of a 32x32 grid but each grid can have many states so figured I could store that as binary, but that doesn't really work well with the cart data limitations. So I figured if I can store the information to the spritesheet, I'm just utilising the memory available there but I cant seem to find much documentation on the matter. I know there is sget/sset but when I used that the screen had alternating colour lines appear... (I think I was putting it on the lower half of the spritesheet if that might be part of the issue?)
Maybe a text file would be better?



Hello, everyone!
I am very new to this and not a good programmer in general (language comes much more naturally to me than maths) so I need your help. I'm making my first PICO-8 game. It's a WWII submarine simulation game where you have a top-down view of your sub. You can dive (which just hides the boat) and fire torpedoes. I have most of the graphics done. What I need your help with is this:
How do I rotate the game world around my boat and keep track of enemy ships I spawn? The game world itself is empty (it's just the blue ocean). But I want to spawn in ships randomly off screen and then have them move slowly across the game world. And I want my boat to be able to turn around slowly with the camera locked to the boat. I've decided the boat will just move at a fixed pace so all the turning is doing is changing the view of the world (which is what you see on screen). I might actually just fake movement of the player boat by moving the enemy ships in a relative direction accordingly.
Let's assume the boat isn't moving. I can tackle that later, when I have this other stuff in place. How do I define a section of ocean a few screens wide in all directions and then spawn enemies there? And how do I rotate the view around the sub (including the enemy sprites) and then keep track of their position relative to the rotating camera?


Hello whoever is reading this! For some time I've wanted to publish one of my pico 8 games to cool math games and one of there requirements is that you have an HTML version of your game and I'm not sure how to do that. I've tried the export cartname.html thing in pico 8 but the files that it exports don't seem to do anything. If someone has any experience putting a pico 8 game on cool math games or another website then I would greatly appreciate some help. Or you can just tell me that I'm stupid for asking this question. Thanks!


Play with sandpiles, mathematical constructs that have simple rules and odd properties.
Use a brush to pour sand on, or go by singular grains. Flatten to any height with the brush or using the menu. Swap out colors with the built-in palette.
Options:
❎: to brush
🅾️: to palette
arrows: select options
Brush:
❎: paint
🅾️: back
arrows: move brush
Palette:
❎: switch theme
🅾️: to options
arrows: select options
Feedback appreciated!
inspired by Numberphile


Alright everyone, this is the moment you've waited for: the release of Celeste 2-1!
This mod for Celeste Classic 2 replaces Lani's grappling hook with Madeline's dash from Celeste Classic 1. I put a lot of work into this one to make the dash fun and work well. Thanks to the Celeste Classic Discord for the support and thanks to Shadet for the name idea!
Changes:
- Removed grappling hook and carrying functionality
- Replaced grapple points with dash gems (art is a poor recreation of Celeste's gems)
- Added multi-directional dashing from Celeste Classic 1
- Collecting a berry or dash gem, or landing on the ground, a snowball, or a spring replenishes your dash
- At level 7 you receive the double dash (sorry gem-skippers, although there technically is no gem...)
- Lani's scarf will change colors to show how many dashes you can use








Game I started in January of 2021, but never initially completed until May.
Objective: Complete the levels by getting to the doghouse and collect the bones.
Instructions:
- You can push shoes, carts and chainsaws. All of these fill up holes, but the chainsaw can chop down trees and the carts can only move in one direction.
- Once a hole if filled up, you can walk and push stuff over it.
- The blue buttons are used to open and close the bridges. The red buttons are used to open and close the fences.
- The cats will attack you if you stand next to them, and the dogs will attack you if you stand in the same row or column as them.
- You can push stuff in the water (USE THIS), but you die when you walk into the water yourself.
Switch Block Dungeon Mega Thread
This project is finished, check out the Itch.io page for a more complete game page (https://mitch-match.itch.io/switch-block-dungeon)
Welcome to my Pico-8 platformer project. This thread will contain any updates and dev logs so check back here every now and then for news. If you have any questions or concerns leave them in the comments and I'll get to them eventually.
For inputs and controls use the arrow keys for pc or the D pad for mobile devices. All the other buttons change from version to version but this should work for most updates.
Controls:
- Move: S,D,E,f or Arrow Keys
- Jump: Z,N,C
- Switch: X,M,V
- Enter: Menu
Update V1.0
V1.0 Is finally here! And the biggest improvement of all is the new consistent 60 fps in all rooms. For as long as this game has been in development it has had performance issues, luckily it was a simple code fix. There are lots of small details but nothing super notable, some aspects have been removed from 0.8 to accommodate for the code constraints but the I think the game didn't loose anything important. Overall this has been such a fun and rewarding experience and I wouldnt trade it for anything. Thanks to everone who tested this and gave feedback and a special thanks to @Gruber for letting me use his music. Thanks for playing! - Mitch Match




Here's a mod I made for Celeste 2 to test out a what the game is like without any grappling. I plan to use it as a basis for a mod of Celeste 2 with Celeste Classic's dash mechanic, but for now, enjoy!
(Fixed berries not showing)
All credit for the original game goes to Noel, Maddy, and Lena https://mattmakesgames.itch.io/celeste-classic-2











Hi! This is my first PICO-8 game. In monclo, an adventure game with light platforming, you can pick up and throw anything. Picking up enemies allows you to redirect their attacks for your own purposes. Explore the area, solve puzzles, and escape!
CONTROLS
🅾️ : pick up/throw (you can only pick up monsters from behind, unless they’ve been frozen!)
❎ : jump
mash 🅾️ or ❎ : free yourself from ice
arrow keys: move
.gif)
.gif)
Feedback is very appreciated! Thanks for checking it out! :)



SFX instruments that have no loop set (i.e. both loop parameters are set to 0) still loop when used in a pattern.
Also, if effect 3 is used at the point where the SFX instrument should be finishing, it won't retrigger the note until the following beat. If you have a long string of notes with effect 3 it won't trigger the note until the beat after the last note with effect 3 on it.
Here's a sample cart with SFX to demonstrate the issue. It doesn't have any code so you'll have to open it the editor.

I want to do something like this:
function make_object_from_flag(x, y, flag) local flag_obj = { [1] = make_impassable_object(x, y), [2] = make_coin(x,y), [4] = make_screen_transition_object(x, y), } flag_obj[flag] end |
But for some reason it keeps saying flag_obj[flag] is a syntax error: syntax error line 119 (tab 0) flag_obj[flag] syntax error near 'end' attempt to call a string value
Oddly enough, if I comment out flag_obj[flag] but leave the flag_obj table uncommented, it says I run out of memory despite only having a few hundred lines of code
here's the entire code snippet if you need more context:




Hey @zep,
I've been messing around with software synth via the PCM trick and I feel like there's sort of a fundamental problem that's detracting a lot from the quality of what comes out the back end, needlessly so, not to mention making it uncomfortable to the listener's ear.
As far as I can tell, you're feeding the 5512.5Hz signal into the audio version of a "nearest neighbor" sampler to upsample it to the host OS' audio hardware sample rate, which is typically gonna be either 44100Hz or 48000Hz. That means repeating the sample values as many times as necessary to fill the gaps. In this case it'd repeat the same value around 8 times. This of course produces stairsteps on the 44100Hz+ "curve".
The issue with that is that modern audio hardware has really good fidelity and it's going to reproduce those sharp stairsteps very faithfully, effectively overlaying a constant 5512.5Hz triangle wave on the original wave that pulsates its amplitude based on how big the deltas between samples are in the original wave.




