So, I wanted to do a quick experiment to see what happened if you played a note on a custom SFX instrument with reverb - would the reverb continue past the line where the note is played? would it cut off? Either would definitely be cool.
So I made a test cart:
...and did an export command from the command line to save a .wav of SFX 1 to open in Audacity, and PICO-8 immediately crashed.
It looks like it's an issue with SFX that contain custom SFX instruments, from my very quick testing.
Edit: I haven't noticed this error at any point recently; I'm going to chalk it up to gremlins and resolve the report.
Hey All! PICO-8 0.2.2 is now up on lexaloffle, Humble, itch.io, and for PocketCHIP.
This release follows a pattern set by previous 0.2.* updates in that I set out to fix a bunch of bugs and resolve design details, but in doing so, went down some deep rabbit holes and came out the other end with brand new features. As a result, some of the new features are on the advanced side, and this post will be likewise be more technical than usual. But I hope everyone can find something fun to mess around with!
SFX Filters
At the bottom of the SFX editor, you can now find 5 switches that alter the characteristics of each instrument. You can get a much wider variety of sounds and textures now, but they're meant to feel like variations on the existing instruments rather than completely new ones. I settled on this scheme after working on Voxatron's sound system and found that I could boil the set of parameters I wanted down to just 7 bits of information -- which is fortunate because there were only 7 unused bits left in the SFX data!
This is with the current latest release v0.2.2 on macOS 11.2.1 (if that's relevant):
If I try to export a sprite sheet, then modify it in an external program, then import it, I get a "could not load" error message. It also doesn't seem to matter whether I modify it externally, since export sprites.png and then import sprites.png shows the same error. Nothing seems to be logged to stdout or stderr.
Continuing my topic of custom fonts, here's one that replaces almost every character in the later half of the character set (which is usually taken by patterns, hiragana and katakana) with the 120 official characters of the "sitelen pona" writing system for the minimalist conlang "toki pona".
Here's the charts of characters:
Changelog:
Version 1.1 (current):
- slight adjustments to some characters, an easier-to-understand "moli"
Version 1.0:
This is a demo for a game I did for class which I hope to expand on in my free time, when I actually have some of that again lol.
You play as the volcano god of an island city. When foreign ships carrying missionaries of another god arrive at your shores and convince the villagers to convert and stop their worship of you, you get revenge by destroying the city with your fireballs.
X to fire a shot
Goal is to destroy as much as you can in 10 shots
Some areas give more points than others
Here's a cart I threw together for myself to use with the new custom font feature.
When run it will read the spritesheet into memory as a custom font, then copy a code snippet to your clipboard that will import that font into another cart. It doesn't include the values from 0x5f60->0x5f64, that define the overall font attributes. Those must be set manually in the cart you are importing to.
The import has several optimisations. Instead of always copying the entire custom font memory block it starts from the first non-zero memory value in the block and continue to the last. To save characters it will construct two exports: one that uses poke and one that uses poke4 and export whichever is smaller. It will leave out unnecessary zeroes and also trim leading and trailing zeroes in the hex values for the poke4 export. It also stores all the values as a big string that's split and unpacked at runtime to save tokens.
Just testing...
Jakey using Pico 8 to do his homework. It's more fun than pencil and paper!
I just completed my first Pico-8 Game.
Event was a local (online) GameJam-Project (8 hours to create a game from scratch, theme was "Sailing"). Thing is, I've never touched Pico-8 before, nor had I any Lua Experience whatsoever, but I wanted a challenge and (kinda) succeeded; fiddling with the Pico-8 Engine was tons of fun, and I certainly will continue my Pico-8-Endeavours in the future.
The following day I tweaked my code and added fancy stuff, like, a Scoring Objective.
Use [Arrow Keys] to navigate the Ship.
Press [X] and any direction to throw out your fishing rod.
Catch as many Fish as you can without crashing your Ship.
The Moving Fish scores 1 Point, the Stationary Fish 3 Points, but it will disappear after a few seconds, so you gotta be fast. A new Stationary Fish only spawns after you've caught the Moving Fish.
This cartridge uses the PICO-8 v0.2.2's custom font functionality to provide an additional font with Russian letters (with the exception of Ё).
The characters are mapped similarly to the KOI8-R encoding, so that similar Latin characters are mapped to similar Russian ones. For example, "РУССКИЙ ТЕКСТ" (Russian text) is encoded as "RUSSKIJ TEKST".
To use the font, just copy the "setfont" function into your program, call it at the start of the program, and use the commands to switch to the custom font and back whenever you need to print Russian characters.
For example, this line will output "привет, мир! pico-8 пишет по-русски!" ("hello world! pico-8 is writing in russian!")
I am looking for any kind of intercom to or from an exported binary.
I guess the clipboard is not practical because of the constraint (CTRL + V).
But maybe using files (R / W) or pipes. Maybe if the cartridge is invoked by a parent process, it could write to the STDOUT?
I am looking for any type of suggestion (even the most exoteric).
Strap into one of the world's fastest race cars and blast around the legendary Bronzerock circuit like it's 1988!
...or something - there's not a lot of physical or historical accuracy in this game :)
Z/X=accelerate/brake
Left/right=steering
Driving off road slows you down. Driving too fast around corners causes you to slide.
You can use the pause menu to view your last/best lap times (my best so far is 1:43.23)
This is work-in-progress, so some caveats:
- There are no other cars yet.
- Lots of things need tweaking/adjusting.
I'm pleased to unveil my finished weekend project: Robosumo! Inspired by this entertaining video a friend showed me this week.
Special thanks to:
freds72, for helping me in the forums.
huulong, for an invaluable sprite rotation function.
NuSan, for a number of useful physics functions in Combo Pool.
Daisyfield's archive of public domain Japanese music.
Introduction
It's sumo, but with robots! Ram your opponent and send them flying from the dohyō. Speed and finesse are your only weapons – but take care they're not turned against you.