Fixes Zlib compression issues.
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
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?
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.