FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   CLS-DiskSpan (UltraARC replacement) (https://fileforums.com/showthread.php?t=99627)

Razor12911 16-10-2017 11:10

CLS-DiskSpan (UltraARC replacement)
 
2 Attachment(s)
CLS-DiskSpan

The freearc plugin allows Freearc splited archives, perfect for multi disk unpacking processes (Conversions etc.) also serves as a replacement for UltraARC.

CLS-DiskSpan unlike UltraARC which merged archives back in order for unpacking to be possible does not merge archives meaning less IO meaning more speed and better size output.

The method diskspan should come after all methods you would have used for compression.
e.g.
pzlib:t4+srep:m3f:lzma:ultra+diskspan:4.35gb:4.36g b

The disk span method comes with two parameters. The first parameter is for first volume size, the second one is for all volumes apart from the first.
e.g. diskspan:390mb:400mb, 390mb in this case is the first volume size then the rest of the volumes will be 400mb

For conversions:

CLS-DiskSpan comes with two parameters that can be executed directly from Freearc if cls is used.

"--sort" and "--makeiso"

--sort simply moves the created archives in their converted disk folders readying them for burning to disc, it automatically creates autorun.inf and places setup icons and etc.
--makeiso just creates disc images from the sorted folders with the use of "oscdimg.exe" which should be placed in the same folder as Freearc.

Known issues:

Theoretically CLS-DiskSpan should NOT work with file extension grouping (masks)
The archive should be fully solid for CLS-DiskSpan to work.
OpenDialog or random errors that occur in Inno Setup are due to long directory paths

With regards to this

Well I've deleted all my sources because of some s*** that happened a few days ago and only kept cls-diskspan because I wanted you guys to have this as a follow-up to UltraARC, also uploaded source as you can see for future development as I'm no longer coding as its a s*** job.

Razor12911 16-10-2017 11:35

For CI/CIU or WPI or any ISDone script implementation follow these simple instructions:

Get the original script, preferably without UltraARC.
Simply add cls-diskspan.dll in [Files] and make sure you extracttemporaryfile
Add one archive to be extracted with the name data.bin.001
Example from WPI:
Code:

[Archives]
;Precomp 0.38, 0.40, 0.41 and 0.42
;Archive Types 7Zip, Freearc and WinRAR
PrecompVer=0.38
Archive1Type=Freearc
Archive1Source={src}\data.bin.001
Archive1Output={app}
Archive1Disk=1
Archive1Password=

Done

KaktoR 16-10-2017 11:38

Thank you, will implement it in CIU in the next days.

Oh, and glad you are back (?) :)

PS: Can i also use your batch file for template CIU conversion script?

Razor12911 16-10-2017 11:44

Go on, do as you please :). It's just a text file anyways :D

KaktoR 16-10-2017 12:01

I mean the one you use for your conversions :)

Thank you.

Razor12911 16-10-2017 12:07

CLS_DISKSPAN_R1.7z\_examples\_conversion_example\D RAG_FOLDER_HERE.bat
it's the same is it not?

KaktoR 16-10-2017 12:08

Ah yes lol.

Only saw pack.bat :D

Simorq 16-10-2017 12:43

Conversion Tool
 
2 Attachment(s)
Thanks Razor12911

ZTool (0.0.19.8)
pZLib3 (3.0.1.0)
PrecompMT (0.46 ALPHA)
SuperREP (3.92)
ZStandard (1.3.2)
RAZOR Archiver (1.0.1)
XZ LZMA2 (17.1.0)
FreeArc Compression (FAZip 0.3)

DiskSpan Simple Installer v2 + TaskKill:D
http://s9.picofile.com/file/83092641...staller_v2.png

felice2011 16-10-2017 14:02

Great work, it always remains the problem that if a file is larger than the file size as is set inside the data folder, the file is not split as is set, but is only compressed in a single archive.
Also, the ability to obtain the output archives as: "Data1.bin, Data2.bin, Data3.bin" and not "Data.bin.001, Data.bin.002, Data.bin.003".

