• v0.6.0 08fcf54bfd

    v0.6.0 Stable

    joe released this 2026-08-17 10:48:08 +01:00 | 22 commits to main since this release

    Song select was a file browser that happened to hold songs. It is now a wheel, and so is
    every menu that reaches it.

    Added

    • Song select is a wheel of coloured bars, turning past a fixed middle with the
      selection opened out — its jacket, credits and difficulty levels inside the bar rather
      than in a panel off to one side. The neighbours above and below stay visible, so moving
      reads as the wheel turning rather than a page redrawing.
    • Categories bring their own colours and descriptions. box.def has always carried
      them — 50 of this corpus's 51 categories set BOXCOLOR and 41 set the explanation
      lines — and none of it had ever been drawn. Songs wear the colour of the box they are in,
      which turns a library into a set of coloured places rather than a page of words.
    • The main menu and the settings screens are the same wheel. Each settings screen has a
      colour and its rows wear it, so opening Audio keeps the colour of the bar that opened it.
      Values are drawn on every bar, not only the selected one, so a screen of settings can
      still be read at a glance. Bindings stays a list on purpose: it is a table to be read, and
      a wheel would show one binding and hide the other ten.
    • Songs are auditioned while you browse. Resting on one for a third of a second plays it
      from its DEMOSTART — the part the charter chose — fading in, and returning there after
      25 seconds rather than wandering into the rest of the song. Scrolling past a hundred songs
      starts none of them.
    • Holding a direction scrolls, accelerating after a second so a 500-song library can be
      crossed without pressing anything 500 times.

    Fixed

    • A quarter of the jackets never appeared. raylib builds without JPEG support unless
      asked for it, and 94 of this library's 398 covers are JPEGs — they failed to load and drew
      as "no art" with nothing said about why. All 398 now load.
    • Loading a jacket no longer stutters the browser. Decoding one takes 8.6 ms at the
      median and 164 ms at worst — ten frames — so with a load on every step, scrolling
      visibly hitched. Decoding and resizing now happen on their own thread; only the upload to
      the GPU stays on the main one, and that is 0.8 ms at its worst. The selection is fetched
      first and then the two bars either side, so stepping to a neighbour usually finds it
      already there.
    • Jackets are held at 512 px rather than 1024 — one is drawn at about 475 px on a 4K screen —
      which takes a full cache from 81 MB to 25 MB, and the cache now evicts oldest-first
      instead of emptying itself when it fills.
    • A category explanation hard-wrapped mid-word no longer reads community- made.
    Downloads