Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement compression algorithms #152

Open
DanRStevens opened this issue Aug 23, 2018 · 0 comments
Open

Implement compression algorithms #152

DanRStevens opened this issue Aug 23, 2018 · 0 comments

Comments

@DanRStevens
Copy link
Member

The VOL file code is able to decompress the stock game data, however, it currently lacks corresponding compression code. We should implement this.

First point simply being the cool factor in finally implementing those neat little algorithms. However, there is actually a practical side to this proposal. Testing.

There is an obvious simple way to test the decompression code. We can store some compressed data within the testing code, run it through the decompressor, and check for correct output. However, currently all example compressed data comes from sheets.vol from the official Sierra releases. There are copyright issues with including such proprietary data in the repository. I would like to avoid this.

A way around this, is to write corresponding compression code. We could then do a round trip test of the decompression code, by first compressing a known string of our own choosing, and then testing that it properly decompresses to its original value. As an added bonus, we can construct strings to test specific features of the decompression algorithm, and so have small highly targeted test strings.


As a side task, perhaps we could comment the original code a little better. Attempting to write the corresponding compression code is likely to increase our understanding of the original decompression algorithm.

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

No branches or pull requests

1 participant