Skip to content

Conversation

GitHubProUser67
Copy link

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

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.
@peterdettman
Copy link
Collaborator

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?

@GitHubProUser67
Copy link
Author

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.

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.

2 participants