FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   XTool 2020 (Main Project) (https://fileforums.com/showthread.php?t=102832)

Razor12911 22-04-2023 07:51

Hi, the older versions of xtool and the current version have different code infrastructure and porting the deduplication code would be time consuming, also a standalone deduplication program wouldn't make sense simply because the xtool version is stream based meaning, it relies on whatever streams are detected, however if you just wanted deduplication in stdio mode, you can just use srep in -m0 mode rather than -m#f, not sure if that answers your request :)

Razor12911 26-04-2023 14:34

Update available

Changes

- added ability to redirect base directory for plugins and libraries
- added restrictions to avoid errors with experimental codecs
- added optimize option to speed up the decoding process for zstd and oodle codecs
- added dictionary parameter for fast-lzma2
- added memory caching when decoding to alleviate speed bottleneck
- fixed bug with download feature for inputs in URL format
- fixed issues with exporting precompression database
- fixed issues with executable plugin support
- fixed issues advanced configuration based plugin support
- fixed potential decoding issue upon using plugin support functions
- fixed issues with deduplication feature
- fixed issues with jojpeg codec
- replaced crc32c with xxh3_128 to reduce collisions when using the database and deduplication feature
- replaced memory manager with FastMM4-AVX to improve scaling in multi threaded scenarios
- improved user interface
- improved oodle codec performance for 2.6.0+ libraries
- improved encoding speed when using internal codecs
- improved processing speed when depth is used
- removed fast lzma2 multi threaded decompression due to excessive memory requirements
- removed debugging information when using the patch function
- removed ability to toggle database feature and ability to export database files (now enabled by default)
- updated deduplication virtual memory allocation
- updated reflate codec to verify streams prone to data corruption

Notes
Database files created using old tools (ucas database, dunia2 database etc) are not supported in this version, wait for updates for these tools.
Reflate may be slightly slower compared to previous versions and that's because verification on suspected streams that may cause crc errors has been added.

Speed when using -d# parameter has been improved as show below on the game Star Ocean The Divine Force's chunk_2.cpk file.

0.6.9
Code:

Compressed 1 file, 641,373,728 => 1,104,208,408 bytes. Ratio 172.16%
Compression time: cpu 0.53 sec/real 37.94 sec = 1%. Speed 16.90 mB/s

Tested 1 file, 1,104,208,408 => 641,373,728 bytes. Ratio 172.16%
Testing time: cpu 0.41 sec/real 73.39 sec = 1%. Speed 8.74 mB/s

0.7.0
Code:

Compressed 1 file, 641,373,728 => 1,104,208,460 bytes. Ratio 172.16%
Compression time: cpu 0.61 sec/real 30.71 sec = 2%. Speed 20.88 mB/s

Tested 1 file, 1,104,208,460 => 641,373,728 bytes. Ratio 172.16%
Testing time: cpu 0.45 sec/real 22.72 sec = 2%. Speed 28.23 mB/s


dixen 28-04-2023 01:47

Just a tip, nothing more..
What about the progress status for -dd3 and fast-lzma? For example this
<input_data_size> >> <Output_data_size>..

shazzla 28-04-2023 04:34

Something is wrong with Xtool 07 hotfix.

It doesnt catch up any stream on Snowrunner's EDITOR.PAK ,while Xtool 069 does ! (069 fails at the end on this file with reflate ,zlib works fine !)
See below :

......

Edit #2 :
Ohh ,maaan! :D ALL DLL's must be in the libraries folder ! Not only the external ones ,like unreal ,unity,etc... :D

Razor12911 28-04-2023 05:52

Quote:

Originally Posted by dixen (Post 500963)
Just a tip, nothing more..
What about the progress status for -dd3 and fast-lzma? For example this
<input_data_size> >> <Output_data_size>..

Code:

Streams: 58080 / 58080
Time: 00:01:27 (CPU 00:15:18)
Duplicates: 4893 (18.2 MB) [26.2 MB >> 265 MB]
Srep decompression memory: 45.0 MB [113 MB*]

Size: 1.09 GB (original) >> 2.32 GB (zlib) >> 2.06 GB (dedup) >> 1.75 GB (srep) >> 915 MB (flzma)

I'm not sure what the question is, but the information shows up when you use the program w/o FA.

@shazzla

be mindful of base directory or -bd#, this allows xtool to relocate libraries and plugins (including xtl and ini files) from another directory

I added this because there were just too many files near xtool.exe, also if you want to compress games but rather than moving and deleting oo2core..., you can just change the base directory.

shazzla 28-04-2023 06:08

This "base directory or -bd#..." is not so clear...
How to use/set -bd# ?

Razor12911 28-04-2023 06:18

Let's say you want want to move all libraries and plugins to a folder called "libs" which is near xtool.exe, you specify base directory as -bdlibs or -bd.\libs. or you can just leave it empty to make xtool work the same as before.

dixen 28-04-2023 10:30

Sorry for dumb question, but how get this info in xtool?

Quote:

Streams: 58080 / 58080
Duplicates: 4893 (18.2 MB) [26.2 MB >> 265 MB]
Srep decompression memory: 45.0 MB [113 MB*]

Size: 1.09 GB (original) >> 2.32 GB (zlib) >> 2.06 GB (dedup) >> 1.75 GB (srep) >> 915 MB (flzma)

KaktoR 28-04-2023 10:32

Quote:

Originally Posted by dixen (Post 500970)
Sorry for dumb question, but how get this info in xtool?

With these settings
https://i.imgur.com/KrVjKWN.png

Razor12911 28-04-2023 11:37

The information is always visible and verbose option isn't necessary because that will force xtool to use 1 thread, whether you use GUI or CLI. It's always there.

Razor12911 28-04-2023 13:13

There's a feature I'd like to point out which was briefly added in 0.6.8 but wasn't finished until this current release and that is on the fly compression, basically if you wanted to quickly find out the theoretical compressed size of a game without consuming disk space.

Reasons you may want to use this feature:
+ If you just wanted to find out the compressed size
+ If a game uses kraken and wanted to see if it was worth it to compress it at all
+ If the game is big and you don't have space for compression
+ If you don't want to reduce lifespan on SSD

https://i.ibb.co/1n8BL2G/otfcom1.png
Code:

XTool is created by Razor12911

Streams: 1415335 / 1415335
Time: 00:01:21 (CPU 00:04:03)
Duplicates: 1134306 (1.99 GB) [7.11 GB >> 16.1 GB]

Size: 15.3 GB >> 29.0 GB >> 13.0 GB

Done!!!

13GB is the size that srep is expecting, so you change duplication preset to srep, then set input size to at least 15GB then enable compression, set desired level and dictionary.
https://i.ibb.co/L0Kdzrs/otfcom2.png
Code:

Streams: 1415335 / 1415335
Time: 00:04:36 (CPU 00:34:05)
Duplicates: 1134306 (1.99 GB) [7.11 GB >> 16.1 GB]
Srep decompression memory: 751 MB [5.15 GB*]

Size: 15.3 GB >> 29.0 GB >> 13.0 GB >> 9.03 GB >> 4.65 GB

Done!!!

So then you know that 15.3 GB becomes 4.65 GB in less than 5 mins but without creating any temp files as the whole compression takes place in memory. You also know srep decompression memory too.

_________________________________

The other thing, as you know how much I tried to make xtool to perform as fast as possible, the thing that always bothered me was that lzma was slow and that's why I added fast-lzma2. I noticed something interesting about this compression library in the sense that it's able to increase the number of threads used for compression without increasing memory usage.

Here's a few results

4x4:lzma (via fazip) (b128mb:t6), ultra, 64mb dictionary, 12 threads used 2781 MB ram
Code:

Compressed 288 files, 16,391,993,193 => 4,869,896,897 bytes. Ratio 29.71%
Compression time: cpu 13.50 sec/real 662.85 sec = 2%. Speed 24.73 mB/s

fast lzma2, level 10, 64mb dictionary, 12 threads used 403 MB ram
Code:

Compressed 288 files, 16,391,993,193 => 4,929,451,310 bytes. Ratio 30.07%
Compression time: cpu 11.84 sec/real 425.39 sec = 3%. Speed 38.53 mB/s

Not only is memory used by fast lzma2 low, but it's much faster while producing similar results and what is impressive is, if you had like 32 thread cpu, you can increase its speed even further without increasing memory usage by too much but if you use the 4x4 method, the memory usage will increase even more.

infovs 30-04-2023 00:13

Thank you Razor12911 for this fantastic tool...have one question, if it is not too much trouble, can you please consider naming x64 srep.exe (since xtool is hardcoded using this exact name) like Bulat original named it as srep64.exe?
I'm using original naming for many years, I need 32bit srep.exe for some compatibility reasons of my own...and your renaming 64bit srep64.exe as srep.exe is causing problems.
Maybe at least consider making xtool using srep64.exe name first, if found, then if not found use srep.exe or whatever srep name you consider acceptable.

Thanks in advance,
best regards

kj911 30-04-2023 08:29

Quote:

Originally Posted by Razor12911 (Post 500966)
Code:

Streams: 58080 / 58080
Time: 00:01:27 (CPU 00:15:18)
Duplicates: 4893 (18.2 MB) [26.2 MB >> 265 MB]
Srep decompression memory: 45.0 MB [113 MB*]

Size: 1.09 GB (original) >> 2.32 GB (zlib) >> 2.06 GB (dedup) >> 1.75 GB (srep) >> 915 MB (flzma)


Final compressed size without srep?? Better or worser?

FLZMA2: This really? Small memory footprint + utilize extra more cores? :eek: (This feature available from native 7-Zip releases?)
Likelys the feature from LOLZ. More 4-12C/4-24T CPU's from in visible this ONE virtually core utiiized during in compression. (Faster speed in LDMF1 mode.)

Wanterlude 13-05-2023 01:37

Guys, does anyone know how to fix this?
Game: A Plague Tale Requiem
Files: *.DPC
Xtool: last ver 0.7.0 hotfix
Problem: after unpacking 1 file (28.9gb) xtool goes beyond its allocated memory. (x4)
The picture shows the information from windows resource monitoring. (I have 16 GB RAM)
https://i.ibb.co/tBFnGqR/111759.png
Code:

[External compressor:xtool]
header = 0
unpackcmd = "xtool.exe" decode -t100p -dm20p -sm20p - - <stdin> <stdout>

[External compressor:xtool]
header = 0
unpackcmd = "xtool.exe" decode -t100p -sm20p --mem=20p - - <stdin> <stdout>

In 1 case it happens as shown in the picture. In 2, the memory increase can be seen even in the windows task manager.

arc.ini:
Code:

[External compressor:xtool]
header    = 0
default  = -c128mb -t100p
packcmd  = xtool.exe precomp -mzlib -d1 -db -dd5 - - <stdin> <stdout>

-----------------------
upd. (14 may): preflate has the same problem | xtool 0.6.9 - same
-----------------------
upd. (15 may): fixed by 2nd xtool and -dm20p -sm20p parameters.
I think the problem was that I used 1 xtool for both zlib and dedup
-----------------------

Razor12911 22-05-2023 04:47

Update available

Changes

- fixed issues with fast-lzma2 being unable to set correct compression level
- updated deflate stream scanner

huluwizard 03-06-2023 07:49

Forgive me if I have missed something obvious, but the first post in this thread mentions documentation, but I'm not able to locate any documentation for xtool. Specifically, I'm trying to figure out the command line. I can get the results I want from the GUI plus a plugin, but ultimately I'd like to pair it with a batch file that does the same thing.

KaktoR 03-06-2023 08:07

xtool.chm is what you are looking for.

huluwizard 03-06-2023 08:12

Quote:

Originally Posted by KaktoR (Post 501261)
xtool.chm is what you are looking for.

Oh wow, it really was right there all along. Thanks!

dixen 08-06-2023 02:17

And yet I don't understand how to use the memory limit in the -dd# function. The --srepmem=# parameter does not give anything at all. Maybe I'm doing something wrong?

Cesar82 08-06-2023 03:10

Quote:

Originally Posted by dixen (Post 501295)
And yet I don't understand how to use the memory limit in the -dd# function. The --srepmem=# parameter does not give anything at all. Maybe I'm doing something wrong?

I think the parameter for srep memory usage in XTool 0.70 is "-sm#" and not anymore "--srepmem=#".

shazzla 08-06-2023 05:10

It would be nice if someone document this parameters.... :)

