I will do some delving into the bin, I haven't read over the Lempel-Ziv compression algorithm and its not my area of expertise but i'll take a look at it. Also those c files are useless for recompilation unless you have the official Nintendo Dev Kit and the missing PM header files. They may just tell me how to decode the data though, if i'm really lucky....
I found something simular, it doesn't tell me exactly how to decode it, as I am fairly lazy this time of year. (holiday time)
See this here: g_lzss_text is of length 4096+32
CODEu32 decodeLZ(void *in_src, u32 in_size, void **in_ptr)
{
ÂÂÂÂint i, j, k, r, c, n, f;
ÂÂÂÂu32 size, out_size;
ÂÂÂÂunsigned int flags;
ÂÂÂÂvoid *ptr;
ÂÂÂÂu8 *rd, *wr;
ÂÂÂÂif (!memcmpBDS((s8 *)in_src, (s8 *)"LZ08", 4))
ÂÂÂÂ{
ÂÂÂÂÂÂÂÂ// 9bit
ÂÂÂÂÂÂÂÂn = 512;
ÂÂÂÂÂÂÂÂf = 130;
ÂÂÂÂ} else
ÂÂÂÂif (!memcmpBDS((s8 *)in_src, (s8 *)"LZ12", 4))
ÂÂÂÂ{
ÂÂÂÂÂÂÂÂ// 12bit
ÂÂÂÂÂÂÂÂn = 4096;
ÂÂÂÂÂÂÂÂf = 18;
ÂÂÂÂ} else {
ÂÂÂÂÂÂÂÂ// LZSS
ÂÂÂÂÂÂÂÂ*in_ptr = in_src;
ÂÂÂÂÂÂÂÂreturn in_size;
ÂÂÂÂ}
ÂÂÂÂmemcpyBDS((s8 *)&size, (s8 *)in_src+4, 4);
ÂÂÂÂout_size = size;
ÂÂÂÂrd = (u8 *)((int)in_src + 8);
ÂÂÂÂptr = mallocBDS((u32)size);
ÂÂÂÂwr = (u8 *)ptr;
ÂÂÂÂin_size -= 8;
ÂÂÂÂfor (i=0; i 0/*TRUE*/)
ÂÂÂÂ{
ÂÂÂÂÂÂÂÂif (((flags >>= 1) & 256) == 0)
ÂÂÂÂÂÂÂÂ{
ÂÂÂÂÂÂÂÂÂÂÂÂc = *rd;
ÂÂÂÂÂÂÂÂÂÂÂÂrd++;
ÂÂÂÂÂÂÂÂÂÂÂÂflags = (unsigned int)(c | 0xff00);
ÂÂÂÂÂÂÂÂ}
ÂÂÂÂÂÂÂÂif (flags & 1)
ÂÂÂÂÂÂÂÂ{
ÂÂÂÂÂÂÂÂÂÂÂÂ*wr = *rd;
ÂÂÂÂÂÂÂÂÂÂÂÂrd++;
ÂÂÂÂÂÂÂÂÂÂÂÂg_lzss_text[r++] = *wr;
ÂÂÂÂÂÂÂÂÂÂÂÂwr++;
ÂÂÂÂÂÂÂÂÂÂÂÂsize--;
ÂÂÂÂÂÂÂÂÂÂÂÂif (size == 0)
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂbreak;
ÂÂÂÂÂÂÂÂÂÂÂÂr &= (n - 1);
ÂÂÂÂÂÂÂÂ} else {
ÂÂÂÂÂÂÂÂÂÂÂÂi = *rd;
ÂÂÂÂÂÂÂÂÂÂÂÂrd++;
ÂÂÂÂÂÂÂÂÂÂÂÂj = *rd;
ÂÂÂÂÂÂÂÂÂÂÂÂrd++;
ÂÂÂÂÂÂÂÂÂÂÂÂif (n == 4096)
ÂÂÂÂÂÂÂÂÂÂÂÂ{
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂi |= ((j & 0xf0)