I usually leave the Pico-8 application running on my home PC overnight and during the day while I'm at work. If it's in fullscreen, it will silently crash (stop responding) if left open for long periods of time. Interestingly, it doesn't happen in windowed mode (although I haven't tested it with resizing the window to a custom size). The application at that point needs to be closed completely and reopened (good thing I save my work frequently). There is no error shown either in the program, or by Windows (Windows does not report it as "Not Responding" - Pico simply becomes unresponsive to any keyboard/mouse input). I haven't tried looking in Task Manager to see if it's leaking memory or CPU cycles.
- Windows 10 Pro
- AMD FX-8350
- 16GB DDR3
- nVidia GTX 660 (in case it's a display error with nVidia drivers, since for some reason it's caused by window size)
- Installed on a 256GB Samsung EVO SSD
- PC is not set to ever sleep or hibernate, so it's not happening upon "waking up"
- No USB suspend settings are applied that could sever communications between Pico and input devices
- Hard drives and processor are not set to change performance settings while idle
- All power-saving options are disabled
- No screensaver

Hi there,
anyone having an idea how to read fixed point numbers with peek? I managed to get the integer part read and I think I understand as well how the decimal part is designed, but as the decimal part uses the unsigned range of 16 bits, I don't get it read correctly. Currently I have:
function rnum() local dlo=peekb() local dhi=peekb() local ilo=peekb() local ihi=peekb() local nu=bor(bor(shl(ihi,8),ilo),shr(bor(shl(dhi,8),dlo),16)) return nu end |
Where peekb simply reads a byte from memory with peek and increments a pointer b.
local ilo=peekb() local ihi=peekb() |
These bring me the integer part nicely, but I'm having no success in getting the decimals right. Any help or hint is very appreciated :)

Hey all, I have some music and sound effects in mp3 format (they are already 4-track chip tunes) that I need recreated in Pico-8! They don't have to be 100% true to the original, but I'd prefer if they were as close as possible. I've got a game that's deep into development and should be completed within the next week or two, and would love to put your name in the credits! There are about 18 mp3s in total, most of them are just small sound effects, and 6 or 7 of them are short pieces of music.
If you're interested, just reply here and I'll send you a link to the mp3 files. Thanks!

I just came across moonscript the other day. It's a sort of coffeescript-esque language that compiles to Lua. It has a lot of nifty features -- including arrow functions, which is what sold me.
So I wrote a tool that allows you to watch a .moon file and pipe it into the lua part of a .p8 cartridge. It's not thoroughly test and probably only works on OS X, but I've been personally enjoying writing moonscript in Sublime Text 3 and watching PICO-8 automatically reload on save :)
I'll drop the link here in case anyone finds it useful or intriguing: PICOMOON
Cheers!


Manged to get 16 frames of full motion (if chunky) video compressed into here before running into the limits of the compressed cart size. Frames are stored as run-length encoded images, with only the difference between frames being noted/redrawn.
I used a custom python script and some elbow grease (file renaming and bulk resizing) to get the images converted into the string format.
-Electric Gryphon

Hi all,
I've been looking at Pico-8 games on itch.io, and there seems to be a variety of different ways to post our games there.
For example here, it's nice and clean, no borders:
https://bluesweatshirt.itch.io/inward-expansion
Here there's a visible border around the Pico-8 cartridge:
https://bluesweatshirt.itch.io/man-helsing
And here it's tight, but there are the controls on the bottom:
https://bluecandlegames.itch.io/eyeboss
Is there anyone with experience on itch.io who'd be willing to share some tips for posting Pico-8 cartridges there?

Allow me to preface this by saying that I'm new to Pico-8 and Lua, but have already fallen in love with it. I've already begun following the community on the BBS, subreddit, and Twitter, and I see a lot of questions about how to perform specific tasks that are necessary for almost every game. Anyone who has ever used a game engine previously may have had a lot of the basic things such as controls, animation, collision detection, or even AI handled for them, so they may not know how to roll their own code for such things.
I'm currently working on my first Pico-8 game, and have decided to document the process, and how I personally overcome various problems. Do know that my way is definitely not the only way - there may be solutions that work better, perform better, have smaller token counts, or are more elegant in general. These are just the solutions that I came up with. There isn't really any 'right' or 'wrong' per se, as long as it gets the job done, with the exception of 'lower token count = better' due to the limitations of the system. So, I'm going to try to solve these problems in the smallest possible token count that I can come up with.
[b]Movement:

I've seen some questions about how to do collision detection in Pico-8, so figured I'd make another bare-bones demo, this one demonstrating collision detection with map tiles and/or world bounds. The function itself is 24 lines and 125 tokens, and includes flags for turning collisions on or off on an object (such as the player). Here's the full function:
function cmap(o)
local ct=false
local cb=false
-- if colliding with map tiles
if(o.cm) then
local x1=o.x/8
local y1=o.y/8
local x2=(o.x+7)/8
local y2=(o.y+7)/8
local a=fget(mget(x1,y1),0)
local b=fget(mget(x1,y2),0)
local c=fget(mget(x2,y2),0)
local d=fget(mget(x2,y1),0)
ct=a or b or c or d
end
-- if colliding world bounds
if(o.cw) then
cb=(o.x<0 or o.x+8>w or
o.y<0 or o.y+8>h)
end
return ct or cb
end
|

This is a very simple animation function that anyone can use in their games. It's a bare-bones demo to keep everything as simple as possible. The function itself is only 14 lines and 74 tokens, and works like this:
anim(object, start frame, number of frames, speed (in frames per second), [flip])
In the demo, the object is the player, but it can be anything. Start frame is where the animation to be played begins (so in this case, moving left/right starts on frame 6, so we have anim(player,6,[..])). Number of frames is how many frames in that animation to play. We have 3, so anim(player,6,3,[..]). Speed is how fast the animation should play in frames per second (I have it set to 10 here). Lastly, [b]flip

Don't know if this is related to the recent audio fixes, but ever since then, I have not been able to load PICO-8 carts in Safari. When trying to load, the output to the console is:
TypeError: undefined is not an object (evaluating 'audio_context.createScriptProcessor') fpico8_wa4.js:1 dipico8_wa4.js:619 bpico8_wa4.js:620:177 Aepico8_wa4.js:621:145 (anonymous function)pico8_wa4.js:622:323 |
Safari 9.0.3
Mac OS X El Capitan 10.11.3

Press the up/down arrow keys
As the title states!
This isn't optimized at all, an exercise for the reader.
I drew the letters myself, as sprites, hence their existence in
the sprite sheet. Those are so you can swap either/or, and trade
sprites for code space and performance.
Have fun!
I threw the file on github as well
p.s The CC license isn't really applicable but I wasn't sure if NOT selecting it would imply you can't use it at all and now I can't edit that out it seems. The github repo has it as MIT license - you can do whatever you want with this!

Does anybody know if the PICO-8 typeface is available as a regular font anywhere? I guess it‘s coded differently as a regular font in PICO-8 so someone would have to recreate it to use outside.
I want to create a game jam poster and of course it would look great to use the 5x3 characters for that, in print.






1 comment



