Bundle (original): Difference between revisions
Split Bundle 2 information into a separate page.
mNo edit summary |
(Split Bundle 2 information into a separate page.) |
||
Line 1:
{{hatnote|This page is about the original Bundle format, used only during development. For the version used in retail titles, see [[Bundle 2]].}}
The Bundle container is the core file format used in development builds of Burnout 5/Paradise, Black (Xbox 360), and
The
= Overview =
Bundles are used for nearly every asset in Burnout Paradise
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
Bundle debug data is also important to understand. Sometimes called Bundle imports,
= Memory types =
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:
# Main Memory
# Disposable
Line 24 ⟶ 21:
# Disposable uninitialized
▲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.
== CgsResource::BundleHeaderBase ==
=== Bundle ===
{| class="wikitable"
Line 42 ⟶ 34:
| 0x0 || 0x4 || char[4] || macMagicNumber || Bundle magic || bndl
|-
| 0x4 || 0x4 || uint32_t || muVersion || Bundle version || 3
|-
| 0x8 || 0x4 || uint32_t || muResourceEntriesCount || Number of resources in the bundle ||
|-
| 0xC || 0x28 || [[#Unknown0 | Unknown0]][5] || || Size and alignment of each chunk ||
|-
| 0x34 || 0x14 || uint32_t[5] || || Memory address of each chunk ||
Line 58 ⟶ 50:
| 0x54 || 0x4 || uint32_t || muResourceDataOffset || Resource data offset ||
|-
| 0x58 || 0x4 || uint32_t || muPlatform || Platform the bundle was built for || See [[
|}
Line 70 ⟶ 62:
| 0x4 || 0x4 || uint32_t || muImportOffset || Bundle imports offset ||
|-
| 0x8 || 0x4 || uint32_t || muResourceTypeId || Resource type || See [[
|-
| 0xC || 0x28 || [[#Unknown0 | Unknown0]][5] || mauSizeAndAlignmentOnDisk || ||
|-
| 0x34 || 0x28 || [[#Unknown0 | Unknown0]][5] || mauDiskOffset || Offsets in bundle || Alignment is unused (always 1)
|-
| 0x5C || 0x14 || uint32_t[5] || || Memory addresses || Swapped endian
Line 86 ⟶ 78:
| 0x0 || 0x4 || uint32_t || muImportCount || Number of imports ||
|-
| 0x8 || || || || Import entries || Aligned 8. See [[#ImportEntry | ImportEntry]]
|}
Line 94 ⟶ 86:
! Offset !! Size !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[Common Data Types (Burnout Paradise)#CgsResourceID | ID]] || mResourceId || Resource name CRC32 ||
|-
| 0x8 || 0x4 || uint32_t || muOffset || ||
Line 112 ⟶ 104:
|}
== CgsResource::BundleHeaderV4 ==
=== Bundle (Additions) ===
{| class="wikitable"
|-
! Offset !! Size !! Type !! Name !! Description !! Comments
|-
| 0x5C || 0x4 || uint32_t || muFlags || Bundle flags || See [[
|-
| 0x60 || 0x4 || uint32_t || || Number of compressed resources ||
Line 133 ⟶ 125:
|}
== CgsResource::BundleHeaderV5 ==
=== Bundle (Additions) ===
{| class="wikitable"
|-
Line 144 ⟶ 136:
|}
=
===
{| class="wikitable"
|-
|-
| ? || 1 || PC
|-
| ? || 2 || Xbox 360
|-
| ? || 3 || PlayStation 3
|}
===
{| class="wikitable"
|-
|-
| IsCompressed || 0x1 || Resources are zlib compressed
| 0x38 || 0x4 || uint32_t || muResourceTypeId || Resource type || See [[Resource Types (Burnout Paradise)|Resource Types]]▼
|}
===
▲
|