This is the specifications for the archive file which is handled by the Game Extractor plugin Archive_P_DFPF.

Endian Order:Big Endian
Compression:ZLib
Encryption:None


This format is used by the following Games:
Brutal Legend *.~p
Costume Quest *.~p
Costume Quest 2 *.~p
Headlander *.~p


This is the format specification information:
 
// ~H FILE...
  
  // ARCHIVE HEADER
    4 - Header (dfpf)
    4 - Version? (5) (LITTLE ENDIAN)
    4 - null
    4 - Type Names Directory Offset (2048)
    4 - null
    4 - Filename Directory Offset
    4 - Number of Types
    4 - Filename Directory Length
    4 - Number of Files
    4 - Unknown
    12 - null
    4 - Unknown
    4 - null
    4 - Details Directory Offset
    4 - null
    4 - Padding Directory Offset
    4 - null
    4 - Header File Length [+16]
    4 - Unknown (1)
    4 - Unknown
    
    0-2047 - null Padding to a multiple of 2048 bytes
  
  // TYPE NAMES DIRECTORY
    // for each type
      4 - Type Name Length (including null terminator)
      X - Type Name
      1 - null Type Name Terminator
      4 - Unknown
      4 - Hash?
      4 - null
      
    0-3 - Padding to a multiple of 4 bytes (padding byte 204)
    
  // DETAILS DIRECTORY
    // for each file (16 bytes per entry)
      3 - Compressed File Length
      3 - Filename Offset
      2 - Flags
      3 - File Offset
      1 - null
      3 - Compressed File Length
      1 - File Type and Compression Type
      
           
  // FILENAME DIRECTORY
    // for each file
      X - Filename
      1 - null Filename Terminator
      
    0-3 - Padding to a multiple of 4 bytes (using byte 204 for the padding)
    
  // PADDING DIRECTORY
    X - Padding
    
    
    
// ~P FILE...
  // for each file
    X - File Data (ZLib Compression)


These are the accompanying notes and further information:
 
The ~H file contains the directory, the ~P file contains the file data


Game Extractor is able to read files of this type, as well as files from thousands of other games. To give it a try, download Game Extractor (Basic Version) for free, and see what it can do.

For further information on this format, refer to the source code on our GitHub repository.