Seeing how the Gamecube-Linux kernel patches now include a gcdvdfs driver, I’ve tried examining files on Gamecube discs, particularly Pokemon Colosseum for the purposes of model rips. Sadly, however, this seems to not be so great, as even though the FSYS files have been described (Search for gcfsysd on Google), the enclosed compression ‘files’ marked with a LZSS header are unknown. Oh well…
It’s fairly obvious that they have the format:
struct lzss_file {
char magic[4]; // "LZSS"
int decompressedSize;
int compressedSize;
int empty;
unsigned char data[compressedSize - 16]; // Data... I think.
};
While it’s definately compressed, and the header suggests LZSS, the actual implementation of LZSS is unknown. Even if the size gets within 16 bytes by using it with some fiddling with constants, it keeps filling with pre-initialized data, and as such, isn’t properly working (as LZSS should rely only on the bytes given than bytes filled in by the decompression algorithm before hand).