Log In  

BBS > Community Superblog
All | Following | GIFs | Off-site

I wrote a script for Aseprite which takes the selected pixels (or the entire image)
and encodes it into PICO-8 GFX format, such that it can be pasted in the sprite editor or the BBS.

// i couldn't figure out how to arrange it in a cleaner layout, sorry

The script, and instructions on how to use it, can be found here: asep8 git repo

3
0 comments


Cart #squiddy-0 | 2021-09-28 | Code ▽ | Embed ▽ | No License
66

(click to expand)

Heeey, it's Squiddy! This is a game made in 1017 bytes for PICO-1k Jam, co-designed and pixelled by @castpixel (twitter). This is our second production as pod; you can find the first one here. Squiddy is also up on itch.

Technical Details

1024 bytes is an interesting size limit for a game; it's large enough to try for some relatively detailed game logic or visuals, but small enough that you need to execute some weird programming tricks and design pivots to get everything to fit. If you found this post because you heard that PICO-8 is a nice introduction to game programming, I apologize for the following code snippets! First up, here is the full source code for the game that includes the graphics and map data. It can be pasted into PICO-8 0.2.3 or later:

➡️=0t=8⬇️=7for x=0,3800do
➡️-=1if(➡️<1)➡️=2r=3⬇️=7-⬇️ while r>2do r=ord("○ュ?\0゜ョヤャ◝◝⁷ツん¹ュ=◝に◝+ンョャヤ○る³ユ\n <◝エ𝘤ムもにュよ◝トラ⁙⁴よ░²リムリᵇ³ト■𝘨○ワ;◝エらョ0\0pクシチ◜◝=ュoれ/ウワ◝モャいユ𝘪ゆ?=0◝cりdオトは⁷ト?⁵\0𝘴リ◆○☉6サ¹6ア?ュ◝❎。。ユユ◝ャヤ2v\0q○¹\0ワw3v\0001よ¹\0◝?𝘰v⁴ャ゜⁴ら█pタp⁵ュ?オ; <○○ヨ◝oに◝𝘰ュ?1░ろヲア◝ᵇp○\0s³ヲュひ\0|れツ◝リツ𝘰゜6ト⁴ュ?p◜◝モpᶜオん▶○◜ャ\r○𝘣◝▶トリに1◝⁷ョ_ンん゜ョょ737⬇️○ョ¹ュのら◜-エs○ユト⁴らメ\0³•~◝エろヨ/゜3\0な?𝘯ュ◝よ▮ラヨsクろ?リトンミエセろ⁵ᵇムり3オ◝𝘮rユ⁷ワ>pンᶠ゜シてン>ナレ◝𝘰⁙ュuワ◝シ◝1゛ュ4チ◝?◝◝𝘰\0゜ᵇユ◝エ◝4◀0○ ◝◝◝◝◝\0ら𝘬\0",t\8)>>t%8&3t+=2➡️+=r end
sset(x%95,x\95,⬇️)end
o=128w=256f=0r=4128🐱=cos ➡️=0
❎=64🅾️=r*2s=spr::_::t+=.03camera(❎,🅾️)map()v=0for i=0,t/2do
x=i\32y=i%32v/=2v+=sget(r%o+x/4,r\o+y/4-🐱(i/870)/2)&4mset(x,y,v)p=i%4y=i\4*5%31
if(mget(x,y+1)==4)s(0,x*8+🐱(p/4-t),y*8-p*4)
if(r%5==2and i<o)s(i&2,-t*i%w,i*i%w+🐱(i/9+t)*3)➡️-=1>>12
end
if(r==4136)s(8,92,112,5,5)
s(20,o+🐱(t/2)*9,90+r+🐱(t)*5,1.5,2)b=btn()n=b&32f=f/2+n/20k=b%4\2-b%2if(f>n)➡️+=f*k ⬇️-=f f=0
❎+=➡️ 🅾️+=⬇️ ➡️=-➡️ ⬇️=-⬇️?"ᶜe\^wfin ♥",108,60+r
if(mget(❎/4,🅾️/4)<1)➡️*=-.95⬇️=.05-⬇️*.9
r+=(❎\o+🅾️\o*o)*8❎%=o 🅾️%=o
s(16+(f&2)+k%2*32,❎*2-8,🅾️*2-8,2,2,k<0)?"⁶1⁶c"
goto _

Sprite Storage

Here's the 95x40 spritesheet (hidden for spoilers).

[ Continue Reading.. ]

66
21 comments


Test, hello!

A small game

Cart #galliumtest1-2 | 2021-09-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

0 comments


It is possible to write a string (for example for a hiscore-table) to the memory with:

poke(0x5e00,ord("hallo",1,5))

but this:

? chr(peek(0x5e00,5))

doesn't work, because chr only accept one value.