Masquerade 08-06-2023 09:09

Quote:

Originally Posted by shazzla (Post 501299)
It would be nice if someone document this parameters.... :)

:confused::confused:

Code:

CMD> xtool precomp

XTool is created by Razor12911

precomp - data precompressor

Usage:
  xtool precomp [parameters] input output


Parameters:
  -m#  - codecs to use for precompression (separate with "+" if more than one)
  -c#  - scanning range of precompressor [16mb]
  -t#  - number of working threads [50p]
  -d#  - scan depth [0]
  -dd  - use stream deduplication
  -l#  - compress data using fast lzma2 (separate params with ":")
              d# - dictionary size
  -lm  - low memory mode
  -s  - skip stream verification
  -v  - enables verbose
  -df# - set xdelta threshold to accept streams [5p]
  -x#  - extract streams to directory path
  -dm# - deduplication memory usage limit (#=size) [75p]
  -sm# - srep memory usage limit (#=size) [75p]


Razor12911 08-06-2023 09:55

Executing xtool with the command as the only parameter will display information of how the command is used alongside the available parameters. The reason certain parameters remain undocumented is simply because they were added for personal usage or as a gimmick and not a lot of testing has been done and as such, they may not work as intended and may corrupt your data in certain instances.

Any of the listed parameter is fine to be used by you, the end user however anything not listed here is limited to advanced users who may have gone through the source code over on github to even know of these parameters existence.

