Total Annihilation HPI
HPI, UFO, CCX, PCK
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
char {4} - Header (HAPI)
uint32 {4} - Type -- (BANK) if saved game, usually 0x00010000 otherwise
uint32 {4} - Directory Length
uint32 {4} - Directory Key
uint32 {4} - Main Directory Offset
byte {X} - File Data
// Main Directory
- uint32 {4} - Number Of Files In This Directory
- uint32 {4} - Directory Offset
- // go to this Directory Offset
- // for each file in this directory
- uint32 {4} - Filename Offset
- uint32 {4} - File Offset
- byte {1} - Directory/File ID
- uint32 {4} - Filename Offset
- // for each file in this directory
- if (directoryFileID == 1){
- // go to the name offset
- char {X} - Directory Name
- byte {1} - null Directory Name Terminator
- // go to the name offset
- if (directoryFileID == 1){
- // go to the offset and repeat from "4 - Number Of Files In This Directory"
- }
- // go to the offset and repeat from "4 - Number Of Files In This Directory"
- else {
- // go to the name offset
- char {X} - Filename
- byte {1} - null Filename Terminator
- // go to the name offset
- else {
- // go to the offset
- uint32 {4} - Offset
- uint32 {4} - Length
- byte {1} - Flag
- }
- // go to the offset
As with all Total Annihilation formats, Visual Designs has the community-written format description.
MultiEx BMS Script
Not written yet
Compatible Programs
- Game Extractor
- HPI Dump, the original community utility.
- HPI View & HPI Pack, the most popular community utilities.
- MultiDump by Dark Rain
- HPI Edit
- HPI Edit for Linux