![]() |
Quote:
I think, To make the installer in smaller size.:) We working with compression.,Why dont we use the necessary(small) library to make the installer in below 2 mb size.:p. And.....thanks for returning to your awesome project.:D |
Quote:
If you only use a few libraries, that's okay with a larger size. But when using multiple libraries it makes large sizes inconvenient for two reasons. 1. Setup.exe ends up getting bigger. 2. The extraction time of these compressors/libraries is longer. With smaller sizes it is possible to use compression mode none (whitout compression) in Setup.exe reducing the time of extraction of these compressors/libraries. To get an idea joining libraries and compression tools in the CIU source code and assuming that the creator of the conversion wants to make the option available to the end user to choose any of the methods supported by the ciu (Including all compressors/libraries) the size of the sum of these files is more than 50 MB (And there is another 6 MB of library files intended for graphics). Yes, there are only a few Kb, but if each compressor/library has a gain of 150 Kb, it would reduce the final size considerably (in this situation there are more than 100 files). Of course, most of the time it doesn't. Of course, if it doesn't work well it is preferable that it be bigger and without bugs. As the friend commented, the idea is to have final sizes as small as possible from the installer + data file set. |
@Cesar82 ... MPress has a faster execution speed than UPX, and a false positive warning factor lower than UPX. I have not tested it on your work but in the ahk language on the conversion into executable. you can try.
|
The VclStyle bug is not related to diskspan. I tried to make DiskSpan create the form in another thread, the problem persisted. I ended up downloading the source of VclStyle to see how it really works and VclStyle just tries to make sure all the forms/dialogs use the same style including the ones created externally, as you can see in the video.
DiskSpan is not involved at all, I just made ISDone produce an error to show a message then I just waited to see what will happen. https://youtu.be/0j7Lx0nxhLY Basically, use this VclStyle library in your scripts if you know that the other libraries you import don't create additional forms/dialogs else you'll have this issue whether diskspan was used or not. |
1 Attachment(s)
Quote:
So the error happens inside ISDone.dll (VCLStyle.dll does not support ISDone.dll)? because with a library called directly by the installer the window is displayed correctly. If this error is internally in VCLStyleInno.dll, and public source code, and someone has enough knowledge to correct it, please try it because it would be very useful. Thank you. |
Quote:
|
Cesar you could try Benjamin, but you have to waste some time with the various options to use.
https://i.ibb.co/QDMWxby/img.png |
I think, it's nothing but wasting of time to compress lib or exe because setup size increases and also decreases some speed while opening the setup generally for dll being used after compiling.
It compresses twice or if twice is being used so better use Flag:nocompression with compressed one on [Files] sec, it prevents from increasing the size |
Quote:
|
1 Attachment(s)
@Razor12911
Sorry I'm bothering you. It includes the new diskspan R3 (original Library) in CIU 3.0.0.0.1 beta and when displaying the search message for the disk, Setup.exe is terminated. I don't know if it is because CIU has many features that require more from the system than a basic script. I did the same tests using the Light Installer (very basic script) and there is hardly an error. The request disk code in Light installer and CIU is exactly the same. I have attached the examples where the installer closes when searching for the disk. Run as is and search for part 1 and then for part 2 in folders when prompted (Most of the time the error occurs when searching for part 2). @Razor12911, if you want to do tests I can send you the ciu beta source code. The error I think is still in the callback, and I don't know if there is a solution for that. |
I'll check it out
|
Quote:
I was able to reduce the size to 249kb with (Delphi Rio + UPX) , |
@BLACKFIRE69
I got smaller sizes using DELPHI 10 Seattle. From XE8 all functions/classes are coded without any changes. Using DELPHI XE4 through XE7 it is only necessary to include a variable to make the script compatible. I tested the version compiled with DELPHI Seattle and it is working fine. Only the same errors happen as in the original lib that Razor12911 shared. I did not test these older versions XE4 to XE7, because as the Lib compiled with DELPHI Seattle was better than with previous versions it does not make sense to test. https://i.imgur.com/fmrCLPG.png Adaptation of DiskSpan R3 to work with old delphi (Delphi XE4...XE7) Changhed this: Code:
beginCode:
varBut as the size of the library compiled with DELPHI Seatle is smaller, it is more viable to use it. This other executable compressor used from the image "uPACK" I found the compression rate very good and super fast, but in some libs it brings false positives. |
Quote:
I compiled it in Delphi Seattle without changing and changing the code, but it wasn't working. :confused: |
Quote:
There's no logic (I don't understand why Seattle isn't even that old). Here it was working when I tested it before (I only tested the extraction using CIU). I didnt even remember to try to pack it with him because the idea was to include it in CIU to perform the extraction. I'm going to do some tests in a few days. |
1 Attachment(s)
@Razor12911
If possible, look at the attached file. The native methods of freearc "2", "3", "4", "5" do not work if you include cls diskspan R2/R3. Or am I setting the command line wrong? P.S. If I remove the diskspan from the command line it compresses normal. P.S. The other native methods "0", "1", "9x -ld192m", "x -ld800m", "x -ld1600m" work normally. Thank you! |
4 Attachment(s)
Quote:
Attachment 27490 Attachment 27491 Attachment 27492 the cls by itself... Attachment 27493 perhaps this is why I have never mixed default freearc methods with additional methods set by user (-m1..9,x that is) |
Quote:
I just tested how I sent the file and realized that from method 2..5 it showed the same error as the third image. I found it strange to support method 0 and 1 and the others display error. See the result in the VIDEO of my test using only CLS-DiskSpan.dll + Arc Method Do you mean that FreeArc does not support combining methods 2 - 5 with CLS? I wanted to enable users to use these native methods when using diskspan.bat that I changed. I came to think that it could be some config of the arc.ini that I used so I took Arc.ini and arc.groups directly from the freearc folder and even so when using cls-diskspan it showed errors and without it it does not display an error. Thanks. I ran some tests and found that: If you open a compressed file with FreeArc and go to Info, only with the native method 2..5 it is possible to obtain the combination of the method referring to preset 2..5. https://i.imgur.com/yLau4wv.png If you include these methods as presets of 2..5 in Arc.ini, the methods are now supported by Cls DiskSpan https://i.imgur.com/4hIZNA0.png Just adding the Arc.ini presets 2..5 makes it possible to support methods using cls-diskspan. Code:
[Compression methods]https://i.imgur.com/eiIal5k.png |
1 Attachment(s)
I was going to say, that even using these
Code:
Arc.exe a -cfgArc.ini -ep1 -r -ed -s; -w.\TEMP -m2+rep -dp".\files" ".\Data2.bin.001"I had to look at Freearc source and to give proper aliases for m2-5, you should look at this Attachment 27494 -m2 is actually -mrep:96m:256:c256+exe+tor:6 use this to fill up the rest |
@Razor12911
Thanks for the info, but I don't understand this FreeArc souce language (I was even more confused). You could share the native presets (0..5 and "9x -ld192m", "x -ld800m", "x -ld1600m" (UltrArc GUI predifinitions)) so that I can include them in the [Compression Methods] section of Arc.ini. I don't know if I can use memos numbers as a preset (Only with DiskSpan using 2..5 in the presets it worked here). Currently I used the "Arc.ini" file for DiskSpan.bat "(UltraARC 2900 R8 + DiskSpan.bat)". Apparently it's working well (I don't know if it's the right way) In this way the user can use an option such as "3" or "FA-FAST" (optional) that will have the same result. Code:
[Compression Methods] |
1 Attachment(s)
Quote:
Attachment 27498 # is a number, like -m2 if one uses 2, it then triggers the next part #rep+exe+#xb then you check what 2rep+exe+2xb is 2rep is rep:96m:256:c256 2xb is tor:6 then you have rep:96m:256:c256+exe+tor:6 is the same when you use 5, it's not that difficult to follow. when # is 5, we have 5rep+exe+5xb 5rep is rep:96m #xb for 5 is delta + #binary we check what 5binary is 5binary is lzma:96m:normal:32:mc32 then you combine everything rep:96m+exe+delta+lzma:96m:normal:32:mc32 m9x follows this #x where #x = #xb/#xt 9x= 9xb =delta + 9binary = delta+lzma:254m:max #xt is a mask for text ($text) 9xt=dict:128m:75% + 9binary = dict:128m:75%+delta+lzma:254m:max not sure about the 75% part of dict but that is what the method says I also don't know this programming language either but I understood it just by looking at it, it's not that hard to parse the other methods. |
Quote:
I just don't understand why the final file has different compression following this line of reasoning. https://i.imgur.com/SHQGDs7.png Where can I get this freearc src? |
2 Attachment(s)
Quote:
Attachment 27499 Attachment 27500 Quote:
https://krinkels.org/resources/fa_protect.5/ |
CLS-DiskSpan v2.0
11 Attachment(s)
CLS·DiskSpan v2.0 Reliability + Performance Overhaul for FreeArc Disk-Spanning Windows · 32-bit plugin · built on Razor12911's original · modified by BLACKFIRE69 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━ ▌ OVERVIEW A big reliability + speed overhaul of Razor12911's original FreeArc disk-spanning plugin. The plugin splits a FreeArc archive across multiple volumes (discs) and reassembles them on extraction. ⚠ Matched-pair release: the on-disk volume format changed (clean break). Archives written by v2.0 are unpacked by v2.0 only v2.0 will not read old volumes, and the old version will not read v2.0 volumes. ▌ TECHNICAL SPECIFICATIONS
▌ CREDITS / AUTHORS
▌ WHAT'S NEW IN v2.0 ✦ It just works for EVERY layout Solid (-s;), non-solid (-s-), big/small solid blocks (-s<size>), and file-mask / grouped packs (arc.groups) all span and round-trip correctly. The old "must be fully solid" limitation where anything else silently produced broken discs is GONE. ✦ Mixed group sizes are flagged With file-mask groups, all groups share ONE volume set, so only a single disc size is used (the first block's). A group asking for a different size is kept-and-warned once the set still packs/unpacks fine. Use the same size on every group. ✦ Damage is caught Every disc carries a CRC32 and shares a "set GUID". A truncated, byte-flipped, swapped, or foreign disc is detected and reported instead of silently producing a bad install. ✦ No more hangs or crashes A missing disc in a silent/hidden run fails cleanly with a non-zero exit (never freezes on a hidden dialog), and no Delphi error can crash back into FreeArc failures map to proper CLS error codes. ✦ Safe inside installers The --sort / --makeiso / --version helpers only run under FreeArc's Arc.exe; embedded in an Inno Setup installer (unarc) the DLL never touches the host process, so it can't accidentally close the installer. ✦ You see the REAL reason a span failed On a bad decode FreeArc otherwise prints only its own misleading line. diskspan now prints the true cause first, on its own line e.g. "diskspan: missing volume game-3.bin" or "diskspan: CRC mismatch ...". ✦ An archive kept in a subfolder extracts correctly Sibling discs are found next to the main archive, not in the current directory so arc t out\game-1.bin works (the real conversion flow packs into a subfolder). ✦ The disc-tools are reliable --sort lays the discs into burnable DISC_1, DISC_2 folders (with autorun.inf + setup files) and exits cleanly. --makeiso turns those folders into .ISO images without freezing; a folder is deleted ONLY after its ISO is safely written, so a failing oscdimg.exe can never destroy your discs. ✦ Flexible disc naming (auto-detected no new option) Code:
game-1.bin -> game-2.bin, game-3.bin (classic digit step)✦ Locate-a-missing-disc In an interactive run (installer window OR plain console arc x), a Browse dialog lets the user point to a disc that isn't where expected, then the extract continues. Silent/hidden/redirected runs just fail cleanly. ✦ It's faster The per-disc checksum was rewritten (slicing-by-8) and I/O runs in 1 MB chunks (tunable), cutting spanning overhead from ~+96% over a raw store down to ~+20%. At real multi-GB disc sizes the compressor dominates anyway, so spanning is effectively free. ✦ Version probe arc.exe --version prints build, disc-format version and copyright; the DiskSpanInfo() export returns the same string to tools. ▌ ORIGINAL vs MODIFIED (v1 → v2.0) Code:
╭───────────────────────────┬────────────────────────┬────────────────────────────────╮
▌ QUICK START EXAMPLES Run from the folder holding Arc.exe + cls-diskspan.dll. -w sets a temp folder; diskspan:<first>:<other> = first-disc size : every other disc's size. Put a NUMBER in the archive name. Legend: program · command · method / diskspan · archive · input mask Show the build + copyright Code:
Arc.exe --versionCode:
Arc.exe a -ep1 -r -ed -s; -w.\temp -m0+diskspan:2mb:2mb out\game-1.bin "_data\*"Code:
Arc.exe a -ep1 -r -ed -s; -w.\temp -msrep+lzma+diskspan:4467mb:4474mb out\game-1.bin "MyFiles\*"Code:
Arc.exe a -ep1 -r -ed -s- -w.\temp -m0+diskspan:2mb:2mb out\game-1.bin "_data\*"Code:
Arc.exe a -ep1 -r -ed -s8m -w.\temp -m0+diskspan:2mb:2mb out\game-1.bin "_data\*"Code:
Arc.exe a -ep1 -r -ed -s; -w.\temp -mtor+diskspan:2mb:2mb/$grpbin=lzma+diskspan:2mb:2mb out\game-1.bin "_data\*"Code:
Arc.exe t out\game-1.binCode:
Arc.exe x -dpunpacked\ out\game-1.binCode:
Arc.exe --sort OutFolder DISC_ setup.exe setup.ico out\game-1.binCode:
Arc.exe a ... +diskspan:300mb:400mb data.bin.001 "MyFiles\*" (-> .002, .003)Code:
setlocal & set CLS_BUFKB=4096 & Arc.exe ... (4 MB I/O buffer instead of 1 MB)▌ TESTS & BENCHMARKS Both live in bin\_test\ and drive the same Arc.exe + cls-diskspan.dll in bin\. run_tests.ps1 round-trip regression suite. Packs 8 scenarios (solid, single-volume, store, groups, non-solid, small-block, groups+blocks, many-volume), extracts each, and SHA-256 compares against the originals. Plus 3 robustness checks: a missing middle disc must fail cleanly, a byte-flipped disc must be caught by the CRC, and a subfolder archive must still round-trip. Prints a PASS/FAIL matrix. Code:
powershell -ExecutionPolicy Bypass -File run_tests.ps1 -DebugLogCode:
powershell -ExecutionPolicy Bypass -File bench.ps1 -SizeMB 120
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━ ▌ A NOTE FROM THE MODDER I'm not quite a repack guy, so do some rough tests on this with your own data and feel free to report any bug / issue. . |
| All times are GMT -7. The time now is 15:32. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
FileForums @ https://fileforums.com