MAXCSO(1)

NAME
MAXCSO - Fast cso compressor

SYNOPSIS
maxcso [--args] [input.iso] [-o output.cso]

DESCRIPTION
A fast ISO to CSO compression program for use with PSP and PS2 emulators, which uses multiple algorithms for best compression ratio.

  FEATURES
•   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).

  Compression
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.

  Speed
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.

OPTIONS
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.

EXAMPLES

maxcso myfile.iso
    Compress myfile.iso and create myfile.cso.

maxcso myfile.iso -o output.cso
    Compress myfile.iso and create output.cso.

SEE ALSO
lz4(1), PCSX2(1), zlib(3)

BUGS
Issue tracker: https://github.com/unknownbrackets/maxcso/issues