Format ‐ Audio Build (abld) - waffleoRai/zeqer64 GitHub Wiki

Zeqer Audio Build

An audio build (.abld) binary file stores a ROM audio build specification. In other words, it notes which samples, soundfonts/banks, and sequences to include in a single audio build. This file was designed to be read serially at once.

Byte Order: Big-Endian

Current Version: 2 (As of 2023/08/05)

Format

File

Offset Type Size Field Name Description Versions
0x00 char[4] 4 Magic Number Identifier ("aBld")
0x04 u16 2 Flags Flags providing information about build. See below for specifics.
0x06 s16 2 Version File type version
0x08 u64 8 Date Created Timestamp of build creation (Epoch seconds) 2+
0x10 u64 8 Date Modified Timestamp of last modification (Epoch seconds) 2+
0x18 VLS 2x2 Var Build Name Display name of build (UTF8). Offset at 0x08 for version 1
Var VLS 2x2 Var Base ROM ID [Injections ONLY] Zeqer ID of target ROM (ASCII). 2+
Var s16 2 Seq Count Number of sequence slots used in build.
Var SeqRec[n] Var Seq Record Table Info about sequences to include.
Var s16 2 Bank Count Number of soundfont/soundbank slots used in build.
Var BankRec[n] 8n Bank Record Table Info about fonts/banks to include.
Var s16 2 Wave Archive Count Number of wave archive/samplebank slots used in build. (Or samples, if injection)
Var WarcRec[n] Var Wave Archive Record Table Info about wave archives/samplebanks to include.

Seq Record

Offset Type Size Field Name Description
0x00 u32 4 UID UID of sequence to include.
0x04 s8 1 Medium Medium override.
0x05 s8 1 Cache Policy Cache policy override.
0x06 s16 2 Bank Count Number of linked soundbanks/soundfonts.
0x08 u32[n] 4n Bank UIDs UIDs of linked banks.

Bank Record

Offset Type Size Field Name Description
0x00 u32 4 UID UID of bank/font to include.
0x04 s8 1 Medium Medium override.
0x05 s8 1 Cache Policy Cache policy override.
0x06 s8 1 Wave Archive 1 Index within build of linked wave archive.
0x07 s8 1 Wave Archive 2 Index within build of second linked wave archive, or -1 if not used.

Wave Archive Record

Offset Type Size Field Name Description
0x00 u16 2 Sample Count / Ref Flag Reference flag or number of samples in this archive.*
Var VLS 2x2 Var Archive Name Display name for archive. (UTF8)
Var VLS 2x2 Var Enum String Enum string to use for recomp outputs (ASCII).
Var s8 1 Medium Medium override.
Var s8 1 Cache Policy Cache policy override.
Var u32[n] 4n Sample UIDs UIDs of sound samples to include in archive, in order.

Seq Record (Injection)

Offset Type Size Field Name Description
0x00 u32 4 Slot Index Index of sequence slot to replace.
0x04 u32 4 UID UID of sequence to include.
0x08 s8 1 Medium Medium override.
0x09 s8 1 Cache Policy Cache policy override.
0x0A s16 2 Bank Count Number of linked soundbanks/soundfonts.
0x0C u32[n] 4n Bank UIDs UIDs of linked banks.

Bank Record (Injection)

Offset Type Size Field Name Description
0x00 u32 4 Slot Index Index of bank/font slot to replace.
0x04 u32 4 UID UID of bank/font to include.
0x08 s8 1 Medium Medium override.
0x09 s8 1 Cache Policy Cache policy override.
0x0A s8 1 Wave Archive 1 Index within build of linked wave archive.
0x0B s8 1 Wave Archive 2 Index within build of second linked wave archive, or -1 if not used.

Wave Record (Injection)

Offset Type Size Field Name Description
0x00 u32 4 UID UID of wave to include.

*If the top bit is set, then the archive slot is a reference to another archive. In this case, the structure should be read as if there were zero samples.

Flags & Enums

ABLD Header Flags

Bit(s) Field Versions
15 OoT Compatible?
14 (Reserved)
13 - 12 TV Type Enum
11 - 1 (Reserved)
0 Injection? 2+

TV Type Enum

Value Name
0 PAL
1 NTSC
2 MPAL