FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   XTool - Successor of ZTool (https://fileforums.com/showthread.php?t=101729)

Andu21 10-05-2019 17:23

L0v3craft, as far as i know you need to unpack the archive with the key, compress it's content and then re-import the files back.

L0v3craft 10-05-2019 19:38

Quote:

Originally Posted by Andu21 (Post 480932)
L0v3craft, as far as i know you need to unpack the archive with the key, compress it's content and then re-import the files back.

I can extract it with quickbms, but you mean re import with quickbms ? Is possible to implement it with inno in the way that inno can shows the installation with a progress bar ?

Andu21 11-05-2019 07:41

Quote:

Originally Posted by L0v3craft (Post 480933)
you mean re import with quickbms ?

Yes.
Quote:

Is possible to implement it with inno in the way that inno can shows the installation with a progress bar ?
Maybe, haven't tried yet.

Razor12911 16-06-2019 04:54

Update available (.. or rather update was available, I forgot to post this)

Changes

- added mk11 lzna support

Status

Project is halted, and to be replaced with this

KaktoR 16-06-2019 05:00

Thanks for this. Did you fixed the big input bug yet? Or is this on your to-do list? :)

Razor12911 16-06-2019 05:03

to do list, I have chosen to rewrite the project from scratch, surely that will fix many if not all issues but who knows :)

darkwolves 16-06-2019 19:33

Quote:

Originally Posted by Razor12911 (Post 481383)
Update available (.. or rather update was available, I forgot to post this)

Changes

- added mk11 lzna support

Status

Project is halted, and to be replaced with this

inflation test of mk11 successful i am now repacking it and will do a test unpacking

FitGirl 17-06-2019 19:00

Quote:

Originally Posted by darkwolves (Post 481390)
inflation test of mk11 successful i am now repacking it and will do a test unpacking

Don't expect good ratio, LZNA is the best compression algo in Oodle family.

Razor12911 20-06-2019 15:12

@everyone
I'm now focusing on the main code of XTool 2019, so now it's a good time to mention all the bugs the current xtool has so I can try to avoid as I write the new code from scratch and what new features would you like to be added in the upcoming release.

KaktoR 20-06-2019 16:02

^^
For oodle codec on AC:Origins and Odyssey: XTool only unpack a small amount of forge files in the beginning, then it just copy the rest of the files (ratio is somewhat by ~102% overall if I remember right).

I think there was something with lz4hc on Far Cry too (I just don't remember what it was exactly, I'm sorry).

Would be good if you can add lzo for unreal engine games (borderlands, ME1+2, etc) and for the older forge engine games aswell.

Btw, what about oodle3 codec? Destiny 2 is using this and I can't get it with xtool nor your oodle tools released previously (oo2recx).

Razor12911 21-06-2019 10:36

I think it is also best if you provide samples and the required resources to make precompression possible, like dlls. You could start with oodle... I just hope the headers are still the same

KaktoR 21-06-2019 12:55

Here are a few samples

Destiny 2 (oodle 3)

Borderlands 2 Remastered (unreal engine lzo)

Borderlands PreSequel Remastered (unreal engine lzo)

Mass Effect (unreal engine lzo)

Mass Effect 2 (unreal engine lzo)

AC Odyssey (forge engine oodle 4)



Maybe more to come...

Razor12911 21-06-2019 18:09

if it's an unreal engine game compressed with lzo then for precompression, you must provide lzopro, standard lzo cannot restore any of the streams. If you use ztool/xtool but skip verification, you'll notice that the precompressor does see the streams but just for the fact that it cannot restore them with perfect crc, it just skips all of them. The reason I added skip verification was the fact that if it ever came to a point where one cannot really precompress a game with perfect crc, it should then at least allow you to try to pack a game with different crc but then also allow you to repack it, example of this was DmC: Devil May Cry, also unreal engine game compressed with lzo, I couldn't use xtool to precompress game but used skip verification, the game files were different but the game played from start to finish without crashing plus I managed to save space after repacking it.

as for Odyssey, probably some internal issue but the scanner does see all the streams in the samples
DataPC_ACD_Greece_DX11.forge:
Code:

