PDA

View Full Version : ZArc (Alternative of Freearc)


Razor12911
07-05-2016, 08:24
Seems like Freearc 0.70 ain't coming.

Working on this.

Progress: 5%

panker1992
07-05-2016, 11:18
Pipes work great, all i need to do is convince Zee to put some compression power on it.

Default will be the Store Method ...

Razor12911
15-05-2016, 08:30
Progress 10%

Managed to do stdin stdout (pipes) for 2 or more exe, it was awfully difficult but only left with optimising the code to break that 12 seconds on top of that, I'm not even checking file hash or anything like that, so yea, that gap is bad.

Anyways, here is a program that needs testing, haven't slept for almost 2 days working on this and other projects.

What needs testing here is simple, just use the method brute+srep+lzma and compare the file sizes of this and the ones from Freearc, if you're lazy to set up brute+srep+lzma then just run this on certain files and report back errors.

BTW, Splitting feature can be done but tricky. but once I'm able to split, then putting the file back will be easy. There will be no temps to merge the file back like I did with UltraARC. Gonna be difficult but hopefully not that difficult.

How to test?
Just put data.tar near ZArc.exe and run the exe, it will work and show summary, output will be placed in the same directory.

SAM2712
15-05-2016, 08:45
How to test on files ? I mean directory of files etc. What should I do :rolleyes:

Mini
15-05-2016, 08:52
Mad Max
game24.bin - 812mb

data.unp - 140mb (449s)

brute.exe it was replaced on MT version

Simorq
15-05-2016, 13:31
GTA V x64b.rpf

Brute: 143 MB > 308 MB
Srep: 308 MB > 204 MB
Lzma: 204 MB > 115 MB

Took: 187 seconds
Done

Bulat
18-05-2016, 04:10
why you are skipping delta+dispack?

Razor12911
18-05-2016, 04:36
I didn't skip it, it's optional to users.

ChronoCross
18-05-2016, 11:41
Hey! Look is Bulat.
Hi Bulat!

Amsal
19-05-2016, 04:20
why you are skipping delta+dispack?

Is you have any plans to update your FreeArc Project?

Razor12911
19-05-2016, 04:57
Is you have any plans to update your FreeArc Project?

You were already answered, check encode.

Razor12911
20-05-2016, 16:46
Test 2 uploaded

Added splitting feature test, just add files in input folder and run exe

AHMED SAMI
21-05-2016, 06:12
You are always really creative and I wish you always lasting success Razor12911

ChronoCross
21-05-2016, 18:31
work nice. i can't see the signature or header in the file.
this is correct?

Razor12911
14-06-2016, 12:35
What to test?

Well I added 2 test this time in 1

restoration test:

All you do is place a file, "INPUT.dat" then run ZArc, compression will start then afterwards decompression, you'll have 2 new files, OUTPUT.dat is the compressed file and RESTORED.dat is the unpacked file, to test if file was restored properly, just compare CRC for INPUT.dat and RESTORED.dat, if it the same then I'm on the right track.

splitting test:

All you do here is add files in input directory, if possible just use the same input you used in restoration test so that you can check if the size of the content in output direct is roughly the same, CRC must be the same because headers aren't really included in the splitting process if it isn't then shame, will have to look at the custom stream sources and do modifications.

What's remaining?

* No stdin and/or stdout compressor support (Currently busy with this)
* Add header information, date of files, CRC, file names, file sizes etc
* Make ZArc use ZArc.ini
* Command line version, drag and drop etc
* Restoration of splitted archives (Already have a strategy of how to complete this task)
* Add Groups/Masks
* Make GUI

@ChronoCross
Yep, correct. I haven't added headers yet.

Razor12911
18-06-2016, 13:24
Almost there, another test, no responses from previous test I guess everything is okay, anyways.

