Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Changes
- minor code optimisation and fixes to prevent errors in certain scenarios
- fixed issues with reassign stream feature
- fixed issues library config based plugins
- removed recompress stream feature
Notes
Reassign stream was added because of inconsistent game engines like Unreal Engine because you could write a program/library to work on a list of games then a few months later, they change something in how the files are stored which renders your tool outdated because it no longer works on the newer games. unreal.dll is a plugin to support ue3-5 games and for as long as I remember, ue3 games were compressed with lzo then came mass effect legendary edition and it used leviathan, so I updated the plugin and then Gears of War Reloaded came out and it used lz4hc so rather than updating the plugin (I've lost source code), you can reassign all those ue3 streams to lz4hc, this feature was bugged but now it is fixed and should work like so:
Usually, you'd use -mue3 to precompress the game but it doesn't work because now the game uses lz4hc so, you need to notify xtool that streams need to be reassigned to a different codec and the new method becomes -mue3+ue3=lz4hc:l9.
Library config based plugins were added in 0.8.8 because I'm a person who seems to always lose their source codes due to hard drives dying, so what I've done is allowed dlls to be imported through ini which xtool can make use of, so rather than write code internally in xtool or through a plugin which is bound to have its code lost, I can just share a ini just like other config based plugins and if there's something that needs changing or updating, either the user can do it themselves or I can just use notepad to provide a quick solution. I've provided a sample.
Recompress stream was removed because it was an overly ambitious feature I thought of added, the idea behind it was that since some compression algorithms, zlib, zstd, lz4, and oodle to a certain extent do not error out if the incorrect compressed size was provided. So what does this mean? It means if a game could not be precompressed at all, like some special edition of zstd or oodle was used and let's assume it was compressed using level 6, recompress feature was meant to allow you to recompress the streams with a stronger level, let's assume level 7 and by doing this, you ensure that your new stream will be smaller and could replace the level 6 stream that could not be precompressed, a new game file is produced and that will be your new game files and then you can use xtool normally to precompress the game and repack it.
So, what's the problem? Well by doing this, you're opening a can of worms because you now have to test if the game works without issues (maybe from start to finish) because the game files were "modified", it is lossless but it is no longer bit-perfect and you might as well use other tools to rebuild the game files after unpacking them because that's even safer due to headers being updated too and this is why it was removed. 0.9.0 is the last version to have this so if you want to use it, then look for that version here.
- added support for lz4 multicore edition
- added libgdeflate support
- improved processing speed when depth is used with deduplication/dictionary
- fixed issues with lzo codec
- fixed issues with stream patching
- fast-lzma2 now works internally without needing dll
- updated internal zstd version to 1.5.7 to improve stream patching speed and sizes
- temporarily removed UI mode until it gets updated to run under wine
- 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
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
- 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