Bundle (original): Difference between revisions
Updated layout and some wording in the page to make it more accurate and understandable.
(Added overview section and moved enumerations to subpage, along with other miscellaneous changes and fixes.) |
(Updated layout and some wording in the page to make it more accurate and understandable.) |
||
Line 12:
While the header contains some valuable data, such as the flags and chunk offsets, the majority of relevant information is in resource entries, which store the ID, uncompressed and compressed size, alignment, relative offset, and type of each resource in each chunk. These also store the import offsets, which enable importing specific data from other resources.
Bundle debug data is also important to understand. Sometimes called Bundle imports, this was originally only available in development builds but
=
Across all Bundle versions, a common theme is the use of separate data chunks to define what memory type resources are loaded into. These chunks are as follows:
Line 32 ⟶ 31:
Keep these in mind when viewing the specs below.
The original Bundle format's versions were treated more like additions to the previous version. Thus, rather than a full structure for each, only their additions are described here.
=== Bundle ===
{| class="wikitable"
|-
Line 46:
| 0x8 || 0x4 || uint32_t || muResourceEntriesCount || Number of resources in the bundle ||
|-
| 0xC || 0x28 ||
|-
| 0x34 || 0x14 || uint32_t[5] || || Memory address of each chunk ||
Line 61:
|}
===
{| class="wikitable"
|-
! Offset !! Size !! Type !! Name !! Description !! Comments
|-
|
|-
|
|-
|
|-▼
|-▼
| 0x34 || 0x28 ||
|-▼
| 0x5C || 0x14 || uint32_t[5] || || Memory addresses || Swapped endian▼
|}
===
{| class="wikitable"
|-
! Offset !! Size !! Type !! Name !! Description !! Comments
|-
|
|-
|
|}
===
{| class="wikitable"
|-
! Offset !! Size !! Type !! Name !! Description !! Comments
|-
| 0x0 ||
|-
|
|-
|
▲|-
▲| 0xC || 0x28 || SizeAndAlignment[5] || mauSizeAndAlignmentOnDisk || ||
▲|-
▲| 0x34 || 0x28 || SizeAndAlignment[5] || mauDiskOffset || Offsets in bundle || Alignment is unused (always 1)
▲|-
▲| 0x5C || 0x14 || uint32_t[5] || || Memory addresses || Swapped endian
|}
This structure contains fields for size and alignment, though alignment sometimes goes unused.
{| class="wikitable"
|-
! Offset !! Size !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || uint32_t ||
|-
|
|}
=== Bundle ===
{| class="wikitable"
|-
! Offset !! Size !! Type !! Name !! Description !! Comments
|-
|
|-
|
|-
|
|}
{| class="wikitable"
|-
! Offset !! Size !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x28 ||
|}
=== Bundle ===
{| class="wikitable"
|-
! Offset !! Size !! Type !! Name !! Description !! Comments
|-
|
|-
|
|}
===
{| class="wikitable"
|-
Line 166 ⟶ 167:
|}
===
{| class="wikitable"
|-
Line 193:
|}
{| class="wikitable"
|-
|