Page 1 of 1

Musketeers 3 (pc) *.gdp Archives

Posted: Tue Dec 27, 2011 5:05 pm
by Tosyk
Hi all,
can anyone help me to unpack *.gdp archives?

samples: >>SMALL<< | >>MIDDLE<<

Re: Musketeers 3 (pc) *.gdp Archives

Posted: Tue Dec 27, 2011 10:17 pm
by aluigi
experimental and ugly script... but works:

Code: Select all

# Musketeers 3
# script for QuickBMS http://quickbms.aluigi.org

comtype lzf
idstring "GDP"
set PATH string ""
set NAME string ""
get xPATH_NEXT asize
callfunction EXTRACT

startfunction EXTRACT
    math PATH_NEXT = xPATH_NEXT
    string PATH += NAME
    string PATH += /
    for
        savepos MYOFF
        if MYOFF >= PATH_NEXT
            break
        endif

        get TYPE byte
        if TYPE == 4
            get ENTRY_SIZE long
            get xPATH_NEXT long
            get PATH_PREV long
            get NAME string
            if xPATH_NEXT == 0
                string PATH += NAME
                string PATH += /
            else
                callfunction EXTRACT
            endif
        else
            get ENTRY_SIZE long
            get NEXT long
            get OFFSET long
            get SIZE long
            get DUMMY byte
            get TSTAMP longlong
            get XSIZE long
            get DUMMY long
            get DUMMY long
            get NAME string
            set FNAME string PATH
            string FNAME += NAME
            if TYPE & 0x80
                clog FNAME OFFSET SIZE XSIZE
            else
                log FNAME OFFSET SIZE
            endif
            math OFFSET += SIZE
            goto OFFSET
        endif
    next
endfunction