Skip to content

Add LZSS support for PackType=1 (original code only handled BMR)#196

Open
diandianxz wants to merge 3 commits into
crskycode:masterfrom
diandianxz:master
Open

Add LZSS support for PackType=1 (original code only handled BMR)#196
diandianxz wants to merge 3 commits into
crskycode:masterfrom
diandianxz:master

Conversation

@diandianxz
Copy link
Copy Markdown

@diandianxz diandianxz commented May 25, 2026

Already verified locally
Verified game: エンジョイサマー マキシマム
Verified files: cg00.arc, cg000Bモ3甲.plt, etc.
Hex analysis matches game reverse engineering results.

The original code only looks at the first 4 bytes and checks for "BMR".
But the control flag (flags & 3) already tells you what compression it is.

flags & 3 == 2 -> BMR (unchanged)
flags & 3 == 1 -> LZSS (added)

I tested it locally and CI also passes now (see attached).

This is not a breaking change. Old BMR work exactly the same as before.
LZSS just start working.

Indentation might not be perfect but it works.

Add a decompression method that decides whether to use BMR or LZSS based on the value of flag & 3
Add LZSS decompression support for PackType=1

Original code hardcoded only BMR (PackType=2), ignoring the control flag.
Now both PackType=1 (LZSS) and PackType=2 (BMR) are supported.

Tested locally with existing BMR files (no regression) and new LZSS files.
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