Log In  

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

I've been looking into building a portable PICO-8 recently, so I'm going through display component websites for a square or nearly-square screen. This website (link) has a 60fps, 4" square touch display, so I was wondering if anyone has any experience with the company, Pimoroni.

They mention on the store page that it "works really well for Pico-8 games", which I think is pretty great, if it's made specifically for what I want to build. I thought @zep mentioned somewhere recently that he was looking for a square screen like this, too, so if the company is good then this may be a starting point for an official PICO-8 portable?

Here's a short video clip of the display in use that I found on another website. Pimoroni seems to be a reseller, but they've added code to get it working on Raspberry Pi, and I can't find anything online about "HyperPixel" that doesn't link back to them. I'm new to builds like this, so if anyone has experience with these kinds of projects, I could use some advice.

1
0 comments


TweetTweetDevour is a simple game developed for tweettweetjam-4

Use arrows to escape bigger balls and devour smallers ones!

More on event: https://itch.io/jam/tweettweetjam-4

Cart #kuruwomuzu-0 | 2020-05-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

2
0 comments


Cart #the_monk-0 | 2020-05-05 | Code ▽ | Embed ▽ | No License
5

For Pupu

My game

This is my first game and I am pretty proud of it.
I have worked on it to make everything work a lot, because I am all new to pico8. Any comments will be apreciated

"Plot"

You are a monk in search of his true self by crossing desserts, and drinking water.
You need to cross a dessert inhabtated by snakes and bad foxes. An idiot put some spikes to make your life easier.

How to play

It isn´t complicated. You just have to drink water regularly and avoid getting hit by animals or spikes
You can use the sword to kill animals. You can kill with the initial sword up to 2 animals

Tips

Try to drink water regularly and try no to go to fast, because thats how yo get killed. The water obliges you to move but you have 30 secinds for each jar you drink, so don´t worry

[ Continue Reading.. ]

5
10 comments


Cart #r56oh-0 | 2020-05-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

A game made in 560 characters for TweetTweetJam 4. The sound effects are generated from the poke commands at the top. The note pattern is random and can be a little unfair at times. I wanted to try a smarter way to generate the notes, but with 560 characters, there's not much room.

Z or C - Top line
X or V - Bottom line

If you're looking for a more readable version of the source code, check the spoiler:

-- The Poke commands generate the music, poke4 creates the first two notes
-- the first poke2 creates the third note (when you miss)
-- the last poke2 sets the speed of the notes (16)
poke4(0x3200,0x5ba4.380c)
poke2(0x3204,0x6911)
poke2(0x3240,0x1001)
c=0  -- combo count.
h=0  -- high score.
t={} -- notes in play.
m={} -- flags if you hit a button and missed a note (for both bars).
o=0p=0 -- delay between note generation, so 40 of them don't stack on top of each other.
_set_fps(60) -- set fps to 60, so the scrolling doesn't look awful
::e:: -- normally, gotos are ugly, but for code golf, they're a necessary evil.
-- clear screen and render the bars. A rectangle generates both lines.
cls()
rect(-1,56,128,72)
circ(15,56,4)
circ(15,72,4)
-- reset and tick down parameters for next frame.
p-=1o-=1m[4]=1m[5]=1
-- generate a note randomly, if it's created, add delay until next note (p and o).
if(rnd(25)<1 and o<0)add(t,{x=127,y=53,b=4})o=12
if(rnd(25)<1 and p<0)add(t,{x=127,y=69,b=5})p=12
-- loop over each note, see if it was correctly played, missed, etc...
for i in all(t)do
i.x-=1 -- come on down, you're the next contestant!
?"♪",i.x,i.y,12 -- draw the note
-- if note was played inside the circle, play the sound, 
-- remove it from play, and signify the player didn't miss,.
if(btnp(i.b)and i.x>=8 and i.x<=20)sfx(0,0,i.b-4,1)del(t,i)c+=1m[i.b]=0
-- if the player missed. remove their combo, play the missed note sound.
if(btnp(i.b)and m[i.b]>0)sfx(0,0,2,1)c=0
-- if the note left the screen, remove it from memory.
if(i.x<0)del(t,i)c=0
end
-- if the current combo is higher then the old one, add it to the high score.
if(c>h)h=c
-- print hud
?"combo: "..c,5,5,6
?"high: "..h,90,5
-- render the crowd, have them dance to the left and right depending on the note hit.
for i=0,4 do
?"웃웃웃웃웃웃",40+m[4]-m[5],100+i*6
end
-- draw to the screen, loop back to the beginning.
flip()goto e