shazzla 09-06-2023 01:53

Thanks,but i miss exactly those undocumented parameters! :D

Somehow i missed github. lol
Going there now,btw thanks!

Razor12911 12-06-2023 07:21

2 Attachment(s)
Update available

Changes

- memory usage optimizations

Notes

Resources utilised by zlib, lzo, zstd and some other codecs have been made to initialize only when used, this was down to reduce memory usage and allocation.

If you're users like shazzla however, who want to utilise features of xtool before they are tested and ready for, there's a new parameter introduced in this release which makes xtool utilise the GPU's VRAM to improve precompression speed and reduce memory usage even more when decoding by offloading deduplication memory requires onto the GPU.

-g# (# may be a percentage or specific value), default value is 0

So how does it work? When precompressing, xtool reads, processes then writes, it does this again and again until it finishes. The problem with this however is there's a bottleneck when it is writing especially if you're repacking on HDD because xtool may be processing faster than it is actually writing to the disk so that's where caching feature introduced in 0.7.0 and the new GPU feature comes in. Instead of writing straight to disk, the data is written to the GPU and as xtool reads and processes the next batch of data, the GPU will be writing to the disk making sure that the processing aspects of xtool are not slowed down.

When decoding, xtool can sometimes use the ram for the duplicated streams resulting in high memory usage when installing a repack, usually when you're installing a game, the GPU isn't doing anything so these duplicated streams are stored on the GPU, this is done to reduce memory usage. 75% of the allocated GPU is dedicated to this while 25% is dedicated to caching data from srep+lolz/lzma or what it is that you use where xtool would be reading data in advance to reduce bottlenecks even more.

