• v0.8.0 d04c25e6eb

    v0.8.0 Stable

    joe released this 2026-08-18 21:44:10 +01:00 | 0 commits to main since this release

    Every command a chart can use has now been read against the format's own reference and against
    OpenTaiko's source, and the four that were left unimplemented are in. Charts using the
    BEMANI-style scroll modes are drawn the way they were written for the first time, notes can be
    told to appear late and hold still, and they can be sent across the screen in any of eight
    directions.

    The one fault in it is in scoring, and it is a large one: on a branched chart the million was
    being divided between the wrong path, which mis-valued 280 of the 308 branched courses in a
    3578-chart library and, on two of them, made every note worth the entire million.

    Added

    • #HBSCROLL and #BMSCROLL — 35 charts. These come from the BEMANI series and measure a
      note's distance in beats where Taiko measures it in time, so a tempo change slides every
      note already on screen instead of changing the speed of the ones that follow. Supporting them
      meant carrying a second timeline through the parser, in sixteenth notes, alongside the clock.
      #BMSCROLL additionally discards #SCROLL entirely.

      The two models agree completely on a single note — one beat away is the same distance under
      either — and differ only on two, which is worth knowing because the obvious test passes under
      both and proves nothing.

    • #SUDDEN — 12 charts. Notes stay invisible until a set time before they are due, then
      appear already in position and hold still until a second time, and only then travel. Four
      rules came out of the reference and none of them were guessable: an unset value is positive
      infinity rather than zero, so misreading it blanks the chart rather than delaying it; the move
      time is truncated to whole milliseconds where the show time keeps its fraction; a show time
      with no move time hides rolls outright, which the reference's own source calls a bug and
      keeps; and only the horizontal freezes, so a note under a complex #SCROLL drifts vertically
      while standing still.

    • #DIRECTION — 2 charts. Eight directions, and the diagonals travel √2 times as fast
      because both components carry the full speed rather than the speed resolved between them. Its
      vertical is only a suggestion: a complex #SCROLL overrides it, while its horizontal is
      replaced outright.

    • SCOREMODE: and a [scoring] section in config.toml. The header selects one of the
      older arcade schemes — flat 1000 a note, or eleven tiers stepping every ten combo, or five
      tiers stepping at 10, 30, 50 and 100 — and it reaches the score only when Shinuchi is off,
      exactly as in the reference, where ShinuchiMode gates the whole thing and defaults to on.
      So shinuchi = true is the default here too, and 118 charts that set the header are scored
      as they always were until you say otherwise.

    Fixed

    • The million is divided between the Master path, not the Normal one. On any branched chart
      the reference fixes the per-note value at load from listChip_Branch[2] — unbranched notes
      plus the Master path — whatever the player then plays. That is deliberate and is the branch
      system's whole incentive: a run that stays on Normal does not total a million, and reaching
      Master is what pays. Dividing by Normal instead mis-valued 280 of 308 branched courses,
      often by more than double, and on two of them — Taiko Tower 02 Kara-kuchi's Tower and
      Unending Freedom's Easy, where the Normal path holds no missable note at all — it hit the
      zero-notes guard and made every note worth the whole million.

      All five recorded plays still match to the point, because none of those charts distinguishes
      the two rules: SHAPESHIFTER's Normal and Master paths hold the same 1001 notes.

    • A scroll mode set before #START is honoured. That was the required position for these
      commands until the format's 1.2 revision and the reference still reads them there. Two charts
      use it, and both were being recorded as unknown commands and drawn with the wrong model.

    Changed

    • The soul gauge keeps the rate it had. The gauge's fill and the score's denominator are two
      different rules in the reference — the score is fixed at load from the Master path, the gauge
      follows whichever path is being played — so fixing the one deliberately did not move the
      other. The gauge remains normalised over the Normal path, which is identical to the reference
      on every unbranched chart and is listed as open for the 308 that branch.

    Documentation

    • docs/reference-constants.md §2c and §2d — which path the
      million is divided between, and the three scoring schemes with the switch that hides them.
    • docs/format-notes.md §7d — the beat timeline, #SUDDEN, and
      #DIRECTION; and why a complex #SCROLL on a bar line needed no fixing after all, the
      rotation it might have wanted being a TJAPlayer3 bug OpenTaiko does not have.
    • The soul gauge rate should switch with the branch path and does not. Found while settling
      the scoring denominator, and recorded rather than fixed: it needs the gauge to carry three
      rates rather than one, which is a change to the type and not a constant.
    • Two lists of open questions were retired, both having been answered. Step 0.4's six —
      judgement windows, the score formula, gauge rates, roll and balloon scoring, the OFFSET
      sign, and the scroll maths — now point at where each was settled.
    • Two new steps: the screen the arcade draws, and charts that are not TJA. And a note on
      the five pure crates, which are likely to outlive this binary and should be changed with that
      in mind.
    Downloads