2
0 comments


Hey there, this is my first entry for TweetTweet Jame 4!

Cart #golf560-0 | 2020-05-06 | Code ▽ | Embed ▽ | No License
5

Rules

This is a simple golf game, with procedural courses spanning a bunch of islands, I guess. Get to the hole in as few strokes as possible!

Watch out for water! Should you land on the green or in a bunker your shot power will be reduced.

Controls

  • [⬅️➡️] Aim
  • [🅾️❎] Swing (hold to charge power!)

Links

Itch.io Page
Twitter Post

Happy golfing :)

P.S. post screens of your favourite courses! Sometimes it generates pretty things.

5
2 comments


Cart #beachcomber-3 | 2020-05-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
19

Stranded on a mysterious beach, you must explore and battle with evil monsters to escape!

This is my first PICO-8 game and I had great experience working with PICO-8 for the first time. Hope you enjoy.

Thanks!

Controls

[←][→][↑][↓] move
[Z] attack
[X] place bomb



19
7 comments


Cart #fehibemihu-0 | 2020-05-05 | Embed ▽ | License: CC4-BY-NC-SA
3

This is created in response to the following questions:

An enemy gets defeated. How do I make it drop, say, a laser powerup?
The player steps on a button. How do I change the floor from water to jelly?
The player defeats an actor. How do I make chocolate appear?

Have fun

/DigitalMonkey

link to video tutorial #14

link to video tutorial #15

link to video tutorial #16

link to video tutorial #17

link to video tutorial #18

3
2 comments


Cart #cat_runner-0 | 2020-05-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

My first programing game!

4
0 comments


The new shift operator behaviour where a>>n returns a<<-n when n is negative causes an infinite loop and freezes PICO-8 when shifting by -32768:

?1<<-32768
?1>>-32768
?1>>>-32768
1
1 comment


I'm working on a project where I want to relegate some of the simpler sprites to being generated by the code, rather than occupying valuable space in the sprite sheet and map areas. However, it just dawned on me that I am running many loops of line(), rect(), etc. every single _draw() call, which I have a gut feeling isn't a very efficient way of doing things. Aside from the obvious "just use the sprite sheet" solution, is there a way in which I can continue to generate images from code BUT only run this one time (eg. during _init()), and then load the buffered images during _draw() somehow?

Even if the answer is just simply that this isn't possible, knowing so would at least put my mind at rest!


EDIT: Misremembered my implementation somewhat!
-"single _update() call" => "single _draw() call";
-"to use this image generation code BUT only call it one time" => "to generate images from code BUT only run this one time".

8 comments


Lowwwww-priority:

I often have several instances of PICO-8 running. It would be nice if their window titles reflected what was running, at least to some extent, so I could select the right minimized app from the taskbar.