TLDR; how to enable this feature? just add -g75p when encoding/decoding (can be both, up to you)

How to know if it's working? Check in task manager and you should see xtool utilising the GPU with the Engine "Copy".

Benchmarks

0.7.1
Code:

XTool is created by Razor12911

Streams: 1415315 / 1415335
Time: 00:07:20 (CPU 00:44:37)
Duplicates: 1134302 (1.99 GB) [7.11 GB >> 16.1 GB]
Srep decompression memory: 738 MB [5.13 GB*]

Size: 15.3 GB >> 29.0 GB >> 13.0 GB >> 9.06 GB >> 4.65 GB

Done!!!

0.7.2
Code:

XTool is created by Razor12911

NVIDIA GeForce GTX 1060 6GB (4.50 GB loaded)
Streams: 1415315 / 1415335
Time: 00:05:31 (CPU 00:46:09)
Duplicates: 1134302 (1.99 GB) [7.11 GB >> 16.1 GB]
Srep decompression memory: 738 MB [5.13 GB*]

Size: 15.3 GB >> 29.0 GB >> 13.0 GB >> 9.06 GB >> 4.65 GB

Done!!!

There was a 30% speed improvement, your mileage may vary but only use this feature if you repack on HDD. There won't much speed gains on SSD.

OpenCL was used to achieve this so if your PC does not have the library in system32 folder, you should place the dll near xtool.

