Tag: pico-8
16 posts tagged with "pico-8".
Why Celeste sounded wrong
The cart was byte-identical to the BBS copy, so the fault was in the synth: a music clock cutting bars to a quarter, and a noise fit matched to the wrong metric.
The console's second shell
Two days building the console's second shell, including a crash hunt that ended eight kilobytes from the stack floor.
Cattle Crisis from 9 fps to 58
One day of hardware A/B tests on the H753. The biggest single win was a compiler flag I should have set weeks ago.
Redesigning the cartridge shell around the label
The 3D-printed cartridge shell gets a flush sticker pocket and a chamfered corner, test-fitted virtually before printing anything.
What all the wires are for
A tour of Rusty Nail as it stands, from the OS on screen to the four breakout boards and the cartridge shell with a 16 MiB flash chip inside.
A 3x palette scanout for the HDMI picture
The HDMI picture was pixel-perfect and still looked soft. A full-resolution palette scanout fixed that, after an afternoon lost to a heap that only sometimes existed.
Why the speakers started clicking
The morning after deleting the old Lua core, everything played and then the speakers started clicking. A command trace found three lines of channel semantics and a missing crossfade.
The fixed-point Lua core becomes the default
Stage 9 of the runtime migration, ending the night at 59 fps on jumper wires after a one-byte regression that cost 19 carts.
An evening of unrelated fixes
Three unrelated fixes from one evening. The biggest was a cartridge that finally keeps its saves; the strangest was an iterator that duplicated the player.
z8lua lands behind a flag
The new Lua core measured against the old one on identical silicon, with a licensed PICO-8 as the oracle and a per-cart compatibility matrix.
A runtime baseline before the Lua swap
A permanent benchmark and input tapes recorded from real play, so the new Lua VM has numbers to beat before it lands.
Why I didn't replace the PICO-8 runtime
Whether the homegrown PICO-8 runtime should be replaced with an existing emulator. After twenty-one test cartridges the answer was to keep everything and swap the Lua core.
Downloading PICO-8 carts over WiFi
Rusty Nail can download carts from a pop-up launcher. The WiFi reason-15 failure was my own off-by-one, and a GPIO pin really did die on the bench.
Planning a flash cartridge for the console
Picking a W25Q flash chip for a physical PICO-8 cartridge and mapping how the firmware would read it. Nothing is built yet.
A divide per pixel
Profiling the PICO-8 runtime found a stretched-sprite blit doing an integer divide on every pixel, on a chip with no fast divide.
Running real PICO-8 Lua on a Cortex-M7
Vendoring Lua 5.4 into bare-metal firmware, and why a hardware watchdog beat an instruction-count hook for stopping runaway carts.