P.S:Thank you for coming back, do me a favor to a friend, remove that "Retired" and just leave "Coder"....;)

Razor12911 16-10-2017 15:07

Quote:

Originally Posted by felice2011 (Post 463207)
Great work, it always remains the problem that if a file is larger than the file size as is set inside the data folder, the file is not split as is set, but is only compressed in a single archive.

Make sure you don't use masks and block is set to solid.

Quote:

Also, the ability to obtain the output archives as: "Data1.bin, Data2.bin, Data3.bin" and not "Data.bin.001, Data.bin.002, Data.bin.003".
There is source.

Quote:

P.S:Thank you for coming back, do me a favor to a friend, remove that "Retired" and just leave "Coder"....;)
:confused:

78372 16-10-2017 19:20

Thanks for your last project friend, vultures will be happy seeing this. We will miss you man :(

KaktoR 16-10-2017 21:23

1 Attachment(s)
Quote:

Originally Posted by Razor12911 (Post 463208)
:confused:

Fixed.

Razor12911 16-10-2017 21:28

:) thanks but I think everyone just jumped for the download button and not read.

Quote:

Originally Posted by Razor12911 (Post 463197)
With regards to this

Well I've deleted all my sources because of some s*** that happened a few days ago and only kept cls-diskspan because I wanted you guys to have this as a follow-up to UltraARC, also uploaded source as you can see for future development as I'm no longer coding as its a s*** job.


KaktoR 16-10-2017 21:40

I had read it, and i think the majority of other peopple do the same.

ImmortalArc 17-10-2017 00:48

