Skip to content

Implement more ACB, USM, CPK releated features #17

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

mos9527
Copy link

@mos9527 mos9527 commented Aug 12, 2025

ATTENTION: Massive API breaking changes ahead. Merge at discretion!

This PR introduces the following new features (excerpt from README)

NOTE: Most if not all features here are verified through offical toolings, however at limited capacity.

ACB Cue sheets (also AWB)

  • Editing & Saving (Scripting APIs.)

USM Sofdec2 (Encode & Decode)

Audio Stream

  • HCA
  • ADX (pure ADX, WAV format not implemented)

Video Stream

NOTE: Requires on FFMpeg for extracting stream packets.

  • Sofdec Prime (MPEG1, from/to .mp4 container)
  • H264 (from/to.h264 raw container)
  • VP9 (from/to.ivf container)

CPK

  • File listing and on-demand unpacking
  • MP support for compression
  • Progress callback

API changes

Most of the extraction APIs that rely on OS-level file APIs have been refactored to either output bytes or to singular files, respectively mapping to builder's build() -> bytes functions, and sometimes (i.e. with CPK) a save(filename) functions.

Moreover, higher level abstractions (e.g. UTFViewer) are sparingly used to simplify some of the processes. Refer to examples in Tests from the fork for more details.

Various other quality-of-life changes plus changes to internals (e.g. UTF tables) shall be omitted here for the sake of brevity.

Credits

This PR also incorporates two of @Mikewando's fixes, which effectively supercedes these two PRs

Addendum

The fork's development continues at https://github.com/mos9527/PyCriCodecsEx, which will also be available at PyPI for easier consumption.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant