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)

PsYcHo_RaGE 12-04-2021 00:05

@Moderators
Don't you guys think that this thread should be pinned?

Razor12911 12-04-2021 07:49

There'll be more sticky threads than normal threads per page )

@Moderator
unstick these threads
https://fileforums.com/showthread.php?t=94605
https://fileforums.com/showthread.php?t=96630

Thanks

Grumpy 13-04-2021 02:43

Quote:

Originally Posted by Razor12911 (Post 491319)
There'll be more sticky threads than normal threads per page )

@Moderator
unstick these threads
https://fileforums.com/showthread.php?t=94605
https://fileforums.com/showthread.php?t=96630

Thanks

I unstuck those 2 and made this thread a Sticky ;)

Gehrman 22-04-2021 06:18

Oodle Precompressor works well.
 
[External compressor:xtool]
header = 0
packcmd = xtool_0.3.9\xtool.exe precomp -mkraken -c32mb -t100p --dbase - - <stdin> <stdout>
unpackcmd = xtool_0.3.9\xtool.exe decode -t100p - - <stdin> <stdout>

Tested games
Code:

Gears Tactics
Assassin's Creed Valhalla

:D

Masquerade 22-04-2021 07:19

Why are you using an Oodle kraken precompressor when Valhalla is compressed using Oodle Mermaid? :confused:

Gehrman 23-04-2021 06:05

Quote:

Originally Posted by Masquerade (Post 491479)
Why are you using an Oodle kraken precompressor when Valhalla is compressed using Oodle Mermaid? :confused:

DataPC_extra_patch_01.forge 529MB
Code:

Creating archive: data.arc using xtool
Compressed 1 file, 555,122,688 => 1,072,196,303 bytes. Ratio 193.15%     
Compression time: cpu 0.64 sec/real 64.80 sec = 1%. Speed 8.57 mB/s
All OK
     
Testing time: cpu 0.75 sec/real 44.12 sec = 2%. Speed 12.58 mB/s
All OK
____________________________

Creating archive: data.arc using oo2recm
Compressed 1 file, 555,122,688 => 1,173,235,688 bytes. Ratio 211.35%     
Compression time: cpu 0.58 sec/real 229.01 sec = 0%. Speed 2.42 mB/s
All OK

Testing time: cpu 0.52 sec/real 52.80 sec = 1%. Speed 10.51 mB/s
All OK
____________________________

Creating archive: data.arc using xtool+srep:m3f:l512+4x4:t10:i0:lzma:64mb:normal:32
Compressed 1 file, 555,122,688 => 413,916,053 bytes. Ratio 74.56%         
Compression time: cpu 536.95 sec/real 125.05 sec = 429%. Speed 4.44 mB/s
All OK

Testing time: cpu 38.48 sec/real 49.68 sec = 77%. Speed 11.17 mB/s
All OK
____________________________
Creating archive: data.arc using oo2recm+srep:m3f:l512+4x4:t10:i0:lzma:64mb:normal:32
Compressed 1 file, 555,122,688 => 403,297,897 bytes. Ratio 72.65%         
Compression time: cpu 559.47 sec/real 295.72 sec = 189%. Speed 1.88 mB/s
All OK
 
Testing time: cpu 37.36 sec/real 58.93 sec = 63%. Speed 9.42 mB/s
All OK


kj911 26-04-2021 07:32

Quote:

Originally Posted by dixen (Post 490476)
packcmd = xtool.exe precomp -mzlib+preflate -d3 -c128mb -t100p-1 - - <stdin> <stdout>
...
With -d3 - 61 mb
Without -d3 - 270 mb
...
Used XTool v0.3.9

Old XTool 0.1.2 x86 version capable the preflate compression schema? (This -d3 switch preflate or zlib command?) Required external EXE/DLL files?

ozolt 02-05-2021 15:07

