compression LZX's variation

Discussion in 'C' started by Marcoto, Mar 31, 2010.

  1. Marcoto

    Marcoto New Member

    Joined:
    Mar 31, 2010
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    Hello, I would like to know if someone can help me to do a bookshop for unpack a few files of textures or at least, that it(he,she) throws a bit of light and indicates me like to begin.
    Pardon for the translations of goolge, they are pernicious...

    Every GTAIV resource (xtd-textures for example) has got following stucture:
    4 bytes - Magic ('RSC')
    4 bytes - Type (version - textures has "7")
    4 bytes - Flags
    <<Data in ZLIB on PC and LZX on XBox360>>
    From 'flags' value can be calculated sizes of SysSegment and GpuSegment of unpacked data.
    Delphi:
    Code:
    CpuSegSiz := (flags and $7FF) shl (((flags shr 11) and $F) + 8);
      GpuSegSiz := ((flags shr 15) and $7FF) shl (((flags shr 26) and $F) +  8);
    C#:
    Code:
    uint systemSegSize = (flags & 0x7FF) << (((flags >> 11)  & 0xF) + 8);
    uint gpuSegSize = ((flags >> 15) & 0x7FF)  << (((flags >> 26) & 0xF) + 8);
    Of course on PC everything is very easy because of primitive compression, but I dont know how to work with X360 data. Here it is archive which includes three examples of texture RSC.

    I believe that the compression is LZX's variation.
    Thanks
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice