Log In  


PICO-8 0.2.2b 0.2.2c is now up on lexaloffle, Humble, itch.io, and for PocketCHIP.

This is a bug-fixing patch for 0.2.2 -- see that thread for a summary of recent features.

0.2.2b does have a few small features though. You can now use a .lua.png extension with the EXPORT command to get the source code (all tabs) of your cartridge printed out to an image with roughly A4 dimensions. This is intended mostly for visualisation purposes, and lines are cropped to 188 pixels (47 characters) wide. The jelpi demo source code is bigger than I imagined!

EXPORT JELPI.LUA.PNG

dots3d.p8 is much cuter

There are also some new extcmd() commands for setting screenshot output filenames, and the window title (intended for exported binaries).

I've also added a way to force the pause menu to come up, even if the cartridge is blocking it with poke() trickery. Simply hold the pause button for half a second, and the menu should come up no matter what (it's implemented at a low level). This might be useful when using SPLORE from a sofa, and a keyboard isn't available to terminate stubborn cartridges.

Full list of changes:

v0.2.2c

Fixed: ?"\ac0" starts from d#0 instead of c0 (again -- 0.2.2b was still broken)
Fixed: splore local directory navigation fails when using a relative home path set with -home
Fixed: export .lua.png only shows the first 2730 lines

v0.2.2b

Added: export foo.lua.png to get an image of the cartridge's source code
Added: Pause menu can be forced to appear by holding down pause for 300ms (even if program blocks it)
Added: extcmd("set_filename","foo") -- set the filename of the next screenshot or gif (can include %d)
Added: extcmd("set_title","foo") -- set window title (useful for exported binaries)
Added: Can toggle punyfont mode at command prompt w/ ctrl+p (useful for inspecting puny variable names!)
Changed: Default filename is /untitled.p8 instead of no filename (auto-increments to untitled_1.p8 etc.)
Changed: circ/oval that are not visible cost almost nothing, including circles that contain clipping region
Changed: filled circles/ovals that contain clipping region cost the same as the equivalent rectfill
Changed: shift+enter in code editor only auto-completes block for DO, THEN, REPEAT or FUNCTION
Fixed: ?"\ac0" starts from d#0 instead of c0
Fixed: preprocessor regression when using string at end of ..= statement: if (true) then a..="b" end
Fixed: pressing L / R in paused menu is registered by running program after closing menu
Fixed: printing text in tall mode (?"\^ttall") via commandline can chop off bottom line before scrolling
Fixed: drag-select text with cursor at bottom or top of screen scrolls too fast
Fixed: spurious stat(0) results when using yield() to exit frame instead of flip()
Fixed: line()/tline() sometimes draws pixels on opposite side of screen (0.2.2 regression)
Fixed: line()/tline() fails to draw lines that have x or y coordinates > 32767 pixels apart
Fixed: can peek() more than 8192 values in single call
Fixed: large fill circles (> radius 900) render incorrectly close to vertical center (32-bit builds, web)
Fixed: even-widthed filled ovals with midpoint < 0 is drawn off by 1
Fixed: black pixels in gif / map export not completely black
Fixed: map and spritesheet exporters do not respect current display palette and 0x5F36:0x8 (draw spr 0)
Fixed: code editor: cursor position off by one when selecting character after glyph (0.2.2 regression)
Fixed: code editor: tab names don't show up when 100% punyfont
Fixed: import spritesheet.png failing under MacOS (0.2.2 regression)
Fixed: export single sfx to .wav crashes when contains sfx instrument references

15


1

Dunno what was done about audio printing, just checked - C-2 is "\aa1" (except sounds rougher than instrument 0? dunno), also "\af" and "\af#" still don't work (curiously, any letter in the alphabet that is not a note or audio command, like "\az", is equivalent to "\aa", but "\af" results in a beep like "\a")

upd: wtf it goes a1 b1 c1, not a1 b1 c2 ???


1

> I've also added a way to force the pause menu to come up, even if the cartridge is blocking it with poke() trickery. Simply hold the pause button for half a second, and the menu should come up no matter what (it's implemented at a low level). This might be useful when using SPLORE from a sofa, and a keyboard isn't available to terminate stubborn cartridges.

yesss thank you <3


1

OMG I love it. 😍😍😍

This is my Global Game Jam game. This is so satisfying to see.


Thanks zep! Will be looking forward to having my games captured in a single image!


1

@db0z thanks for the heads up -- I messed up and didn't actually merge the fixed code for 0.2.2b. 0.2.2c is live now with that fix and a couple of other small things.


Bummer that the rendered source code export functionality (export game.lua.png) does not flatten the project (merge external source files) prior to rendering.

I will try and hack something. brb. :)


@alexr: save to temp.p8.png first to flatten includes!


I'm a little sad that the lua.png isn't square.
or a single tall column. with perforations on the sides.
;)


@zep I hadn't thought of that. Damn! ... and ended up writing a sh script to do the pre-render merging. Thanks !

#!/usr/bin/env bash

FILE=$1
BASENAME=`echo $FILE | sed 's/\.p8$//'`
OUT=${BASENAME}_f.p8

cat $FILE | sed '/^#include /d' | sed '/^__gfx__$/,$d' > $OUT

for include in `grep '#include ' $FILE | cut -c 10-`; do
  cat $include >>$OUT
done

cat $FILE | sed '/^__gfx__$/,$!d' >> $OUT

echo $OUT

@MBoffin yep ... it is satisfying, _and a little bit addictive. Also super useful as a code discovery tool on projects that haven't been touched in a long time.


1

What happened to Voxatron Beta, 1.0 and so on?

The last update was years ago.. :(


1

Good news! Voxatron is getting very frequent development updates over at Twitter (sort by newest, the markdown link parsing is a bit busted), and it seems a 0.3.6 update is gonna be relatively soon!


1

Possible bug: In the sprite editor "h" flips the sprite horizontally and toggle the hex view. The documentation says Ctrl-h should toggle the hex view.



[Please log in to post a comment]