Total Annihilation HPI: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Me22
imported>Ikskoks
No edit summary
 
(10 intermediate revisions by 4 users not shown)
Line 9: Line 9:
<tt><b>
<tt><b>
char {4}&nbsp;&nbsp;&nbsp;&nbsp; - Header <font color="purple">(HAPI)</font> <br>  
char {4}&nbsp;&nbsp;&nbsp;&nbsp; - Header <font color="purple">(HAPI)</font> <br>  
uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>  
uint32 {4}&nbsp;&nbsp; - Type -- <font color="purple">(BANK)</font> if saved game, usually 0x00010000 otherwise <br>  
uint32 {4}&nbsp;&nbsp; - Directory Length <br>  
uint32 {4}&nbsp;&nbsp; - Directory Length <br>  
uint32 {4}&nbsp;&nbsp; - Directory Key <br>  
uint32 {4}&nbsp;&nbsp; - Directory Key <br>  
Line 56: Line 56:


* [[Game Extractor|Game Extractor]]<br>
* [[Game Extractor|Game Extractor]]<br>
* [http://fileuniverse.com/?p=showitem&ID=189 HPI Dump], the original community utility.
* [http://fileuniverse.com/?p=showitem&ID=72 HPI View] & [http://fileuniverse.com/?p=showitem&ID=67 HPI Pack], the most popular community utilities.
* [http://fileuniverse.com/?p=showitem&ID=190 MultiDump] by Dark Rain
* [http://fileuniverse.com/?p=showitem&ID=1984 HPI Edit]
* [http://fileuniverse.com/?p=showitem&ID=1985 HPI Edit for Linux]
[[Category:File Format]]

Latest revision as of 21:50, 21 January 2021

HPI, UFO, CCX, PCK


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


if (directoryFileID == 1){
// go to the name offset
char {X}     - Directory Name
byte {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
char {X}     - Filename
byte {1}     - null Filename Terminator


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


As with all Total Annihilation formats, Visual Designs has the community-written format description.

MultiEx BMS Script

Not written yet

Compatible Programs