1 Attachment(s)
For some reason xtool does not precompress /detect zlib streams in *.map files from halo2 folder and *.s3pak from halo1 folder (Halo: The Master Chief Collection).
Examples in attachments.
And xtool 0.12 detects them and inflates them just fine!
Tried all possible codec combos in xtool 0.3.9, -mzlib+reflate, -mzlib+preflate, -mzlib etc... no working. -mreflate works on other *.map files from halo3, halo4 perfectly...But not on halo2 (*.map files) and halo1 (*.s3pak files).
Since xtool 0.12 uses zlib+reflate xtool 2020 should detect this also...maybe there could be some *.ini plugin for 2020 to detect this streams?

Thanks,
regards.

pratikpatel8982 04-05-2021 19:57

Quote:

Originally Posted by ozolt (Post 491749)
For some reason xtool does not precompress /detect zlib streams in *.map files from halo2 folder and *.s3pak from halo1 folder (Halo: The Master Chief Collection).
Examples in attachments.
And xtool 0.12 detects them and inflates them just fine!
Tried all possible codec combos in xtool 0.3.9, -mzlib+reflate, -mzlib+preflate, -mzlib etc... no working. -mreflate works on other *.map files from halo3, halo4 perfectly...But not on halo2 (*.map files) and halo1 (*.s3pak files).
Since xtool 0.12 uses zlib+reflate xtool 2020 should detect this also...maybe there could be some *.ini plugin for 2020 to detect this streams?

Thanks,
regards.

I personally use pzlib3:m1 for zlib streams, it has worked well for me so far.
Code:

infile: 14.1GB
srep:m3f+pzlib3:m1+lolz
Outfile:1.80GB

Also, first tempfile was 14.1GB (srep)
Second tempfile was 2.11GB (pzlib3)
Final file was 1.80GB (lolz ultra)

I ALSO TRIED VERSION OF XTOOL THAT COMES WITH ULTRA ARC BUT IT DIDN'T ACHIEVE GOOD RESULTS.

Cesar82 21-05-2021 15:18

@Razor12911, I had an idea for XTool.
I don't know if that would be possible, but since we can't pass the "+" character in a parameter on the FreeArc command line, I thought it might be possible to make XTool decode multiple method parameters separately, allowing you to send multiple commands in a bat file...

Currently the parameter for the XTool method is -m.
Currently it is possible to use this way:
Code:

Arc.ini
[External compressor:xtool]
header    = 0
default  = -c64mb -t100p
packcmd  = "PRE\XTool_2020\XTool.exe" precomp {options} --dbase - - <stdin> <stdout>

pack.bat
arc.exe a -ep1 -r -ed -s; -w.\temp -mxtool:mzlib data.arc "pack\*"

Suggestion is to use multiple parameters (XTool concatenated with "+" sign the parametters -m1, -m2, -m3, etc if it exists, otherwise it would use -m current).
This change in XTool would allow you to use combinations (without parameters)

Code:

Arc.ini
[External compressor:xtool]
header    = 0
default  = -c64mb -t100p
packcmd  = "PRE\XTool_2020\XTool.exe" precomp {options} --dbase - - <stdin> <stdout>

pack.bat
arc.exe a -ep1 -r -ed -s; -w.\temp -mxtool:m1zlib:m2reflate data.arc "pack\*"

The result would be as if using mzlib+reflate

To make it possible to send parameters, "," could be used in the parameters -m1, -m2, etc. and XTool replaces ":" internally when concatenating the methods.

Borderlands 3 method if usage example if I applied my idea to XTool
Code:

pack.bat

arc.exe a -ep1 -r -ed -s; -w.\temp -mxtool:m1zlib:m2ue4,m1,k0x115EE4F8C625C792F37A503308048E79726E512F0BF8D2AD7C4C87BC5947CBA7 data.arc "pack\*"

This is just an idea.
I don't know if it would be good for XTool or if for some reason it would hinder performance so think about this idea.

This would be very useful to use with DiskSpan_GUI as I cannot send combined methods currently. And using XTool.ini is complicated because DiskSpan_GUI is fully configurable in the INI file without internal setinistring processing with sections and fixed keys to insert these values ​​in XTool.ini (You would have to read the DiskSpan_GUI configuration INI file to know where it would be inserted the value).

