What is the CSO file format?
A .cso file is one of the earliest compression formats designed for compressing ISO disc images. Also known as CISO (Compressed ISO), it applies block-level compression to reduce storage space while still allowing the disc image to be read on demand.
The .cso format is primarily used to store PlayStation Portable (PSP) game disc images in compressed form. A .cso file can be compressed at nine levels (1-9), where higher levels yield greater compression but slower decompression. Each 2 KB sector block is individually DEFLATE-compressed - or stored raw if it does not shrink - so custom firmware and emulators decompress only the blocks needed at any moment.
Every .cso begins with the 4-byte ASCII signature CISO at byte offset 0, followed by a 24-byte header (block size, total uncompressed size, version). Common tools include maxcso and ciso; the PPSSPP emulator reads .cso files directly on Windows, macOS, Linux, and Android. A newer variant, .zso, replaces DEFLATE with LZ4 for faster decompression on low-power hardware.
Security & safety
RISK: MEDIUMThe CSO format itself is passive data. The risks are about the content and the source: CSO files in circulation are almost always copyrighted PSP/PS2 games - dumping discs you own is one thing, downloading others' games is piracy. Game-ROM download sites are also a common malware vector, often bundling fake "installers" or decompressors. Stick to maxcso (open-source) for compression/decompression and PPSSPP (official site) for playback; avoid the dead pspgen.com-era utilities and any "CSO converter" download portal.
Format details
in a nutshellPrograms that open CSO files
Technical details
deep spec| File signature | CISO (hex 43 49 53 4F) at byte offset 0 |
| Header size | 24 bytes (fixed-length binary header) |
| Block size | 2,048 bytes per block (matches ISO 9660 / UDF sector size) |
| Compression algorithm | DEFLATE (zlib), applied independently to each 2 KB block |
| Compression levels | 1 (fastest, least compression) to 9 (slowest, maximum compression) |
| Per-block storage flag | Each block index entry flags whether the block is stored compressed or raw (uncompressed) |
| Byte order | Little-endian (all multi-byte integer header fields) |
| Encoding | Binary |
| Typical compressed size | 50-70% of the source ISO, depending on compression level and content type |
| Typical file size range | 200 MB - 1.5 GB (PSP UMD game images) |
| Format versions | v1 (original CISO) and v2 (maxcso; adds support for images larger than 2 GB and extra block flags) |
| MIME type | application/octet-stream; also application/x-compressed-iso |
| Source format wrapped | ISO 9660 / UDF optical disc image |
| Integrity | No whole-file checksum; per-block integrity relies on the DEFLATE stream |
| Primary use | Distributing and running PSP UMD game images under custom firmware and emulators such as PPSSPP |
| Related compression variants | ZSO (.zso) uses LZ4 instead of DEFLATE; DAX (.dax) is a separate PSP format; CSOv2 via maxcso extends the original header for larger images |
| Released | circa 2005 (ciso tool for PSP homebrew); CSOv2 added later for larger/PS2 images |
| Latest version | CSO v2 (extends the original CISO header for >2 GB images and additional block flags); ZSO is a Zlib→LZ4 variant |
| Specification | github.com |
CSO conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about CSO files.