Skip to content

Releases: djzmo/render-ojn

RenderOJN 1.0.1

Choose a tag to compare

@djzmo djzmo released this 10 Aug 20:12

Adds support for Korea-era encrypted new OJN wrappers, which 1.0.0 rejected
outright. They are decrypted transparently -- pass the file exactly as you would
an ordinary one, no extra option needed.

What's new

  • Korea-era new OJN wrappers are now supported. Across the three reference
    installations this brings 494 charts into range that could not previously
    be opened at all.
  • No sample-package work was needed: every new-wrapped chart pairs with an
    M30, OMC, or OJM package that was already supported. The encryption is on the
    chart container only.

Downloads

Platform File Requirement
Windows x64 RenderOJN-1.0.1-windows-x64.zip
Linux x86-64 RenderOJN-1.0.1-linux-x86_64-glibc2.17.tar.gz glibc 2.17+

SHA-256:

ba5d2e38777d1a0f8464e16e74cb288e6db65a29f0e83f9090e9d61b73ec0bdc  RenderOJN-1.0.1-windows-x64.zip
9d1dc64ba25653c5864e0aeac0863228766a8841d0b1920f74d15886d70ece14  RenderOJN-1.0.1-linux-x86_64-glibc2.17.tar.gz

Verification

All 958 charts across three retail installations now parse, up from 464 in
1.0.0, and 957 of them render. The single exception is one chart whose sample
package carries header counts that disagree with the other 951 packages in the
corpus; it is rejected deliberately rather than accepted on the strength of a
lone specimen.

Every one of the 494 new wrappers decrypts to a valid ordinary OJN across the
eight block sizes those files use. Decryption was also checked against an
independent reimplementation, which reproduced the renderer's output to the
exact sample on both a plain decrypted chart and the hardest case in the corpus
(decryption combined with 15 measure fractions and mid-measure tempo changes).

Also covered by 829 test assertions, libFuzzer smoke runs on both parsers with
seeds for the new decryption paths, and a clean ASan/UBSan pass in the
glibc-2.17 release container. The o2ma100 reference render is byte-identical
to 1.0.0, confirming ordinary charts are unaffected.

macOS and the Windows x86 legacy build remain untested -- presets exist, but
no machine was available to build or verify them.

RenderOJN 1.0.0

Choose a tag to compare

@djzmo djzmo released this 10 Aug 18:14

First release of the CMake/vcpkg rewrite, replacing the FMOD- and Boost-based
0.8.2 implementation. Both archives are portable and ship no runtime DLLs.

What's new

  • Rewritten on CMake and vcpkg; FMOD and Boost are no longer used.
  • Correct timing for fractional measures, mid-measure BPM changes, and
    subdivisions that do not divide 192.
  • Output length follows chart content, so late notes are no longer clipped.
  • Supports M30 flags 0/16/32 and sparse OMC/OJM directory slots.
  • Added --sample-package to override sample-package lookup.
  • Output is written to a temporary file and published only after rendering,
    encoding, and tagging all succeed, so a failed run leaves no partial file.

Downloads

Platform File Requirement
Windows x64 RenderOJN-1.0.0-windows-x64.zip
Linux x86-64 RenderOJN-1.0.0-linux-x86_64-glibc2.17.tar.gz glibc 2.17+

SHA-256:

e0157f1f4d1ae234057eb4cfc9d8ddbe48ebc7d2f67685177f2b80b787aa86cf  RenderOJN-1.0.0-windows-x64.zip
c6426400817beff106488b194de9d289ac6d3002b4d7b73c17411effa86a9616  RenderOJN-1.0.0-linux-x86_64-glibc2.17.tar.gz

Verification

Validated against 958 charts and 980 sample packages from three retail
installations: all 464 ordinary charts parse, decode, and render, and the 494
Korea-era new wrappers are skipped as expected. Also covered by 800 test
assertions, libFuzzer smoke runs on both parsers, and a clean ASan/UBSan pass
in the glibc-2.17 release container.

macOS and the Windows x86 legacy build are untested — presets exist, but no
machine was available to build or verify them.

Korea-era new OJN wrappers remain unsupported and are rejected with an
actionable error.