From this test, I managed to make archive splits restoration (wasn't easy making code for this and as of yet, it needs some tweaks for perfections)

What you must test is whether:
* The state of the input directory is the same as restore directory, I mean things like when the file was created, was the file hidden, read only, system file etc.
* Restoration is a success with CRC matching

What you must make sure:
* Make sure you don't have a 0 byte file in the directory, I haven't considered those files quite yet.
* Make sure you have more than 1 file in the directory. (Been getting errors if there is less than 2 files)

Take note:
The method used here is 4x4, just wanted to make test is as quick as possible.
Split size is set to 200MB

What to do to run test:
Put files in input folder
play with the input a little bit, hide some folders and files, play with dates and etc, also use Unicode characters on some of the files, e.g. Greek letters.
Run pack.exe then wait till it finishes
Check output directory to see the splits.
Run unpack.exe then wait till it finishes
Compare input folder with restore folder

Newbie
19-06-2016, 00:37
Here all went fine I guess.

One thing only, not sure does it matter though:

On the 1st pic as you can see, for D2game.dll Date modified is different in restore folder, though it is the same file without any change on it.

On the 2nd pic if my D2game.dll is set as read-only it will get new date, any file extension set as read-only will get new date, is that supposed to work like that, you will know more for sure. :)

I also have Itemdesc.dll set as hidden and date doesn't change.

I also tested with letters čćžđš and with θωερτψυιοπλκςηγφδσαζχξωβνμ and all worked fine.

https://s32.postimg.org/i7dowz6b9/image.jpg

https://s32.postimg.org/unf04gp11/image.jpg

For CRC I guess I can use winrar:

https://s31.postimg.org/r1h95rojv/image.jpg

Razor12911
19-06-2016, 17:21
Thanks, bug fixed, set date before setting attributes.

pla5ma
21-06-2016, 18:55
Thanks Razor for making these awesome programs, I did some tests as well and everything came back pretty much what Newbie posted. I tested lots of different extensions, unicode characters for the file name and file attributes (read-only and hidden). I used md5checker for the checksum and everything was identical to the input. One problem I found was if a file had the read-only attribute, it would always affect the date of the unpacked file no matter its extension; however that seems to be fixed now. Another problem is some of the dates of the restored files are changed (specifically 1 hour back, e.g. if the file was 10:00am to start with, it was 9:00am when unpacked). I did a test on 24 different exe files and 13 of them had their dates changed, it didn't matter if the file was hidden or not. Also I did a test on 3,485 files and only 491 of them got extracted, I did another test with the same files but with only 2,395 and only 320 of them got extracted. Out of the extracted files; some of the files had their dates changed like usual (1 hour back). If you want I could test the same files with the bug you just fixed if the dates still change, otherwise that's all the problems I found; please let me know if you need any screenshots!

Razor12911
22-06-2016, 22:29
Thanks guys, Will post another test after some fixes from the reports you provided.

Lucas65
23-06-2016, 10:41
As always, many thanksė Razor!
I tried adding some folders at random taken in System32 and is all ok but when I added the folder Roaming in input and started after unpack.exe in restore folder missing about 200 files approximately.
This only happened when I added the folder Roaming.

pla5ma
24-06-2016, 03:59
Update: Hey Razor, I decided to look deeper and figure out why ZArc was not extracting all the files. I found that there was three files that the system considered were 0 bytes in size and after removing them, ZArc successfully unpacked all the files. So it seems likes when ZArc encounters a file that is 0 bytes in size, it stops and doesn't compress files after it; e.g. file1: 1mb, file2: 500kb, file3: 0b, file4: 10mb (it will compress up to file2 and stop, so file3 and anything after it will not be in the archive). Also I decided to group the 3,485 files and compress by extension, it took a while but I think it was worth it because I found another problem. These extensions (.bin, .ini, .url, .ksh, .txt, .vdf, .xml) compressed successfully but got an error on decompression "EReadError: Stream read error". I thought to myself how can ZArc unpack all 3,485 files at once which include those extensions but not unpack the extensions individually. I'm not sure how I stumbled upon it but I started to look at the size of the archive, I noticed that ZArc could unpack an archive the size of 100kb but not 20kb. So I started to narrow the margin, I finally ended up with ZArc being able to unpack 64.2kb or higher but not 64kb or lower. I have no idea how I found that problem, but it was not the extensions that were the problem but rather the size of the archive. This applies to any extension, ZArc will not unpack if the size of the archive is 64kb or lower; otherwise you will get this error while trying to unpack "EReadError: Stream read error". Hopefully this helps Razor when trying to fix these problems! tell me if you need any additional information.

