One of my favorite hobbies of late is trying to transcribe/approximate existing music into PICO-8's tiny tracker, so here is my attempt at "Castles of Cake" from my favorite kirby game, Kirby's Dream Course :D
Technically Interesting Note: I am doing some slightly sneaky swapping of SFX after the intro so I can use a couple of different SFX instruments that are only in the intro and not used in the rest of the song
I saw this tweet by Polyducks and felt inspired/compelled to make something like it in PICO-8:
in WIP for now because maybe I'll make some music for it
(FYI we've pinged you in the secret discord server about this, but maybe you have those notifications turned off or something, so I'm posting it here for you to see)
The Advent Calendar 2018 cart hasn't been showing up in SPLORE since sometime Thursday night/Friday morning UTC, I think (around the time I posted my Day 7 cart). I also cannot find it via the search in SPLORE. (I've only been able to get to it because my Day 7 cart has a link to it in the menu :)
Also the thumbnail that shows for the BBS thread (and in pinned posts at the top) is wrong; I think both of these things started happening at the same time, so I'm wondering if they are perhaps related?
Not A Creature Was Stirring (...Except Squeaky Whiskerson and his Marvelous Musical Mice!)
This is my cart for Day 7 of the 2018 PICO-8 Advent Calendar project!
Turn up your speakers!
The fullscreen button on the mobile web interface seems to have broken all of a sudden. Instead of displaying the screen, the fullscreen icon itself is displayed really big, stretched to fill the screen XD it's actually pretty funny.
(it's actually a pretty critical issue though because the mobile controls are super buggy and unreliable unless you're in fullscreen mode)
Using Chrome on Android (on a Pixel 2 so this is the latest version of OS and browser) when I hold down a button (including d-pad buttons) on the mobile web button overlay (in fullscreen mode), it now causes a vibration as if I am selecting text on the page. I'm guessing it thinks it is selecting some invisible text in the overlay or something...there is no visual indication of text highlight. I can definitely say this did not happen on the previous version of the BBS.
Sorry for all the bug reports, lol. I hope the info helps :D
A couple days ago, I uploaded an unlisted cart (with an all lowercase alphabetic ID). Today I tried to update that unlisted cart, and it tells me:
Upload successful! Tag for this version is: [# sillytree-#]
(I've replaced my real cart ID with "sillytree" because the real one is still super secret :p and also put a space after the first "#" so that the BBS doesn't try to display it as a cart)
There is no number after the hyphen there (the current version is "-0" so I would expect a "-1" now) and when I go to the cart's info page, it still says there is only 1 version. And if I try going to /cart_info.php?cid=sillytree-1 it says that does not exist.
I don't know if this only happens on unlisted carts or not; all I know is what happens in this specific case. I tried a couple times just to make sure it wasn't a one-time glitch or something, and it is reliably reproducible.
WIth the previous version of the BBS, I almost never got logged out. With this version, it seems like every time I visit, I have to log back in. A couple days ago I was even sometimes getting logged out just clicking around to different pages.
Is this short login session time by design?
This is a really weird bug, but stat calls for pattern index, note index, and "number of ticks played" do not always sync up and sometimes one changes before the other. It was intermittent and hard to track down. In order to compensate for this, I had to write something to insulate myself from it:
function poll_songpos() local pat = stat(24) local n = stat(21) local ticks = stat(26) -- compensate for bug (!) where pattern sometimes changes before note if pat ~= songpos.pat and n ~= songpos.n then songpos.pat = pat songpos.n = n if songpos.prevticks > 0 and ticks >= songpos.prevticks then songpos.ticks = 0 songpos.waitingforticksync = true end elseif pat == songpos.pat and n ~= songpos.n then songpos.n = n end -- compensate for bug (!) where pattern sometimes changes before ticks if songpos.waitingforticksync then if ticks < songpos.prevticks then songpos.waitingforticksync = false end else songpos.ticks = ticks songpos.prevticks = ticks end end
(I then changed all other code to use songpos as the source of truth, rather than the stat calls)
However, this caused a big headache and was hard to track down and it would be great if this wrapper were not necessary. Also I'm not 100% sure this wrapper code is completely bulletproof; I simply wrote it out of necessity to get the issue out of the way from the specific cart I was working on.
Sorry I don't have a cart demonstrating the issue, but I will try to make one. I just wanted to get this reported sooner rather than later, in hopes that it might get addressed for the upcoming update :D
EDIT: as a reminder I also have another bug thread about stat(24) returning 0 instead of -1 which hasn't been fixed yet
Thanks again, @zep, for adding these sfx state-related stat calls a while back; it is super fun to get stuff to react to music/sfx, in a way that is not easily possible on most other platforms!
The new BBS 4.0 "cart menu" (the one that slides over and covers the screen and shows other carts) is really cool! However, it seems it allows music to continue playing, while not running _update on the cart. This will basically completely break some audio synchronization stuff I do with stat calls in some of my carts (I do this heavily in one which is going to be released very soon!)
You can see an obvious demonstration of the issue with this cart, which displays the notes that it sees are playing: https://www.lexaloffle.com/bbs/?pid=28685
Until now, I did not see a way for music to play without the update method being called for so long (besides minor frame drops, which I do some work to account for), and this feels kind of like a violation of a basic assumption (at least an assumption I had) with the API so I'm hoping this web behavior can be changed so that the cart is either completely paused or completely running, and not a weird in-between state? @zep
It looks like the "/bbs" bit is missing.
For example, this is the image URL on my settings page:
But the correct URL is apparently:
When sorting by likes, anything past page 1 seems to display an empty page.
QUEST has been hailed by critics as "the most exhilarating 299 characters of source code I have played today" and "a true example of minimalism...well definitely not a false example".
- Dynamically hard-coded sound effect(s)!!
- Full English dialogue!!
- Fit-on-one-screen source code!!
(This was created as part of TweetTweetJam in which the prompt was to make a game using fewer than 560 characters of code.)
Give a man a fish and he'll eat for a day.
Teach a man to fish and, well...you'll see what happens.
(this cart was made in a few hours on a tropical island)
When I started making this, I was inspired by two Italian things: pizza (not pictured) and the Cassini spacecraft.
~ this cart is designed to be played in a dark room with headphones on the night of a new moon ~
(tip for people unfamiliar with PICO-8 controls: the "O" button maps to the following keyboard keys: Z, C, or N)
KITTENM4STERSOFT DEFRAG is the industry-leading fantasy defragmenter for the PICO-8.
Read what customers are saying about KITTENM4STERSOFT DEFRAG:
> "It really looks like it's working!"
> "The rectangles were over there and there...but now they are all over there! Amazing!"
> "I can't stop watching. Please send help."
Let's see how the features in KITTENM4STERSOFT DEFRAG stack up when compared with Other Leading Defragmenters:
KITTENM4STERSOFT DEFRAG COMPETITORS Defrags FANTASY DISKS? ✓ | X Can be run over and over? ✓ | X Relaxing Music while you wait? ✓ | X Screensaver Mode? ✓ | X Inuitive One-Button Controls? ✓ | X
User Experience First
Other leading defragmenters are designed with function first, giving only a passing thought to USER EXPERIENCE.
KITTENM4STERSOFT DEFRAG is revolutionizing the industry by putting user experience first!
KITTENM4STERSOFT DEFRAG is the only PICO-8 defragmenter designed for one sole purpose: to give you the luxuriously satisfying experience of watching a disk be defragmented.
WHAT DOES KITTENM4STERSOFT DEFRAG DO?
- Removes 100% of fantasy fragments!
- Makes you feel like you are accomplishing actual work!
- Meticulously rearranges each file's fragments into a contiguous and sequential mass, leaving your computer—and you!—feeling whole, complete, and at peace!
Never Stops Working
Other leading defragmenters can also defragment, but once they finish running, your files are stuck there at the beginning of the drive, forcing you to wait hours, days, or even weeks until your disk is fragmented enough to defragment again to satisfying results.
Unlike other leading defragmenters which cease to provide the user with an entertaining display of ambulating rectangles once they have finished, KITTENM4STERSOFT DEFRAG creates a new FANTASY DISK each time it is run!
Open the PICO-8 menu (on keyboard, press RETURN or P) to access the following two optional modes:
Enjoy the latest in popular music, perfectly paired with the enticing visuals to enhance your meditative experience. DEFRAGMENT YOUR MIND, BODY, AND SOUL!
Activate SCREENSAVER MODE to disable pesky dialog boxes, enabling you to sit back and enjoy an endless supply of fresh fantasy disks get defragmented with no user interaction required!
here is my submission for 3-COLOR JAM
It has two secret endings :>
For people not familiar with PICO-8, the desktop web controls are: arrow keys and Z/X (or C/V or N/M)
COLLECT THE PRICELESS SPACE GEMS
I recently made a program that can translate (some) MIDIs to PICO-8 tracker format and I thought I'd also make a fun visualizer to show it off :)
The music you see (and hear) above is J.S. Bach's Sinfonia 15 in B minor (BWV 801). It was translated from a MIDI file (that I found on the internet somewhere) into PICO-8 tracker format by the aforementioned tool:
This visualizer takes a simple approach of displaying whatever notes it sees are currently playing each frame (if any notes changed) so it may skip notes if the notes ever change faster than the FPS (this cart runs at 60). A more robust visualizer could be written, but I just wanted something that could display most normal songs for fun :)
You can use this visualizer to display your own music by downloading this cart and uncommenting one or both of these lines in the _init() function (and changing the path string appropriately):
-- load the music and sfx data from another cart --reload(0x3100, 0x3100, 0x1200, 'othercart.p8.png') -- permanently store the music and sfx data loaded above --cstore(0x3100, 0x3100, 0x1200)
I hope you enjoy watching the little notes go by. I enjoy Bach's keyboard music and much of it also happens to translate very easily to PICO-8 tracker format :)
View Older Posts