• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Tatsh / destin / 31999244115
100%

Build:
DEFAULT BRANCH: master
Ran 17 Aug 2026 05:51AM UTC
Jobs 5
Files 230
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Aug 2026 09:29PM UTC coverage: 99.177% (+0.05%) from 99.128%
31999244115

push

github

Tatsh
jubeatplus: add the unpack command

A jubeat plus download is almost entirely unreadable off the device. Its
PNGs are Apple-optimised, its textures and every entry of its tune
packages are enciphered, its sound effects are Core Audio Format, its
charts are a packed binary, and its property lists are the compiled kind.
destin jubeatplus unpack converts the lot in one pass and copies whatever
has no converter, so the output is a whole bundle rather than a
selection. The source is only ever read.

The formats, all of them from the source reconstruction rather than
guesswork:

  A .tex is BFCodec over a four-byte header and an Apple-optimised PNG.
  The header is not a magic, it differs per file, and the loaders drop it
  without looking, so this drops it too.

  A .jbt is one tune: a ZIP of metadata, two artwork sizes, two title
  plates, three charts, and two audio streams, with a sixteen-byte MD5 of
  the archive appended after its end. Every entry is keyed with the BGM
  key and carries no header, except infov3, which uses the tune-info key
  and does.

  A marker, hold-marker, or share-image ZIP is keyed like a texture, with
  the header. Not every entry is enciphered, so each is deciphered only
  if that succeeds and yields something recognisable.

  A chart is a 96-byte header (IJBQ, IJSQ, or JBSQ, all three shipped)
  then eight-byte events packing the kind into a low byte and the sector
  into the upper twenty-four bits. Time runs at exactly 300 sectors per
  second and a tempo event's value is microseconds per beat. On the four
  shipped tunes that hold a single tempo the beat spacing lands on what
  the value implies: 150 sectors against 500000, 133 against 444444, 106
  against 352941, and 109 against 363636, so 120, 135, 170, and 165 beats
  per minute measured against 120, 135, 170, and 165 implied.

Seven keys, each the MD5 of a passphrase the binary assembles on the
stack so that no passphrase is contiguous in the file. Two carry the
shipp... (continued)

1877 of 1891 branches covered (99.26%)

Branch coverage included in aggregate %.

519 of 519 new or added lines in 12 files covered. (100.0%)

1 existing line in 1 file now uncovered.

14519 of 14641 relevant lines covered (99.17%)

4.96 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
93.75
0.89% destin/misc/main.py
Jobs
ID Job ID Ran Files Coverage
1 31999244115.1 17 Aug 2026 05:51AM UTC 230
99.18
GitHub Action Run
2 31999244115.2 17 Aug 2026 05:51AM UTC 230
99.18
GitHub Action Run
3 31999244115.3 17 Aug 2026 05:51AM UTC 230
99.18
GitHub Action Run
4 31999244115.4 17 Aug 2026 05:51AM UTC 230
99.18
GitHub Action Run
5 31999244115.5 17 Aug 2026 05:52AM UTC 230
99.18
GitHub Action Run
Source Files on build 31999244115
  • Tree
  • List 230
  • Changed 6
  • Source Changed 5
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #31999244115
  • a62e1fb4 on github
  • Prev Build on master (#31904042002)
  • Next Build on master (#32052838828)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc