What is UltraArc
UltraArc is a easy to use compression tool inititally created by "Razor12911" and modified by "Simorq" to support a wide variety of pre-/compressors.
Currently v2.900 R5 supports the following pre-/compressors:
- msc (http://krinkels.org/resources/msc-media-streams-compressor.4/)
- lzma (https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Markov_chain_algorithm)
- lzma2 (7z)
- ZStd (http://facebook.github.io/zstd/)
- RAZOR (https://encode.ru/threads/2829-RAZOR-strong-LZ-based-archiver)
- AFR (http://krinkels.org/threads/afr-anvil-forge-recompressor.3589/)
- UELR (http://krinkels.org/resources/uelr.260/)
- BinkPack (http://krinkels.org/resources/bpk.263/reviews)
- LOLZ (http://krinkels.org/resources/lolz.264/)
- OGGRE (http://krinkels.org/resources/oggre.259/)
- DLZ (http://krinkels.org/resources/dlz.262/)
- ZTool (https://fileforums.com/showpost.php?p=460866&postcount=1)
- XTool (https://fileforums.com/showthread.php?t=101729)
You can download it here.
How to use UltraArc
Using UltraArc is very simple, i will explain it.
The "Main" tab
In "Main" tab you are choosing:
- Source folder: Contains files that must be compressed (like your game folder).
- Output folder: Contains the output directory for compressed archive files. You can also use just a dot (.)
- First Volume Content (Optional): Not sure about this, doesn't seem to work anyway.
- Volume prefix name: The output name of folders. If you write DVD_, output folder will be DVD_1 after compression is done.
- CD Image: Creates a ISO image file after compression process is done. More options (if enabled) can be set in "Options -> CD Image" tab.
- Bink It: With this you can change bink video files before compression. To set options for it, enable it and go to "Options -> Bink It" tab
- Crunch Texture: Not recommended to use this at all, since it can damage all *.DDS files in Source directory.
- Ogg Encode: Same as above, but for *.RAW files.
- Self-extractor: After compression process is done, UltraARc will create a self-extractor exe file. With this you don't need a seperate Setup.exe from a conversion (like with self-extractor from WinRAR or 7z).
- Shutdown PC on finish: Your PC will shutdown after compression process is done.
- Skip encountered errors: UltraArc will go ahead if a error during compression came up. Not recommended to use this at all.
The "Options" tab
In "Options" tab you are choosing:
- FreeArc: Changes the compression methods aviable for FreeArc.
- 7-Zip: Changes the compression methods aviable for 7-Zip.
- WinRAR: Changes the compression methods aviable for WinRAR.
Different settings are possible.
It is too much to explain you about different compressions. For some detailed info, you can visit for example Encode.ru or any other site that discuss about different compressions.
There are also some "Checker Software"'s out there:
- Drop and Scan 4 ZLib by Razor12911: Scans for deflate/zlib streams in files.
- Game File Scanner by Razor12911: Scans for different streams in files.
You can find links on Usefull/Required Tools.
The "Exclusions" tab
In "Exclusions" tab you are choosing all files that should not be compressed, for example:
- uninstallation files (unins000.*, UnInstall.exe, etc.)
- redist files (_CommonRedist\*)
If you want to exclude uninstall files, simply click the "Add" button, double click in the first row/column and write
UltraArc now exclude all files in Source folder and it's subfolders contains "UnIns".
If you want to exclude the "_CommonRedist" folder, just write
UltraArc will exclude all files and folders inside "_CommonRedist" folder and "_CommonRedist" folder itself.
If you want to remove an exclusion, just select the row/column and click "Remove" button.
In most cases there are predefined exclusions you can not remove or add on UltraArc GUI itself. To solve this, open "UltraArc.ini" and scroll down to the bottom
Just remove "unins*" and save the file. Now you are able to define exclusions on the UltraArc GUI.
But, you can also define all settings in "UltraArc.ini" without the need of the GUI.
The "Conditions" tab
In "Conditions" tab you can define Components.
If you like to compress more than 1 game, but like to define if the user can select which game he will install.
Same as above, just click "Add" button, double click first row/column, type in game directory and Component 1, 2, 3, etc.
TIP: Type in game directory without drive letter and exact folder structure, since it varies from user to user.
- D:\Game\HoMM Collection\Heroes of Might and Magic 1
- D:\Game\HoMM Collection\Heroes of Might and Magic 2
- D:\Game\HoMM Collection\Heroes of Might and Magic 3
As you can see, i have installed this 3 games to "D:\Game\HoMM Collection".
Other users have probably installed these game to another directory or drive.
But fortunately UltraArc isn't that dumb if you define Conditions.
So the path for UltraArc should be
- Heroes of Might and Magic 1
- Heroes of Might and Magic 2
- Heroes of Might and Magic 3
Just tell the users (if you planning to publish it) they must choose the direcotry, in which all of these three games are installed. In my case i must choose: D:\Game\HoMM Collection.
But we have forgot something important.
With the above example UltraArc isn't able to compress the 3 folders, because the lack of "\*", that tells UltraArc "Please compress all files and folders inside the game folders".
Correct path for Conditions is:
- Heroes of Might and Magic 1\*
- Heroes of Might and Magic 2\*
- Heroes of Might and Magic 3\*
Now we are done.
- Components: Self-explanatory.
- Task: For InstallerCreator only.
- Language: For InstallerCreator only.
The "Output" tab
In "Output" tab you are able to set output options.
Archive prefix Name: Sets the name of the archive. After the archive is done, UltraArc will add a number at the end, so you don't need to write any number on this.
Archive extension: File extension for the archive. All is allowed.
- First Volume Size: The Size of the first Disc. A easy math example for this: Max DVD size - Setup.exe size = First Volume Size
- Custom Volume Size: Sets the size of all the other Discs (Disc 2, Disc 3, etc.) if available. Standard is 4480 for DVD5, 7950 for DVD9 and 23500 for BD25.
- Treshold percent: Not easy to explain. If you type in 30, UltraArc will divide the game into 4 parts (if enough files available). 1 = divide into many many many archives. 100 = Just 1 archive for each game. Just try different settings.
How to use MASK with UltraARC
With this option you are able to compress different file types with different compression methods in just one single archive, without the use to seperate them. Before, if you liked to compress a game with srep+lzma, there probably were files that are not compressable at all. Now, this files (you can define them by using the file extension) will be not compressed, even if they are in the same list/archive.
Let's take a look.
First you should know that all file types can be defined in "\Resources\arc.groups" for different options. Open "arc.groups" with notepad/notepad++ and let's see what we have there.
We have different sections like:
$BinkPack means, all file types declared under this section will be compressed by BPK, IF you set BPK in config0.inf (later to this one).
$Void means zero compression (just storing).
and so on.
You can define your own file types by just typing the file extension under one of the sections, if this file types not present in arc.groups (just search for them once by pressing CTRL+F). You should know how to best compress your file. Just test some settings. If it's a video file, or not compressable file in standard ways (without costly de-/packing), then it's in most cases not compressable. Then just write the file extension under $Void if it's not present there.
You are also able to create your own mask sections. For example you could delete all the content in arc.groups and create a new mask: $YourOwnMask
Now let's take a look on config0.inf.
Within this file you can set-up compression methods you did like to use for MASK (MASK = compressing by file types)
For example you have different LZMA settings:
- LZ1 = lzma:176m:normal:bt4:273:mc1000000000:lc8
- LZ2 = lzma:256m:normal:bt4:1024:mc1000:pb4:lc8:lp4
- LZ3 = lzma:a1:mfbt4:256m:fb273:mc1000000000:lc8
or different LOLZ settings:
- LL1 = lolz:d64:mc1023
- LL2 = lolz:mmt1:d64:mc1023
or different LZMA2 settings:
- 7z = lzma2:d256m:fb273:lc4:mc1000000
- XZ = lzma2:d256m:fb273:lc4:mc1000000:lp0:pb2
There are many others.
But important is "Mask=".
Standard setting is: Mask=srep:m3f+LL2/$binkpack=BPK/$anvilpack=afr:a2+srep:m3f+LL2
Methods are divided by a slash (/).
The first method is "srep:m3f+LL2". It standing for all files that are not defined in arc.groups OR files that are defined in arc.groups but the associated group is not enabled in the Mask= method (more for it later). LL2 is one of the patterns for lolz compression (LL2 = lolz:mmt1:d64:mc1023). You can also create more patterns for lolz, for example: LL3 = lolz:d128m, LL10 = lolz:mtt4, and so on. It's up to you.
The second method (it begins after the first slash) is "$binkpack=BPK". It tells FreeArc that all files are listed in the $binkpack group in arc.groups are associated with BPK compressor. If "$binkpack=BPK" is removed from Mask method, all files associated in arc.groups for $binkpack will simply compressed with the first method.
The third method (it begins after the second slash) is "$anvilpack=afr:a2+srep:m3f+LL2". $anvilpack describes the files that are pre-compressable with AFR, because inside arc.groups you will see that the $anvilpack contains "*.forge" file extension. That means all *forge files in source directory will be compressed with $anvilpack.
You can add a fourth, fifth and many other methods if you like, they are not limited.
You could also link al *.bk2 files with $xStream if you like, it's completely up to you what files/file types you add to what group. You can even rename the groups to whatever you like, no problem. These groups you see in arc.groups are just predefined and should help people to understand better (and of course to make a bit less work for people).
Now, if you have set-up all settings you'd like, just choose in UltraARC.exe under "Options" Tab "MASK" compression and start.
Here is a example with custom group $deflate enabled:
You will see, once you got it, it will save you many hours for compressing a game (especially if it's a big game).
You just need to know what file types are compressable with what and what file types not.
Tips and Tricks
To disable splitting feature, you can simply do this in UltraArc.ini:
Max size should be "65536.000000000000000000" according to Razor12911 (http://fileforums.com/showpost.php?p=462266&postcount=896).
UltraARC GUI only displays up to 65536.
One single archive file
Simply set Treshold=100.
In addition if you want a single archive and no splitting, follow also "Disabling splitting" tipp.