Hi, I'd like to point out that your implementation does not match the one from source-sdk-2013 (Github). You are sorting the lumps by their offsets and feeding the lump bytes in such order, but the CRC should be calculated based on the index order (i.e. Entity lump's index is 0). As long as the order of the lumps does not affect their contents (Game lumps) neither does it affect the checksum.