PDA

View Full Version : Universal CLS for Precomp


Razor12911
31-05-2016, 02:05
Here's an attempt of making CLS precomp for newer precomp versions, not as good as the one done by ProFrager but at least shows progress.

Precomp versions supported:
All (0.38-0.46)

Brute method is not supported, only intense method is available.

only cls-precomp.dll and your precomp.exe are needed for both compression and decompression else if cls is not present during compression and you added arc.ini and you use this cls, decompression will ALWAYS fail.

Injection not necessary

Drawbacks: :p
Using this cls may inflict on final size than when you use precomp without it, the bright side is it shows progress during installation for any newer precomp versions.
Games like DiRT Rally are the ones most likely to inflict a lot on final size because the game is filled with massive zlib streams.
Otherwise for the drawback, if it bad news to you, you could rely on the version done by ProFrager.
Another drawback is temp directory is created for precomp to work on.
If the compressors used other than precomp take long to decompress, percentage will look stuck sometimes, also depends on how big the inflated size was after precomp.

I did this in about an hour and only ran 2 successful tests so if there are any bugs, please report back.

Tested using Precomp 0.45 both x86 and x64.

Enjoy

Razor12911
01-06-2016, 04:37
Final update avaliable

Changes

-Added support for older precomp versions [0.38-0.42]
-Overall precomp versions supported: 0.38, 0.40, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46...
-If anything older than 0.38 had the same command line as 0.38 itself then it is also supported. e.g. 0.37
-If anything newer than 0.46 will have the same command line as 0.46, then it will also be supported. e.g. 0.47
-Added architecture detection, for newer precomp versions, they come with x86 and x64 so making a separate method for cls-precomp64 is not necessary, just put both precomp.exe and precomp64.exe maintaining only one cls which is cls-precomp.dll, if system is x64, it will use precomp64.exe (if present else it will use precomp.exe) and if system is x86, it will just use precomp.exe and not use precomp64.exe at all. BTW, don't worry, it doesn't matter if you used precomp64 and decompress with precomp or visa versa, it will still work.
-Precomp version package included, check encode.ru or github for more updates.

Moderator
-Can you please change the title of the thread to Universal CLS for Precomp

rinaldo
01-06-2016, 05:18
Good

Amsal
01-06-2016, 19:39
Best ever project bro, all in one CLS great, continue your awesome work!!

Lucas65
04-06-2016, 10:09
Very thanks Razor.

Simorq
18-08-2016, 07:36
Thanks Razor
ISDone Error (precomp045)
http://s2.picofile.com/file/8264250734/2016_08_18_19_01_46.jpg

Razor12911
18-08-2016, 10:05
that's not an error from the cls. error from incompatible arc.exe and unarc.dll used.

Prince4
18-08-2016, 23:25
Nice speed and Compatibility!
Edit :
Works good on -- Windows 10 Pro, Intel Celeron 1.8 Ghz, Ram 6 Gigs
:)

COPyCAT
30-08-2016, 23:15
Thanks A Lot Razor12911 for your time making this "CLS-Precomp.dll"

Can I use this CLS-Precomp.dll along side with [black box] inno setup installer?
[Black Box] inno setup from Razor12911

1234567890123
31-08-2016, 01:47
Thanks A Lot Razor12911 for your time making this "CLS-Precomp.dll"

Can I use this CLS-Precomp.dll along side with [black box] inno setup installer?
[Black Box] inno setup from Razor12911

why not? there is one of blackbox script with cls-precomp in masked compression subject already

LuzhinE
26-10-2016, 06:09
Thanks Razor

AHMED SAMI
26-10-2016, 17:51
Thanks Razor Working Fine

dixen
13-01-2017, 10:47
that's not an error from the cls. error from incompatible arc.exe and unarc.dll used.

Some error(( How fix it?

pakrat2k2
13-01-2017, 13:24
Some error(( How fix it?

error from incompatible arc.exe and unarc.dll used, that tells you which files you need to update your versions.

read thru this index to find what you need

http://www.fileforums.com/showthread.php?t=96782

Alloc
14-11-2017, 05:11
i get an error then i use -hp12345 option
unarc.dll - Wrong password

without it everything works fine

Razor12911
14-11-2017, 05:52
You have to set password in script.
It's not a cls bug.

mixtro
01-10-2019, 05:43
Can you add support for Precomp047 and 048 released by pakrat?

Grumpy
01-10-2019, 07:02
Can you add support for Precomp047 and 048 released by pakrat?

oooh that 'pakrat' is a clever fellow .. we all already knew that ... but might want to check who 'Christian Schneider' is. :D :p ;)

mixtro
01-10-2019, 07:53
oooh that 'pakrat' is a clever fellow .. we all already knew that ... but might want to check who 'Christian Schneider' is. :D :p ;)

Woops, meant to say panker1992 since he compiled 048 and posted here.

felice2011
01-10-2019, 08:03
Woops, meant to say panker1992 since he compiled 048 and posted here.

oooh that 'panker1992' is a clever fellow and is also a very good coder .. we all already knew that ... but might want to check who 'Christian Schneider' is:p;):D

P.S: sorry has been stronger of me, had to re-quote.:o

panker1992
03-10-2019, 11:14
Highly optimal precomp.

check the speed on this thing

Mr.Weegley
21-12-2019, 13:50
Tried this cls-precomp.dll and found next:
1. No output from precomp when packing if using dll.
2. Precomp options ignored. Only used those set from dll.
3. Because of 1 it's impossible to see why precomp stopped working :(
4. It sets temp folder near arc.exe, so it's necessary to run pack from SSD. Otherwise it wil take loooooong to pack.
5. Tried packing 15gb game - precomp 0.4.6 fails. Can't debug because 1.
6. Christian Schneider's 0.4.7 fails not even starting to work.
Did anybody managed to use this for packing big games? May be some example .bat and arc.ini?
pack cmd:
arc.exe a -ep1 -dses --dirs -s; -lc10g -ld1024 -di -i2 -r -m_precomp %data%_precomp.bin %source%
arc.ini:
[External compressor:precomp]
header = 0
packcmd = precomp -intense -cn {options} -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = precomp -o$$arcdatafile$$.tmp -r $$arcpackedfile$$.tmp


[Compression methods]
_precomp_text = precomp+rep:1gb:a99+exe+delta+tempfile+mm+lzma:ult ra:512m:a2:fb1024:mc65536:lc8:lp4:pb4/$text=dict:128mb:80%:l8192:m400:s100+lzp:160mb:92% :145:h23:d1mb+ppmd:16:384mb
_precomp = precomp+rep:1gb:a99+exe+delta+tempfile+mm+lzma:ult ra:512m:a2:fb1024:mc65536:lc8:lp4:pb4
But with dll precomp runs with -intense0 -cn- and works in the folder mentioned in 4.

Simorq
02-01-2020, 16:40
@Mr.Weegley
Use PMT (https://fileforums.com/showpost.php?p=483945&postcount=1)

github
05-02-2021, 18:50
This optiomized 0.48 is the fatest one on my machine (ryzen 3700x),
it stripped out some output information (like help menu)

https://www.mediafire.com/file/wq55ft3lmu3122a/precomp048.rar/file

The next in speed is the 0.47 compiled with clang/LLVM
https://www.mediafire.com/file/96zouxrf94k8zls/precomp047cl90.rar/file

and for some reason the one found in #21 is even slower than 0.46/0.47

maybe it's processor/ram speed or the testing data related