Ok, I've been testing 7z compression and I think there is a problem when operating in Merged Mode. Maybe it's something that I'm doing wrong, so please feel free to correct me.
To take full advantage of size reduction when merging using 7z, merged archives must be solid ones. However merged archives are not being created as solid even when specified. I think the cause is that CMPro Rebuilder doesn't create the merged archive in "1 step" (by compressing all clones in 1 operation) but it updates the archive by adding new clones as the Rebuilder finds them. This "update" approach can not create a solid archive because 7zip currently doesn't support updating solid archives.
For my tests I used "A", "B", "P" and "T" folders (219 files) from No-Intro N64, with DAT-o-MATIC P/C DAT and 7zip standalone commandline (7za.exe) v4.57. I rebuilt to 7z compressed archives in Unmerged and Merged Mode.
The default packer.ini switches for 7z are:
7zip_compress_para = a -y -t7z %1 %2
7zip_delete_para = d %1 %2
(sidenote: "-y" switch doesn't apply to "a" command and "-t7z" switch is not required)
(Normal compression, solid mode off, 16 Mbyte dictionary)
When I used the following switches:
7zip_compress_para = a -mx9 -ms -m0=LZMA:d28 %1 %2
7zip_delete_para = d -mx9 -ms -m0=LZMA:d28 %1 %2
(Ultra compression, solid mode, 256 MByte dictionary)
I got virtually the same overall final size as with default switches, even for the test in Merged Mode. And both Merged and Unmerged tests for each settings yield the same overall size. After checking, merged archives were not solid.
This can be tricky to fix as it would require to modify Rebuilder logic, so when in Merged Mode, it should first locate all clones, then compress them all at once. Maybe it would be easier to modify the "Merger" to work this way (it would require to allow to select compression format here too).
I know this is probably out of question. Thanks anyway for all the time and effort you put into CMPro Roman
![Wink ;)](./images/smilies/icon_e_wink.gif)