Universal Oodle stream scanner

Created by Razor12911

[0] = Unknown/Invalid
[1] = Kraken/Hydra
[2] = Mermaid/Selkie/Hydra
[3] = Leviathan/Hydra

0001[2]| Pos: 00004CE4, Size: 13359
0002[2]| Pos: 00008117, Size: 13271
0003[2]| Pos: 0000B4F2, Size: 25162
0004[2]| Pos: 00011740, Size: 25029
....
0387[2]| Pos: 00856A2E, Size: 26334
0388[2]| Pos: 0085D110, Size: 13314
0389[2]| Pos: 00860568, Size: 21767
0390[2]| Pos: 00865A73, Size: 23507

Done!!!

for Destiny, I think lzna was used on this game just like mk11 (I see a lot of 0x058c headers everywhere), support for lzna is not added at the moment, but I obviously need to confirm this.

hungeuro 21-06-2019 20:45

Quote:

Originally Posted by KaktoR (Post 470215)
Wooh nice.

Thank you!

thanks so much

KaktoR 22-06-2019 01:55

Quote:

Originally Posted by Razor12911 (Post 481438)
if it's an unreal engine game compressed with lzo then for precompression, you must provide lzopro, standard lzo cannot restore any of the streams. If you use ztool/xtool but skip verification, you'll notice that the precompressor does see the streams but just for the fact that it cannot restore them with perfect crc, it just skips all of them. The reason I added skip verification was the fact that if it ever came to a point where one cannot really precompress a game with perfect crc, it should then at least allow you to try to pack a game with different crc but then also allow you to repack it, example of this was DmC: Devil May Cry, also unreal engine game compressed with lzo, I couldn't use xtool to precompress game but used skip verification, the game files were different but the game played from start to finish without crashing plus I managed to save space after repacking it.

as for Odyssey, probably some internal issue but the scanner does see all the streams in the samples
DataPC_ACD_Greece_DX11.forge:
Code:

Universal Oodle stream scanner

Created by Razor12911

[0] = Unknown/Invalid
[1] = Kraken/Hydra
[2] = Mermaid/Selkie/Hydra
[3] = Leviathan/Hydra

0001[2]| Pos: 00004CE4, Size: 13359
0002[2]| Pos: 00008117, Size: 13271
0003[2]| Pos: 0000B4F2, Size: 25162
0004[2]| Pos: 00011740, Size: 25029
....
0387[2]| Pos: 00856A2E, Size: 26334
0388[2]| Pos: 0085D110, Size: 13314
0389[2]| Pos: 00860568, Size: 21767
0390[2]| Pos: 00865A73, Size: 23507

Done!!!

for Destiny, I think lzna was used on this game just like mk11 (I see a lot of 0x058c headers everywhere), support for lzna is not added at the moment, but I obviously need to confirm this.

Yeah I used oo2recm for Odyssey and it worked fine (AFR works too but has no stdin support for compression, means temp files are over 250GB in size before srep even starts). With XTool:oodle it was just game size + ~2gb temp file (in task manager xtool just stop working after a certain point just in the beginning, no cpu or ram load, only hdd load for copying).

We already can use uelr for the unreal engine lzo games listed above, but the main problem is, that it has no stdin too and only specific files can be unpacked with it (unlike xtool, you can't just pack the whole game with uelr if files are present which don't have lzo streams, for example binaries or text files. You have to use masking or a seperate archive if you use diskspan for example. With xtool we can just pack the whole game without seperate it by files or streams).

Razor12911 22-06-2019 16:11

Thanks I'll look into it :)
I guess those are all the issues

Razor12911 25-06-2019 02:42

can someone bless me with a sample of Dragon Age Inquisition, it's required for development of XTool 2019

KaktoR 25-06-2019 02:48

Lemme download it. I will send you some samples later (if no one else do it).

Did you need any libraries or just archives?

Razor12911 25-06-2019 02:54

The game should be Zlib compressed, I guess only archives. I just need one cas archive, you can run a scanner or something like that to confirm on whether the sample you are uploading does indeed contain zlib streams. If you want to quickly upload the cas file since most definitely they are 1GB, you can really slice the file and give the first 100MB or something like that, I only need it to see the header structure to improve speed for games that use frostbite engine.

KaktoR 25-06-2019 03:38

Ok. Download is on 70% right now.

I have one question: According to the Bethesda BSA extractor, Skyrim Special Edition use lz4 compression, but the game file scanner didn't find anything and I can't find any usefull information about it on the usual sites like xentax etc.

Did you know the trick? Are these archives crypted somehow? Most of the files aren't compressable in the usual way (ratio is always at 99.9%).

Razor12911 25-06-2019 03:57

give sample and the extractor, and I'll take a look at it.

KaktoR 25-06-2019 04:49

Dragon Age Inquisition


Skyrim SE

Skyrim SE BSA extractor

doofoo24 26-06-2019 00:58

@Razor12911 what about encrypted game files like fifa/project car/crysis :D:D:D

Razor12911 27-06-2019 01:45

Quote:

Originally Posted by doofoo24 (Post 481506)
@Razor12911 what about encrypted game files like fifa/project car/crysis :D:D:D

https://fileforums.com/showthread.php?t=102524
https://fileforums.com/showthread.php?t=102461

as for Crysis, if I had an idea as to how it was encrypted, I would have made a tool for it

doofoo24 27-06-2019 12:09

i know the tools for fifa/project car...
i thought the new xtool will work on encrypted files like QuickBMS :o

Razor12911 27-06-2019 16:04

it could, but as of right now I am busy optimising the code and getting rid of old bugs, main focus is more speed and less cpu/mem usage

darkwolves 28-06-2019 19:08

Quote:

Originally Posted by FitGirl (Post 481400)
Don't expect good ratio, LZNA is the best compression algo in Oodle family.

yes i know this but some compression is better than no compression at all the way i see it

elit 05-07-2019 16:35

Quote:

Originally Posted by Razor12911 (Post 481427)
@everyone
I'm now focusing on the main code of XTool 2019, so now it's a good time to mention all the bugs the current xtool has so I can try to avoid as I write the new code from scratch and what new features would you like to be added in the upcoming release.

Perhaps 2 thing's left are lzss and nintendo's yaz0. Very important for some Jap games and especially console roms.
EDIT: also xcompress and endian versatility.

EDIT: Also codecs help is missing, for instance xtool can utilize same :m2, :high, etc. parameters for zlib like ztool does, but I wouldn't know if I was not familiar with ztool from the past.

amin fear 10-07-2019 04:02

Why ZTOOL needs "Visual C++ MSVC**.dll" files for unpacking archives ? is there any workaround for this limitation ?

But XTOOL is standalone & stable.

deepshit 12-07-2019 09:14

Quote:

Originally Posted by amin fear (Post 481722)
Why ZTOOL needs "Visual C++ MSVC**.dll" files for unpacking archives ? is there any workaround for this limitation ?

But XTOOL is standalone & stable.


Xtool needs VC++ 2010.

Razor12911 12-07-2019 15:49

no it doesn't, it's the libraries that come with precompressor that do

amin fear 13-07-2019 00:50

Quote:

Originally Posted by Razor12911 (Post 481777)
no it doesn't, it's the libraries that come with precompressor that do

This clarification is true , i have tested both XTOOL & ZTOOL on clean fresh operating systems & only ZTOOL needs Visual C++ 2010 & 2013 libs while compressing & decompressing

IgorKolesnik 15-07-2019 08:04

But can I somehow do this to put the folder to check xtool and the files in which the zlib... streams were hoped for example were displayed in a separate list?

elit 05-08-2019 14:30

3 Attachment(s)
Hi Razor, I apologize for not having enough time recently to participate despite my promises, but now I have something to share since I am repacking FFXIII series. Looks like ztool is still more reliable choice for now, at least when it comes to zlib. xtool is not detecting/inflating zlib-compressed file from FFXIII at all, it does inflate at deflate :m2 option but even then slightly less than ztool. Ztool on the other hand both zlib(:m1) and deflate(:m2) reliably inflate file, with :m2 even slightly more(but even :m1 inflate 5mb more than xtool :m2). Anyway, here goes screenshots:
Attachment 25148
Attachment 25149
Attachment 25150

