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

Endian Order:Little Endian
Compression:None
Encryption:None


This format is used by the following Games:
Star Wars: Episode 3: Revenge Of The Sith [PS2]*.pak


This is the format specification information:
 
// ARCHIVE HEADER
  4 - Unknown
  4 - null
  4 - Unknown (1)
  4 - Number of Files in Block 1?
  4 - Number of Files in Block 2?
  4 - File Data 1 Offset
  4 - File Data 1 Length
  4 - Filename Directory Length
  4 - null
  4 - Filename Directory Length
  4 - Number of Filenames?
  4 - Number of Filename Directory Offsets
  
// FILENAME OFFSETS DIRECTORY
  // for each filename directory offset
    4 - Filename Offset (relative to the start of the Filename Directory)

// FILENAME DIRECTORY
  // for each filename (there are more than the number of entries in the filename offsets directory)
    X - Filename
    1 - null Filename Terminator

X - Unknown (more filenames and stuff, looks like a directory structure)

// UNKNOWN FILE DATA (not sure how to find this offset)
  // for each file in this section
    4 - Unknown (1)
    4 - This Offset [+4]
    4 - File Length (including all these header fields)
    4 - File Length (data only)
    4 - null
    4 - Filename Length
    X - Filename
    8 - null
    4 - Unknown
    12 - Padding (all byte 255)
    0-4 - null Padding to a multiple of 4 bytes
    X - File Data
  

// FILE DATA 1
  // for each file in this section
    4 - File Length
    X - File Data (starts with the name, null terminated, but it actually part of the file data)
    12 - null
    
// FILE DATA 2
  // for each file in this section
    4 - Unknown (1)
    4 - This Offset [+4]
    4 - File Length (including all these header fields)
    4 - File Length (data only)
    4 - null
    4 - Filename Length
    X - Filename
    8 - null
    4 - Unknown
    if (FileLengthDataOnly == 0){
      4 - Padding (all byte 255)
      4 - File Offset (relative to the start of File Data 1)
      4 - File Length (including the 4-byte header, but not including the padding)
      }
    else {
      12 - Padding (all byte 255)
      X - 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.