2
2 comments


by Meep
Cart #ccbtt-0 | 2021-09-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
51

by Meep

🎵 Music by RubyRed
🗺️ Maps by Meep, gonengazit, taco360, RubyRed, Lord SNEK, Beeb, and cominixo

A fan-game of Celeste Classic
by Maddy Thorson
and Noel Berry

[ Continue Reading.. ]

51
11 comments



This cart is a study for making a shooting game like Gradius.

Z:Shot
X:Change weapons

1
0 comments


Cart #zefnuis-1 | 2021-09-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4


Press 'x' or 'c'

4
0 comments


Cart #cursedconsole-0 | 2021-09-29 | Code ▽ | Embed ▽ | No License
10

Plot

Oh mighty @zep, a quest for thee: to fix this bug in oh-two-three.
Time's very fabric has been torn, and monsters from the past reborn!
A pumpkin army's impossible roll befouls our once cozy console.

Its humbled clock refunds too much, permitting Cauldron's villain's touch.
Relentlessly they spin and taunt, they dare thee to remove their haunt.
Please help us take our console back and save us from their cycle hack!

Their jeering eyes provide the clue, all stars show what you must do.
A table's count below sixteen, as low as any number's been,
Negate it and they'll mock you more... the wellspring of this wretched flaw!

About

An entry in 1023 chars to the #pico1k jam. See

[ Continue Reading.. ]

10
2 comments


Arena Shooter

Cart #bosihewisi-1 | 2021-09-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

Destroy the spawning enemies and defeat the boss at the end of each wave. This is an endless top down arena shooter. It features:

  1. Four enemy types and a boss. Each with unique attacks.
  2. Bullet lock controls (hold fire to keep shooting in current direction)
  3. Ghost control - press the other button to ghost through enemies and walls and get a speed boost. Ghosting also reloads.
  4. Defeat the boss at the end of each wave for big scores.
  5. Bottom left shows you wave, and countdown to the boss appearing.
  6. High scores.

Good luck! This started as a bit of an experiment for some control schemes for a platformer...and ended up this. It could use a bit more polish- but for this project, I'm moving on. I might come back to it one day and add a few more boss types and polish.

[ Continue Reading.. ]

3
0 comments


Cart #rainier-7 | 2021-12-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
29

A Celeste Classic mod built on Evercore 2.0.0

Thank you Masakado, FlyingPenguin223, Kamera, lark, Rav, and TheYeeter49 for playtesting and giving feedback, the Celeste Classic Discord community, and especially Sparky9d for helping with a bunch of code since I utterly suck at code

29
13 comments


Hi guys.
I have an enemy that moves towards the player.
I have the usual set up with DX, DY, X, Y. Where X and Y are the co-ordinates of enemy, DX & DY are the direction of movement.
I thought it would be good to have it set up like this:

e.dx and e.dy are the enemies dx and dy.
e.x and e.y are the enemies x and y cords.

plyr.x and plyr.y are the players co-ords...

If the plyr.x MINUS the enemy.x is a positive sign in the result, move the dx 1 or right.
If the plyr.x MINUS the enemy.x is a negative sign in the result, move the dx negative 1 or left.

If the plyr.y, minus 2 (so the enemy is slightly higher) MINUS the enemy.y is a positive sign in the result, move the dy 1 or down.
If the plyr.y, minus 2 (so the enemy is slightly higher) MINUS the enemy.y is a negative sign in the result, move the dy -1 or up.

e.dx=sgn(plyr.x-e.x)
e.dy=sgn((plyr.y-2)-e.y)

This works very well and I was pleased with myself for shortening the code.

However, my problem is (especially on the y) that if the enemy and the player are the same y value, the enemy wiggles up and down and the sign of the maths goes -1,1,-1,1,-1,1,-1 etc...

[ Continue Reading.. ]

1
4 comments


Cart #freecell1k-0 | 2021-09-28 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
10

Free Cell, in 1022 characters of code, and no sprites! twitter | itch

CONTROLS:

  • click and drag cards around
    • you cannot move stacks of cards; one at a time only!
  • stack descending cards of alternating colors in the main play area
    • any card may be placed in an empty column of the main area
  • store any card in the four "free cells" at the top left
  • make a stack of each suit A->K in the top right to win
  • reset the cart to start a new game

ONE AT A TIME?

You can only move one card at a time; if you want to move a stack of cards you have to take it apart and put it back together manually. This is different from "standard" solitaire, and it makes Free Cell particularly interesting! It also makes the implementation a bit easier to fit into the tiny code-size constraint ;)

[ Continue Reading.. ]

10
3 comments


Cart #constantcompanion-8 | 2022-09-02 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
27

controls:

