MAXCSO
— Fast cso
compressor
maxcso |
[--args ] [input.iso]
[-o output.cso] |
A fast ISO to CSO compression program for use with PSP and PS2
emulators, which uses multiple algorithms for best compression ratio.
- Can use as many CPU cores as you want.
- Can use
zlib(3),
7-zip's deflate, and Zopfli.
- Processes multiple files in one command.
- Can take a CSO or DAX file as a source.
- Able to output at larger block sizes.
- Support for experimental CSO v2 and ZSO formats using
lz4(1)
(faster decompression).
- Tuning of deflate or
lz4(1)
compression threshold.
- Decompression of all supported inputs (including DAX and CSO v2).
maxcso
always uses compression level 9.
Decompression speed is about the same regardless of level, and disk access
is faster with smaller files.
Using 7-zip's deflate and Zopfli improves compression ratios, but
don't expect a lot. Usual results are between 0.5% to 1.0% smaller.
Larger block sizes than the default will help compression, in the
range of 2-3%. However, the files may not be compatible with some software.
For example, ppsspp
versions released after
2014-10-26 will support larger block sizes.
Avoid DAX where CSOs using larger block sizes are supported, since
DAX is less efficient.
lz4(1)
support is mostly for experimentation.
Compared to other tools like ciso and CisoPlus,
maxcso
can run much faster and achieve the same
compression. Use --fast
to get the fastest
compression, which matches level 9 in other tools.
Additionally, if you have better than a dual core processor,
maxcso
will use all of your cores, and perform even
better.
In usage, CSOs typically perform well in all known emulators. Some
versions of PSP firmware with support for CSOs have bugs in their CSO
support, but this doesn't affect emulators.
Multiple files may be specified. Inputs can be iso or cso
files.
--threads=N
- Specify N threads for I/O and compression.
--quiet
- Suppress status output.
--crc
- Log CRC32 checksums, ignore output files and methods.
--fast
- Use only basic
zlib(3)
or lz4 for fastest result.
--decompress
- Write out to raw ISO, decompressing as needed.
--block=N
- Specify a block size (default depends on iso size). Many readers only
support the 2048 size.
--format=VER
cso1, cso2,
zso, dax
- Specify cso version. These are experimental, default is
cso1.
--usr-zlib
- Enable trials with
zlib(3)
for deflate compression.
--use-zopli
- Enable trials with Zopfli for deflate compression. Because Zopfli is
significantly slower than the other methods and uses a lot more memory, it
is disabled by default. Use for maximum compression.
--use-7zdeflate
- Enable trials with 7-zip's deflate compression.
--use-lz4
- Enable trials with lz4hc for
lz4(1)
compression.
--use-lz4brute
- Enable bruteforce trials with lz4hc for
lz4(1)
compression.
--only-METHOD
- Only allow a certain compression method (
zlib(3),
etc. above).
--no-METHOD
- Disable a certain compression method (
zlib(3),
etc. above).
--lz4-cost=N
- Allow
lz4(1)
to increase block size by N% at most (cso2 only).
--orig-cost=N
- Allow uncompressed to increase block size by N% at most.
---output-path=X
- Output to path X/, use basename for default outputs.
The cost arguments allow you to allow each block to be N% bigger
by using
lz4(1) or
no compression. This makes the file read faster (less cpu power), but take
more space.
maxcso
myfile.iso
- Compress myfile.iso and create myfile.cso.
maxcso
myfile.iso
-o
output.cso
- Compress myfile.iso and create
output.cso.