Musketeers 3 (pc) *.gdp Archives

The Original Forum. Game archives, full of resources. How to open them? Get help here.
Post Reply
User avatar
Tosyk
double-veteran
double-veteran
Posts: 1007
Joined: Thu Oct 22, 2009 10:24 am
Location: Russia, Siberia
Has thanked: 254 times
Been thanked: 131 times
Contact:

Musketeers 3 (pc) *.gdp Archives

Post by Tosyk »

Hi all,
can anyone help me to unpack *.gdp archives?

samples: >>SMALL<< | >>MIDDLE<<
Thank you for all you do here
my blog | my forum
User avatar
aluigi
VVIP member
VVIP member
Posts: 1916
Joined: Thu Dec 08, 2005 12:26 pm
Location: www.ZENHAX.com
Has thanked: 4 times
Been thanked: 654 times
Contact:

Re: Musketeers 3 (pc) *.gdp Archives

Post 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
Post Reply