~ ~ ~
The classic holiday pastime of jigsaw puzzles, now in the cozy confines of your PICO-8 fantasy console!
~ ~ ~
Like all "Pro" versions of Jigsaw Puzzle Pack sold by KITTENM4STERSOFT, this version allows any PNG image (up to 128x128 px) to be transformed into a custom puzzle via convenient drag-and-drop!
Features
- 4 Pixel Art Puzzles (+1 custom) In 1 Cartridge!
- Drag-and-drop Custom Puzzles!
- Auto-Save!
- Devkit Mouse support!
- Traditional Background Music!
- RandoCut technology for random cuts every time!
Controls
D-Pad: move cursor
[O]: Pick up/drop
[X]: (Hold) move faster
When Mouse Is Enabled (in pause menu)

I seem to have found a weird bug. Normally sfx(-1, -2) will stop sfx on all channels, but if it is triggered by a menuitem callback, it doesn't work; in that case only explicitly stopping sfx on each channel works
to reproduce, enter some notes on sfx 8 (so you can hear when playback stops), then use this code and compare the behavior of the two menu items:
function stop_all_sfx_short()
sfx(-1, -2)
end
function stop_all_sfx_long()
for i = 0, 3 do
sfx(-1, i)
end
end
function _init()
menuitem(1, 'stop sfx (-2)', stop_all_sfx_short)
menuitem(2, 'stop sfx (long)', stop_all_sfx_long)
sfx(8)
end
function _update()
end
function _draw()
end
|
In the web player here on the BBS which currently says it's version 0.2.1, it appears print() now displays numbers as hex:
EDIT: oh wow I didn't realize v0.2.1 was out for real and not just in the BBS web version; I downloaded it and tried running the same cart (#xmasfish) and figured out how to reproduce it so I have corrected the title and description since my first report wrongly said the issue was with tostr()
as you can see here, it only displays as hex when x,y arguments are given to print():


btnp seems to completely stop working iff _update60 is used instead of the normal _update
to reproduce:
- run the program below
- press Esc
- type some sort of statement (for some reason the bug only occurs if you type something before typing resume) e.g. ?"hello"
- type resume
- push or hold down the button (O)
expected: "pushed" will appear onscreen
actual: "pushed" no longer appears onscreen
function _update60()
pushed = btnp(4)
end
function _draw()
cls()
if pushed then
print("pushed", 52, 60, 8)
end
end |

@zep seems like something in 0.2.0d (I don't know if it's present in earlier bugfixes of 0.2.0) is wonky with coroutines not updating sometimes or something?? different unpredictable problems are actually happening almost every time I run it; check this out (the dialogue is updated in a coroutine):
so far it seems like most of the time it seems to lead to crashing because variables that are declared inside coroutines are attempted to be referenced by code in the main thread but the variable hasn't been defined yet, which seems to also point to the culprit being coroutines mysteriously not updating every frame like they should (the _update60 method in this cart calls coresume on both of the coroutines every frame; there is one for the dialogue and one for controlling the presentation of the "pins" in each level--both of those are the things that seem to be breaking)
EDIT: okay I've done a bit more testing and there is definitely an issue where a coroutine just starts updating suuuper slowly (seems likely the same issue as is visible in the GIF above) and basically yields in the middle of itself where I don't have any yield statement. For reference, here is some code inside a coroutine where I added debug printh statements:

after moving (via cut/paste) some SFX in the new super-cool pattern editor view, it seems sometimes it breaks the SFX editor's copy/paste in that when I highlight a few notes, copy them, and try to paste them, it keeps saying a message like "pasted 2 sfx" (instead of "notes") and has no apparent effect (at least not that I can see from within the SFX editor). I haven't found any way to fix it besides reloading the cart.
EDIT: actually I just saw it happen even without using the pattern editor...copy/paste just mysteriously stops working sometimes. it looks like entering some notes makes it start working again though?
i barely finished this in time for the jam, but here it is in its raw form for your enjoyment :)
this was made for Toy Box Jam!