If feature does not work as intended then you must understand why I keep some features undocumented.

Masquerade 12-06-2023 10:11

Nothing short of incredible, always love seeing XTool updates. Thanks again Razor!

infovs 12-06-2023 10:27

Thank you Razor12911 for your incredible work! Two short questions if it is not too much trouble...how to use undocumented option introduced in 0.70?
- added optimize option to speed up the decoding process for zstd and oodle codecs
Looking at source it is used by adding parameter -o ...but not sure where, at decoding or encoding... I tried used it at both places, precomp some oodle data -> decoding speed was exactly the same as before without -o parameter :\
Also, is there any chance or parameter that can make xtool use and utilize srep64.exe instead of renamed srep.exe?
Thanks in advance, again, big thanks for everything!

Razor12911 12-06-2023 16:00

Quote:

Originally Posted by infovs (Post 501330)
Thank you Razor12911 for your incredible work! Two short questions if it is not too much trouble...how to use undocumented option introduced in 0.70?
- added optimize option to speed up the decoding process for zstd and oodle codecs
Looking at source it is used by adding parameter -o ...but not sure where, at decoding or encoding... I tried used it at both places, precomp some oodle data -> decoding speed was exactly the same as before without -o parameter :\
Also, is there any chance or parameter that can make xtool use and utilize srep64.exe instead of renamed srep.exe?
Thanks in advance, again, big thanks for everything!

Hi, optimise was added but not documented simply because the conditions needed for the benefits to even be noticeable are obscure, essentially the game Returnal was the reason this feature was added. The game used leviathan which takes a long time to process, to put it into perspective, if a stream was compressed using level 9 and let's say it takes 20 seconds to process, what optimise does is try lesser compression settings that give the same output, like level 8 which takes half the time on average compared to level 9 so that's about 10 seconds, 50% gain in speed, it does this again and again until the compression setting no longer gives the same output. As a result, some level 9 compressed streams of Returnal could be compressed with level 6, some level 7.

With this in mind, the installation should be faster right? Well yes it is but I wasn't impressed by the improvements so I left it undocumented.

Benchmark on pakchunk2_s8-WindowsNoEditor.pak of Returnal

without -o
Code:

XTool is created by Razor12911

Time: 00:22:17 (CPU 02:12:41)

with -o
Code:

XTool is created by Razor12911

Time: 00:18:50 (CPU 01:52:02)

We got about 15% speed improvement. You might see this as a win, but precompression took 32 mins with -o than 23 mins without -o so 40% more time for precompression.

As for srep/srep64, just let 32-bit programs die. :rolleyes:

janb14 19-06-2023 07:16

external ogg codec/compressor
 
Hello everyone,
first of all thank you Razor12911 and eveyone else who made this possible.
Im currently experimenting with xtool and noticed no dedicated handling of ogg files. Im trying to compress some of my minecraft backups where mods with ogg sound files contribute a significant share.
I have already extraced some and compressed them with standalone oggre. Now i want to include them the same way panker1992 (i recreated his wavpack config and it worked ;D) did but im not really a hex guru. Did anyone already have a working ogg config ?
So far ive found the Signature but im not sure what to fill in for the rest of the ini values:

HTML Code:

