The jam would run from May 27th to May 28th (standard weekend jam fare)
The only rules are:
-Include PicoDragonJam in title and tags of your entry thread. If you don't want to spam the forum, a reply to this thread is fine as well.
-The game has to have dragons of any kind in it in an important role (i.e. game where there is a NPC that happens to be a dragon doesn't count unless said NPC wouldn't work just as well if it was of any other species), player character preferred.
The winners will be decided in a vote that will be held on Monday through Wednesday in a public poll.
Any takers?



Haven't used P-8 since 0.1.8 and would like to know what are current limits regarding code size, what counts as a token, etc. If you know of similar fantasy consoles that can be worked with now and not in the planning phase I'd be interested too (though not Pico-8 clones such as PicoLove or Voxatron which I can't afford).
Also, I think the FAQ is outdated:
When will PICO-8 be finished? What will it look like? PICO-8 1.0 will be out sometime in 2016. It will look similar to the alpha versions with the addition of online score submissions and binary exporters. |
- It's 2017 now and there's no 1.0 yet.




Adding for 0.4
- Title screen
- Multiplayer
- sound fix
Need to add:
- Rocks
- Score
- Link beetween the puyo of the same color
Not much with this update but i've got a title screen now !
Adding for 0.2 :
- Sound effects
- Game over and restart
- New "annimations" and new design for the puyo
- Use of btnp for the better control -thx mccolgst-
- Next duo of puyo on the top right of the gametable appears
Need to add:
- Multiplayer
- Music -it will be horrible, hue-
- So need a button to mute the music
- Rocks
- Score
- Maybe add a link beetween the puyo of the same color
Hope you'll enjoy my game. Still have work to do.






The splore local cartridge storage file browser does not show the game title.
If I download a game from the bbs, the filename is some number. The file browser inside pico-8 only shows this number. But it should show the game's title.
Also there seems no way to change sorting in the splore browser. Is it stuck at alphabetic?
I wish there was a standard gamepad to go with this standard console. This seems to be a huge oversight on an otherwise great project. Games as well as Pico-8 itself seem to use a whole bunch of different keys and "buttons" such as "z","x","menu","esc", "space", "enter" etc.
For a game console, it seems very keyboard-centric, what is the standard gamepad for this?
Also, what are the gamepad mappings from these "keys" to usb controllers on host system/SDL buttons? How do I control pico-8 with a gamepad? The manual refers to z,x,"menu" and I need other buttons to play such as "Esc" "space" etc? So what is "menu" what is "Esc" on my gamepad?
Some games use even more keys and some use other keys, there seems to be no consensus.
In short, it seems impossible to navigate the Pico-8 and play all games with only a gamepad.
For example how do I quit a game with a gamepad? It seems I need to press Esc on the keyboard. But for some games, to start I need to press space, for some I need to press z or x. It seems completely chaotic.
Also, there seems to be a menu that pops up with "enter", but there is no "quit pico-8" menu option. It all seems very ill-thought out and not controllable with a gamepad consistently.
EDIT: For example, in the game "Serpent's Shadow" I have to suddenly press "v" to continue to the next level. In another game, jump and run were set to "x" and "c" instead of "z" and "x". So even if I use some remapping tool to map my gamepad to z,x,enter,esc,space, I will still not be able to play games that make use of v, and c or any other key.







This quirk exists in Pico8 0.1.10C, and possibly other versions. Try this code out, and you'll see the results for i>=16 are the same:
for i=1,20 do print(i .. ' ' .. 1.11^i) end |
1.11 raised to the 20th power (equal to ~8.062) is still well within the overflow limits of pico8, but currently pico8 limits the possible exponent to 16 (resulting in ~5.309).
Here's a workaround for raising to higher power (if y is a positive power), that takes advantage of the property x^m * x^n = x^(m+n):
function pow(x,y) local r=1 while y>0 do r*=x^min(y,16) y-=16 end return r end |
Using this you can get the correct results. Just wondering, is this limitation intentional? It makes sense for integers, because 2^15-1 is the greatest positive integer you can express, and occasionally you might want to do 2^16 (if you're careful about the sign bit), but for fractions it seems a little strange. It's kind of uncommon to do this kind of math in pico8, so I could maybe live with it being a quirk of pico-8 though. If this behaviour isn't changed, could this limitation be documented in the manual?



Hey everyone! I made a some little helper functions for allowing some basic handling of positive integers greater than 32767. Feel free to expand/modify these. Use for whatever, no attribution required.
This could be useful for a score counter in a game or experience points in an RPG. There's a minor overhead in code-size and in performance, so these are when you really need a little bit of of extra precision for your numbers.
Unsigned Integer Decimal Strings
This first method handles numeric strings holding arbitrary unsigned integers. I haven't added sign handling or fraction handling, so this is for unsigned integers only, but may come in handy for score / experience counter sort of things. I also added a comparison function so you can tell if a decimal string is greater than/less than/equal to another one.
The disadvantage is number of allocations required for calculating intermediate results, lots of concenation and substring ops. But if you're doing this for non-time critical functionality, and want the extra digits, it's pretty handy.
function decdigit(s,i) local c=sub(s,-i,-i) return c~='' and 0+c or 0 end function declen(s) for i=1,#s do if(sub(s,i,i)~='0')return #s-i+1 end return 1 end function decadd(a,b) local s='' local c=0 for i=1,max(declen(a),declen(b)) do local v=decdigit(a,i)+decdigit(b,i)+c c=0 if(v>9)v-=10 c=1 if(#s>0 or v>0 or c>0 or i==1)s=v..s end if(c>0)s='1'..s return s end function deccmp(a,b) local m=declen(a) local n=declen(b) if(m<n)return -1 if(m>n)return 1 for i=1,n do local u=decdigit(a,i) local v=decdigit(b,i) if(u<v)return -1 if(u>v)return 1 end return 0 end -- Addition test cases print(decadd('1','1')) -- 2 print(decadd('999','1')) -- 1000 print(decadd('123456789','99999')) -- 123556788 print(decadd('10009','20009')) -- 30018 -- Comparison test cases print(deccmp('2000','200')) -- 1 (a>b) print(deccmp('2000','1000')) -- 1 (a>b) print(deccmp('2000','2000')) -- 0 (equal) print(deccmp('1','00001')) -- 0 (equal) print(deccmp('200','2000')) -- -1 (a<b) print(deccmp('1000','2000')) -- -1 (a<b) |


This is my PICO-1k jam entry. The entire source code is 1024 characters in PICO-8, including the comment at the top. Arrows to fly, button (z on keyboard) to fire.
--top*burn a=48n=32k=64_={}camera(-k,-k)c=16x=0y=0t=0o=0g=0q,b,r,s,h=sqrt,btn,rnd,spr,sspr::a::l=t%8/4map(0,0,-k,-k,c,c)for j=3,k do z=j/4h(q(q(z))*c-l,1,k+k,1,-j*n,j,k*4*z,1)end l=l<1o=max(o-1,0)f=b(4)and o<n if f then m(r(3))o+=2 if(o>n)o=98 end i=l and o>n and s(124,-k,-40,4,1)or h(0,56,min(o,n),6,-k,-a),l and t>650or h(a,n,n-t/n,8,n,-a) i=b(1)p=24m=sfx if(i and x<c)x+=2 p=c if(b(0)and-k<x)x-=2 p=c if(b(2)and y<n)y+=1 p=k if(b(3)and-n<y)y-=1 p=74 s(86,x+8,a,4,2) for e in all(_)do e.x+=e.d e.z+=.1 j=e.d<0w=88z=4/e.z if(e.l==0or e.z>k)del(_,e) if(e.l)e.l-=1 j=r(2)>1goto e h(56,k,c,c,e.x*z+24*z,a*z,c*z,c*z,j)w=k if(f and max(abs(u/z-e.x-21),abs(v/z-e.y-8))<8)e.l=8m(3)g+=.75 ::e::h(0,w,56,24,e.x*z,e.y*z,56*z,24*z,j)end if(r(98)<1)d=sgn(r(2)-1)add(_,{x=r(n)-d*k-c,d=d,y=r(k)-a,z=1}) z=.7u=x*z+13v=y*z-8s(2,u,v) if(f and l)s(c,u*.9,v*z)s(17,u,y*z-5)z+=.1 s(38,x*z+10,y*z-2,2,1)z+=.1 s(46,x*z+14,y*z+1,2,1) s(p,x,y,6,3,i)s(240,-30,-41,g,1)flip()t+=1 if(t<999)goto a ::g::s(137+t%2*k,t%192-140,-n,7,1)flip()t+=1 goto g |


PICO-8 allows 65536 characters, which on one hand is a tight limit for some projects. But, on the other hand, we've seen amazing things from Tweet jam in 140 characters or fewer.
That made me wonder...can a whole PICO-8 game be written in 1024 characters (1k)? There are some impressive JavaScript 1k demos. Let's see what we can do!
Rules:
- Entire program source code lists as 1024 characters or fewer inside PICO-8, including comments.
- Must be a playable game, not just an animation.
- No limits on music, sprites, or map, since they don't count toward PICO-8's character limit.

Hi all.
A newbie question!
I am using the PGET command to read the value of a pixel as you move a point around the screen.
The code I have written seems to work fine in the X axis, but the y-axis is offset for some reason.
If you move the point over the yellow square from left to right, the PGET command successfully reads the pixel colour value.
If you move the point over the yellow square from top to bottom, the PGET command is offset by approx 6 pixels.
Strange.

Am I missing something?
Any advice would be very much appreciated.
Many thanks
Paul :-)
PS:
Code pasted below.
x={}
y={}
x=50
y=50
cls()
function _update()
if btn(1) then x=x+1 end
if btn(0) then x=x-1 end
if btn(3) then y=y+1 end
if btn(2) then y=y-1 end
a=pget(x,y)
end
function _draw()
rectfill (0,0,124,124,0)
rectfill (50,50,70,70,10)
pset(x,y,7)
print(a)
end

