Release v0.1.4
Device Reliability & Save Pipeline Update
This update focuses on playback feedback — knowing what's happening with
your device at a glance — and finishing the save pipeline for journeys
with deeply nested forks and non-H.264 video.
Highlights
- A persistent device-status banner now warns you the moment your device,
Intiface server, or serial port disconnects mid-play. - The banner also catches selected-device mismatches — if your saved
preference isn't connected but a different device is, you'll know. - Beat Bar and Storyboard Filler settings now take effect immediately
instead of requiring a new round. - Saves now correctly transcode non-H.264 videos inside fork paths, not
just top-level rounds.
Device-status banner
A new red banner pinned to the top of the play screen appears whenever your
configured output device can't receive commands. It auto-hides as soon as
things recover, and it lives outside the auto-hiding HUD so it stays visible
even when the rest of the HUD fades.
The banner distinguishes four distinct states with a specific message for
each:
| What happened | Banner text |
|---|---|
| Intiface (server) disconnected | INTIFACE DISCONNECTED — RECONNECT IN OPTIONS |
| Intiface running, but no device available (battery, Bluetooth, USB unplug) | NO DEVICE CONNECTED — POWER ON OR RE-PAIR YOUR DEVICE |
| Your selected device isn't connected, but a different paired device is being used in its place | "THE HANDY" UNAVAILABLE — USING "LOVENSE SOLACE" INSTEAD (CHANGE IN OPTIONS) |
| Serial T-code port closed | SERIAL DEVICE DISCONNECTED — RECONNECT IN OPTIONS |
The mismatch case (third row) is a brand-new safety net for users with
multiple devices — no more "wait, why is my Handy moving when I thought I had
Lovense selected" surprises.
If you never picked a specific device (the default for first-time users),
the mismatch banner stays hidden — the existing fallback-to-first-available
behavior is preserved for that case.
Settings now apply mid-game
Two settings used to require leaving and re-entering the journey before
taking effect. They're now fully live:
- Beat Bar (on/off) — toggling it in Options now creates or destroys the
bar immediately. If a round is loaded, the new bar starts pre-seeded with
the current funscript's beats. - Storyboard Filler (range + speed) — adjusting the range slider or the
half-cycle speed during an active storyboard's filler now retargets the
device immediately as you drag, instead of waiting for the next storyboard
to start.
All other settings (volumes, fullscreen, resolution, position clamp, home
position, latency, vibe intensity, max stroke speed, HUD auto-hide, etc.)
were already live and remain so.
Fork-path videos now transcode correctly
Saves used to only inspect top-level rounds when planning video
transcoding. Any video using a non-H.264 codec (AV1, HEVC, VP9, etc.) inside
a fork path would be silently copied as-is, then fail to play because the
in-game video decoder only handles H.264.
Now the save flow walks the entire journey tree — top-level and every
fork path at every depth — to plan transcoding. Same source video used in
multiple rounds is probed and transcoded once and reused.
Additionally, if ffmpeg isn't available and your journey contains
non-.mp4 videos, the save now refuses with a clear error instead of
silently producing a journey with broken video playback.
Migration notes
- No action required. Existing journeys load and play unchanged.
- If you previously saved a journey containing fork-path AV1/HEVC/VP9 videos
and noticed black-screen playback on some rounds, re-save the journey in
the editor to get the videos properly transcoded. - The new device-status banner only appears when relevant — if everything's
working, you'll never see it.