This is my entry for the 2019 Advent Calendar =^w^=
Controls
- Up/Down/Left/Right: move
- O: do actions
- X: show/hide inventory
Backstory
My wife Aubrianne wrote a 100% completely original poem which provides the deep lore behind this game:
[hidden]
'Twas the night before Christmas, when all through the sea
Not a creature was swimming, not you and not me;
The lights were all strung on the coral with care,
In hopes that St. Nicholas soon would be there;
The wee fry were nestled all snug in their beds;
While visions of sugar-worms danced in their heads;
When up from the surface there came such a splashing,
I sprang from my bed to see what could be happening.
Up, up to the top I swam like a flash,
Looked up through the ripples, popped up with a splash.
When what to my protruding eyes did appear,
But a crash-landed sleigh and eight whiplashed rein-deer,
With a little old driver so frantic and quick,
I knew in a moment he must be St. Nick.
They paddled like puppies, his coursers they came,
And he whistled, and shouted, and called them by name:
"Now, Dasher! now, Dancer! now Prancer and Vixen!
On, Comet! on, Cupid! on, Donner and Blitzen!
To the shore of the beach! to this lonely atoll!
Now swim on up! swim on up! swim on up all!"
As awkward as kittens dropped into a bath,
They bobbed and they flailed and sought for a path;
And then, in a twinkling, reindeer on the beach
Were prancing and pawing the sand with relief.
As I dipped 'neath the waves, and was turning around,
Into the water St. Nicholas came with a bound.
He was dressed all in fur, which was quite a blunder,
His clothes got all soaked and were pulling him under;
I was quite astonished to hear him call out
to me he was waving and said with a shout
"What ho, my good fish! You've been very good!
I'm here to bring gifts to your fine neighborhood!
But, alas! All the presents I brought for your friends
Have been lost at sea and I might get the bends.
Our tanks are all dented, and I very much fear
we have only wetsuits for seven reindeer.
Dasher, that rascal, lost his on that trip
we took to Fiji on our polar cruise ship.
"My friend, will you help me? I'm in dire straits
For all o'er the world empty stockings await
Will you find all the gifts and deliver each one?
Will you wear the red hat and make Christmas come?"
I solemnly blooped and I bubbled assent
I would see it through to the very last present!
His hand rose up all the way to his head
and came down again with his fine cap of red
He gave it to me and he said with a sigh,
"You're Santa now, fish. You are the guy!"
With a wink of his eye, he gave me a smile
I knew I had nothing to fear from this trial;
He sloshed to the beach, and tapped his red nose
The sleigh came together and in the air rose
He sprang right aboard, the reindeer all heartened,
And away they all flew, as fast as a marlin.
But I heard him exclaim, as I floated, awestruck—
“Happy Christmas to all, and to all, best of luck!”
The new (just noticed it changed today) HTML player here on the BBS doesn't seem to be able to keep a steady 60 FPS
I can really feel a bunch of frame jitter when playing Alfonzo's Bowling Challenge and it makes the physics feel very noticeably off
(testing on a MacBook Pro in both Chrome and Firefox. The old exported HTML version (0.1.12c) on itch still runs smoothly on this same computer)

The layout of the clickable buttons (fullscreen, control help, mute, etc.) on the side in the 0.1.12c version of HTML exports appears to have broken in Google Chrome all of the sudden. All of the buttons now appear stacked on top of each other :\
screenshot:
The layout still works in Firefox. I guess Chrome recently changed their interpretation of CSS rules in a way that broke this?

here is my submission for Spooky September 4-Color Jam!
it was a collaboration between me and my wife; she drew all the amazing background art! (using a vector drawing tool I made)
enjoy, and happy september/october/autumntimes! :>

The BBS PICO-8 player is showing up blurry in Chrome on macOS.
(version 76.0.3809.100)
This seems like it might be a bug with Chrome, not this site, but I'm posting it here just in case...
The other puzzling factor is that this started happening all of the sudden, without updating Chrome or anything, e.g. I had the same Chrome session running and at some point this started happening. I then tried restarting my computer and it's still happening.
Screenshot
A Workaround (as a user)
- Use "inspect element" on the canvas (e.g. push Option + Cmd + I, click the hover tool thing, and then click on the canvas)
- uncheck image-rendering: pixelated
- check it again
That fixes it for some reason :| It makes no sense, which makes me think it's Chrome's fault.
(EDIT: actually sometimes unchecking/checking that CSS rule makes the canvas start flickering like crazy...uggh)
More Info

