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 Black 2 (Xbox 360). It is not used in any retail titles. Each Bundle holds one or more resources (assets) and contains information about each resource, such as its size, type, compression, alignment, and so on.
The Bundle format underwent at least five iterations during its use from early 2006 to early-mid 2007. At present, only files using Bundle version 3, 4, and 5 have been discovered. It was succeeded by the Bundle 2 container.
Separate data chunks are used to define what memory type resources are loaded into. These chunks are platform specific (see base resource types ). Keep these in mind when viewing the structures.
Resources always have data in Main Memory. If the resource is split, headers are loaded into Main Memory, while the other portion is typically loaded into Physical on Xbox 360. In resource documentation, these will be simplified to a "secondary" type. Resources only ever have primary and secondary portions.
Keep these in mind when viewing the structures.
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.
Offset
Length
Type
Name
Description
Comments
0x0
0x4
char[4]
macMagicNumber
Bundle magic
bndl
0x4
0x4
uint32_t
muVersion
Bundle version
3 in base, 4 in V4, 5 in V5
0x8
0x4
uint32_t
muResourceEntriesCount
Number of resources in the bundle
0xC
0x30
BaseResourceDescriptor [6]
Size and alignment of each chunk
0x3C
0x18
uint32_t[6]
Memory address of each chunk
0x54
0x4
uint32_t
Resource IDs offset
0x58
0x4
uint32_t
muResourceEntriesOffset
Resource entries offset
0x5C
0x4
uint32_t
Imports offset
0x60
0x4
uint32_t
muResourceDataOffset
Resource data offset
0x64
0x4
uint32_t
muPlatform
Platform the bundle was built for
See Platform
Offset
Length
Type
Name
Description
Comments
0x0
0x4
char[4]
macMagicNumber
Bundle magic
bndl
0x4
0x4
uint32_t
muVersion
Bundle version
3 in base, 4 in V4, 5 in V5
0x8
0x4
uint32_t
muResourceEntriesCount
Number of resources in the bundle
0xC
0x28
BaseResourceDescriptor [5]
Size and alignment of each chunk
0x34
0x14
uint32_t[5]
Memory address of each chunk
0x48
0x4
uint32_t
Resource IDs offset
0x4C
0x4
uint32_t
muResourceEntriesOffset
Resource entries offset
0x50
0x4
uint32_t
Imports offset
0x54
0x4
uint32_t
muResourceDataOffset
Resource data offset
0x58
0x4
uint32_t
muPlatform
Platform the bundle was built for
See Platform
Offset
Length
Type
Name
Description
Comments
0x0
0x4
char[4]
macMagicNumber
Bundle magic
bndl
0x4
0x4
uint32_t
muVersion
Bundle version
3 in base, 4 in V4, 5 in V5
0x8
0x4
uint32_t
muResourceEntriesCount
Number of resources in the bundle
0xC
0x20
BaseResourceDescriptor [4]
Size and alignment of each chunk
0x2C
0x10
uint32_t[4]
Memory address of each chunk
0x3C
0x4
uint32_t
Resource IDs offset
0x40
0x4
uint32_t
muResourceEntriesOffset
Resource entries offset
0x44
0x4
uint32_t
Imports offset
0x48
0x4
uint32_t
muResourceDataOffset
Resource data offset
0x4C
0x4
uint32_t
muPlatform
Platform the bundle was built for
See Platform
Offset
Length
Type
Name
Description
Comments
0x0
0x4
uint32_t
Resource data memory address
0x4
0x4
uint32_t
muImportOffset
Bundle imports offset
0x8
0x4
uint32_t
muResourceTypeId
Resource type
See ResourceType
0xC
0x30
BaseResourceDescriptor [6]
mauSizeAndAlignmentOnDisk
Resource sizes in bundle Compressed size if compression used
0x3C
0x30
BaseResourceDescriptor [6]
mauDiskOffset
Offsets in bundle
Alignment is unused (always 1)
0x6C
0x18
uint32_t[6]
Memory addresses
Swapped endian
Offset
Length
Type
Name
Description
Comments
0x0
0x4
uint32_t
Resource data memory address
0x4
0x4
uint32_t
muImportOffset
Bundle imports offset
0x8
0x4
uint32_t
muResourceTypeId
Resource type
See ResourceType
0xC
0x28
BaseResourceDescriptor [5]
mauSizeAndAlignmentOnDisk
Resource sizes in bundle Compressed size if compression used
0x34
0x28
BaseResourceDescriptor [5]
mauDiskOffset
Offsets in bundle
Alignment is unused (always 1)
0x5C
0x14
uint32_t[5]
Memory addresses
Swapped endian
Offset
Length
Type
Name
Description
Comments
0x0
0x4
uint32_t
Resource data memory address
0x4
0x4
uint32_t
muImportOffset
Bundle imports offset
0x8
0x4
uint32_t
muResourceTypeId
Resource type
See ResourceType
0xC
0x20
BaseResourceDescriptor [4]
mauSizeAndAlignmentOnDisk
Resource sizes in bundle Compressed size if compression used
0x2C
0x20
BaseResourceDescriptor [4]
mauDiskOffset
Offsets in bundle
Alignment is unused (always 1)
0x4C
0x10
uint32_t[4]
Memory addresses
Swapped endian
This is not a structure as such; rather, it is uint32_t muImportCount
followed by four bytes of padding, then a set of import entries of an amount defined by the aforementioned count.
Offset
Length
Type
Name
Description
Comments
0x0
0x8
ID
mResourceId
Resource name CRC32
0x8
0x4
uint32_t
muOffset
0xC
0x4
padding
rw::BaseResourceDescriptor [ edit | edit source ]
This structure contains fields for size and alignment, though alignment sometimes goes unused.
Offset
Length
Type
Name
Description
Comments
0x0
0x4
uint32_t
m_size
Size or offset
0x4
0x4
uint32_t
m_alignment
Alignment
Offset
Length
Type
Name
Description
Comments
0x5C
0x4
uint32_t
muFlags
Bundle flags
See Flags
0x60
0x4
uint32_t
Number of compressed resources
0x64
0x4
uint32_t
Compression information offset
Offset
Length
Type
Name
Description
Comments
0x0
0x30
BaseResourceDescriptor [6]
mauUncompressedSizeAndAlignment
Uncompressed sizes
Offset
Length
Type
Name
Description
Comments
0x0
0x28
BaseResourceDescriptor [5]
mauUncompressedSizeAndAlignment
Uncompressed sizes
Offset
Length
Type
Name
Description
Comments
0x0
0x20
BaseResourceDescriptor [4]
mauUncompressedSizeAndAlignment
Uncompressed sizes
Offset
Length
Type
Name
Description
Comments
0x68
0x4
uint32_t
No idea what this does
0x6C
0x4
uint32_t
Also no idea what this does
Name
Value
Comments
?
1
PC
?
2
Xbox 360
?
3
PlayStation 3
Name
Value
Comments
IsCompressed
0x1
Resources are zlib compressed
See Resource Types .
Name
Index
main memory
0
disposable
1
uninitialized
2
disposable uninitialized
3
graphics system
4
graphics local
5
Name
Index
main memory
0
disposable
1
physical
2
uninitialized
3
disposable uninitialized
4
Name
Index
main memory
0
disposable
1
uninitialized
2
disposable uninitialized
3