HNM6: Difference between revisions
(→File Format: revisit file header) |
(→IX Chunk: warp chunk) |
||
Line 37: | Line 37: | ||
=== BB Chunk === | === BB Chunk === | ||
Audio continuation. | Audio continuation. | ||
=== IW Chunk === | |||
Video frame, WARP format. | |||
=== IX Chunk === | === IX Chunk === | ||
Video frame. | Video frame, normal format. | ||
== Format modifications == | == Format modifications == |
Revision as of 06:06, 8 September 2012
- Extension: hnm
- Company: CRYO Interactive Entertainment
- Samples:
HNM6 is the latest variant of HNM video format by Cryo. Unlike its previous versions, it has Hi-color video support.
File Format
File consist of a main header, followed by frame chunks. Each frame chunk consist of individual audio and video chunks. All numbers are little-endian.
u8 sig[4] -- file signature, "HNM6" u8 reserved[2] -- usually 0 u8 audioflags -- nonzero value indicates file has APC sound (not authoritative) u8 bpp u16 width u16 height u32 filesize u16 frames -- number of frames u16 reserved2 u32 reserved3 -- usually 0, but sometimes "V107", "V108" - version? u16 speed -- playback speed in fps, may be zero (?assume 15 fps then?) u16 maxbuffer -- number of frame buffers used u32 maxchunk -- max frame chunk size u8 note[16] u8 copyright[16] -- "-Copyright CRYO-"
Each frame chunk begins with u32 chunk size (including this size field), then followed by frame's individual chunks:
u32 chunksize -- chunk size including this field, excluding padding u16 chunkid -- TWOCC chunk id u16 reserved u8 data[] u8 padding[] -- pads chunk to 4-byte boundary
AA Chunk
APC Audio. See CRYO APC
BB Chunk
Audio continuation.
IW Chunk
Video frame, WARP format.
IX Chunk
Video frame, normal format.
Format modifications
At least one known game (Riverworld) uses slightly different HNM6 container format, most likely due to different sound encoding. This format is just a small enhancement of the original, but it's not backward compatible.
Standard HNM6 header continues with additional audio description header:
u32 freq u32 bits u32 channels u32 ? u32 ? u8 copyright[28] -- "HNMS 1.1 by SARRET Hubert\0\0\0" u32 ? -- some initial audio samples? u32 ? u32 ? u32 ?
Each frame chunk followed by an audio chunk, however, this audio chunk size is not counted by frame's chunk size field. Frame chunk format:
u32 sig[4] -- "SOUN" u32 chunksize -- including this preamble u8 data[]