Transworld Snowboarding HPF: Difference between revisions
Jump to navigation
Jump to search
(new format) |
imported>Ikskoks m (Ikskoks moved page Transworld Snowboarding to Transworld Snowboarding HPF) |
||
| (7 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
[[GRAFs| | * [[GRAFs|Return to the list of games]] | ||
Choose archive extension: | Choose archive extension: | ||
== HPF == | == HPF == | ||
| Line 11: | Line 10: | ||
=== Format Specifications === | === Format Specifications === | ||
<tt><b> | |||
char {32} - Header <font color="purple">("HMG_PACKED_FILE" + null + spaces to fill)</font> <br> | |||
char {256} - Absolute Archive Path <font color="purple">(null terminated, spaces to fill)</font> <br> | |||
uint32 {4} - Number Of Files <br> | |||
<br> | |||
<font color="blue"> ''' // for each file (80 bytes for each entry) ''' </font> <br> | |||
: uint32 {4} - File/Directory Identifier <font color="purple">(0/3)</font> <br> | |||
<br> | |||
: <font color="blue"> ''' if (FileDirID == 0){ ''' </font> <br> | |||
:: <font color="blue"> ''' // file ''' </font> <br> | |||
:: uint32 {4} - null <br> | |||
:: uint32 {4} - File Offset <font color="purple">(relative to the start of the file data)</font> <br> | |||
:: uint32 {4} - File Length <br> | |||
:: char {64} - Filename <font color="purple">(null terminated, filled with spaces after the null)</font> <br> | |||
:: <font color="blue"> ''' } ''' </font> <br> | |||
: <font color="blue"> ''' else if (FileDirID == 3){ ''' </font> <br> | |||
:: <font color="blue"> ''' // directory ''' </font> <br> | |||
:: uint32 {4} - null <br> | |||
:: uint32 {4} - File ID <font color="purple">(incremental from 48)</font> -OR- Root Directory Identifier <font color="purple">(=<font color="purple">(byte)</font>1)</font> <br> | |||
<br> | |||
:: <font color="blue"> ''' if (fileID == (byte)1){ ''' </font> <br> | |||
::: uint32 {4} - File ID <font color="purple">(incremental from 48)</font> <br> | |||
::: <font color="blue"> ''' } ''' </font> <br> | |||
:: <font color="blue"> ''' else { ''' </font> <br> | |||
::: uint32 {4} - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br> | |||
::: <font color="blue"> ''' } ''' </font> <br> | |||
<br> | |||
:: char {64} - Directory Name <font color="purple">(null terminated, filled with spaces after the null)</font> <br> | |||
:: <font color="blue"> ''' } ''' </font> <br> | |||
<br> | |||
byte {X} - File Data <br> | |||
</b></tt> | |||
=== MultiEx BMS === | === MultiEx BMS === | ||
<pre>IDString 0 HMG_PACKED_FILE ; | <pre>IDString 0 HMG_PACKED_FILE ; | ||
| Line 104: | Line 73: | ||
Next T ;</pre> | Next T ;</pre> | ||
=== Supported Programs === | |||
* [[Game Extractor|Game Extractor]]<br> | |||
< | * [[MultiEx Commander]] | ||
[[Category:File Format]] | |||
Latest revision as of 23:48, 24 January 2021
Choose archive extension:
HPF
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
char {32} - Header ("HMG_PACKED_FILE" + null + spaces to fill)
char {256} - Absolute Archive Path (null terminated, spaces to fill)
uint32 {4} - Number Of Files
// for each file (80 bytes for each entry)
- uint32 {4} - File/Directory Identifier (0/3)
- if (FileDirID == 0){
- // file
- uint32 {4} - null
- uint32 {4} - File Offset (relative to the start of the file data)
- uint32 {4} - File Length
- char {64} - Filename (null terminated, filled with spaces after the null)
- }
- // file
- else if (FileDirID == 3){
- // directory
- uint32 {4} - null
- uint32 {4} - File ID (incremental from 48) -OR- Root Directory Identifier (=(byte)1)
- // directory
- if (fileID == (byte)1){
- uint32 {4} - File ID (incremental from 48)
- }
- uint32 {4} - File ID (incremental from 48)
- else {
- uint32 {4} - Unknown (1)
- }
- uint32 {4} - Unknown (1)
- if (fileID == (byte)1){
- char {64} - Directory Name (null terminated, filled with spaces after the null)
- }
- char {64} - Directory Name (null terminated, filled with spaces after the null)
byte {X} - File Data
MultiEx BMS
IDString 0 HMG_PACKED_FILE ; Set S Long 32 ; GoTo S 0 ; Get OriginalName String 0 ; Math S += 256 ; GoTo S 0 ; Get Entries Long 0 ; SavePos S 0 ; Math Entries *= 80 ; Math S += Entries ; Get AType Long 0 ; Get Unknown Long 0 ; Get Unknown Long 0 ; Get FileNum Long 0 ; SavePos J 0 ; Math J += 64 ; GoTo J 0 ; For T = 1 To FileNum ; Get RType Long 0 ; Get Unknown Long 0 ; Get ROff Long 0 ; Get Size Long 0 ; GetDString Name 64 0 ; Math ROff += S ; Log Name ROff Size 0 0 ; Next T ;