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.801 R3 supports the following pre-/compressors:
- pZlib (http://fileforums.com/showthread.php?t=97888)
- PrecompMT (http://fileforums.com/showthread.php?t=97961)
- 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)
- ZStd (http://facebook.github.io/zstd/)
- pZstd (zTool) (http://fileforums.com/showthread.php?t=99396)
- pLZ4 (zTool)
- pLZO (zTool)
- MMC (http://fastcompression.blogspot.com/p/mmc-morphing-match-chain.html)
- RAZOR (https://encode.ru/threads/2829-RAZOR-strong-LZ-based-archiver)
- AFR (http://krinkels.org/threads/afr-anvil-forge-recompressor.3589/)
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 - Data#.xxx 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 R3
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:
$MscSolid means, all file types declared under this section will be compressed by MSC, IF you set MSC in config0.txt (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.
Now let's take a look on config0.txt.
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:
or different SREP settings:
or different reflate settings:
Under <Method Syntax> you can see predefined settings for many possible ways.
But important is "MaskI=".
Standard setting is: MaskI=SRARC/$void=0/$mscsolid=MSCSRARC/$zstream=pZDSRXZ/$deflate=PZB3SRARC
What is SRARC?
See <Method Syntax> list.
What is LZMAII? LZMA2? No!
LZMAII just describes the name for the LZMA setting pattern (see the above different LZMA settings).
$void=0 is set there, so it's enabled. You can remove $void=0 to disable zero compression.
- MSCSRARC=msc+srep+LZMAII (see <Method Syntax> list)
You can also remove $mscsolid=MSCSRARC to disable MSC compression.
- PZB3SRARC=pZLib3+srep+LZMAII (setting #2 for LZMA, not LZMA2).
In example for $deflate=PZB3SRARC you can also just write:
Now, if you have set-up all settings you'd like, just choose in UltraARC.exe under "Options" Tab "MASK" compression and start.
One thing left: For example SRARC uses the compression method (SRARC = SREP+LZMAII (II = LZMA pattern #2)) for files they are not set in any arc.group section, or you have disabled by removing them in config0.txt.
In other words: if you disabling "$void=0" in config0.txt, all files listed under "$void=0" in arc.groups will be compressed with SRARC.
Here is a example with $deflate enabled:
You can also put PZB3SRARC instead of SRARC. In this case all disabled sections and their listed files will be compressed by pZLib3+srep+LZMAII (but doesn't make much sense if you ask me).
Or if you want to use LZMA2 instead of LZMA, use SRXZ (SRXZ = srep+lzma2).
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 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.