I'd just like to share that I implemented a tracker for the Gamebuino inspired on PICO-8's tracker. It is a bit more primitive, as the Gamebuino console only supports 10-bit audio. Furthermore to keep CPU load acceptable, some pragmatic choices had to be made in generating the audio samples. For example, all calculations are integer-based and only 8-bit multiplications are used. Custom instruments are also not fully supported. In particular, you cannot layer effects, e.g. apply a Vibrato effect on top of a Slide, or vice versa.
However, my tracker supports all instruments and effects available in PICO-8. With that, it is able to reproduce most PICO-8 songs. At least, I successfully managed to render all the songs that I tried to port.
In particular, I want to thank the following PICO-8 users for sharing their carts/music under a Creative Commons license:
- @Domarius: Alex Kidd
- @Gruber: For his music in The Lair and Winter Golf
- @jobe: Rock for Metal and Techno Utopian Edict
- @Krystman: porklike and Mai-Chan's Sweet Buns
- @lucatron: Neon
- @pahammond: Bubble Bobble
Your music has been used to test the tracker and to show off its capabilities in a Music Demo:
For those interested, the source of my tracker can be found on github
Thanks man! I see you got a few of my Alex Kidd ones in, nice :) Hearing this on the actual Gamebuino makes me realise if I made games for it I'd make sure to include strong high pitched melodies and sound effects to make sure the player can hear something - the low range notes are basically silent on the built in speaker. But I plugged in the head phones to hear everything. Nice selection of songs in general! I've been listening to on loop while I work for a while :)
So it basically sounds like a slightly scratchy version of the Pico 8 which is very impressive... I assume you are mixing the sound on the CPU rather than use built in sound hardware? I have a Gamebuino but still haven't looked into it much other than play games on it :)
Do you know how much CPU is left over while the songs are running?
Ha, it's nice that you actually own a Gamebuino so that you can hear the result. I am happy to hear you even enjoyed it.
Pressing down in the player lets you toggle display of CPU usage. The usage varies per song and also during each song. The more tracks, the higher the load, and some effects and instruments are more demanding. Nevertheless, CPU usage never exceeds 75% so there is still room to implement a decent game :-). My Bumble Bots Re-pair game on the Gamebuino now uses this tracker for music and sound effects.
Next to using integer-arithmetic only, the other main trick to keep CPU load acceptable was to generate samples at 11025 Hz instead of 44100 Hz. The effect on the audio quality is hardly noticeable. The main factor that limits quality is the ten-bit resolution.
Yeah I love having a Gamebuino, it's the closest thing to a real Pico 8. Unlike the Pocket C.H.I.P, not a portable Pico 8 as advertised, and totally unusable in every way.
Ah I see the CPU load now. I see it mostly hovering around 68%, spiking up to 71% for my song, heheh. You did a great job keeping the CPU so low doing sound mixing on such a low spec CPU. It's funny to think of 70% of the CPU being devoted to sound on a game system, but that's plenty of room for simple games :)
Putting your Bumble Bots Re-pair on my Gamebuino and realised I have "Bumble Bots" as well already! I would have added it from a top-rated list, so I guess your stuff is doing pretty well! Love the isometric 3D effect.
God, just played Bumble Bots Re-pair 2nd level XD it went from "do nothing", to "is this level even possible??" Bit of a sucker punch :) But puzzle games aren't usually my thing. I finally got it though. I actually really like it, and the music. I was wondering if the music was yours, and then I see on your page it's randomly generated? I totally believed it was composed... awesome.
Actually, the music generation is only taking up 10% CPU at most. The four-track songs spike at 74%, but CPU usage with music paused/stopped is already 64%. Most of the CPU is taken up by the screen refresh. Even if you do not draw anything, only clear the screen each update, CPU usage is already over 50%. That's required to transfer the data from the in-memory screen buffer to the actual display buffer, which for index mode requires for each pixel (and each update cycle) expanding the 4-bit index color to the actual 16-bit color.
The Bumble Bots music is actually composed, not by me but my brother who unlike me is a good musician. I am not sure where you read that it was randomly generated, because that's not accurate. It would be very impressive if that were the case though.
If you already struggled with Level 2 of Bumble Bots Re-pair, I fear you will struggle even more with the rest. With all the play-testing I did, I actually cruise through all ten levels, also because it's the type of game I'm good at. Unlike for example a game like Celeste, which I really struggle with but given its ratings, I think I am an exception there. I think your experience of playing Bumble Bots Re-pair is actually representative for most players, which I think means it will remain a niche game. Ah well, at least I enjoyed the creation process :-)
Ahh its one of those situations with the CPU, I get it. I remember talking to a computer science major in University, and he said the little robot dogs they got to program with, 90% of the CPU was taken up processing the video feed from the camera, so they only had 10% left to do the AI for navigating etc. Pretty funny that the 4- bit graphics have to be stepped up to the 16-bit quality of the screen. The Gamebuino may be retro but 16 bit displays are easier to come by I assume. Anyway that means your music processing takes up only about 1/3 of the available processing which is even more impressive.
Hahah, it's seems I misinterpreted your comment "The music is generated on-the-fly via a custom music extension to the Gamebuino library", now I realise you're talking in the context of going from a pre-recorded WAV file to sample mixing / tone generation XD But that's pretty cool you could team up with your brother to make a game together, hopefully we see some more. (Reminds me of the programmer & art brother team that made "Golf With Your Friends" on Steam, they're millionaires now. They were my students!!)
I'd agree with the difficulty, but at least when I persevered, I was able to discover the nature of the game and see that it was fun :) so there may not be a gradual difficulty curve, but there is indeed a good game there that I will come back to now that I'm over the hurdle.
[Please log in to post a comment]