Razor12911 23-05-2021 03:03

Update available

Changes

- added depth info functions
- added support for oodle 2.9.0+ functions
- fixed data patching bug
- updated oodle codec
- updated command line parser

Changes between 0.3.9 to 0.3.11

Code:

  ES_R11 (0.3.11)
  - fixed x86 build bugs
  - fixed config multi-threading bug
  - fixed resource management bug
  - fixed deduplication bug

  ES_R10 (0.3.10)
  - minor bug fixes
  - added diff tolerance parameter (--diff=)
  - fixed plugin database bug
  - fixed lz4 codec bug
  - updated oodle codec
  - updated library structure
  - added resource management
  - added direct use encryption codecs
  - added embedded deduplication feature (--dedup) [makes temps during encoding]

@Cesar82

I updated the command line parser

Code:

[External compressor:xtool]
header    = 0
packcmd  = xtool.exe precomp { -moption} -c32mb -t100p --dbase --dedup - - <stdin> <stdout>
unpackcmd = xtool.exe decode -t100p - - <stdin> <stdout>

If you use "-mxtool:zlib:ue4,m1,k0x115E..." via Freearc, this is passed to xtool as "-mzlib+ue4:m1:k0x115E..." which should allow you to use it in your project.

Razor12911 23-05-2021 03:17

@Everyone

The oodle precompressor in xtool is now more aggressive (means slower), I'll add aggression parameter to control how much time it should spend finding more and more streams however this only applies to kraken, mermaid, selkie and hydra. Leviathan is still problematic and you'll have to rely on plugins for data compressed using this codec.

Here are a few benchmarks that show what I am talking about:

0.99 GB (1,066,131,456 bytes) > 1.52 GB (1,638,079,260 bytes) [took 2 minutes, 9 seconds] (xtool 0.3.9)
0.99 GB (1,066,131,456 bytes) > 1.84 GB (1,977,644,853 bytes) [took 4 minutes, 56 seconds] (xtool 0.3.12)
0.99 GB (1,066,131,456 bytes) > 1.53 GB (1,649,308,007 bytes) [took 8 minutes, 52 seconds] (oo2reck)

As you can see, version 0.3.12 is now slower but it found more streams than 0.3.9 or the oodle precompressor side project.

This is a sample from Cyberpunk 2077 and since the game does have a plugin these are the results if you had use the plugin

0.99 GB (1,066,131,456 bytes) > 2.26 GB (2,432,780,012 bytes) [took 41 seconds] (plugin)

So what do these results mean? Well the newer version of xtool traded speed for more ratio in an attempt to beat the side project while still being faster. Also if a plugin for a specific game is created, it shows that the plugins will constantly be superior to the universal precompressor as it's not only faster but produces better results. :)

In conclusion, try to run tests with other games to see if the new xtool produces better results than oo2rec and if a plugin for a game exists then it's best to just use it.

