XTool (2020)

XTool (2020) 0.8.9

Нет прав для скачивания
- fixed issues with base directory and file/directory pathing in general
- updated verbose mode log
- added zipcrypto encryption support
- added library config based plugin support
  • Like
Реакции: here_goes_the_trader
Changes
- updated media codecs (flac, brunsli, packjpg...)
Changes
- flac library renamed
- fixed an issue with execute command
- fixed issues with executable plugin support
- updated reassign stream feature
- updated oodle scanner

Notes
Reassign stream was first introduced in 0.7.9 but it was not implemented correctly and with this update it got major improvements. What reassign essentially does is transfers streams to another codec for them to be processed for example, if there's zstd streams detected but for whatever reason, internal zstd cannot process them via libzstd.dll however, the original zstd.exe is capable of processing these streams, you can set a method that looks like this
-mzstd=zstd147, where the equal sign "=" transfers all streams detected by xtool to be processed by zstd147 where your custom zstd.exe will be called.

The same applies to plugins that have been created thus far so for example the game tony hawk pro skaters 1+2 with its custom encryption, if you were to create a plugin that contains this custom implementation, the method should be something like -mue4=thps2decrypt, so instead of streams being decrypted by aes via xtool, they will be passed to your custom decryptor.

The same could work for lzma compressed unity game files (though not tested), if you've set up your lzma decoder/encoder, the method becomes -munity=lzma_dynamic but then again, I think with this codec in particular, -munity:lzma_dynamic should work just the same. Once again, this is theoretically it should work this way I just do not have samples to test.

Don't like flac? set up your own external codec like wavpack, tak or whatever, the method will be -mflac=wavpack, where all wav streams detected instead of being processed by flac, they'll be passed onto wavpack to be processed.

There's just a lot of use cases for the stream reassign feature and it's all up to the end-user how they plan on improving recompression of streams that cannot be processed correctly by what xtool has to offer.
Changes
- added -X parameter, to only extract streams that could not be processed
- fixed issue with extract stream feature where it would make excessive writes to disk
- fixed issues with executable plugin support
- updated oodle scanner
- updated zstd scanner

Notes
The oodle scanner has been updated, I suspect it to be slower than before but it should detect a bit more streams.

Mermaid test
0.8.4

Compressed 1 file, 104,857,600 => 221,155,278 bytes. Ratio 210.91%
Compression time: cpu 0.00 sec/real 8.73 sec = 0%. Speed 12.02 mB/s

0.8.5
Compressed 1 file, 104,857,600 => 294,542,000 bytes. Ratio 280.90%
Compression time: cpu 0.00 sec/real 13.80 sec = 0%. Speed 7.60 mB/s
Changes
- older zstd versions such as 1.0 can now work alongside new versions of the library
Changes
- improved encoding speed when deduplication is used under certain conditions
- removed deduplication decode memory calculations (takes too long to compute)
Changes
- additional mathematics functions added (ceil and floor)
- fixed issue with zstd recompression
- fixed issues with decode/extract functions

Notes
Not much to say but special thanks to Panker1992 and KaktoR for discovering bugs and for offering support especially over the holidays, and for everyone else, happy new year and I hope you keep compressing :)
Changes
- added stream count terminator for library checker
- fixed issues related to upgrade from RAD Studio 11.3 to 12
- database structure changes have been reverted

Notes
RAD Studio updates from 11.3 to 12 brought a lot of changes which greatly affected xtool, for one the source needed to be corrected in certain places while some parts of the code needed to be rewritten which I guess is why 0.8.0 seemed to have a lot of hotfixes because I can confirm that not even those fixed everything however with this release, things should be greatly improved.

I've also added stream count terminator when using library checker in UI mode, this is added for large inputs that have really long precompression times and by default, first 10 streams are considered for checking and from those the user should decide which library to use for precompression.

Database structures have been reverted to the way they were before and this is due to the amount of work needed to support the new unreal engine utoc/ucas format because of recent updates to the engine that make precompression using xtool/oo2rec seem unfeasible especially for the newly released games.
- fixed issue with zstd recompression
- fixed issue with deduplication memory setting
- significantly improved deduplication performance when decoding
Сверху