Picotron 0.2.0i Candidate Changelog Added: view.p64 -- can be used to view .p8 spritesheets and .png files (colourfitted to system palette) Added: gfx.p64 spritesheet imported can directly load .p8 / .p8.png Added: anywhen listings; add /@ to any path to get a folder of changes. Works with folders too: filenav /desktop/@ Added: ?"\^o$ffhello" to use current colour for outline (thicken); ?"\^o!ff..." to draw only outline i current colour Added: ?"\^uunderline" Added: batch line(), circ() drawing Added: One-off p8scii characters with \^, \^; (instead of \^. \^:) to respect the padding bit. ?"\#3\^;447cb67c3e7f0106" Added: fullscreen mode uses the display that the host window currently occupies // use picotron -display n for initial choice Added: can run bbs://foo.p64 from terminal with just: #foo Added: ctrl-shift-r while editing a gfx file to reload just that spritebank while cart is running (0*.gfx .. 31*.gfx) Added: send_message(pid, {event="..."}, func(msg)) to process a reply from that process Added: on_event("foo", nil) to destroy all callbacks for that event type Added: fetch() non-blocking form: fetch("https://example.com", {on_complete = function(obj, meta, err) printh(obj) end}) Added: rle 0x81 pod format for u8,i16 userdata: works well with delta generation -> gfx/sfx/map undo is faster and uses less memory Added: max 256k ram files (was 16k); needed for many temporary files created by anywhen / bbs cart mounting (and now w/ faster lookups) Added: "overwrite [y/n]" and "discard unsaved changes? [y/n]" confirmations from terminal when using cp, save and load commands Added: GUI confirmations when overwriting a file or loading / rebooting / shuttdown down with unsaved changes. Added: wrangle_working_file() takes an optional state_hint callback function used to monitor for changes (see notes in notebook.p64) Changed: confirmation buttons always on the right! cancel on the left. Changed: reported gfx/map memory capacity treats 12MB as the limit (was 16MB), as running out of memory is currently catastrophic Changed: shared lz4'ed anywhen blob storage for efficiency // later: tool to sweep unreferenced blobs if want to delete old months Changed: anywhen ignores binary exports (paths containing ".bin/") // later: customisable rules Changed: New Cartridge (from context menu) also loads the cartridge after it is created Changed: New Cart / New File / Rename ops from desktop opens a new window (more tidy, can change directory) Fixed: coresume() only returns first return value Fixed: p8scii characters are drawn 1,1px out of position when padding is disabled // ?"\^-bhey" Fixed: storing .p64.rom and .p64 carts from raw binary strings broken // e.g. store("foo.p64.rom", "this is a tiny cart") Fixed: (Mac) high host cpu load (bug in build script causing -O0!) Fixed: anywhen loading (via utils/load) with time of day specified resolves to the wrong UTC time Fixed: default p8scii text wrap x based on clip RHS (used when 0x5f36:0x80 is set) does not take camera into account Fixed: selected files in grid mode are not drawn on top when selected (long filenames hidden by non-selected neighbour) Fixed: automatic desktop icon placement is too close to existing files (and often ends up underneath drive.loc) Fixed: Using app menu > about after ctrl-r shows metadata on /ram/cart/main.lua instead of /ram/cart Fixed: ctrl+r program with no _draw() but creates a display using vid() or window() --> output not copied to terminal back_page Fixed: crash when saving cart with ctrl+s while viewing and empty workspace Fixed: memory consumption in map editor can jump up unexpectedly and run over limit before have a chance to save Fixed: sfx.p64: entering many pitches quickly is laggy and sometimes get double undo points Fixed: undo_stack:checkpoint() when there are no changes sometimes produces a redundant undo point Fixed: undo_stack stores a superflous copy of state; re-worked implementation using a single "head" state to save memory