Seems like "documentname - appname" is the de facto standard for this kind of thing, so it'd be nice to click on the taskbar and see this list:

  • UNTITLED - PICO-8 (or maybe just PICO-8 when nothing's been saved)
  • TIMER.P8 - PICO-8
  • CELESTE.P8.PNG - PICO-8
  • BUGREPRO.P8 - PICO-8

I converted the filenames to uppercase here because it feels on-brand, so to speak, and also because making uppercase the default would interact nicely with this optional upgrade:

You could extend the titling algorithm so it uses the same method a .p8.png image uses, where if the first line is a comment, it treats it as the cart's title.

For instance, when running/editing this infloop.p8 cart:

The window would be titled "Infinite Loop - PICO-8", rather than "INFLOOP.P8 - PICO-8", because I used a comment (with mixed case) to make a nice, elegant title for my cart.

[ Continue Reading.. ]

4
1 comment


Cart #tedoporuye-0 | 2020-05-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

2
1 comment


When I try to save a 10-second gif of the wonderful game Tera, it simply saves a blank file to the desktop rather than a .gif

Using 0.2.0f on Windows 10 Home Edition

Steps to reproduce

  1. Open Pico-8
  2. Open the Splore interface
  3. Search Tera: Mind Over Matter
  4. Run the game
  5. Play the game for at least 10 seconds
  6. Press F4 to save a gif

I expect to find a .gif file on my desktop called tera_0.gif
Instead I find an empty file (0 bytes) with no extension called "tera"

I have not tried this for very many other games, but the games I have tried do not have this issue.

"|I'd show you a gif of the bug happening, but...y'know...
-- you, probably "
--JWinslow23

EDIT:

I found the problem. It's the title of the game. The ":" character messes it up. I found another game in splore with a ":" and it does the same thing. Games with "/" in the title refuse to save gifs (as they probably should), though it would probably be beneficial to truncate the name of a game if it has problematic characters in the title for the purpose of generating .gif files. You can try with "Valdi: Shadows" and "Snek: Turrets and Powerups".

1
1 comment


I was thinking that a really neat feature would be that the primitive shape drawing functions accept tables as arguments. I'm not sure whether that conflicts with Zep's ideals of what the PICO8 environment should be like but I'll list a few pros. First of all, an example of what I mean.

rec={60,60,68,68,14}

--basic way to pass
rect(rec[1],rec[2],rec[3],rec[4],rec[5])

--proposed syntax
rect(rec)

--traditional Lua; achievable in PICO8 at the cost of the tokens
--required to define unpack
--see: https://gist.github.com/josefnpat/bfe4aaa5bbb44f572cd0#unpack
rect(unpack(rec))

As you can see, this requires far less tokens/characters which is great for tweetcarts and code golf - things that PICO8 really shines at. It would also be useful in larger projects where the bottleneck is usually compressed size/char counts rather than token counts (defining objects is still kinda costly).

It would also be useful for functions like


[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=75873#p)
3
2 comments


As the subject says, it'd be nice if ~1 simply became 0xfffe at parse time and thus cost only one token, the same as the recent change where -1 simply becomes 0xffff.

Purty please? :)

3 comments


This template enables mouse pointer locking thanks to the JavaScript Pointer Lock API & Pico-8's GPIO system. The mouse pointer will get locked inside the pico-8 frame, while still providing movement deltas from your mouse. Now you can do a proper Marble Madness or Quake remake!

here's a demo cart (also included in the zip below):

Cart #fotubigibu-0 | 2020-05-05 | Code ▽ | Embed ▽ | No License
11

Of course it doesn't work as advertised here on the bbs, nor within the pico-8 binary. You'll get stuck when the pointer quits the frame.

  1. unzip ubmlock.zip in your template dir:
    Windows: C:/Users/{Yourname}/AppData/Roaming/pico-8/plates
    OSX: /Users/{Yourname}/Library/Application Support/pico-8/plates

[ Continue Reading.. ]

11
5 comments


I'm going to post my entries for TweetTweetJam 4 in this thread.

Let's start with something easy:

1. Avoid the worms

Cart #avoid_the_worms-0 | 2020-05-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

A game in 560 characters of code​ for TweetTweetJam 4
Avoid the hungry worms and collect as many hearts as you can. Your score is the number of hearts you get.

_set_fps(60)h=0
::s::s,l,p,t=0,0,{{1,1.9}},0
x,y,c,d=64,32,32,32
::_::cls()t+=.003
if(l<flr(t))p[l+2]={.2+rnd(1.2),.2+rnd(1.5)}l+=1
for j=1,#p do
color(2+j%10)q=p[j]
for i=0,.1,.01 do
k=t+i
a,b=q[1]*k,q

[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=75857#p)
2
9 comments


Cart #drawing-3 | 2020-05-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4


Yay! This is my second game. I'm a new programmer, so I'm looking for feedback. Thanks!
EDIT: P.S. If the lines variable down below is bigger than 4800, then it will get slow. If it does that, reset the cart
EDIT: Ok the mouse is freakin awesome

4
3 comments


they're clamped to color 15 it seems.
not a big deal, but maybe it's an easy fix?

2 comments


Cart #nest2-10 | 2021-12-04 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
110

NEST 2 is a simple, but intense arcade game for our fantasy console. Rotate and dash all around the grid, nullifying enemies quickly to increase your CHAIN while avoiding spikes on a mission as old as time itself: beating your high score!

Update (v1.1):

As a result of the recent API changes, I was able to shave off a few tokens and add some Quality of Life changes (bless split()). For example:

  • Added a line to the first timer guide
  • Made the chain timer more visible/obvious

[ Continue Reading.. ]

110
65 comments




Top    Load More Posts ->