Whenever I start up a game using the new web player, it says "future-version: 5", then after some time passes, I get "timeout :(". I figure I need to update the web player by clearing my cache, no biggie.
The new player gets to "loading cartridge..." then the web page crashes! (In Google Chrome, this is "Aw, snap!")
Offline carts still work, thank god.
Zep, don't sweat. Every game/program's pre-release stage is rocky.

I'm getting a "could not load" error message whenever I try to start PICO-8 with the new -run argument in v0.1.2.
I tried this in Windows:
"\Program Files (x86)\PICO-8\pico8.exe" -run \Users\dan\AppData\Roaming\pico-8\carts\test_printh.p8 |
And got this error:
I also tried this in Mac OS X and got a similar error:
~/PICO-8/PICO-8.app/Contents/MacOS/pico8 -run ~/Library/Application\ Support/pico-8/carts/downloads/bitpools.p8.png |
Thinking this might be due to unexpected chars in the path, I also tried copying the cart to /tmp/pico8carts, but this also failed (in Mac OS X):
~/PICO-8/PICO-8.app/Contents/MacOS/pico8 -run /tmp/pico8carts/bitpools.p8.png |
P.S. The error message doesn't render the uppercase chars in the path correctly. Obviously the PICO-8 font doesn't have two cases worth of chars (apparently missing uppercase in the implementation), so I'm not sure what the best thing to do here is. It could lowercase the path, or hack in drawing an underline for the uppercase chars. A different color might also work but would be less ideal. Uppercase chars don't come up in regular messages in PICO-8 (unless you force them in with a text editor), but they do here because it's a file path.

This is a function that will generate cart's guid (used for cartdata function) based on things specific to the cartridge (mapdata, gfx, sfx and code).
function getcartguid() reload(0x4300,0x4300,7168) alphabet = "1234567890abcdefghijklmnopqrstuvwxyz_1234567890abcdefghijklmnopqrstuvwxyz_1234567890abcdefghijklmnopqrstuvwxyz_1234567890abcdefghijklmnopqrstuvwxyz_1234567890abcdefghijklmnopqrstuvwxyz_1234567890abcdefghijklmnopqrstuvwxyz_1234567890abcdefghijklmnopqrstuvwx" guid = "" for i=0,15 do num = peek (0x0+i) guid = guid .. sub(alphabet,num+1,num+1) end for i=0,15 do num = peek (0x2000+i) guid = guid .. sub(alphabet,num+1,num+1) end for i=0,15 do num = peek (0x3200+i) guid = guid .. sub(alphabet,num+1,num+1) end for i=0,15 do num = peek (0x43af+i) guid = guid .. sub(alphabet,num+1,num+1) end --print (#guid) --print (guid) return guid end |
This was also in 0.1.1 but I've forgot about it until yesterday when improving "nyan cat" cart and trying to enter backslash. The only way I could enter it, was by copying it in. This didn't happen in "keyboard test" program released by zep a while back ago tho (tried all the keys) so I've thought bug was fixed for 0.1.2.
//edit a couple other characters also seem affected, namely: @ $ and &. Might be more of them, although backslash should take priority as it is used for escape sequences such as \n.

E.g. for storing text (hiscore name, anyone?). Since each number is 4 bytes long, to make standard "Top10" list you'd use only 40 bytes (results only). Which leaves 216 bytes free, that could be used for names, each 21 letters long (well, 21.6 actually, but we can't have 0.6 of character, now can we?). I know we can peek/poke into save data (although it seems memory map haven't been updated in manual), but I'm not sure if it would save.

As of version 1.2, PICO-8 includes a command useful for debugging: printh("string") This command prints a string to the host operating system's console. You can put printh() calls in your code to examine events or state without cluttering the game screen with debugging information.
So how do you see the host operating system's console?
In Linux, you probably already run the "pico8" command from a terminal window. If you don't, locate where you put the "pico-8" directory, then run the pico8 command from a terminal window using its full path. For example:
~/pico-8/pico8 |
In Mac OS X, instead of double-clicking the PICO-8 icon, open Terminal, then start PICO-8 with the following command, adjusting the path to match where you put the app. For example:
/Applications/PICO-8.app/Contents/MacOS/pico8 |
In Windows, instead of double-clicking the PICO-8 icon, open Command Prompt, then start PICO-8 with the following command:
"\Program Files (x86)\PICO-8\pico8.exe" |

Check your updates page!
Note: If you bought PICO-8 (rather than Voxatron), it isn't possible yet to activate your Lexaloffle account from Humble. I've been activating accounts manually, so if you purchased PICO-8 very recently and don't see it show up yet, please check back in a day or so. The Humble Bundle library builds should be live soon too.
New stuff: HTML5 exporter, 8-player joystick support, cartridge save data.
To export your cartridge as a stand-alone html5 version:
EXPORT BLAH.HTML |
Open the folder (FOLDER) and you should be able to see BLAH.HTML and BLAH.JS
Here's a demo of cartridge saving. Note that save data is not persistent yet in the web version:

Hey guys!
I was messing around with Pico and I've discovered a total of 6 new screen modes!! Please check
the GIF attached to see them in action. Some of them are sort of screen effects (mirror) but the others include
2x1 aspect ratio, 64 x 64 pixels and so on. I am so excited about this. I think this could change the look and feel of many games and makes Pico feel like the Amstrad CPC, C64 or other retro computers. I hope this is a feature and not a bug :)
I will post a cartridge soon.


5 October 2015
- You're now a bit smarter and can cancel jumps! (press down or the action button other than the one you started the jump with)
- That extra brain power comes with added brain mass and now lily pads can sink! (6 seconds per pad, 13 on the first pad)
- You can now perform small hops and land on the same lily pad you're on
- Shortened delays in the game over -> title sequence

Since PICO-8's sin(), cos() and atan2() are not the standard functions, how to implement them in another language? Some pseudocode would be ok, I'm aiming javascript by the way.
I looked into PicoLove's code as an example, but the results are different. For example in PICO-8:
print(sin(0)) -- 0 print(sin(0.5)) -- 0 print(sin(0.25)) -- -1 print(sin(-3)) -- 0 print(sin(-0.45)) -- 0.309 print(sin(78.4)) -- 0.5877 |
The PicoLove code remaps sin() to:
sin = function(x) return math.sin(-(x or 0)*(math.pi*2)) end |
that in javascript is:
window.sinp8 = function (x) { return Math.sin(-(x || 0) * (Math.PI * 2)); };
|
Now, the results are very different:
console.log(sinp8(0)); // -0
console.log(sinp8(0.5)); // -1.2246467991473532e-16
console.log(sinp8(0.25)); // -1
console.log(sinp8(-3)); // -7.347880794884119e-16
console.log(sinp8(-0.45)); // 0.3090169943749475
console.log(sinp8(78.4)); // 0.5877852522924427
|

Can anybody explain to me the difference between "change color at draw time" and "change color at display time"? If I, for example, set red to green and than I draw a sprite, its reds are drawn as greens. If I set it to change at display time, the effect is the same. What's the difference between the two modes?
Thanks

Sorry; this is very, very basic stuff...
I've been planning out my first game, which amounts to one character walking around a tile based map, with a few buttons to press, and some scrolling text along the bottom of the screen at certain prompts.
I have my story plotted, and I'd like to start work on the level design, but I've no real understanding of how the memory limitation affects the number of tiles I can place. As I understand it, I can work with 128 8x8 tiles, but is there an upper limit to the number of tiles I can place? On the Pico-8 homepage, it mentions "128x32 cels"; does this mean that my game must exist within 32 screens, minus however many screens I need for character sprite animations?






12 comments










