PICO-8 0.2.1

Hi All -- 0.2.1 updates are up now. You can install over the top of previous versions (cartridge data etc. is stored in a separate location)

This update has a lot of bug fixes and a few new features. Check the release notes here: https://www.lexaloffle.com/bbs/?tid=38665

Changelog: // UPDATE: added some bug-fixes in 0.2.1b


Added: split(str,"") splits by single characters
Updated: Tower of Archeos 1.1 via INSTALL GAMES
Fixed: print(num,x,y) always prints numbers num in hexidecimal
Fixed: .p8.png decoder can enter an infinite loop (caused exports to freeze on boot)
Fixed: Can't save screenshot/gif when running a BBS cart with illegal characters in title.
Fixed: INSTALL_GAMES is broken


Added: oval() ovalfill() split()
Added: circle drawing tool is now an oval tool (hold shift for circle)
Added: hold shift with line tool to snap to 22.5 degree angles from origin (0:1, 1:1, 2:1 gradients)
Added: serial() channels for stdin,stdout
Added: raw binary and image files dropped in to PICO-8 also become byte streams readable w/ serial()
Added: add(tbl, val, index) -- insert val into table at index
Added: deli(tbl, index) -- delete element from table by index (index defaults to last element)
Added: show progress while exporting binaries (can be slow now that generating zip files)
Added: -e to add an extra file to exported binaries zip files // export -e manual.txt foo.bin
Added: RESET command to reset the runtime / draw state
Added: drag and drop cartridges into PICO-8 window to load them
Added: hash stored in .p8.png so that cartridges corrupted by image quantization can show a specific error
Added: raw data blocks in compressed code format (useful for storing long binary strings efficiently)
Added: clip(x,y,w,h,true): 5th parameter indicates that the clipping region should be clipped by the old one
Added: -export switch can be used to convert .p8 files to .p8.png from commandline. // pico8 foo.p8 -export foo.p8.png
Added: extcmd("screen",scale) and extcmd("video",scale) to override the default scale (e.g. scale 2 means 256x256)
Added: printh(str, filename, overwrite, save_to_desktop) -- 4th parameter to save output file to desktop
Changed: add(), del() no longer implemented with Lua snippet; lower cpu cost.
Changed: line(),rect() cost the same as rectfill() when drawing equivalent shapes
Changed: all drawing operations in sprite editor now observe fill pattern state
Changed: numbers can be immediately followed by identifiers (a=1b=2) // lexaloffle.com/bbs/?tid=38038        
Changed: Sprite editor shows only active area after shift-selecting sprites
Changed: copy/paste in the code editor treats uppercase ascii characters as puny font only when puny mode (ctrl+p) enabled
Changed: C0 Controls characters (except for 0x0,0x9,0xa,0xd) encoded in .p8 / clipboard with unicode replacements
Changed: stat(4) converts characters to PICO-8 format (P -> puny p,  hiragana unicode -> single character etc.)
Changed: serial() returns number of bytes processed (1/8ths included for partial bytes)
Changed: IMPORT SPRITESHEET.PNG now uses the current sprite as the destination coordinate instead of 0,0.
Changed: Standardized name of the display palette to "display palette" (was sometimes referred to as "screen palette").
Changed: tostr() returns nil (used to return "[nil]")
Changed: don't need to set bit 0x40 at address 0x5f2c to use secondary palette.
Improved: exported binary's data.pod file 90% smaller (~870k -> ~85k)
Fixed: pack(...).n is shifted right 16 bits
Fixed: ctrl-r doesn't reload external changes for carts which are over compressed code capacity
Fixed: false positives when detecting external changes for some older cart versions
Fixed: .p8.png carts saved with dense code (compressed size > raw size, including very small carts) stores junk
Fixed: error message duplication when loading future version of .p8.png carts
Fixed: Illegal colours can enter spritesheet via serach-replace after setting with color()
Fixed: Preprocessor: "foo():a().x+=1" "a=b[1]c+=1"
Fixed: hex numbers written with punyfont characters breaks syntax high-lighting
Fixed: shift+- in sprite editor jumps too vertically when zoomed in
Fixed: clicking a note in sfx editor creates a selection (-> backspace clears without moving rows)
Fixed: print()/printh()/stop() doesn't respect __tostring metatable method (regression)
Fixed: time() and btnp() speed changes after stopping program, typing a command and then resuming.
Fixed: phantom drag & drop events sent to unused music channels causing them to occasionally unmute themselves
Fixed: undo after moving sprites in map mode only undoes the changes to the map and not the spritesheet.
Fixed: inconsistent token counting for negative or bnot'ed numbers https://www.lexaloffle.com/bbs/?tid=38344
Fixed: Crash when INSTALL_GAMES / INSTALL_DEMOS without a writeable disk
Fixed: stat(4) (clipboard contents) does not convert unicode to corresponding glyphs
Fixed: (MacOS) Using discrete GPU ~ drains battery. Now using integrated GPU when available.
Fixed: screensaver is blocked while PICO-8 is running (needed to set SDL_HINT_VIDEO_ALLOW_SCREENSAVER: "1")
Fixed: screen glitches after running for 25 days
Fixed: (HTML Exports) touch controls not registering when running under iOS from an iframe (e.g. on an itch.io page) Fixed: (HTML Exports) tap and hold brings up the select menu under iOS
Fixed: (HTML Exports) button blocked by canvas when overlapping on small screens


pico-8_0.2.1b_osx.zip 8 MB
40 days ago
pico-8_0.2.1b_raspi.zip 6 MB
40 days ago
pico-8_0.2.1b_windows.zip 6 MB
40 days ago
pico-8_0.2.1b_setup.exe 4 MB
40 days ago
pico-8_0.2.1b_amd64.zip 9 MB
40 days ago
pico-8_0.2.1b_i386.zip 8 MB
40 days ago

Get PICO-8

Buy Now$15.00 USD or more

Leave a comment

Log in with itch.io to leave a comment.