This is with v0.12, I don't know if it was fixed already or not. Anyway hope it help & best regards, if I find more during repacks I will post.

EDIT: Noticed yet another xtool thread. Not sure why there are so many for same tool but whatever, so I tried that version with zlib and rzlib options and it does seem to be working. Although cmd command piping is broken in that version and so doesn't work with lzscan's stdio (aka: "cmd | xtool | cmd").

Razor12911 05-08-2019 15:11

Quote:

Originally Posted by elit (Post 481982)
EDIT: Noticed yet another xtool thread. Not sure why there are so many for same tool but whatever, so I tried that version with zlib and rzlib options and it does seem to be working. Although cmd command piping is broken in that version and so doesn't work with lzscan's stdio (aka: "cmd | xtool | cmd").

Hi, so does it work now? the New xtool I mean.

As for stdio, well I didn't change anything there so pipes should work because if that was the case then xtool should also not work for Freearc

elit 06-08-2019 06:30

2 Attachment(s)
Quote:

Originally Posted by Razor12911 (Post 481983)
Hi, so does it work now? the New xtool I mean.

As for stdio, well I didn't change anything there so pipes should work because if that was the case then xtool should also not work for Freearc

I can confirm the issue:
Attachment 25157
Attachment 25158
On second pic you can see commented(green) line - that was for xtool 0.12 and it would work. This is script from lz_scan which if you need as whole tool to check you can download on this site. On top of it, I can also confirm that unlike v0.12, v1908 will inflate if used on files directly. About 1mb less than ztool, but that's not a big deal now.

So yes, v1908 will inflate unlike v0.12 without needing deflate, but also broke pipes.

Razor12911 07-08-2019 16:05

you have to specify - - for stdio

I only see "xtool.exe precomp:zlib", should be "xtool.exe precomp:zlib - -"

elit 08-08-2019 03:33

Quote:

Originally Posted by Razor12911 (Post 482011)
you have to specify - - for stdio

I only see "xtool.exe precomp:zlib", should be "xtool.exe precomp:zlib - -"

Those " '|' (xtool) '|' " characters are pipes, that's how you pass data between programs and its is well known standard. Normally, you wouldn't never use '-'-' additionally in such case but I will try something like "cmd | xtool - - | cmd" later and let you know. Again v0.12 and ztool work fine like this.

elit 08-08-2019 10:33

Ok I can confirm that if I use "cmd | xtool precomp:zlib - - | cmd" then it work. Although '- -' should normally not be necessary in this type of syntax, at least it works. Thank you for a great tool.

Razor12911 08-08-2019 15:32

Quote:

Originally Posted by elit (Post 482018)
Those " '|' (xtool) '|' " characters are pipes, that's how you pass data between programs and its is well known standard. Normally, you wouldn't never use '-'-' additionally in such case but I will try something like "cmd | xtool - - | cmd" later and let you know. Again v0.12 and ztool work fine like this.

Dude, I know that "|" is for pipe, but - - is for stdio in terms of xtool

The usage for xtool goes like this

xtool command input output
"-" denotes stdin/stdout depending where you put it.

This is how I have written it

Code:

 
if ParamArg[2] = '-' then
    Output := THandleStream.Create(GetStdHandle(STD_OUTPUT_HANDLE))
  else
    Output := TFileStream.Create(ParamArg[2], fmCreate);

Quote:

Originally Posted by elit (Post 482024)
Ok I can confirm that if I use "cmd | xtool precomp:zlib - - | cmd" then it work. Although '- -' should normally not be necessary in this type of syntax, at least it works. Thank you for a great tool.

The reason I have added it as "-"

is because what if you can accept input as stdin then the next program requires an existing file
it then becomes something like this

xtool command - output

or if input is a file and output is required as stdout
it becomes
xtool command input -

if pipes are involved it means stdin and stdout takes place which is why it is
xtool command - -


All times are GMT -7. The time now is 15:11.

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