Loading…
fanco16 · v5 · SIREN
Git c1ad54e · build live 75e47d0e0d7c · 2026-10-29T17:45:57.419Z
v1 · v2 · SPEC · SOUND · Sound programming · Classic synth · Sound graphics · README / attribution
Arrows / WASD · Z / Space = A · X / Enter = B. Touch pad: slide your thumb between directions; slide between A and B. Full QWERTY guest input is deferred.
Assembly source — edit and Run
Uploads are public and anonymous. Names are metadata; IDs identify bytes, not trusted authors. Loading by ID validates the image and shows its kind but does not run it; its source is shown if one was uploaded with it. Upload also stores your assembly as the program’s source; the server accepts it only if it assembles to exactly the uploaded bytes, and the first source for a program is kept. libraries (FANL/FANR) are loaded by programs with SYS LOAD, not run. Source save uses this browser’s local storage.
Every visible effect and note is controlled by guest assembly. The host provides mapped input, a framebuffer and a SIREN sound device with SID-style controls, not a prerecorded soundtrack.
Timing and audio notes
This is a 120 MHz byte-cycle timing experiment, not a 120 MIPS guarantee. The machine produces 400 stereo samples per logical 120 Hz tick at 48 kHz. AudioWorklet rendering blocks are independent of those ticks, and output is resampled if the browser chooses another rate. A finite lead buffer adds input-to-audio latency; an overloaded device can underrun rather than secretly skip guest execution.
Audio starts only after Run is pressed. Pause or hiding the tab freezes play and clears queued audio; Run resumes. Reset or changing the example starts over. Guest SYS LOAD pauses virtual time, clears audio, and atomically installs a validated image before resuming. The synth is SID-inspired, not a cycle-accurate 6581 emulator; classic SID-file playback is not implemented.