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

Endian Order:Little Endian
Compression:None
Encryption:None


This format is used by the following Games:
Total Annihilation *.ccx
Total Annihilation *.gp3
Total Annihilation *.hpi
Total Annihilation *.ufo


This is the format specification information:
 
4 - Header (HAPI)
4 - Unknown
4 - Directory Length
4 - Directory Key
4 - Main Directory Offset

X - File Data

// Main Directory
  4 - Number Of Files In This Directory
  4 - Directory Offset

  // go to this Directory Offset
    // for each file in this directory
      4 - Filename Offset
      4 - File Offset
      1 - Directory/File ID

      if (directoryFileID == 1){
        // go to the name offset
        X - Directory Name
        1 - null Directory Name Terminator

        // go to the offset and repeat from 4 - Number Of Files In This Directory
        }
      else {
        // go to the name offset
        X - Filename
        1 - null Filename Terminator

        // go to the offset
        4 - Offset
        4 - Length
        1 - Flag
        }


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.