View Single Post
  #12  
Old 18-04-2018, 06:33
78372 78372 is offline
Registered User
 
Join Date: Dec 2016
Location: Bangladesh
Posts: 650
Thanks: 772
Thanked 953 Times in 309 Posts
78372 is on a distinguished road
Wink All you need to know about precompression

Most of the games these days use to compress their games before publishing. Generally we know that a game contains audio, texture, video and etc. But we don't see well known files of these types in every games. That is because they make a compressed archive with all the files required for the game. A file that is compressed can't be compressed again. But if we unpack game files and recompress them again, in most of the cases we lost CRC and in some cases the game refuses to run. So to keep the files CRC-Perfect and achieve better compression, we need to precompress them. Precompressors decompresses contents of the game and restores them with perfect condition and 100% CRC match.

In the old days, most of the games were compressed using zlib. Zlib is a well known free and open source data compressor. Zlib uses huffman, that means if we don't precompress, we are not able to achieve a bit of compression of zlibbed files. PRECOMP was well known and the first zlib precompressor to do this stuff. In 2011, reflate - universal zlib precompressor was born in encode.ru but still precomp was mostly used because of reflate's slow speed during recompression and instability. In 2015, GTA V, a game with zlib streams without zlib headers (known as deflate method) was released, precomp was unable to precompress this game. Then, the repackers need to use reflate, which worked very well on GTA V and was able to compress it with 50% ratio. But reflate was slow and so GTA V, Mad Max and other games using reflate used to decompress very slowly. In 2016, Razor12911 released pZlib which was better than precomp in terms of speed and gave same ratio. In december 2016, we received pZlib v3(and v2 before a month, but that was buggy) which was very powerful and fast as hell. Now we have xtool which is even faster than pZlib and gives better ratio. Use it and leave precomp, it will be better.

Now games uses other methods too, they are not using zlib only, so you can't only be happy with pzlib/reflate/precomp. Like Far Cry series uses lzo and lz4, Assassin's Creed series uses lzo and oodle, Need for Speed uses lz4 and oodle, mass effect Andromeda used zstd, unreal engine games use lzo and unity uses lz4 etc. To precompress them, we need to use various precompressors according to game, not a single universal one.
__________________
NOT AVAILABLE
Reply With Quote
The Following 6 Users Say Thank You to 78372 For This Useful Post:
Bulat (20-05-2018), EzzEldin16 (20-04-2018), flaek1337 (03-06-2018), Prince4 (28-03-2021), Spexxos (18-04-2018), TheGeekyGamer (28-06-2018)