-
v0.9.0 Stable
released this
2026-08-21 16:47:37 +01:00 | 58 commits to main since this releaseThe game looks like a Taiko game now. Every screen was drawn in flat primitives on near-black;
they are bright, patterned and outlined, and the notes, the gauge and the lane carry colours
measured out of OpenTaiko's own skin rather than guessed at.The one fault worth naming: an existing config never received a changed default. The file
is written on first run with every value spelled out, so anyone who had run the game before
kept the old note colours and the old volumes indefinitely, having chosen neither. That is
fixed for the values it had already caught, and it is a trap worth remembering — in this
project, changing a default reaches new installs only.Added
- A drifting pattern behind every screen. Seigaiha — the fan of overlapping wave crests —
behind the menus and the playfield's header, and a quieter lattice behind the lists. One tile
is drawn once into a texture at startup and blitted, so a frame costs a handful of quads
rather than the thousands of arcs it would take honestly. The main menu holds its pattern
still; everything else drifts right to left. - The playfield has furniture. A patterned header band, a stage below the lane where there
had been 44% of empty window, a red-and-white awning along the bottom, and the combo on a
drum face rather than as a bare number floating on the lane. - The soul gauge is the arcade's. Fifty cells stepping in two-percent increments, short and
red below the clear threshold and half again as tall and gold above it, with the word CLEAR in
the space that step creates and a soul at the far end for the struck notes to fly into. --windowed, so a test run cannot take over the display, and--debug-hudwith F10
to toggle it — frame times as median, 99th and worst, plus a count of every frame that missed
its budget for the whole run. A stutter is a tail, not an average.- A
waylandbuild feature, off by default. See below.
Changed
- The menus are bright. A warm wash with the pattern over it, black keylines on every bar
as the cabinet draws them, and a stroke around every glyph — bright grounds break light text,
so those three had to move together. - The difficulty picker is a row of cards rather than a list, which is the shape of the
choice and what the cabinet draws. Left and Right walk it; Up and Down still work, because on
a drum the rim is the only thing that navigates. - The results screen is a plaque whose colour is the verdict — red, green, orange or gold —
so it has said how it went before a word is read. - Note and gauge colours are sampled, not invented. Don
#F84828, ka#68C0C0, the rim a
cream#F7EFE0; the gauge red-on-dark-red below its threshold and yellow-on-dark-yellow
above. The ka is the surprise: a soft teal rather than the saturated blue convention suggests,
which is what stops a lane of alternating notes vibrating. - The combo appears at ten, as
nMinDisplayedCombo.Drumsdoes. Counting 1, 2, 3 beside the
notes it competes with is noise. - Development readouts are off the play screen, behind
--debug-hudwhere they belong. - Volume changes apply immediately. Hit sounds and previews each held a private copy set
once at startup, so changing either needed the process restarted. render.rswas five things in one file — 1508 lines holding the theme, the position
model and four unrelated screens. It is 773 lines of playfield, and the rest are their own
modules.
Fixed
- Two Return rows could land next to each other. The arcade's spacing rule counts forwards
and says nothing about the step from the last one back round to the first; our list is a
wheel, so a root of twenty-nine categories put one at 32 of 34. - The settings wheel dropped its top row. An entry crossed from one end to the other part
way through the turn, so it travelled half the screen and vanished mid-flight. It crosses on
the frame the key is pressed now. - The category list had no way out. On a drum that mattered: Back is not bound to a drum
key, so a player using nothing but the drum could enter the library and never leave it. --screenshotwedged the game on a fullscreen window — the first buffer swap after a
capture never returned, and took the audio with it.- A display that would not report its refresh rate silently became 60. On a 144 Hz screen
that paces every frame against a rhythm the display is not keeping. It says so now.
Investigated and not adopted
- Native Wayland. It works, one binary serves both backends, and no second thing would need
maintaining. But frame pacing is indistinguishable from XWayland, and GLFW's Wayland backend
does not implement window position, so raylib cannot tell which monitor it is on and paces to
the wrong refresh rate. Kept as an opt-inwaylandfeature. See step 16. - A stutter under variable refresh could not be reproduced from inside the game, and the
measurement that would settle it needs presentation timestamps that GLFW does not expose.
Turning VRR off is the known cure; V-Sync measured as not being one.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- A drifting pattern behind every screen. Seigaiha — the fan of overlapping wave crests —