feature request: a keyboard shortcut to switch tabs/pages of the sprite editor. Something like a Page Up/Down.
(if this already exists, someone please let me know!)
holding W technically works but it takes foreverrrr :)
edit: WHOAA I just discovered you can hold Shift + Q/W to go up/down which is a much better workaround! Still I think if there are tabs which are selectable via mouse, they should also be selectable via keyboard somehow.
The other day I listened to @Gruber's nice transcription of Giant Steps and I felt inspired, so here's another late-1950s jazz standard, this time from the great Dizzy Gillespie: "Con Alma".
My transcription is based on the version from the album Duets (1958) with Dizzy (trumpet) and Sonny Stitt (tenor sax).
I of course didn't have room for all the solos (the recording is over 9 minutes long), so I picked my favorite sections, but otherwise tried to stay faithful to their improvisations. I also made a loop out of the whole thing, so I didn't have to try to make room for the ending :)
It can be quite challenging and awkward trying to mimic the expressive, organic sound (and swung rhythm) of wind instruments with PICO-8's limited beeps and boops, but I'm pretty happy with the result, considering the medium :D

Scenario 1 (correct, IMHO)
- In the music editor, use the keyboard to select a note in a channel
- Switch to the SFX editor using the keyboard (Alt + left)
Result: The SFX which the cursor was in (in step 1) is selected in the SFX editor.
Scenario 2 (correct, IMHO)
- In the music editor, use the keyboard to select a note in a channel
- Switch to the SFX editor using the mouse (click on the SFX tab)
Result: The SFX which the cursor was in (in step 1) is selected in the SFX editor.
Scenario 3 (correct, IMHO)
- In the music editor, use the mouse to select a note in a channel
- Switch to the SFX editor using the keyboard
Result: The SFX which the cursor was in (in step 1) is selected in the SFX editor.
Scenario 4 (bug, IMHO)
- In the music editor, use the mouse to select a note in a channel
- Switch to the SFX editor using the mouse (click on the SFX tab)
Result: The SFX which the cursor was in (in step 1) is NOT selected in the SFX editor. It looks like whichever SFX was previously selected in the SFX editor is there...or something. It's not what I expect.
Summary
- If the keyboard is used to select the note in the music editor, that SFX will be selected when switching to the SFX editor regardless of whether keyboard or mouse was used to switch to the editor
- If the mouse is used to select the note in the music editor, that SFX is only selected if switching to the editor with the keyboard, which feels unintuitive/buggy.
- this is in version 0.1.12c
Whereas in PICO-8 v0.1.11 it was possible to run a cart at 60 FPS and get a higher sampling frequency (than at 30 FPS) when querying the value of stat(26) (i.e. number of ticks played on current pattern), it seems that in v0.1.12 this behavior has been changed so that in 60 FPS the stat(26) value still only updates 30 times per second.
What led to my discovering this was that I thought I perceived a visual difference when using v0.1.12 to run part of my "Not A Creature Was Stirring" cart that uses stat(26) ticks as the input for some easing functions, so I created a standalone test cart and ran it in both v0.1.11 and v0.1.12 and it looks like the behavior has indeed changed.
Here's a test cart. Try changing the "_update60" function to "_update" and see that in v0.1.12 the average diff between sampled ticks (only counting when there is an actual change) is the same (roughly 5.59) either way. But if you run the same cart (I had to change the cart version to 16 to do this) in v0.1.11 you can see that in 60 FPS mode, the average diff between sampled ticks is roughly half (about 2.8), which is better for syncing things to music.
.png)
The changelog for v0.1.11c (from a year or so ago) says:
> Added: F11 to toggle fullscreen
...but F11 has never actually worked in any version of PICO-8 so far, to my knowledge. Alt + Enter is still the only way to do fullscreen.
So I'm just making a bug report to track this, and as a reminder in case a fix might make it into 0.1.12b or something ;)






5 comments