[Stream1]
Name=ogg
Codec=oggre
BigEndian=0
Signature=0x5367674f
Structure=Signature(4),FileSize(4),FileType(4),Stream
StreamOffset=-12
CompressedSize=FileSize + 8
DecompressedSize=0

Quote:

Originally Posted by panker1992 (Post 498090)
Hello, it's been ages since i had an error !!

This Came directly from Xtool documentation
Xtool version used 6.2

this is my wav.ini
[Stream1]
Name=wav
Codec=wavpack
BigEndian=0
Signature=0x46464952
Structure=Signature(4),FileSize(4),FileType(4),Str eam
StreamOffset=-12
CompressedSize=FileSize + 8
DecompressedSize=0
Condition1=FileType = 0x45564157
Condition2=FileSize >= 4096

this is my xtool.ini
[wavpack]
Encode=wavpack.exe -hh -x4 <filein>.wav <fileout>.wv
Decode=wvunpack.exe <filein>.wv <fileout>.wav

i have been unable to make this even detect the sample FLAC internal codec works and so any other
NOTE: i use this as standalone and not in FA for testing purposes


Masquerade 19-06-2023 08:17

^^
I'd advise against using XTool with oggre because oggre has built in deduplication that will not be working when each ogg is compressed individually with XTool.

janb14 19-06-2023 09:46

Do you know any other ogg compressors ? Either way running it on single stream still resulted in a noticable reduction and i would see it as an example of how to correctly fill out these ini files. Can you help me with that ? From the xtool chm im not quite able to do that yet.

Razor12911 29-06-2023 15:44

Update available

Changes

- Minor bug fixes

infovs 02-07-2023 04:13

Quote:

Originally Posted by Razor12911 (Post 501429)
Update available
Changes
- Minor bug fixes

Thanks Razor12911, just curious though, quite a big difference in exe size from previous version considering "minor bug fixes"...is this expected, different compiler or something?
And thank you for including x86 version btw, I can use it on older x86 games to retain compatibility out of nostalgic reasons only.. :)
Regarding this x86 compile, one addition small "info" question...in _x86\plugins you included x86 versions of hif2raw_dll.dll and raw2hif_dll.dll with datestamp(and compile time) 2013...tested it on Windows Vista x86 (as I said, no need to judge, I sometimes use this out of nostalgic and historic perseverance reasons) and they work...but you used to distribute 0.3.21 xtool with newer(are they?) x86 versions, 2017 compile time. They also work, I'm just confused, are those from 2013 included with x86 0.7.3 by mistake or is it better to use them instead of 0.3.21 x86 hif2raw_dll.dl/raw2hif_dll.dll versions?
Thanks. best regards

Razor12911 03-07-2023 16:18

Quote:

Originally Posted by infovs (Post 501445)
And thank you for including x86 version btw, I can use it on older x86 games to retain compatibility out of nostalgic reasons only.. :)
Regarding this x86 compile, one addition small "info" question...in _x86\plugins you included x86 versions of hif2raw_dll.dll and raw2hif_dll.dll with datestamp(and compile time) 2013...tested it on Windows Vista x86 (as I said, no need to judge, I sometimes use this out of nostalgic and historic perseverance reasons) and they work...but you used to distribute 0.3.21 xtool with newer(are they?) x86 versions, 2017 compile time. They also work, I'm just confused, are those from 2013 included with x86 0.7.3 by mistake or is it better to use them instead of 0.3.21 x86 hif2raw_dll.dl/raw2hif_dll.dll versions?
Thanks. best regards

Initially only the x86 libraries existed and after the developer of reflate returned years after, he provided x64 versions however they function the same. (Also the libraries included in 0.3.21 are actually x64, that xtool release was also x64 :confused:)

Quote:

Thanks Razor12911, just curious though, quite a big difference in exe size from previous version considering "minor bug fixes"...is this expected, different compiler or something?
I've actually added Denuvo to limit installation of xtool compressed games to five per day. :rolleyes:

infovs 04-07-2023 03:16

Quote:

Originally Posted by Razor12911 (Post 501469)
I've actually added Denuvo to limit installation of xtool compressed games to five per day. :rolleyes:

