Small mod to Celeste for SecksWrecks' SGDQ run. It modifies the game so that if you complete a level without getting the strawberry, the level resets, just in case, since the run will be streamed live.
Posting it here so it can be found on splore, in case of technical problems.
Changes are here: https://gist.github.com/justinj/7b19cc0ef66f729eb60cc957cedc020e
EDIT: He ended up using the vanilla version of Celeste instead of this!

I am working on my first ever game, a gltich themed breakout, based on the Squashy from Pico8 Zine#1 and I am now working on making the glitch effects that will be part of the gameplay. What I have now is a way to add a static noise through pget and pset and this kinda corrupted VHS by using random values over x06000 with memcpy.
Memcpy is great for making random glitch effects. But what if we want to, for example, take something from a particular part of the screen and paste it another place we have chosen. Right now I am just doing a trial and error of values and if I get close, I call it a day... but I think there has to be a better way.
Basically, I am wondering if there is a way to find exact memory address of particular screen coordinates? Some kind of a map perhaps of x,y coordinates and memory values? Or even better... a formula that we can use to input x,y of source and destination that would return the memory values we can use memcpy on.
I am pretty sure that there has to be a some kind of underlying math that translates one to the other, but I am a noob, so don't even know where to start trying to back-engineer it.
Would such a map be possible, or would the memory values change depending on color of each pixel for example?

NEW!!! BRAND NEW GAME FROM MYTHRIL STUDIOS!
Hi. My name is Rudlin. I'm the CEO/Lead Executive/Head Writer/Head Designer... of Mythril Studios. You get the point. I'm working alone.
About a week and a half ago, I released a prototype for a new game I was working on, set aboard a spaceship. It was to be a survival game, with waves of enemies coming at you from all directions. And the prototype, to me at least, was quite fun, and showed a lot of potential.
However, as I was browsing the Pico-8 BBS, I began to notice a trend. All the programs currently being released for this system are either short, "arcadey" games, or they are little experimental demoscene-type stuff. And while that's all well and good, the truth of the matter is I want a game that really shows off the Pico-8. Something that really pushes the system above and beyond what anyone thinks is possible. And, since at the time I didn't see anyone else doing anything like that, I decided I would be the one to do it.
Now, I am by no means a very skilled, or very experienced game developer. Sure, I've made a few short games, and most of them on other platforms, but I do have one thing going for me: history.
I am huge on studying video game history.
I have played the games of the past, I have studied everything about them, their sound, their graphics, their gameplay. I understand what makes these games tick, and can apply that to this project.
And what is the project, you may ask?
[b]

