Page 1 of 1

[HELP] Xmem decompression error with MC360 chunk data

Posted: Sat Apr 03, 2021 5:22 pm
by theunholyone
The data can be decompresses using the official XDK Xmemdecompress API but fails with MSPACK_ERR_DECRUNCH when using quickbms implementation in Linux or Mac, which uses libmspack lzx_decompress with window size 17 and a modified read function from UEViewer.
The file does not use native compression and has a standard 0xFF header.

(libmspack impl: https://github.com/kyz/libmspack/blob/m ... ack/lzxd.c)
(UEViewer modified sys_read function https://github.com/gildor2/UEViewer/blo ... on.cpp#L90)

The script used is the following:

Code: Select all

endian big
comtype xmemdecompress

get ZSize long
get Size long
math ZSize &= 0x7fffffff
clog result Offset ZSize Size
And the file is: https://www.mediafire.com/file/5od3897o ... k.dat/file

For clarification, all other types of files such as savegames decompress perfectly, but all chunk data that I've tried fails. I'm going to try debug or at least identify the problematic lzx blocks, but I thought posting it here would be a good idea in case someone has any clue of what might be happening. :keke:

(Crossposting from ZenHax: https://zenhax.com/viewtopic.php?f=9&t=15062)

Re: [HELP] Xmem decompression error with MC360 chunk data

Posted: Sun May 02, 2021 11:47 am
by DKDave
It is standard xmemlzx. If you use offset + 8 as the starting point, it will work. I'm not sure what 'Size' refers to, but the decompressed size is 0x21BF of that chunk.

Re: [HELP] Xmem decompression error with MC360 chunk data

Posted: Wed Jun 09, 2021 7:56 pm
by theunholyone
Yes, it is. The issue is that the quickbms implementation that doesn't rely on the XDK (which is the one used in Linux and Mac) fails to decompress the file.