Glad to see you added older Denuvo version otherwise xtool.exe size would be like 1GB .. :p :rolleyes:

Joking aside, regarding x86 hif2raw_dll.dll/raw2hif_dll.dll..you're right - 0.3.21 version did not contained x86, 0.3.19 did but only x86 xtool.exe.
x86 hif2raw_dll.dll/raw2hif_dll.dll libs versions I'm mentioning are contained with xtool_1908_R6, they seems newer than ones distributed with 0.7.3, hence the confusion :confused:

kj911 04-07-2023 05:55

Quote:

Originally Posted by Gehrman (Post 501470)
Hi Razor12911
Please add -a option to Srep. Sometimes, for big games like FH5, -a0 should be used to use less memory.
...

Used -a0 in many times ago! :D

Try it -m5f mode, its minimally smaller memory eat than -m3f. And combined in -a0. This m5f:a0 smaller memory footprint from decompression than m3f:a0??

In last newer ~20kB sized hif/raw dlls, in have different results than older ~80kB sizd versions. 50% case bigger inflated/compressed results.
The one problematic parts, from x86 build packages, the "preflate_dll.dll" file, not compatible from WinXP and not working from any precompressors usage. (ex: ZREC) Still exist working one in have preflate library available in many precomp 0.4.8 and older versions. (x86 releases.) ;)

Razor12911 05-07-2023 08:58

Update available

Changes

- user can specify srep parameters to use via -sp#
- updated zlib codec

Notes

the -sm# parameter is removed, now if you want to control the memory srep is bound to use, you use refer to the list of srep's parameters and use it as such -spmem75p or whatever it is you prefer, -sp is also available when encoding in order to specify additional srep parameters like the user Gehrman has requested. -spa0:l512.

The executable got bigger because I've been busy trying to add some features to the program that have not come into fruition but if you're a nosy person, you can check the source code to see what caused the exe to get big.

KaktoR 06-07-2023 06:19

What is wrong here? I don't get it.


Code:

Streams: 12050 / 12446
Time: 00:00:03 (CPU 00:00:18)

Size: 78.9 MB >> 211 MB


Code:

Compressed 2 files, 84,074,653 => 84,074,928 bytes. Ratio 100.00%
Compression time: cpu 0.06 sec/real 2.99 sec = 2%. Speed 28.16 mB/s
All OK

[External compressor:xtool_test]
header = 0
packcmd  = xtool.exe precomp -mscarletnexus+zlib -c128mb -t100p -d1 - - <stdin> <stdout>
unpackcmd = xtool.exe decode -t75p - - <stdin> <stdout>


Gehrman 07-07-2023 04:47

Thank you Razor12911 for the new version


XTool 0.7.4 test
Forza Horizon 5

134 GB > 198 GB > 78.8 GB

Code:

Creating archive: FH5PE - 1.594.508 - 001.Bin using xtool:c32mb:mzlib:dd3:spa0:hash-+4x4:lzma:fb273:lc8:mfbt4:64m+diskspan:1395864372:1557135360
Compressed 17,216 files, 143,891,581,840 => 1,395,864,412 bytes. Ratio 0.97%
Compression time: cpu 477.42 sec/real 28649.30 sec = 2%. Speed 5.02 mB/s
All OK
CT: 07:57:29

Tested 17,216 files, 1,395,864,412 => 143,891,581,840 bytes. Ratio 0.97% 
Directory 171,831 => 873,633 bytes. Ratio 19.67%
Testing time: cpu 181.02 sec/real 6340.69 sec = 3%. Speed 22.69 mB/s
All OK

DT: 01:45:40 (In another compressed version that used XTool 2020, the extraction time was 1 hour. It seems that this version has decreased in decompression speed.)

a problem
Heavy CPU consumption in Normal CPU Priority mode, which causes Mouse Lag.
This problem does not exist in "Below Normal" CPU Priority.

Razor12911 07-07-2023 15:27

The log information via xtool when repacking FH5:
Code:

Duplicates: 409792 (8.55 GB) [13.1 GB >> 22.2 GB]
Srep decompression memory: 5.30 GB [19.9 GB*]