:( Sad8669 23-05-2021 03:24

I am now even more fired up for FIFA.

Thanks for these updates.

Razor12911 23-05-2021 03:27

For FIFA and all these other frostbite games, 0.3.13 update is needed

:( Sad8669 23-05-2021 03:33

Crash Bandicoot 4 Comparison - For zlib streams

0.3.12
Code:

Compressed 1 file, 19,665,315 => 91,532,563 bytes. Ratio 465.45%
Compression time: cpu 0.05 sec/real 2.77 sec = 2%. Speed 7.11 mB/s
All OK

0.3.9
Code:

Compressed 1 file, 19,665,315 => 98,920,152 bytes. Ratio 503.02%
Compression time: cpu 0.06 sec/real 2.80 sec = 2%. Speed 7.03 mB/s
All OK


Those FIFA's after 19 are such a pain...

Razor12911 23-05-2021 03:38

Quote:

Originally Posted by :( Sad8669 (Post 492325)
Crash Bandicoot 4 Comparison - For zlib streams

0.3.12
Code:

Compressed 1 file, 19,665,315 => 91,532,563 bytes. Ratio 465.45%
Compression time: cpu 0.05 sec/real 2.77 sec = 2%. Speed 7.11 mB/s
All OK

0.3.9
Code:

Compressed 1 file, 19,665,315 => 98,920,152 bytes. Ratio 503.02%
Compression time: cpu 0.06 sec/real 2.80 sec = 2%. Speed 7.03 mB/s
All OK


Those FIFA's after 19 are such a pain...

must be deduplication, check command line

FIFA after 19 isn't a problem, I don't have samples for these games so I am limited by the little samples that I have.

Cesar82 23-05-2021 04:05

Quote:

Originally Posted by Razor12911 (Post 492320)

@Cesar82
I updated the command line parser

Code:

[External compressor:xtool]
header    = 0
packcmd  = xtool.exe precomp { -moption} -c32mb -t100p --dbase --dedup - - <stdin> <stdout>
unpackcmd = xtool.exe decode -t100p - - <stdin> <stdout>

If you use "-mxtool:zlib+ue4,m1,k0x115E..." via Freearc, this is passed to xtool as "-mxtool:zlib+ue4:m1:k0x115E..." which should allow you to use it in your project.

@Razor12911, I don't know if another method besides ue4 has parameters. But supposing yes, how would I use a combination of 2 methods in which each one contains parameters?
Assuming that zlib had a parameter -m3 for example (just to specify the debt):

For example, assuming that zlib had a parameter -m3 (just to specify the debt) would it look like this?
Code:

"-mxtool:zlib,m3+ue4,m1,k0x115E..."
Should the arc.ini file be used in this way only { -moption}?
to use zlib+ue4 (Borderlands 3) it would not be necessary to send the -d1 parameter to XTool.
How can I pass or not the -d1 if I use the command like the arc.ini information reported above?

Razor12911 23-05-2021 04:12

Code:

[External compressor:xtool]
header    = 0
packcmd  = xtool.exe precomp { -moption} -c32mb -t100p --dbase --dedup - - <stdin> <stdout>
unpackcmd = xtool.exe decode -t100p - - <stdin> <stdout>

Code:

-mxtool:zlib,m3:ue4,m1,k0x115E...
If you plan to add -d1 option via command line, you then have to modify the arc.ini to something like

Code:

[External compressor:xtool]
header    = 0
packcmd  = xtool.exe precomp { -option} -c32mb -t100p --dbase --dedup - - <stdin> <stdout>
unpackcmd = xtool.exe decode -t100p - - <stdin> <stdout>

Code:

-mxtool:d1:mzlib,m3:mue4,m1,k0x115E
which equates to -d1 -mzlib,m3 -mue4,m1,k0x115E
then -d1 -mzlib+ue4:m1:k0x115E when it reaches xtool

:( Sad8669 23-05-2021 05:06

Might hook you up with some samples, once i get to testing it. If you would like.

Yes it was the dedup.

Without dedup :
Code:

Compressed 1 file, 19,665,315 => 98,946,941 bytes. Ratio 503.15%
Compression time: cpu 0.00 sec/real 4.12 sec = 0%. Speed 4.77 mB/s
All OK


KaktoR 23-05-2021 06:53

Bethesda plugin does not work with xtool 0.3.12

Code:

0.3.9
Compressed 1 file, 373,427,426 => 532,225,912 bytes. Ratio 142.52%
Compression time: cpu 0.25 sec/real 4.74 sec = 5%. Speed 78.73 mB/s
All OK

0.3.12
Compressed 1 file, 373,427,426 => 373,427,610 bytes. Ratio 100.00%
Compression time: cpu 0.41 sec/real 2.22 sec = 18%. Speed 168.52 mB/s
All OK

Yes I have replaced bsa.dll with the new one.

21h2 24-05-2021 04:12

Quote:

Originally Posted by Razor12911 (Post 481382)
XTool is program made specifically repackaging games by providing a full suite of useful features such as data precompression, archiving, encryption and etc.

With that being said, nothing restricts it from being used on everyday files such as documents, pictures and media but with few limitations.

Read the documentation to find out how it works and how to use it.

Link for older releases.

i still dont understand how i can zip thinks with it

Razor12911 24-05-2021 14:08

Update available

Changes

- updated lz4 codec
- updated library structure
- updated depth info functions
- updated depth feature

kast1450 28-05-2021 20:23

XTool LZ4:
8:20:52 PM - Overall input size: 6.54 GB
8:20:52 PM - Overall output size: 3.91 GB
8:20:52 PM - Overall conversion time: 00:00:52

XTool 2020 LZ4:
8:22:33 PM - Overall input size: 6.54 GB
8:22:33 PM - Overall output size: 6.54 GB
8:22:33 PM - Overall conversion time: 00:01:02

Is this normal or a bug? I'm using the same settings with the same dataset yet one LZ4 gives good compression and the other gives no compression.

ScOOt3r 03-06-2021 07:07

If i wanted to use Oodle with xtool
would this be correct with the latest verison of xtool

[External compressor:xtool]
header = 0
packcmd = xtool\xtool.exe precomp -moodle -c256mb -t22 --dbase --dedup - - <stdin> <stdout>

cause it doesnt work for me... get a disc full error

thanks
ScOOt3r

Razor12911 03-06-2021 07:08

Quote:

Originally Posted by kast1450 (Post 492485)
XTool LZ4:
8:20:52 PM - Overall input size: 6.54 GB
8:20:52 PM - Overall output size: 3.91 GB
8:20:52 PM - Overall conversion time: 00:00:52

XTool 2020 LZ4:
8:22:33 PM - Overall input size: 6.54 GB
8:22:33 PM - Overall output size: 6.54 GB
8:22:33 PM - Overall conversion time: 00:01:02

Is this normal or a bug? I'm using the same settings with the same dataset yet one LZ4 gives good compression and the other gives no compression.

xtool hasn't had a working lz4 codec.

Quote:

Originally Posted by ScOOt3r (Post 492560)
If i wanted to use Oodle with xtool
would this be correct with the latest verison of xtool

[External compressor:xtool]
header = 0
packcmd = xtool\xtool.exe precomp -moodle -c256mb -t22 --dbase --dedup - - <stdin> <stdout>

cause it doesnt work for me... get a disc full error

thanks
ScOOt3r

there is no codec with the name oodle however there is kraken, mermaid and selkie.

Edit: the parameter you used will require about 6GB ram if no streams are found and it will require even more if they are found

(256mb x 22 threads) + 256mb = 5,888MB ram usage and if the average inflation ratio is 200%, you're looking at 12GB+ ram usage by xtool. I'm letting you know before hand that the parameter you have input will make xtool use a lot of memory.

ScOOt3r 03-06-2021 09:16

Thank you Razor12911, thanks for the breakdown

I will edit my arc.ini file and correct that.

cheers
ScOOt3r

Razor12911 05-06-2021 16:47

Update available

Changes

- minor bug fixes

Changes between 0.3.13 to 0.3.15

Code:

  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

Hotfix uploaded

L0v3craft 06-06-2021 02:26

Quote:

Originally Posted by Razor12911 (Post 492618)
Update available

Changes

- added rc4 encryption support

Hi. Which game is using rc4 encryption? So we can do some test. Thanks.

Razor12911 06-06-2021 12:42

Update available

Changes

- fixed multi-threading bug

Quote:

Originally Posted by L0v3craft (Post 492627)
Hi. Which game is using rc4 encryption? So we can do some test. Thanks.

There is madness plugin I was busy with earlier to add support to games that use the Madness game engine. (Project Cars series/Automobilista 2)

I only have a few samples of Automobilista 2 and it seems to work there, but I was more interested in the first project cars game.

doofoo24 06-06-2021 23:55

@Razor12911

any benefit from adding embedded deduplication feature (--dedup) [makes temps during encoding] ???
game like gta v it unpack to xtool.vm then just copy to arc $$$ while using all ram and ssd write cycle...

so is it better to disable --dedup ???

Razor12911 07-06-2021 22:45

Update available

Changes

- fixed depth bug
- fixed library plugin bugs

@doofoo24
I'll look into the issue but you can use xtool without deduplication, someone has already made comments regarding xtool's memory hungry behaviour when using the feature as this is not supposed to happen.

doofoo24 08-06-2021 20:10

@Razor12911
does xtool 0.3.18 work with mass effect legendary ?
only xtool in New folder (7) work "packcmd = xtool.exe precomp -mue3:m2 -t100p - - <stdin> <stdout>" ...

Razor12911 08-06-2021 22:48

Yes it works but you need the unreal plugin and oodle library from the game.

dixen 09-06-2021 04:24

Quote:

Originally Posted by doofoo24 (Post 492807)
@Razor12911
does xtool 0.3.18 work with mass effect legendary ?
only xtool in New folder (7) work "packcmd = xtool.exe precomp -mue3:m2 -t100p - - <stdin> <stdout>" ...

ME2 Textures7.tfc
Quote:

FreeArc 0.67 (March 15 2014) creating archive: data.arc
Compressed 1 file, 519,052,402 => 1,490,583,040 bytes. Ratio 287.17%
Compression time: cpu 0.56 sec/real 16.36 sec = 3%. Speed 31.72 mB/s
All OK
Quote:

Tested 1 file, 1,490,583,040 => 519,052,402 bytes. Ratio 287.17%
Testing time: cpu 0.47 sec/real 13.01 sec = 4%. Speed 39.90 mB/s
All OK
XTool v0.3.18 + UE-Plugin R5

doofoo24 09-06-2021 06:47

yea my mistake i used unreal.dll from "New folder (7)" with xtool 0.3.18 having the same size as unreal.dll from R5 i thought both the same ...:o

so i compress all of mass effect 1+2+3 super fast during install on r9 5950x... around 9min install 71gb without bik...

xtool set to 100p but most of the time around 60% during install unlike during compress xtool was using all 32 thread so i guess there is bottelneck lolz or srep ?

to test it i need to use only xtool to see if it can use 32 thread in decode...

infovs 10-06-2021 01:15

Is there any way you can pass ue3:m2 command line parameters to arc.exe with "standard" arc.ini provided with xtool?

Code:

[External compressor:xtool]
header    = 0
packcmd  = xtool.exe precomp { -moption} -t100p --dbase --dedup - - <stdin> <stdout>
unpackcmd = xtool.exe decode -t100p - - <stdin> <stdout>

Should be -mxtool:ue3:m2 with arc.exe in .bat, but it is not working...
When I modify arc.ini packcmd to xtool.exe precomp -mue3:m2 .... it is working ok, but with { -moption} it fails.

Razor12911 10-06-2021 21:07

@infovs

-mxtool:ue3,m2

Razor12911 14-06-2021 00:14

Update available

Changes

- updated lzo codec

Masquerade 14-06-2021 14:14

Is there anyway to analyse a file to see which version of LZ4 it was compressed with?

I have a few unity asset bundles, 506MB worth. When decompressed using Asset Bundle Extractor, they decompress to 2.78GB.

If I try to throw these into XTool, it will make an archive of 693MB (~136% ratio). I get the same whether I use the 2017 lz4 dll, 2018 (v1.8.1.2 / v1.8.2) lz4 dll or the latest dll from Nov 2020.

https://1fichier.com/?hcsaopws7sfrktfka4z2

Here's the sample

Masquerade 15-06-2021 08:36

Here's some more info on that unity sample I shared above:

Code:

  Compressing 4_trialislands_scenes_4d_bunker.unity.bundle
Compressing 42,742,931 bytes with "xtool.exe" precomp -munity -c512mb -t100p $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
  XTool is created by Razor12911

Streams: 1509/8732732
Time: 00:00:30 (00:06:28)
Memory: 317 MB (317 MB)
Memory: 128 MB (128 MB)
  8%
Errorlevel=0



All times are GMT -7. The time now is 07:47.

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