Thanks razor for accepting my request :)
Bad things happened and you still supporting and giving your works to fileforums.
The hunger never ends man but asc is somewhat really needed man please help to that razor.
Asc is really missed any unreleased version ? Or update will be highly extremely respected.
Asc needed :(

danswano 18-10-2017 00:23

3 Attachment(s)
Thank you razor for this amazing cls, i've been waiting for it for a very long time and you are very welcomed back.
When i use the browse feature i get those errors but when i insert the disk normally i get no error, any idea why i'm getting these error only when i use browse?
the installer finish properly in both cases.
The errors happens right after i hit finish.
Thanks.

Another problem:
how to extract another single arc archive after the split extraction is done? the installer is just skipping it and finish.
Code:

    begin
      WizardForm.ProgressGauge.Position := 0;
      Wizardform.ProgressGauge.Max := 1000;
      ClsSourcePath(ExpandConstant('{src}'));
      ClsDiskRequest(@MyDiskRequest);
      if not ISArcExtract(0, 90, ExpandConstant('{src}\data.bin.001'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
      if not ISArcExtract(0, 10, ExpandConstant('{src}\singlearchive.arc'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
        ISDoneError := True;
    end;
    ISDoneStop;
  end;
  if ISDoneError = True then
    WizardForm.CancelButton.OnClick(nil);
end;;

Note: i can extract each file alone but not together using the same above code for each.

Simorq 23-10-2017 16:23

Quote:

Originally Posted by danswano (Post 463236)
Thank you razor for this amazing cls, i've been waiting for it for a very long time and you are very welcomed back.
When i use the browse feature i get those errors but when i insert the disk normally i get no error, any idea why i'm getting these error only when i use browse?
the installer finish properly in both cases.
The errors happens right after i hit finish.
Thanks.

Another problem:
how to extract another single arc archive after the split extraction is done? the installer is just skipping it and finish.
Code:

    begin
      WizardForm.ProgressGauge.Position := 0;
      Wizardform.ProgressGauge.Max := 1000;
      ClsSourcePath(ExpandConstant('{src}'));
      ClsDiskRequest(@MyDiskRequest);
      if not ISArcExtract(0, 90, ExpandConstant('{src}\data.bin.001'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
      if not ISArcExtract(0, 10, ExpandConstant('{src}\singlearchive.arc'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
        ISDoneError := True;
    end;
    ISDoneStop;
  end;
  if ISDoneError = True then
    WizardForm.CancelButton.OnClick(nil);
end;;

Note: i can extract each file alone but not together using the same above code for each.


I found a solution to this problem:rolleyes:

If ClsDiskRequest (@MyDiskRequest); Disabled will not be a problem during installation.

danswano 23-10-2017 21:45

Quote:

Originally Posted by Simorq (Post 463386)
I found a solution to this problem:rolleyes:

If ClsDiskRequest (@MyDiskRequest); Disabled will not be a problem during installation.

What problem of them the first or the second?
And what you mean by disabled? you mean remove the whole function line?

Simorq 25-10-2017 09:03

Thanks Razor12911

This project has been completed 99.9.

Mass Effect Andromeda EN 10xDVD5:D
Method: srep+lzma2:d200m:fb273:lc4:mc1000000:lp0: pb2+diskspan:4096mb:4300mb

Simorq 26-10-2017 09:04

http://www.upsara.com/images/8v6a_2017-10-26_193004.png

Tekken 7 9xDVD5 srep+lzma:a1:mfbt4:d256m:fb273:mc1000000000:lc8+di skspan:1024mb:1050mb

Razor12911 26-10-2017 09:28

To avoid errors, you can simply
put two forward slashes before "ClsDiskRequest(@MyDiskRequest);"
// ClsDiskRequest(@MyDiskRequest);
although you will lose the ability to browse for archives if they are in a different folder.

Simorq 26-10-2017 09:31

Quote:

Originally Posted by Razor12911 (Post 463515)
To avoid errors, you can simply
put two forward slashes before "ClsDiskRequest(@MyDiskRequest);"
// ClsDiskRequest(@MyDiskRequest);
although you will lose the ability to browse for archives if they are in a different folder.

Anyway, even if ClsDiskRequest is enabled
In the optical drive "browse for archives" does not work.

Simorq 27-10-2017 11:07

Husk (2xDVD5) (8.66GB) (pzlib+srep+lzma:diskspan:4470mb:4480mb)

danswano 28-10-2017 11:31

Thanks razor, any idea or tip about the other problem?
Another problem:
how to extract another single arc archive after the split extraction is done? the installer is just skipping it and finish.
Code:

    begin
      WizardForm.ProgressGauge.Position := 0;
      Wizardform.ProgressGauge.Max := 1000;
      ClsSourcePath(ExpandConstant('{src}'));
      ClsDiskRequest(@MyDiskRequest);
      if not ISArcExtract(0, 90, ExpandConstant('{src}\data.bin.001'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
      if not ISArcExtract(0, 10, ExpandConstant('{src}\singlearchive.arc'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
        ISDoneError := True;
    end;
    ISDoneStop;
  end;
  if ISDoneError = True then
    WizardForm.CancelButton.OnClick(nil);
end;;

Note: i can extract each file alone but not together using the same above code for each.[/QUOTE]

Simorq 06-11-2017 08:23

Please help Razor12911.
I do all my game conversion CLS-DiskSpan and there is no problem.
Is there a way to fix the "browse for archives" problem?

KaktoR 06-11-2017 08:34

What is this problem exactly?

pakrat2k2 06-11-2017 08:59

^^ post #21 ??

Simorq 06-11-2017 10:19

Quote:

Originally Posted by kaktor (Post 463833)
what is this problem exactly?

#16

Razor12911 06-11-2017 10:45

Will post solution in a few hours. I think the issue is not cls related therefore only changes will be in iss.

Simorq 06-11-2017 11:04

Thanks Razor12911
CLS-DiskSpan is a great tool.

Razor12911 07-11-2017 18:58

1 Attachment(s)
R2 uploaded

Changes

-Removed custom open dialog ability
-Added default open dialog

Notes

-Seems like source had to be changed a bit for this, good thing I uploaded source here because I no longer had it.
-Ran 2 tests and no bugs so I guess bug is fixed.
-Data not affected, just replace cls and add functions to iss to fix old cls bugs.

danswano 07-11-2017 22:53

Thanks razor but can you help me with my second issue?
i want to be able to extract another single arc archive after the split archive extraction is done, the installer is skipping it.

Simorq 08-11-2017 03:51

Thanks Razor12911
Works well.:D

KaktoR 08-11-2017 06:23

^Could you share compiled source?

78372 08-11-2017 07:00

Quote:

Originally Posted by KaktoR (Post 463910)
^Could you share compiled source?

Can you see first post? :confused:

KaktoR 08-11-2017 07:33

Sorry bro, i have just to open my eyes :D

Razor12911 08-11-2017 08:23

Quote:

Originally Posted by danswano (Post 463903)
Thanks razor but can you help me with my second issue?
i want to be able to extract another single arc archive after the split archive extraction is done, the installer is skipping it.

Upload iss and compressor

danswano 08-11-2017 12:15

Quote:

Originally Posted by Razor12911 (Post 463915)
Upload iss and compressor

PM sent, thank you very much.

Razor12911 08-11-2017 14:21

Code:

procedure ISDone_Unpack;
begin                                                 
  ISDone_Resources;
  ISDoneError:=false;
  if ISDoneInit(ExpandConstant('{tmp}\records.inf'), $F777, 0,0,0, MainForm.Handle, 512, @ProgressCallback) then
  begin
    ChangeLanguage('English');
    if SrepInit(AddBackSlash(ExpandConstant('{app}')),512 ,0) and PrecompInit('',128, 0) and FileSearchInit(true) then
    begin
      WizardForm.ProgressGauge.Position := 0;
      Wizardform.ProgressGauge.Max := 1000;
      ClsSourcePath(ExpandConstant('{src}'));
      ClsDiskRequest(@MyDiskRequest);
      if not ISArcExtract(0, 90, ExpandConstant('{src}\data.001'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
      //here dear razor
      if not ISArcExtract(0, 10, ExpandConstant('{src}\data.arc'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
        ISDoneError := True;
    end;
    ISDoneStop;
  end;
  if ISDoneError = True then
    WizardForm.CancelButton.OnClick(nil);
end;

this part here:

Code:

      if not ISArcExtract(0, 90, ExpandConstant('{src}\data.001'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
      //here dear razor
      if not ISArcExtract(0, 10, ExpandConstant('{src}\data.arc'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
        ISDoneError := True;

to properly write it, it's something like
Code:

if not ISArcExtract(0, 90, ExpandConstant('{src}\data.001'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
  if not ISArcExtract(0, 10, ExpandConstant('{src}\data.arc'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
    ISDoneError := True;

means if unpacking data.001 and if unpacking fails then unpack data.arc but if data.001 gets unpacked successfully, then don't unpack data.arc, not CLS-diskspan bug but your coding mistakes


you forgot to add ISDoneError := True for data.001, so to fix it, it has to be

Code:

procedure ISDone_Unpack;
begin                                                 
  ISDone_Resources;
  ISDoneError:=false;
  if ISDoneInit(ExpandConstant('{tmp}\records.inf'), $F777, 0,0,0, MainForm.Handle, 512, @ProgressCallback) then
  begin
    ChangeLanguage('English');
    if SrepInit(AddBackSlash(ExpandConstant('{app}')),512 ,0) and PrecompInit('',128, 0) and FileSearchInit(true) then
    begin
      WizardForm.ProgressGauge.Position := 0;
      Wizardform.ProgressGauge.Max := 1000;
      ClsSourcePath(ExpandConstant('{src}'));
      ClsDiskRequest(@MyDiskRequest);
      if not ISArcExtract(0, 90, ExpandConstant('{src}\data.001'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
              ISDoneError := True; // that is what you missed
      if not ISArcExtract(0, 10, ExpandConstant('{src}\data.arc'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false) then
        ISDoneError := True;
    end;
    ISDoneStop;
  end;
  if ISDoneError = True then
    WizardForm.CancelButton.OnClick(nil);
end;

Didn't run test, but it seemed like the obvious source of the problem in the script.

danswano 08-11-2017 23:06

What the world can do without you dear razor.
Really appreciate your kind help and efforts.
God bless you.


All times are GMT -7. The time now is 05:57.

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