Something you have to keep in mind when repacking Forza Horizon 5 is that this game has a lot of duplicates because its also a big game. If you use srep, it will request 20 GB for decompression memory or (5 GB if you used -dd while xtool itself will request 8.5 GB, about 13 GB overall, ~7 GB memory savings) and since you made a post that you wanted to control srep's a# parameter, I can only assume that when you ran decompression before, you had more system memory available than when you ran it this time.

The speed reductions seems to be related to you not having enough memory to install the game without srep or xtool making virtual temp files which incur speed penalty.

Games like these are the reason I added GPU memory feature in xtool because it would offload some memory onto the GPU which typically isn't used when installing games (if you have 8GB GPU, xtool would require 1GB instead of 8.5 GB, while 7.5GB will be on the GPU then installation would need 6GB instead of 20 GB which srep initially required), though not ready because it's not thoroughly tested on a lot of systems to see if it works without issues. :(

I ran a test between 0.7.4 against older releases, they all produce the same results and have the same speeds when decoding (at least within margin of error) and 0.7.0+ encodes faster. Decoding speed in 0.7.4 is slightly slower but reasonable because of memory usage optimisations that were made in 0.7.2, all versions used 220 MB+ for decoding while 0.7.4 used 73 MB.

ForzaHorizon5\DLC\MicrosoftExpansion2FH5\media\Tra cks\Falcon\bin.zip
Code:

0.7.4
Compressed 1 file, 1,893,356,830 => 2,847,735,336 bytes. Ratio 150.41%
Compression time: cpu 1.36 sec/real 20.95 sec = 6%. Speed 90.39 mB/s

Tested 1 file, 2,847,735,336 => 1,893,356,830 bytes. Ratio 150.41%
Testing time: cpu 0.19 sec/real 22.40 sec = 1%. Speed 84.52 mB/s

0.7.0
Compressed 1 file, 1,893,356,830 => 2,847,735,336 bytes. Ratio 150.41%
Compression time: cpu 1.41 sec/real 20.57 sec = 7%. Speed 92.05 mB/s

Tested 1 file, 2,847,735,336 => 1,893,356,830 bytes. Ratio 150.41%
Testing time: cpu 0.33 sec/real 22.06 sec = 1%. Speed 85.84 mB/s

0.6.9
Compressed 1 file, 1,893,356,830 => 2,847,735,092 bytes. Ratio 150.41%
Compression time: cpu 1.48 sec/real 25.08 sec = 6%. Speed 75.50 mB/s

Tested 1 file, 2,847,735,092 => 1,893,356,830 bytes. Ratio 150.41%
Testing time: cpu 0.14 sec/real 21.56 sec = 1%. Speed 87.81 mB/s

0.6.5
Compressed 1 file, 1,893,356,830 => 2,847,735,092 bytes. Ratio 150.41%
Compression time: cpu 1.38 sec/real 24.58 sec = 6%. Speed 77.03 mB/s

Tested 1 file, 2,847,735,092 => 1,893,356,830 bytes. Ratio 150.41%
Testing time: cpu 0.30 sec/real 22.06 sec = 1%. Speed 85.83 mB/s

0.5.3
Compressed 1 file, 1,893,356,830 => 2,847,735,104 bytes. Ratio 150.41%
Compression time: cpu 1.39 sec/real 25.08 sec = 6%. Speed 75.51 mB/s

Tested 1 file, 2,847,735,104 => 1,893,356,830 bytes. Ratio 150.41%
Testing time: cpu 0.16 sec/real 21.56 sec = 1%. Speed 87.81 mB/s

0.4.0
Compressed 1 file, 1,893,356,830 => 2,847,735,104 bytes. Ratio 150.41%
Compression time: cpu 1.38 sec/real 24.39 sec = 6%. Speed 77.64 mB/s

Tested 1 file, 2,847,735,104 => 1,893,356,830 bytes. Ratio 150.41%
Testing time: cpu 0.41 sec/real 21.56 sec = 2%. Speed 87.82 mB/s



All times are GMT -7. The time now is 09:48.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
FileForums @ https://fileforums.com