• v0.7.2 8a6fdcb088

    v0.7.2 Stable

    joe released this 2026-08-18 12:21:56 +01:00 | 3 commits to main since this release

    Nothing new. Every command a chart can use was read against the format's own reference and
    against OpenTaiko's source, and it turned up one more fault of the same family as 0.7.1's: a
    section written to run backwards was running forwards instead. Nine courses across six
    charts
    were laid out wrongly, the worst of them by eight seconds.

    Fixed

    • A negative #BPMCHANGE is honoured rather than thrown away. A negative BPM flips the
      sign of the beat duration, which is how a chart lays a section out backwards, and the
      reference puts no check on the value at all. Refusing it would on its own have played those
      sections at the wrong speed — but a negative #MEASURE was already honoured, and charts
      pair the two. A negative bar over a negative BPM is a positive time duration, so taking
      one sign and refusing the other produced the one combination neither is meant to appear in
      and walked the definition cursor the wrong way. Across the 3578-chart corpus this moved
      9 courses in 6 charts by 1.03 to 8.06 seconds, changed no note count, and touched
      nothing else.

      Two of the three affected non-Dan charts check themselves: the fixed course was the only
      one in its file using a negative #BPMCHANGE, and it now ends where its own siblings
      always did. Rainy Tear's Oni ended at 208.62 s against 209.66 s for its Hard, Normal and
      Easy, and now ends at 209.66 s too. Nothing arranged that agreement.

      This one would not have been caught by the end-of-audio check that 0.7.1's work
      recommended: all nine last notes fall inside their own audio before and after. Displacement
      inside a song is the harder kind to see, and only the reference finds it.

    • #BPMCHANGE 0 stays rejected, being the one value with no meaning. The reference would
      divide by it, the format reference marks it unspecified and records that it crashes some
      simulators, and no chart in the corpus writes one.

    Documentation

    • Every command in the corpus is now accounted for, in
      docs/format-notes.md §7c — forty of them, each either implemented,
      confirmed correct against a named line of the reference, or recorded as a deliberate
      divergence with the number of charts it costs. Three are known to be wrong and are written
      down as such rather than left to be rediscovered: #HBSCROLL and #BMSCROLL (35 charts)
      select a beat-based position model we do not draw with, #SUDDEN (12 charts) is
      unimplemented, and a complex #SCROLL should rotate bar lines where we move them
      vertically.
    • #NMSCROLL turns out to be the default mode, so ignoring it was already right and the
      19 charts using it were never wrong — one of several assumptions this pass was able to
      retire rather than reopen.
    • A miscount was corrected. The note-character table claimed A and B never occur in
      the corpus; they occur 78 and 109 times, and did when it was written. Nothing behaved
      wrongly, both having been aliased to 3 and 4 regardless, so the fault was only ever in
      the writing — which is the argument for checking the notes against the reference and not
      only the code.
    Downloads