Interesting discovery today: Because the latest version of pico8 supports more punctuation characters, it's now possible to encode binary strings as base64!
I prototyped this on pico8 0.1.8. By using this we can slightly improve the size of encoding binary data in text form, it's 1.33333x bigger compared to hex's 2x size. Granted, pico8 does some compression to the code, so not sure if the added entropy of packing things closer together will work in everyone's favor, but this is worth a shot. It won't be standard base64, because there's no distinction between uppercase and lowercase, but there's enough special characters to make up a custom 64-character dictionary for the encoding.
-- Set up the encoding/decoding lookup tables.
b64d={['']=0}b64e={}b64c='0123456789abcdefghijklmnopqrstuvwxyz-_+[]{}|:;=.<>?/~`!@#$%^&*()'
for i=1,#b64c do
local c=sub(b64c,i,i)
b64e[i-1]=c
b64d[c]=i-1
end
-- encodes a table containing 8-bit numbers (binary data) into a base64 string
function encode(t)
local s,e='',b64e
for i=1,flr(#t/3)*3,3 do
s=s..e[flr(t[i]/4)]..e[bor(t[i]%4*16,flr(t[i+1]/16))]..e[bor(t[i+1]%16*4,flr(t[i+2]/64))]..e[t[i+2]%64]
end
if(#t%3==1)s=s..e[flr(t[#t]/4)]..e[t[#t]%4*16]
if(#t%3==2)s=s..e[flr(t[#t-1]/4)]..e[bor(t[#t-1]%4*16,flr(t[#t]/16))]..e[t[#t]%16*4]
return s
end
-- decodes a base64 string into a table of numbers
function decode(s)
local t,d={},b64d
for i=1,#s,4 do
local x,y,z,w=sub(s,i,i),sub(s,i+1,i+1),sub(s,i+2,i+2),sub(s,i+3,i+3)
add(t,bor(d[x]*4,flr(d[y]/16)))
if(#z>0)add(t,bor(d[y]%16*16,flr(d[z]/4)))
if(#w>0)add(t,bor(d[z]%4*64,d[w]))
end
return t
end
-- testing it out
for i in all(decode(encode{1,2,3,4,5}))do
print(i)
end
|

Unfinished submission for Star Trek Jam using Pico-8. Based on Oregon Trail.
First Pico-8 game —first game ever really. First game jam. Bit off more than I had time to chew! Looks pretty good, learned a lot. I will post the finished version when it is available.

Made this for Sophie Houlden's Star Trek Jam! It's just about playable, although there's plenty I'd like to change or add.
INSTRUCTIONS:
Map view:
Left/Right - select a planet
Z - travel to planet (this will cost the number of fuel displayed above the selected planet), or will beam you down to the planet if you have selected the same planet your ship is parked at
X - warp. If you have at least one green warp crystal, you can warp to the next system with X
Up - go to your ship's loadout. Swap your tools here or refill them
[having a drill is very useful for collecting crystals, it needs to be kept topped up]
The red matter will destabilise the current system, so don't spend too long in any system!

A chain reaction type game where you attempt to destroy nearly all the particles in the level.
Controls: Arrows to move, z to explode.
This is a demo, playable and (IMO) fun but it needs some polishing, most notably in the difficulty/progression. Adding more features to vary the levels would probably be a good idea.
Known bugs: Levels from about 8+ are not great, level 11+ is broken...

0.3
- Add of a high score and a virtual keyboard to type your name. Thanks to @afburgess
0.2 Change log:
Option menu to change
- The speed of the snake, from 5 to 100 in % of the maximum speed.
- The dash in % of movements which increase speed.
- The grow in % of movements which increase size.
- The control (2 directions, 4 directions or only one direction for the ones who like challenge) ^^
The apples are less likely to appears close to the walls
The snake is now green, which is more realistic. ;)
The snake start shorter and doesn't grow as much as before when an apple is eaten.
Fast restart.
Enjoy! :)

DASH and PUSH and DASH and PUSH and die... and DASH!!!
A dash & dash game made for the #mysticwestern gamejam!
It features a cowboy being pursued by some sort of mystic worm!
Get to the button to make the worm disappear but also make another one appear!! Your score goes up that way too!
The arrow keys / D-pad lets you move.
The Z key / C key / o button lets you dash.
Have fun and tell me what you think!

Put this together based on another project (https://github.com/PROGRAM-IX/vectorwars). No sprites used whatsoever, all content is generated procedurally and drawn every frame. I love this kind of game, but thought it might be a little heavy for PICO-8. Apparently not, at least in this small version. I'll probably play more with this for other more complex games.
ARROWS MOVE
Z FIRES
PROTECT YOUR HOME
At 0x5f10..0x5f1f you can remap the screen palette. You can't change it to something other than PICO-8's native colors, but if you wanted to flash anything yellow you could do this in your draw:
poke(0x5f1a, flash and 7 or 10)
flash = not flash
|
This is handy if you need to cycle colors on parts of your screen that you can't afford to redraw.
It also might be handy for avoiding a lookup table if you were writing a demo that drew a grayscale image, because you could do this:
poke(0x5f10, 0) --black
poke(0x5f11, 5) --dark gray
poke(0x5f12, 13) --gunmetal gray
poke(0x5f13, 6) --light gray
poke(0x5f14, 7) --white
:
:
pset(x, y, intensity0to4)
|
Or similarly for large rainbow ramps like you'd use for fractals. No lookup table needed.
I hope this is okay to use. Zep? :)
This thread has moved to the completed version:
Underwatch v1.0
Any resemblance to existing copyrighted material is purely coincidental and unintentional.






3 comments