Razor12911
24-06-2016, 06:49
Update: Hey Razor, I decided to look deeper and figure out why ZArc was not extracting all the files. I found that there was three files that the system considered were 0 bytes in size and after removing them, ZArc successfully unpacked all the files. So it seems likes when ZArc encounters a file that is 0 bytes in size, it stops and doesn't compress files after it; e.g. file1: 1mb, file2: 500kb, file3: 0b, file4: 10mb (it will compress up to file2 and stop, so file3 and anything after it will not be in the archive). Also I decided to group the 3,485 files and compress by extension, it took a while but I think it was worth it because I found another problem. These extensions (.bin, .ini, .url, .ksh, .txt, .vdf, .xml) compressed successfully but got an error on decompression "EReadError: Stream read error". I thought to myself how can ZArc unpack all 3,485 files at once which include those extensions but not unpack the extensions individually. I'm not sure how I stumbled upon it but I started to look at the size of the archive, I noticed that ZArc could unpack an archive the size of 100kb but not 20kb. So I started to narrow the margin, I finally ended up with ZArc being able to unpack 64.2kb or higher but not 64kb or lower. I have no idea how I found that problem, but it was not the extensions that were the problem but rather the size of the archive. This applies to any extension, ZArc will not unpack if the size of the archive is 64kb or lower; otherwise you will get this error while trying to unpack "EReadError: Stream read error". Hopefully this helps Razor when trying to fix these problems! tell me if you need any additional information.
Thanks, will post another test using the info you have provided

zealot10
25-06-2016, 10:00
Thanks, will post another test using the info you have provided

can i ask a question, razor12911 what compression does corepack repack use until so low compression compare from others group?

Razor12911
26-06-2016, 10:08
Tried to fix some bugs and preparing for SFX (Self extractor) function for split and non-splitted archives.

The preparation of this means the first archive size differs from the rest, in this case, first split must be 195MB (Imaginary SFX is 5mb) and the rest is 200MB.

No compression is applied, testing store method which is the default method which comes with ZArc, otherwise things like srep, lzma are things which you can add by yourself because of copyright.

The other reason this is store compression is split archives are a headache (bugs everytime I use other compressors), I have to prepare something before everything works.

Progress: 65%

Things left to do:
Fix split archive bugs
Solid block feature
Add non stdin and/or stdout support
Make ZArc show progress
Command line version
GUI version

RamiroCruzo
26-06-2016, 11:00
Nice work hermano...Tried about 20 different types of stuff.. Also, it shows error with a virus that I created :p (Virus= Size on Disk is 2 KB but when any program reads it, its 50+ GB).

Here's, one the All Okie screenshots:

Razor12911
26-06-2016, 17:31
Benchmark results between ZArc and Freearc

Ran test 5 times to compare duration between Freearc and ZArc again, before ZArc was ****** slow, so did a couple of changes and came back with these.

These tests are very much unreliable because they ran on HDD rather than RAMDisk, however, I tried to run a different test on RAMDisk and freearc kept failing over and over again, "Freearc has stopped working" error messages so HDD results are the only things I have.

Method is kept constant srep+lzma. First ran Freearc, meaning the first three tests are going to be bad, then I ran ZArc, 3 times as well, then 2 times for ZArc then ended with Freearc, just to keep results a bit fair.

Amsal
26-06-2016, 19:55
Benchmark results between ZArc and Freearc

Ran test 5 times to compare duration between Freearc and ZArc again, before ZArc was ****** slow, so did a couple of changes and came back with these.

These tests are very much unreliable because they ran on HDD rather than RAMDisk, however, I tried to run a different test on RAMDisk and freearc kept failing over and over again, "Freearc has stopped working" error messages so HDD results are the only things I have.

Method is kept constant srep+lzma. First ran Freearc, meaning the first three tests are going to be bad, then I ran ZArc, 3 times as well, then 2 times for ZArc then ended with Freearc, just to keep results a bit fair.

Awesome work bro!!!!!

Razor12911
01-11-2016, 09:20
Another test, you can just test this on something that has many files. For example, Quantum Break.

It doesn't decompress just yet, have been busy, couldn't write code just yet for that.

pakrat2k2
01-11-2016, 12:42
thanks perfect for Quantum Break ! 600,000 files NO that's correct, so will test this & report back.

unarc 125
09-12-2016, 11:42
What's the progress of zarc?
Any updates

