Skip to content

Granny section decompression — only if scan reports a compressed codec #3

Description

@Darithos

Blocked on #1, and may not be needed at all.

GrannyFile.Expand handles compression == None and, for anything else, records the codec on the section and marks it blocked rather than throwing — which is why d2rmv inspect and d2rmv scan can still report a file they cannot fully read. The plumbing exists; only the decompressor is missing.

Close this as not-planned if scan reports None across the board. That is a plausible outcome: CASC already compresses the container, so per-section compression buys little.

If it is needed

Codec Status
Oodle1 Public decompressor implementations exist
BitKnit1 / BitKnit2 Public implementations exist
Oodle0 No public implementation anywhere. Escalate before starting

For Oodle0 the fallbacks, in order: check whether the D2R install ships an Oodle DLL that can be called on the user's own machine (no redistribution); otherwise write the adaptive-arithmetic decoder from the format description — unpleasant but bounded.

Done when

d2rmv scan over the install reports zero blocked sections, and models that previously failed now read.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions