Format ‐ Bank Table - waffleoRai/zeqer64 GitHub Wiki

Zeqer Bank Table

The bank (or font) table stores metadata for soundbanks/soundfonts in workspace.

Byte Order: Big-Endian

Current Version: 4 (As of 2023/07/31)

File Format

Header

Header Size: 0x10

Offset Type Size Field Name Description
0x00 char[8] 8 Magic Number Identifier ("zeqrBNKt")
0x08 u16 2 Flags (Reserved)
0x0A s16 2 Version File version stored as a short.
0x0C s32 4 Entry Count Number of entries in the table.

Entry Format

Offset Type Size Field Name Description Versions
0x00 u32 4 UID Bank/font instance ID. Should be unique for all banks.*
0x04 u32 4 Flags Flags for marking usage information (see below)
0x08 u8[16] 16 MD5 MD5 sum of font data at last save (with sample links using UIDs, not offsets)
0x18 s8 1 Instrument Count Number of standard instrument slots in output font.
0x19 s8 1 Percussion Count Number of percussion slots in output font.
0x1A s16 2 SFX Count Number of sound effect slots in output font.
0x1C s8 1 Medium Medium enum (See specific page for meaning)
0x1D s8 1 Cache Policy Cache policy enum (See specific page for meaning)
0x1E s8 1 Wave Archive 1 Index of linked wave archive (samplebank) on ROM.
0x1F s8 1 Wave Archive 2 Index of secondary linked wave archive (samplebank) on ROM.
0x20 u64 8 Date Created Timestamp (epoch seconds) for record creation.
0x28 u64 8 Date Modified Timestamp (epoch seconds) for last modification.
0x30 VLS 2x2 Var Name Name of sample (UTF8).
Var VLS 2x2 Var Tag String Semicolon delimited list of tags stored as single string (UTF8). 2+
Var VLS 2x2 Var Enum Stem String to be used as basis for macro name in decomp build compatible output (ASCII). 3+

* UIDs of 0x00000000 (0) and 0xFFFFFFFF (-1 signed) denote an empty UID field.

Flags

Bit Field Versions
0 Is Custom 4+
1 In OoT 4+
2 In MM 4+