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

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

0.2.5d

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!

41


\o/

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


2

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

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


awesome

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


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

  • Nice! :-D

3

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



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)


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


2

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.


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


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):
https://www.lexaloffle.com/bbs/?tid=50638


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!


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.


1

@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.


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


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


Still not working


what precisely are you referring to?


0.2.5e version still not working on rasbperry pi


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



[Please log in to post a comment]