Update available
Changes
- fixed issue with storing correct recompression information when stream patching is performed
Notes
This issue was brought up by Masquerade and L0v3craft when they were trying to precompress WRC 10 and upon decoding xtool would produce an error so thanks to them, it has been resolved however I'd like to add more useful information regarding this game and why even with xtool helping you with deltas will not allow you to process all streams based on how xtool was designed.
We all know that xtool patches streams if they cannot be restored correctly however it sets its own boundaries, by default the patch file cannot be 5% larger than the original size else the patch fails as highlighted here with some streams being missed. https://fileforums.com/showpost.php?...&postcount=248
This 5% can be changed by user via the command --diff=5p, with 5p being 5%, so to capture all these other streams, you'll have to increase this percentage.
CHUNK_57.PKG
using -mwrc10
Код:Compressed 1 file, 99,435,664 => 189,185,421 bytes. Ratio 190.26% Compression time: cpu 0.14 sec/real 3.71 sec = 4%. Speed 26.82 mB/s using -mwrc10 --diff=20p
Код:Compressed 1 file, 99,435,664 => 263,029,277 bytes. Ratio 264.52% Compression time: cpu 0.09 sec/real 3.61 sec = 3%. Speed 27.53 mB/s Verbose information displays
--diff=20pКод:[0] Processing lz4f stream at 0000000000005476 (514 >> 893 >> 514) using l9:b4:d0 has failed [0] - Patching stream at 0000000000005476 (514 >> 514) [26] has failed Patching this 514 byte stream produced a 26 byte patch file, which is 5.1% and that is larger than the 5% limit so increasing this means you are allowing xtool to accept this stream.
Код:[0] Processing lz4f stream at 0000000000005476 (514 >> 893 >> 514) using l9:b4:d0 has failed [0] - Patched stream at 0000000000005476 (514 >> 514) [26] successfully
Update available
Changes
- updated oodle scanner
- updated external executable support
- updated configuration based plugin support to add depth information
- updated verbose mode
Notes
Given that very small number of people are able to make their own plugins and codecs to use in xtool, I've added an example that imports codecs from QuickBMS after you have generated your database and have no codec to use with it.
For compression:
For encryption:Код:[cpk,snappy,rfpk] Encode=quickbms.exe -s "comtype <codec> ; clog <fileout> 0 <insize> <outsize>" "" <filein> Decode=quickbms.exe -s "comtype <codec>_COMPRESS ; clog <fileout> 0 <insize> <outsize>" "" <filein>
You'll need to check http://aluigi.altervista.org/papers/quickbms.txt for the list of supported compressors built in so that you don't pick something like lz2k and expect it to work (quickbms itself has to be able to both compress and decompress). You can add more codecs like I have done here "cpk,snappy,rfpk", if you wanted to add lzss for example, it then becomes "cpk,snappy,rfpk,lzss" then from there you can use Bms2Xtl for scripts that have this comtype and possibly expect xtool to use quickbms with no real issues (hopefully).Код:[blowfish,xxtea] Encode=quickbms.exe -s "open FDDE <fileres> 1 ; getdstring X_KEY <ressize> 1; encryption <codec> X_KEY "" 0 <ressize>; log <fileout> 0 <insize>" "" <filein> Decode=quickbms.exe -s "open FDDE <fileres> 1 ; getdstring X_KEY <ressize> 1; encryption <codec> X_KEY "" 1 <ressize>; log <fileout> 0 <insize>" "" <filein>
Also note that if for whatever reason there is crc mismatch, xtool will still help you by applying xdelta automatically.
Also also note that this generate temps files meaning the process is slower because it has to both read and write to disk therefore, only use this approach if there is nothing else that you can to do to improve the situation.
Update available
Changes
- generate database feature fixed
- fixed external executable support issues
- fixed lz4f level setting bug
Update available
Changes
- removed debugging code from encryption and executable codec
- fixed issue with depth when using search codec
- fixed external executable support issues
Update available
Changes
- fixed issue of status not reporting when encoding
- added depth method support for search support
- fixed zlib encoding issues for different window bits (thanks KaktoR)
- fixed zlib memory leak issue (thanks KaktoR)
- updated all internal codecs to support information relayed by external codecs
- updated lz4f codec and removed temporarily removed support for universal scanning
- added option to change recompression level to be used by reflate
- updated external executable support
- generate database feature currently bugged, wait for next update
- search database structure changed, older database files will no longer work with newer releases
Notes
Older database files will not work with future updates, use the older version 0.3.21 for old database files as you wait for them to be updated
A temp file may be created when using database files which can be the size of the largest file in the data to be processed.
Update available
Changes
- project made open source
- added external executable support
- added generate database feature
- fixed search support bug
Notes
The source code will be made available on GitHub
https://github.com/Razor12911/xtool
Update available
Changes
- updated search support (speed improvements)
- updated command line parser
- added partial universal scanner for lzo1x streams
- added universal scanner for lz4f streams
- fixed issue with configuration files failing to execute without conditions
Notes
The previous update is still up, in case if there are issues with this one as I'm rusty af at the moment. (I haven't coded in months)
The lzo1x codec uses LZO1X-999 (level 1-9) and should only be used if you have no alternatives for precompression such as no plugins as this thing can be slow at times.
Update available
Changes
- fixed library support bug
- x86 build discontinued (has bugs from nowhere)
Update available
Changes
- minor bug fixes
Changes between 0.3.13 to 0.3.15
ES_R15 (0.3.15)
- converted library support to unicode (don't know why I used ansi in the first place)
- added library support functions
- added rc4 encryption support
ES_R14 (0.3.14)
- fixed library support bug
- updated library structure