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

Tatsh / destin / 31824996680
100%

Build:
DEFAULT BRANCH: master
Ran 14 Aug 2026 05:41PM UTC
Jobs 5
Files 213
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

14 Aug 2026 05:39PM UTC coverage: 99.481% (-0.5%) from 99.984%
31824996680

push

github

Tatsh
feat: add the misc and rhythmin command groups

Port two toolsets in from other repositories, developer API first with a Click
layer over it.

`destin misc` holds converters for platform-level formats that belong to no
single game. `coredata` deserialises a compiled Core Data mapping (`.cdm`) or
managed object (`.mom`) model to JSON, dumps the raw keyed archive, or emits the
effective SQLite migration script; `strings` reads an Xcode `.strings` table in
either the compiled or the old-style text form.

`destin rhythmin` reads the data files of the Konami iOS game pop'n rhythmin.
Its BFCodec cipher is Blowfish with exactly one deviation: an F function that
combines the S-box outputs as `(S0 + S1) ^ (S2 + S3)` where the textbook cipher
uses `((S0 + S1) ^ S2) + S3`. The initial P-array and S-boxes are the canonical
constants, so they are embedded and no external table file is needed. On that
sit readers for the `.chr` character data, the `.idx` AEP animation indexes, the
sugoroku `.map` boards, the note charts inside `.orb` and `.acv` packages, and
the dialogue pools inside a 32-bit app binary, with PNG renderers for the boards
and the charts.

Both ports were checked against the originals on real data. The misc converters
are byte-identical over 13 samples, the failure path included. The rhythmin
readers reproduce the originals exactly over 26 animation indexes, 27 boards in
both JSON and text form, 102 charts, and 5 character files, and a rendered
arcade chart is byte-identical. The dialogue extractor is checked against a
synthetic 32-bit Mach-O, because both available app binaries are 64-bit and
both implementations reject them alike.

Signed-off-by: Andrew Udvare <audvare@gmail.com>

1639 of 1643 branches covered (99.76%)

Branch coverage included in aggregate %.

1703 of 1773 new or added lines in 25 files covered. (96.05%)

12923 of 12995 relevant lines covered (99.45%)

4.97 hits per line

Uncovered Changes

Lines Coverage ∆ File
40
88.57
destin/misc/coredata.py
14
96.89
destin/rhythmin/sheet.py
8
73.33
destin/rhythmin/render.py
3
98.92
destin/rhythmin/aep.py
3
98.05
destin/rhythmin/dialogue.py
1
91.67
destin/misc/main.py
1
94.44
destin/rhythmin/main.py
Jobs
ID Job ID Ran Files Coverage
1 31824996680.1 14 Aug 2026 05:41PM UTC 213
99.48
GitHub Action Run
2 31824996680.2 14 Aug 2026 05:41PM UTC 213
99.48
GitHub Action Run
3 31824996680.3 14 Aug 2026 05:41PM UTC 213
99.48
GitHub Action Run
4 31824996680.4 14 Aug 2026 05:41PM UTC 213
99.48
GitHub Action Run
5 31824996680.5 14 Aug 2026 05:44PM UTC 213
99.48
GitHub Action Run
Source Files on build 31824996680
  • Tree
  • List 213
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #31824996680
  • 22eb993a on github
  • Prev Build on master (#31219682074)
  • Next Build on master (#31853577959)
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