-
v0.9.4 Stable
released this
2026-09-30 20:23:07 +01:00 | 9 commits to main since this releaseA release about the game telling you things, and remembering them. Bindings can be changed
without leaving it; a problem that used to go to a terminal nobody was watching is said on
the screen; a song that will not start says why, and so does a missing audio device, which is
no longer a crash. Song select opens on the songs you last played, and screens change with a
wipe instead of a cut.Going back to 0.9.3 after this one: saving settings in 0.9.4 adds a
[select]section
toconfig.toml, which 0.9.3 does not know and so reads the whole file as unreadable,
starting on defaults. Delete that section, or the file, to go back.Added
-
Problems are said on screen. A score, setting or calibration that would not save, a
Play button with no songs behind it, and a display reporting an impossible refresh rate
all used to go to stderr only — a terminal nobody is watching, and on a Deck in Gaming
Mode no terminal at all. They now appear as a notice at the top right, with a sign for
how serious it is, and go on their own after a few seconds. Nothing is shown over a chart
being played; a notice raised then waits for the results screen. Everything is still
written to stderr as well. -
No audio device is no longer a crash. The game used to stop at startup with
audio deviceand nothing else. It now starts silent, says "No audio device found" on
every menu for the rest of the session, and refuses a song with a reason rather than
starting one it has no clock for. -
A song that will not start says why. Choosing one whose chart cannot be read or
parsed, has no single-player course, or whose audio file is missing or will not open used
to do nothing at all, with the reason on stderr. It now shows the song and the reason. -
Recently Played. Song select opens on a category of the last 20 songs you finished,
newest first, built from your scores rather than from a folder. A song you finish moves to
the top straight away. How many it holds is a setting — Settings → Song select →
Recently played song limit, orselect.recent_limitinconfig.toml— from Off to 100. -
Screens change with a wipe rather than a cut: a slanted band sweeps across and the new
screen is behind it. Starting a song still gives the full lead-in. -
--frame-logcovers every screen, not only a chart, with a column saying which, and a
summary per screen. -
Bindings can be changed in the game. The bindings screen listed what every action was
bound to and told you to editconfig.toml, which is no answer at all on a handheld with
no keyboard and no file within reach. Select on a row now waits for an input and adds
it to that action, Left drops the last one, and a Reset to defaults row puts every
action back. It adds rather than replaces: the defaults put five inputs on each don, and
binding a sixth should not quietly cost the other five.The five actions that get you around the menus — up, down, Select, Back, and Back in a
song — refuse to go to zero inputs and say why. Stranding yourself was the thing this
screen could do that editing a file could not, since the screen that would undo it is the
one you could no longer reach. Conflicts are not refused, because the cabinet's own
layout shares a button between Select and don: binding something another action already
has says what else it does and leaves it to you.A capture gives up after five seconds. Nothing can mean "cancel" on a screen where every
input binds something, which is the same corner the input tester was in and the same way
out.Nothing bound is heard until it is let go. An input is still under your finger when
the capture closes, and by then it means whatever you just bound it to — so binding P to
menu-left had the still-held P step left on the bindings row, which removes an input,
which removed the P that had just been added. Removing does not repeat while a direction
is held either: stepping through a list is what holding is for, stripping an action bare
eleven inputs a second is not. -
The bindings screen is a table. It was the shared settings list, which scrolls a
window of eight rows around the cursor — and with sixteen rows to show, half the table was
always somewhere else, on the one screen whose whole argument for not being a wheel was
that it should be read together. It now has a layout of its own: every row on screen at
once on a slate panel, grouped under the drum, getting around, choosing and leaving
and this screen, with each input on a chip tinted by where it comes from — key, pad
button, or axis. Five inputs on one action used to be a run ofpad:LEFT_FACE_*text
running the width of the screen; the prefix is now carried by the colour.
Fixed
--frame-log'sframe_mswas the previous frame's. Each row now carries its own.- Changing a video setting could pace at a refresh rate the game had already rejected. A
display reporting, say, 2000 Hz was paced at 60 at startup and at 2000 once anything on the
Video page was touched. Both now use the same rule. - An em dash drew a tofu box. The glyph atlas is ASCII, plus a handful of characters the
interface needs, plus whatever the song titles need — and no em dash was in any of the
three. The audio page has said "less latency, but loses your EQ — on restart" since it
was written and has been drawing a box in the middle of it ever since. Found by
screenshotting the new bindings screen, which sets its refusal line the same way.
Documentation
-
Re-read OpenTaiko through 0.6.0.111 and its soundtrack through 2026-09-19. Nothing in
three releases touches parsing, timing, judgement, scoring or the gauge; the one cited line
that moved is recorded. The soundtrack rerated every chapter in decimals, taking fractional
LEVEL:headers from 257 of 1885 to 709 of 1949, soformat-notes.mdnow carries the
reference's own rule — it truncates the number for play and turns the fraction into a ± icon
— and the clear-threshold boundary those rerates cross is pinned by a test. -
plan.mdsays what the game is, rather than what it was going to be before any of it
existed, and the four rules the code cites back to it are now actually written in it. -
The frame log's first run on real hardware is in
timing-notes.md§9: every screen
held a 240 Hz budget, and the only frames over it were the wipe's captures. A new library
test,every_listed_difficulty_prepares, takes every difficulty song select lists as far
as the audio device; on the OpenTaiko soundtrack that is 13,235 of 13,235, which closed
step 28. -
The README's release section describes the release it cuts — three binaries, not two —
and the hit sounds are twocurllines from the OpenTaiko repository rather than a 122 MB
archive.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-