XTool (2020)

XTool (2020) 0.8.7

Нет прав для скачивания
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
Код:
[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.
--diff=20p


Код:
[0] Processing lz4f stream at 0000000000005476 (514 >> 893 >> 514) using l9:b4:d0 has failed
[0] - Patched stream at 0000000000005476 (514 >> 514) [26] successfully
  • Like
Реакции: jonnyyankee
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:
Код:
[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>
For encryption:
Код:
[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>
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).

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.
  • Like
Реакции: jonnyyankee
Update available

Changes


- generate database feature fixed
- fixed external executable support issues
- fixed lz4f level setting bug
  • Like
Реакции: jonnyyankee
Update available

Changes


- removed debugging code from encryption and executable codec
- fixed issue with depth when using search codec
- fixed external executable support issues
  • Like
Реакции: jonnyyankee
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.
  • Like
Реакции: jonnyyankee
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
  • Like
Реакции: jonnyyankee
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.
  • Like
Реакции: jonnyyankee
Update available

Changes


- fixed library support bug
- x86 build discontinued (has bugs from nowhere)
Update available

Changes


- fixed depth bug
- fixed library plugin bugs
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
Сверху