Log In  

Hey all! Time for some more bugfixes and esoteric features / QOL improvements to finish off 0.2.5*. And thanks to some snippets from @samhocevar's excellent z8lua, some cleaner code parsing. PICO-8 0.2.5d is now up on lexaloffle, Humble, itch.io, and for PocketCHIP and web (Education Edition).


0.2.5e fixes a bug in the loader that causes uppercase characters to not be loaded as punyfont (e.g. breaking _ENV).


Added: tline(bits) to set number of bits used for fractional part of mx,my,mdx,mdy (13 by default)
Added: ctrl+mousewheel to scroll code horizontally
Added: current bbs cartridge id shown in window title (config.txt show_cart_id_in_title to disable)
Added: poke(0x5f36, (@0x5f36)|0x80) to enable character wrap by default when printing
Added: blit_method in config.txt // Can use a software blitter by default (slower but more reliable)
Added: reminder when re-locating sprites that only the top half of map is altered by default
Added: draw boot sound as note glyphs on startup when sound is off
Changed: print() returns both max(cur_x), max(cur_y) and includes non-printed characters (e.g. tabs)
Changed: extcmd("folder") and extcmd("set_title", "foo") can now be used from bbs carts
Changed: Indexing a string out of range returns nil (was "")
Changed: Replaced most of pre-processor with Lua parser modifications based on z8lua (fixes various edge cases)
Changed: "a[foo()] += 1" only evaluates foo() once
Changed: out-of-bound tile values can be drawn using map(), tline()
Changed: extcmd("audio_rec") can record a maximum of 8 minutes (was no limit previously)
Changed: Rate limits are now per-minute: 10MB of log writes, 64 different files, 10 extcmd("folder")'s)
Fixed: Infinite tokens hack (was caused by now-replaced pre-processor)
Fixed: Only 4 controllers mapped to 0x5f00+76
Fixed: h toggles hexadecimal mode in gfx editor (should be ctrl-h -- h is to flip sprite horizontally)
Fixed: out-of-bounds value doesn't respect custom map size
Fixed: cutting or clearing a selection of sprites does not also clear the sprite flags
Fixed: P8SCII repeat-character command fails on zero repetions; ?"a*0bc" should print "ac", not "abc"
Fixed: pxa code compression inefficient when >= 32k matching triplets (typically "000")
Fixed: print() return value max(cur_x) returns 0 when max(cur_x < 0)
Fixed: holding menu button to force pause menu to open broken in binary exports
Fixed: copying / pasting in commandline doesn't respect punyfont character encoding
Fixed: (Manual) Steps 1 & 2 on how to move sprites in the map are in the wrong order
Fixed: Unhelpful / no error messages when the wrong format for HELP is used

EDIT: Note for Raspberry Pi Users

0.2.5d/e seem to have a serious issue with the blitter that causes PICO-8 to run, but with a hidden display (i.e. you can hear the boot sound, but not see anything). Unfortunately I won't be able to debug this for another couple of weeks as I'm out of my office -- but in the meantime you can get 0.2.5c from the downloads page under "older versions". Run it with pico8 -accept_future 1 if you want to load splore cartridges authored in 0.2.5d/e (and it will probably still work). Sorry about this!

P#122312 2022-12-13 15:16 ( Edited 2023-01-02 14:00)


does the rate limit change also apply to reading files using serial?

P#122315 2022-12-13 16:36

I see my fixes are in here, I'm happy. :)

Pico-8 just gets better and better ... Nice job, @zep !

P#122324 2022-12-13 18:06


Any chance you could share the code for that GIF please?

P#122327 2022-12-13 18:20

Fixed: copying / pasting in commandline doesn't respect punyfont character encoding

  • Nice! :-D
P#122328 2022-12-13 18:41

Exciting to see @samhocevar's work on z8lua bounce back into main! Well done Sam!

P#122331 2022-12-13 18:53
P#122342 2022-12-13 19:31

emalan-p: it’s like this tweetcart, with a different base image: https://mastodon.social/@zep/109309275931134267

(can’t have working link because bbs username linking conflicts with mastodon links)

P#122343 2022-12-13 19:35 ( Edited 2022-12-13 19:36)

I think I may have found a regression too. It seems like it might be related to what @freds72 has seen, but the output message is rather different so it may be something else: https://www.lexaloffle.com/bbs/?tid=50638

Also just noticed this: https://www.lexaloffle.com/bbs/?pid=94322#p

P#122356 2022-12-13 22:18 ( Edited 2022-12-13 22:32)

Thanks @freds72, @drakeblue -- these are all caused by the same bug in the loader. I've patched the bbs player, and binaries will follow soon.

The "local z/=64*1.4" error is correct, I think (in that it should be an error). There are a few carts like this that are showing oddities that the old preprocessor would accept, which I will stealth-patch as they are discovered. I think having a cleaner parser will be worth the extra breakage in the long term.

P#122362 2022-12-14 00:06 ( Edited 2022-12-14 00:56)

I've uploaded 0.2.5e just now (to Humble and itch also)

P#122370 2022-12-14 01:39

Thanks for looking at the problems @zep. Offline the puny font issue does seem to be fixed in 0.2.5e.

But.. the issue is still showing when uploading to the BBS (_ENV looks to be getting converted to _env):

P#122386 2022-12-14 11:42 ( Edited 2022-12-14 11:42)
Changed: Replaced most of pre-processor with Lua parser modifications
based on z8lua (fixes various edge cases)

This is really cool for z8lua - the copy has become the original!

P#122407 2022-12-14 18:17

Why is the tline precision default 13?

I would have understood 29=(32-3) to express max range for u/v parameters but 13 (16-3) is not immediately clear.

P#122484 2022-12-15 18:51

@freds72: it's 13, because by default the value of 1.0 represents a step of 8 pixels (1 tile width). That means out of 32 bits in a mdx/mdy value, the upper 19 (16+3) will represent "whole pixel" steps and 13 (16-3) will represent "fractional pixel" steps.

P#123073 2022-12-26 15:57

Logical shift right immediate operator ( >>>= ) is a noop now. It worked in 0.2.5.c

P#123529 2023-01-02 19:42

i can see that the typo "possile" is now fixed to "possible"

P#123596 2023-01-03 12:44

Still not working

P#124537 2023-01-19 07:30

what precisely are you referring to?

P#124549 2023-01-19 15:26

0.2.5e version still not working on rasbperry pi

P#124562 2023-01-19 18:24

@Severlock Did you download 0.2.5e2 linked in this thread? That seems to be working for everyone so far.

P#124563 2023-01-19 18:30 ( Edited 2023-01-19 18:31)

[Please log in to post a comment]