Razor12911
09-12-2016, 11:51
am currently busy with solid blocks, should have been done with this a long time ago, was busy with personal matters, not really personal matter per se, am so lazy to code. Already added disk spanning with disk request dialogs. Right now, am still lazy, sitting on my arse watching the grand tour.

unarc 125
09-12-2016, 12:00
am currently busy with solid blocks, should have been done with this a long time ago, was busy with personal matters, not really personal matter per se, am so lazy to code. Already added disk spanning with disk request dialogs. Right now, am still lazy, sitting on my arse watching the grand tour.
Watching grand tour hmm drink redbull you should get wings ;)

Razor12911
09-12-2016, 12:34
A couple of screenshots.

Razor12911
26-01-2017, 20:41
Test 6:40 AM 1/27/2017

felice2011
27-01-2017, 03:09
Razor give us more information on the topics and options relating to the use....

data input : 236mb

Line : ZArc a -r -fv36m -v100m -msrep+lzma "C:\DataTest" -o data.arc

(EAggregateException: One or more errors occurred) ?????

In Out :

data.arc.001 .... 36.864KB

data.arc.002 .... 102.400KB

data.arc.003 .... 12.804KB

What criteria get this division of archives, input data division and then compress, or creating the temporary file input, compression and division into parts as option configuration "-fv36m -v100m".....I think it was logical the second, but the result approaching more to the first.

Razor12911
27-01-2017, 05:28
Razor give us more information on the topics and options relating to the use....
Program is still in the shed being worked on plus there really wouldn't be a point in disclosing options because decompression doesn't work yet.

(EAggregateException: One or more errors occurred)
Have seen this error before, caused by... don't know what causes it really but will solve problem.

What criteria get this division of archives, input data division and then compress, or creating the temporary file input, compression and division into parts as option configuration "-fv36m -v100m".....I think it was logical the second, but the result approaching more to the first.
Well it's just the same as Freearc except when writing to final archive, ZArc choses to split data, meaning when decompressing, there are no temps created to combine archive into one part, it will decompress just like 7-Zip and other programs that have disk spanning, it will just request for more disks when they are missing. The idea of UltraARC is not what is used here. And input is not divided either.

felice2011
27-01-2017, 05:56
My idea is a personal project that I never published is another, Arc is not able to divide an archive, the basic concept that we all know, or nearly so, is to divide the input folder and then compress the parties as archive.
Arc during compression followed by a method therefore with different compressors, creates a temporary file "$$arcdatafile$$.tmp" which is the input data to be compressed, the second step is created a second temporary file "$$arcpackedfile$$.tmp" that creates the archive size, and it is this second file that should be divided into equal parts and in exact size, previously set, in order to create a set of split archives.

Simorq
27-01-2017, 05:56
Win 10 Pro x64
http://uupload.ir/files/cs53_2017-01-27_172418.jpg

Razor12911
27-01-2017, 06:34
My idea is a personal project that I never published is another, Arc is not able to divide an archive, the basic concept that we all know, or nearly so, is to divide the input folder and then compress the parties as archive.
Arc during compression followed by a method therefore with different compressors, creates a temporary file "$$arcdatafile$$.tmp" which is the input data to be compressed, the second step is created a second temporary file "$$arcpackedfile$$.tmp" that creates the archive size, and it is this second file that should be divided into equal parts and in exact size, previously set, in order to create a set of split archives.

Well splitting input doesn't work very well with final ratio, which is why I ditched that idea.

Nizar3003
28-01-2017, 07:40
wow, we wait :D
Thanks...

ImmortalArc
18-02-2017, 03:24
Freearc I don't think coming soon when zarc coming ??

rinaldo
18-02-2017, 05:43
felice2011]
arc and isdone have remained the same for years (too bad that bulat and Prof, you are stews of their toys)

Viper645
23-02-2017, 09:22
ZArc, a new compressor is on the way, replacing freearc, which is too much old these days. Waiting for the release

rinaldo
23-02-2017, 09:36
FreeArc easy to replace, just a coder profrager face up to a new isdone and a new compressor as FreeArc but best of FreeArc (doubts) :rolleyes:
I believe no one is worthy of profrager for these things :)

Viper645
03-03-2017, 01:33
can i ask a question, razor12911 what compression does corepack repack use until so low compression compare from others group?

They rips some files from the original games and by doing this, sometimes they messes up the games. Corepack loves ripping