This is a niche tool to help you save characters when writing carts that are codesize-constrained.

  • type in a number; press enter
  • then press up/down and ctrl-c/enter to copy a code
  • navigate back up (or press backspace) to start typing a new number

Example: 0x6000 can be written as 0x6000 (6 chars), 24576 (5 chars), 6^13 (4 chars) or ⌂-🐱 (3 chars!)

The tool sorts the results by character count (on twitter), so the top results are your best bet.

Update: The latest versions of pico8 have special P8SCII codes for poking which are often fewer characters than calling poke directly (even after using this tool). e.g. ?"\^!5f10249?" instead of poke(0x5f10,50,52,57,63). Consider using that instead! But this tool might still be useful sometimes, and at the very least, it's an interesting artifact.

[ Continue Reading.. ]

27
7 comments


it's my fnf mod that on my youtube channel tube 4 months of development

1
0 comments


Cart #sparkleteam-0 | 2021-09-28 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

This is a half-completed demake of the Sega Genesis title Shining Force. I played the game for the first time early this year, and I found myself fascinated with the turn-based battle system. My biggest annoyance with Shining Force was that characters take a movement turn on the map, then combat takes place in a battle screen for only one turn. As enjoyable as it is to see higher quality graphics of the characters and terrain on the battle screen, there's a lot of time wasted moving between the two views in larger battles. I decided to write a similar battle system, but have all combat take place on the map instead.

Here's how combat works: Characters on the map are sorted by their speed to determine turn order, then each character gets a movement and action turn. Playable characters have HP and MP bars that appear at the bottom of the screen during their turn. Depending on their class, a character may have ranged or melee attacks, as well as one or more magic spells. There are also potions hidden on the map, which characters can pick up by standing on them, and can drink as an action. There isn't a win condition implemented, but I found it fun to try and get my party to the castle in the center of the map while testing the mechanics.

[ Continue Reading.. ]

3
2 comments


Cart #grossgame-0 | 2021-09-28 | Code ▽ | Embed ▽ | No License

hey! trying to edit/change my code so that the jump is slower and smoother, does anyone know what i should add to this code to make that happen?

3 comments


Hi so I'm quite new to pico-8 so I'm sorry if this is a silly question to ask, but I was wondering if there was a way to wait until something happens. Like the scratch block wait-until. I don't want this to be in an _update() loop as I only want it to happen once, but I also don't want to create too many variables.
My idea was that you were asked a question. You choose and it comes up with a different dialogue depending on your answer.
In the end I want something like this:

if btnp(4) then        <----(in an update loop)
  if qna==false then
    nexttext()
    return
  else
    nexttext()
    a=hovertxt
    qna=false
    return
  end
end

if qna==true then      <----- also in update loop
  if btnp(2) or btn(3) then hovertxt+=1 end
  if hovertxt>1 then hovertxt==0 end
end

textdisplay("Hi so, do you think,",function()<----just a custom function that tells the code to run whatever is inside after the dialogue finished.
  qna=true
  a=2              <------ in an init loop
end)
textdisplay("Yes Or No")
wait until a==1 or 0
if a==1
  textdisplay("you said no!")
else
  textdisplay("you said yes!")
end

if you can help me solve this, it would be very appreciated!

2 comments


GFXedit for Pico8

Short

GFXedit is a small tool to handle the sprite, map und label data from a p8-file with many features, like export and import as png or lua-data, copy&paste, display the usage of sprite and many more.

Download

github.com - GFXedit

Sprite-Overview (left side)

You can simple select an sprite with a left click. If you hold down the mouse button, you can select a group of sprites.
With a right click you can Copy the current selected sprite to the "red border" place. When you have selected only one sprite, shift + right click will replace every appearance in the map.
Over/Under the Sprite overviews are Tabs. "Low" to show the sprites <= 127, "High" for sprites >=128 and "Minimap" to activate the minimap.
Under the Sprite-overview you can find the coordinates in the world (if the cursor is in the Worldmap, the ID of the sprite under the cursor and the flags of the ID under the cursor. You can also sets flags of the current selected sprite here.

[ Continue Reading.. ]

7
8 comments


this is a mod of the Minit demake Steps

check it out here:

Cart #steps_clr_mod-1 | 2021-11-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
11

11
3 comments


Latest version posted here.

Cart #fairy_magic_alpha_3-25 | 2021-10-31 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
5

Update:

  • Cannon now works. Stuff those bunnies in and let mayhem ensue
  • Grabbing works with cannon. Use it as your own personal toad gun.

13/10/21

  • Now there's an evil fairy set on taking over the land (by flying up and down in a line)
  • Added grabbing and cannon physics to the evil fairy because..... well just because.
    Cart #fairy_magic_alpha_3-13 | 2021-10-13 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
    5

[ Continue Reading.. ]

5
6 comments




Top    Load More Posts ->