Obscure 2 HVP: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks (→Games) |
imported>Ikskoks |
||
| Line 11: | Line 11: | ||
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;"> | <div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;"> | ||
<pre> | <pre> | ||
// | // HVP file format | ||
// Obscure 2 (PC) | |||
// little endian | |||
// header | |||
4 bytes (uint32) - signature // 262144 (00 00 04 00) | |||
4 bytes (uint32) - zero // 0 | |||
4 bytes (uint32) - number of entries in directory | |||
4 bytes (uint32) - directory CRC32 | |||
// directory (24 bytes per entry) | |||
number_of_entries * | |||
{ | |||
4 bytes (uint32) - entry name CRC32 value // e.g 0xB4DABE2 for "jemmy2_pc.zwo" file | |||
4 bytes (uint32) - entry type // 0 - uncompressed file/asset | |||
// 1 - compressed file/asset | |||
// 4 - directory | |||
if ENTRY_TYPE in (0, 1): | |||
4 bytes (uint32) - unknown checksum | |||
4 bytes (uint32) - file uncompressed size | |||
4 bytes (uint32) - file offset | |||
4 bytes (uint32) - file compressed size | |||
endif | |||
if ENTRY_TYPE == 4: | |||
4 bytes (uint32) - zero // 0 | |||
4 bytes (uint32) - zero // 0 | |||
4 bytes (uint32) - number of sub-entries (files or directories) | |||
4 bytes (uint32) - index of first sub-entry | |||
endif | |||
} | |||
// data | |||
number_of_files * | |||
{ | |||
x bytes - file data | |||
} | |||
</pre> | </pre> | ||
</div> | </div> | ||
Revision as of 20:30, 12 December 2022
Back to index | Edit this page
HVP
- Format Type : Archive
- Endian Order : Little Endian
- Signature : 262144 (00 00 04 00)
Format Specifications
// HVP file format
// Obscure 2 (PC)
// little endian
// header
4 bytes (uint32) - signature // 262144 (00 00 04 00)
4 bytes (uint32) - zero // 0
4 bytes (uint32) - number of entries in directory
4 bytes (uint32) - directory CRC32
// directory (24 bytes per entry)
number_of_entries *
{
4 bytes (uint32) - entry name CRC32 value // e.g 0xB4DABE2 for "jemmy2_pc.zwo" file
4 bytes (uint32) - entry type // 0 - uncompressed file/asset
// 1 - compressed file/asset
// 4 - directory
if ENTRY_TYPE in (0, 1):
4 bytes (uint32) - unknown checksum
4 bytes (uint32) - file uncompressed size
4 bytes (uint32) - file offset
4 bytes (uint32) - file compressed size
endif
if ENTRY_TYPE == 4:
4 bytes (uint32) - zero // 0
4 bytes (uint32) - zero // 0
4 bytes (uint32) - number of sub-entries (files or directories)
4 bytes (uint32) - index of first sub-entry
endif
}
// data
number_of_files *
{
x bytes - file data
}
Notes and Comments
- Some files are compressed with LZO / LZO1X compression.
- Entry names are hashed with CRC32 checksum.
Games
List of games using this file format:
- Obscure II / Obscure: The Aftermath (PC/PS2) (*.HVP)
QuickBMS Script
Not written yet.
Compatible Programs