Skip to content

v0.1.0 — a console as a layer

Latest

Choose a tag to compare

@stoatworks-labs stoatworks-labs released this 06 Aug 19:48
· 7 commits to main since this release

A libretro frontend that runs inside Resolume Arena
and Avenue as an FFGL generator. Point it at a core and a game and the console
becomes a layer — composite it, key it, run it through other effects, and
MIDI-map the joypad onto whatever controller is already on the desk.

Built as a companion to old-cathode:
a 240p Mega Drive frame through a real composite encoder, with dot crawl and
cross-colour that are consequences rather than decoration, is the thing this
exists to make possible.

Two builds, one frontend

In process (the plugin) Out of process (the helper)
Latency Same frame it was produced One composition frame later
A core crashes Resolume goes down with it The helper dies, the show continues
Two of one core Needs a private-copy workaround Free — separate processes

Rehearsal and studio work: in process. Anything with an audience: the helper.

No cores, no BIOS, no games

None are included and none ever will be. You supply your own, exactly as with
RetroArch. docs/CORES.md
is how to get them — which core for which console, and the two macOS traps
(architecture matching and Gatekeeper quarantine) that otherwise cost an
afternoon. Cores are dlopened at runtime and never redistributed, so their
licence terms are between you and their authors.

What has been verified — and what has not

tools/verify.sh passes end to end against a synthetic libretro core built
into the repo
: the CPU host (pixel formats, padded pitch, triple buffer, input
ports, audio ring, determinism, two instances staying separate), the real plugin
class through the real FFGL sequence in a headless GL 4.1 core context at two
aspects, a real second process, and the helper killed with SIGKILL underneath
a running consumer.

It has not been loaded into Resolume, and has not been run against a real
emulator core.
How the parameter groups land in Resolume's inspector, and
whether a controller MIDI-maps onto the pad, are unconfirmed. Check it in your
own rig before a show depends on it.

Install

macOS universal (Apple Silicon and Intel). Drop Cartridge.bundle into
Resolume's Extra Effects folder, restart, and it appears alongside the built-in
sources. For the out-of-process path, run cartridge-helper first.

The build is unsigned, so macOS warns once before it will load it.

The source carries Windows and Linux branches; neither has been built or
tested
, and there is no binary for either here.