In my effort to understand the file formats for Dune I have dived into the binary code for it and this has lead to me find that I was not fully correct about the HSQ compression. I have found two things I need to correct.
1. The third byte in header is always zero and not part of the uncompressed file size number. It is used together with the checksum value to identify the file as compressed.
2. The code assumes a compressed file will always end with Method 1 End-of-file marking.
There are still some stuff in the Dune uncompression code that I don’t fully understand yet, so I might have more correction to make in the future.