bc-csharp icon indicating copy to clipboard operation
bc-csharp copied to clipboard

Fixes Zlib compression issues.

Open GitHubProUser67 opened this issue 3 months ago • 2 comments

The current zlib implementation is "mostly" fine, but some edge cases are not simulated properly.

This commit effectively puts it to parity with the C++ version, and allows this implementation to be used to open and compress "EdgeZlib" files used by various PS3 games.

How has this been tested?

Compression/decompression of EdgeZlib files, Quazal packets and deflate http data.

Check this repo (where I used this change to remove a whoping 3 Zlib duplicata libraries (because none was right...)): https://github.com/GitHubProUser67/MultiServer3/tree/Super-Branch/BackendServices/CastleLibrary

Checklist before requesting a review

  • [ x] I have performed a self-review of my code
  • [ x] I have kept the patch limited to only change the parts related to the patch
  • [ ] This change requires a documentation update

GitHubProUser67 avatar Sep 15 '25 08:09 GitHubProUser67

Thanks for the PR. I don't think we want the ZStream change (because of Console output - is an exception warranted?), and is the ZInputStream change to the buffer size really needed?

Is it possible to provide example input/output cases that fail without this PR?

peterdettman avatar Sep 16 '25 15:09 peterdettman

You are welcome. This console output was used for debugging, it is possible I can disable the console and add the exception instead.

Yes, it was in my testing, the buffer is too large compared to what is used on the c++ dll, and this caused an error when unpacking said data.

Yes, the best way te verify is cloning the repo upper, and using the HomeWebTools to unpack a .sdat file. However I will work on a simpler app for the sake of this pr for easy testing, but it may take a week.

GitHubProUser67 avatar Sep 16 '25 16:09 GitHubProUser67