Preface: I'm anal and want the most bits compressed and do not care about computer time. I have 2 3.2 HT Dual proc machines at work, a 3.0 HT at home, and a 1.8 Centrino at work, as well as a few ~1 GHZ other machines at home.
I also added stuff to ZipMax to allow you to distribute it over multiple machines, all fed from the same network share of files and neither duplicates the effort of the other. I did this nearly a year ago and sent it to Roman , including new source code and read me files and he has not updated it unfortunately

So for now, I'm the only one distributing it across machines automatically.
Next, I run stuff through 4 passes (4 separate launches with different INI files) right now. I could compress this to 2, but have broken out the BJWFlate stuff which is agonizingly slow so I can do a quick compress, then run those slower ones later as I free up computer time.
Finally the last pass is to handle the compressing programs out there that do not work with long file names correctly. However, they still can sometimes produce a smaller image, but will simply fail on the LFN stuff. If you try to include these compressors with the main run, then you will end up having to redo the failed files, and it still eats up all the time. Its better to handle the LFN failures LAST than first.
That said, here are my 4 INI files, in order of how I compress. I contend I have pretty much the smallest zips possible, within some sane amount of reason ( I think it took about 30 days across 3, 3 GHZ machines, to rezip EVERY file in Mame .79. Now incremental changes only take about 2 days for each release for computer power)
Here is how i laid out my directories:
----------------------------------------------
Directory of C:\zm\1-LFN
12/09/2003 01:19 PM 471,552 7za.exe
12/15/2003 12:00 PM 30,208 DeflOpt.exe
10/15/2003 08:05 PM 235,008 PACOMP.EXE
01/16/2004 07:12 PM 339,456 PKZIP25.EXE
11/01/2000 04:00 AM 258,048 pkzipc.exe
01/30/2004 09:26 AM 409,600 ZipMax.exe
07/04/2004 10:30 AM 4,271 zipmax.ini
Directory of C:\zm\2-BJW64
09/14/2003 12:00 PM 39,936 BJWFlate.exe
12/15/2003 12:00 PM 30,208 DeflOpt.exe
01/30/2004 09:26 AM 409,600 ZipMax.exe
07/04/2004 10:48 AM 769 zipmax.ini
Directory of C:\zm\3-BJW8K
09/14/2003 12:00 PM 39,936 BJWFlate.exe
12/15/2003 12:00 PM 30,208 DeflOpt.exe
01/30/2004 09:26 AM 409,600 ZipMax.exe
07/04/2004 10:48 AM 771 zipmax.ini
Directory of C:\zm\4-SFN
12/15/2003 12:00 PM 30,208 DeflOpt.exe
02/01/1993 02:04 AM 42,166 pkzip.exe
03/01/1999 02:50 AM 50,663 PKZIP250.EXE
01/30/2004 09:26 AM 409,600 ZipMax.exe
07/04/2004 10:37 AM 1,737 zipmax.ini
First run:
// ---------------------------------------------
// All Zippers handle Long File Names correctly.
// Does NOT include slow BJWFLATE zipping.
// ---------------------------------------------
[ZIPMAX]
work-recursive = 1
skip-internzip = 0
logfile = 1
thread-priority = normal
nobeep = 0
setcurrenttime = 0
showpackerwindow = 0
skipreadonly = 1
skiparchive = 1
setcurrentreadonly = 1
// ------------------------------------------------
// PKZIP25 (95/NT 1998) -lev=[0-9] 0 = uncompressed
// ------------------------------------------------
packer-exe-1 = pkzip25.exe
packer-cmd-1 = -add -level=1 -over=all -path=relative -rec %1 %2
packer-exe-2 = pkzip25.exe
packer-cmd-2 = -add -level=2 -over=all -path=relative -rec %1 %2
packer-exe-3 = pkzip25.exe
packer-cmd-3 = -add -level=3 -over=all -path=relative -rec %1 %2
packer-exe-4 = pkzip25.exe
packer-cmd-4 = -add -level=4 -over=all -path=relative -rec %1 %2
packer-exe-5 = pkzip25.exe
packer-cmd-5 = -add -level=5 -over=all -path=relative -rec %1 %2
packer-exe-6 = pkzip25.exe
packer-cmd-6 = -add -level=6 -over=all -path=relative -rec %1 %2
packer-exe-7 = pkzip25.exe
packer-cmd-7 = -add -level=7 -over=all -path=relative -rec %1 %2
packer-exe-8 = pkzip25.exe
packer-cmd-8 = -add -level=8 -over=all -path=relative -rec %1 %2
packer-exe-9 = pkzip25.exe
packer-cmd-9 = -add -level=9 -over=all -path=relative -rec %1 %2
packer-exe-10 = pkzip25.exe
packer-cmd-10 = -add -level=0 -over=all -path=relative -rec %1 %2
// -----------------------------------------------------
// PKZIP4.0 (WinCmdLine2000) -lev=[0-9] 0 = uncompressed
// -----------------------------------------------------
packer-exe-11 = pkzipc.exe
packer-cmd-11 = -add -level=1 -over=all -path=relative -rec %1 %2
packer-exe-12 = pkzipc.exe
packer-cmd-12 = -add -level=2 -over=all -path=relative -rec %1 %2
packer-exe-13 = pkzipc.exe
packer-cmd-13 = -add -level=3 -over=all -path=relative -rec %1 %2
packer-exe-14 = pkzipc.exe
packer-cmd-14 = -add -level=4 -over=all -path=relative -rec %1 %2
packer-exe-15 = pkzipc.exe
packer-cmd-15 = -add -level=5 -over=all -path=relative -rec %1 %2
packer-exe-16 = pkzipc.exe
packer-cmd-16 = -add -level=6 -over=all -path=relative -rec %1 %2
packer-exe-17 = pkzipc.exe
packer-cmd-17 = -add -level=7 -over=all -path=relative -rec %1 %2
packer-exe-18 = pkzipc.exe
packer-cmd-18 = -add -level=8 -over=all -path=relative -rec %1 %2
packer-exe-19 = pkzipc.exe
packer-cmd-19 = -add -level=9 -over=all -path=relative -rec %1 %2
// -----------------------------------------------
// PowerArchiver3.2 -c[0 1 2] (store, normal, max)
// -----------------------------------------------
packer-exe-20 = pacomp.exe
packer-cmd-20 = -a -r -p -c1 -w %1 %2
packer-exe-21 = pacomp.exe
packer-cmd-21 = -a -r -p -c2 -w %1 %2
// --------------------------------------------------------------------------------------
// 7ZIP -mx=[0 5 9] ; -mm=[Copy Deflate xDeflate64 xBZip2] ; -mfb=[32-255] ; -mpass=[1-4]
// --------------------------------------------------------------------------------------
packer-exe-22 = 7za.exe
packer-cmd-22 = a -mx=5 -mm=Deflate -r -y -tzip %1 %2
packer-exe-23 = 7za.exe
packer-cmd-23 = a -mx=9 -mm=Deflate -r -y -tzip %1 %2
packer-exe-24 = 7za.exe
packer-cmd-24 = a -mx=5 -mm=Deflate -mfb=32 -r -y -tzip %1 %2
packer-exe-25 = 7za.exe
packer-cmd-25 = a -mx=9 -mm=Deflate -mfb=32 -r -y -tzip %1 %2
packer-exe-26 = 7za.exe
packer-cmd-26 = a -mx=5 -mm=Deflate -mfb=255 -r -y -tzip %1 %2
packer-exe-27 = 7za.exe
packer-cmd-27 = a -mx=9 -mm=Deflate -mfb=255 -r -y -tzip %1 %2
packer-exe-28 = 7za.exe
packer-cmd-28 = a -mx=5 -mm=Deflate -mpass=4 -mfb=32 -r -y -tzip %1 %2
packer-exe-29 = 7za.exe
packer-cmd-29 = a -mx=9 -mm=Deflate -mpass=4 -mfb=32 -r -y -tzip %1 %2
packer-exe-30 = 7za.exe
packer-cmd-30 = a -mx=5 -mm=Deflate -mpass=4 -mfb=255 -r -y -tzip %1 %2
packer-exe-31 = 7za.exe
packer-cmd-31 = a -mx=9 -mm=Deflate -mpass=4 -mfb=255 -r -y -tzip %1 %2
packer-exe-32 = 7za.exe
packer-cmd-32 = a -mx -mm=Deflate -mpass=4 -r -y -tzip %1 %2
// -----------------
// Deflate Optimizer
// -----------------
finalstep-exe = deflopt.exe
finalstep-cmd = %1
Second run:
// ------------------------------------------------------
// All Zippers handle Long File Names correctly.
// Only does slow BJWFlate
// Internal zipping and NONE level compression is skipped
// (assumes LFN was used where this is done.)
// ------------------------------------------------------
[ZIPMAX]
work-recursive = 1
skip-internzip = 1
logfile = 1
thread-priority = normal
nobeep = 0
setcurrenttime = 0
showpackerwindow = 1
skipreadonly = 1
skiparchive = 1
setcurrentreadonly = 1
// -------------------
// BJWFlate -s[3-8192]
// -------------------
packer-exe-1 = bjwflate.exe
packer-cmd-1 = -a -n -s64 -r -y %1 %2
// -----------------
// Deflate Optimizer
// -----------------
finalstep-exe = deflopt.exe
finalstep-cmd = %1
Third run:
// ------------------------------------------------------
// All Zippers handle Long File Names correctly.
// Only does slow BJWFlate
// Internal zipping and NONE level compression is skipped
// (assumes LFN was used where this is done.)
// ------------------------------------------------------
[ZIPMAX]
work-recursive = 1
skip-internzip = 1
logfile = 1
thread-priority = normal
nobeep = 0
setcurrenttime = 0
showpackerwindow = 1
skipreadonly = 1
skiparchive = 1
setcurrentreadonly = 1
// -------------------
// BJWFlate -s[3-8192]
// -------------------
packer-exe-1 = bjwflate.exe
packer-cmd-1 = -a -n -s8192 -r -y %1 %2
// -----------------
// Deflate Optimizer
// -----------------
finalstep-exe = deflopt.exe
finalstep-cmd = %1
Fourth Run:
// ------------------------------------------------------
// All Zippers do NOT handle Long File Names correctly.
// Does NOT include slow BJWFLATE zipping.
// Internal zipping and NONE level compression is skipped
// (assumes LFN was used where this is done.)
// ------------------------------------------------------
[ZIPMAX]
work-recursive = 1
skip-internzip = 1
logfile = 1
thread-priority = normal
nobeep = 0
setcurrenttime = 0
showpackerwindow = 0
skipreadonly = 1
skiparchive = 1
setcurrentreadonly = 1
// ---------------------------------------------------------------
// PKZip 204g (DOS) -e<x|n|f|s|0> max, norm, fast, superfast, none
// ---------------------------------------------------------------
packer-exe-1 = pkzip.exe
packer-cmd-1 = -a -ex -rp -whs %1 %2.*
packer-exe-2 = pkzip.exe
packer-cmd-2 = -a -en -rp -whs %1 %2.*
packer-exe-3 = pkzip.exe
packer-cmd-3 = -a -ef -rp -whs %1 %2.*
packer-exe-4 = pkzip.exe
packer-cmd-4 = -a -es -rp -whs %1 %2.*
// --------------------------------------------------------------------------------
// PKZip 2.50 (DOS 1999) -e<xx,x|n|f|s|0> exterme, max, norm, fast, superfast, none
// --------------------------------------------------------------------------------
packer-exe-5 = pkzip250.exe
packer-cmd-5 = -a -exx -rp -whs %1 %2.*
packer-exe-6 = pkzip250.exe
packer-cmd-6 = -a -ex -rp -whs %1 %2.*
packer-exe-7 = pkzip250.exe
packer-cmd-7 = -a -en -rp -whs %1 %2.*
packer-exe-8 = pkzip250.exe
packer-cmd-8 = -a -ef -rp -whs %1 %2.*
packer-exe-9 = pkzip250.exe
packer-cmd-9 = -a -es -rp -whs %1 %2.*
// -----------------
// Deflate Optimizer
// -----------------
finalstep-exe = deflopt.exe
finalstep-cmd = %1
Note: These settings:
skipreadonly = 1
skiparchive = 1
setcurrentreadonly = 1
Have no effect on the released build of ZipMax. They are my multi-machine concurrent recompressing enhancements that have not been updated by Roman. You can have them in your files but they do absolutely nothing to the current public ZipMax build.
Let me know if you have any questions / comments about my analness / etc... If you want the best bang for your buck, combine the compressor from my run #2 into #1, and do not do run #3 (8192 BJWFlate) as it is obscenely LONG. Then do my run #4 as your second run to handle the long file name issued ones.
Again the issue is that you can run that set on all your zips, and it WILL recompress some of your roms/icons/etc.. smaller, BUT if there happens to be a long file name either in the zip name or a file in it, the compressor will fail and the file will be skipped. Therefore you want to do it LAST and separately since it's highly likely it will skip most files that would have a problem anyway since they'd have been compressed by a better ratio in the first pass anyway, with programs that can handle the long file names.
Hope this helps!