EzzEldin16
03-03-2017, 08:43
you know what if CODEX or CPY or else cared about compression the repackers would retire from now on

COPyCAT
06-03-2017, 20:43
They rips some files from the original games and by doing this, sometimes they messes up the games. Corepack loves ripping

I doubt that. CorePack doesn't ripping game content, sometime strong/overdue compression setting do the fail. DXT (texture compression level). Restoration to closest 100% is the Major Problem
I personally never used "MSC" for compression, only Precomp(brute/intense) and Srep most of the time. (sometime reflate, using batch, not preferable, take a lot of time[a lot of small files])
I Salute [CorePack] team
Thanks A Lot to [Razor12911] for the time forging the compressor in this forum.

Viper645
08-03-2017, 00:00
I doubt that. CorePack doesn't ripping game content, sometime strong/overdue compression setting do the fail. DXT (texture compression level). Restoration to closest 100% is the Major Problem
I personally never used "MSC" for compression, only Precomp(brute/intense) and Srep most of the time. (sometime reflate, using batch, not preferable, take a lot of time[a lot of small files])
I Salute [CorePack] team
Thanks A Lot to [Razor12911] for the time forging the compressor in this forum.

Do you remember GTA V 27.7gb repack?
Or Batman Arkham City?
:p

Viper645
08-03-2017, 00:06
you know what if CODEX or CPY or else cared about compression the repackers would retire from now on

Ha ha ha, so true

78372
29-04-2017, 10:00
Any progress about ZArc or this project will also be ignored because of the hdd? :(

Jiva newstone
30-04-2017, 04:04
i have questions , how to make arc.ini in build with inno like if readini in archive string

JRD!
30-04-2017, 04:24
I invite you to formulate your question on one of the appropriate threads:
FAQs: Inno setup (http://fileforums.com/showthread.php?t=98971)
INNO TROUBLESHOOT - Questions Here (http://fileforums.com/showthread.php?t=93193)

unarc 125
16-06-2017, 07:28
Any updates Razor ?

Razor12911
16-06-2017, 16:35
Just finished my exams 3 days ago, and there still more to do till July so, ZArc still postponed.

Razor12911
26-06-2017, 06:22
Project to be resumed beginning of July.

Sergey3695
30-01-2021, 07:42
:)
2021

Razor12911
30-01-2021, 11:21
I think I do remember mentioning somewhere in the forum that my hard drive died and I had lost all my source codes :D

PsYcHo_RaGE
01-02-2021, 02:17
I think I do remember mentioning somewhere in the forum that my hard drive died and I had lost all my source codes :D

So, RIP? :rolleyes:

Razor12911
03-02-2021, 13:10
Well not necessarily, I could make it but what's the point. It will be hard to convince people to switch over to this instead of Freearc. An example is when I made DiskSpan, took a while for people on the forum to transition over from UltraARC (Heck even this program is still used to this day so... :D)

Ele
03-02-2021, 22:57
Well not necessarily, I could make it but what's the point. It will be hard to convince people to switch over to this instead of Freearc. An example is when I made DiskSpan, took a while for people on the forum to transition over from UltraARC (Heck even this program is still used to this day so... :D)

No Razor, there's a point. People expect some features but Freearc v0.67 doesn't have them.

And convincing people won't be so difficult if you can provide all the solutions with ZArc. :) Example:

FreeArc --> ISDone.dll
ZArc --> ISZArcDone.dll or any of your smart idea

PsYcHo_RaGE
04-02-2021, 03:04
Well not necessarily, I could make it but what's the point. It will be hard to convince people to switch over to this instead of Freearc. An example is when I made DiskSpan, took a while for people on the forum to transition over from UltraARC (Heck even this program is still used to this day so... :D)

Well, if it will do better than FreeArc, then why not?

Cesar82
04-02-2021, 10:40
They revived the topic.
The project was lost, but due to the description, it was just beginning.
It would be worse if you lost when you were 90% or more.

It would be a great program, but I should follow FreeArc a bit in the way we are used to Arc.ini, etc.
It should also have an interface to make it possible to open the files and view the content and make it possible to check the information of the method used, as in FreeArc.
Instead of having ISDone.dll and UnArc.dll, you could have just one library that would do all the work and allow a request disk callback in the script to allow the user to create their own structure to search for the next disk.