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 |