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.
Memory types
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 into Graphics Local on PS3 and Physical on Xbox 360. In resource documentation, these will be simplified to a "secondary" type. Resources only ever have primary and secondary portions. On PS3, some resources' secondary portion may be loaded into Graphics System; in that case, it will be listed separately.
Structures
CgsResource::Bundle
PlayStation 3
Offset
Length
Type
Name
Description
Comments
0x0
0x4
uint32_t
muMagicNumber
Bundle magic
bndl
0x4
0x4
uint32_t
muVersion
Bundle version
3 in base, 4 in V4, 5 in V5
0x8
0x4
uint32_t
muNumResources
Number of resources in the bundle
0xC
0x30
ResourceDescriptor [6]
mBundleResourceDescriptor
Size and alignment of each chunk
0x3C
0x18
Resource [6]
mAllocatedResource
Memory address of each chunk
Set at runtime
0x54
0x4
uint32_t
mHashTableOffset
Resource IDs offset
List of resource IDs
0x58
0x4
uint32_t
mResourceEntriesOffset
Resource entries offset
See ResourceEntry
0x5C
0x4
uint32_t
mImportTablesOffset
Imports offset
See ImportTable
0x60
0x4
uint32_t
mResourceDataOffset
Resource data offset
0x64
0x4
uint32_t
muPlatform
Platform the bundle was built for
See Platform
Xbox 360
Offset
Length
Type
Name
Description
Comments
0x0
0x4
uint32_t
muMagicNumber
Bundle magic
bndl
0x4
0x4
uint32_t
muVersion
Bundle version
3 in base, 4 in V4, 5 in V5
0x8
0x4
uint32_t
muNumResources
Number of resources in the bundle
0xC
0x28
ResourceDescriptor [5]
mBundleResourceDescriptor
Size and alignment of each chunk
0x34
0x14
Resource [5]
mAllocatedResource
Memory address of each chunk
Set at runtime
0x48
0x4
uint32_t
mHashTableOffset
Resource IDs offset
List of resource IDs
0x4C
0x4
uint32_t
mResourceEntriesOffset
Resource entries offset
See ResourceEntry
0x50
0x4
uint32_t
mImportTablesOffset
Imports offset
See ImportTable
0x54
0x4
uint32_t
mResourceDataOffset
Resource data offset
0x58
0x4
uint32_t
muPlatform
Platform the bundle was built for
See Platform
PC
Offset
Length
Type
Name
Description
Comments
0x0
0x4
uint32_t
muMagicNumber
Bundle magic
bndl
0x4
0x4
uint32_t
muVersion
Bundle version
3 in base, 4 in V4, 5 in V5
0x8
0x4
uint32_t
muNumResources
Number of resources in the bundle
0xC
0x20
ResourceDescriptor [4]
mBundleResourceDescriptor
Size and alignment of each chunk
0x2C
0x10
Resource [4]
mAllocatedResource
Memory address of each chunk
Set at runtime
0x3C
0x4
uint32_t
mHashTableOffset
Resource IDs offset
List of resource IDs
0x40
0x4
uint32_t
mResourceEntriesOffset
Resource entries offset
See ResourceEntry
0x44
0x4
uint32_t
mImportTablesOffset
Imports offset
See ImportTable
0x48
0x4
uint32_t
mResourceDataOffset
Resource data offset
0x4C
0x4
uint32_t
muPlatform
Platform the bundle was built for
See Platform
CgsResource::BundleV4ExtendedData
PlayStation 3
Offset
Length
Type
Name
Description
Comments
0x0
0x68
CgsResource::BaseBundleExtendedData
Base class
See Bundle
0x68
0x4
uint32_t
muFlags
Bundle flags
See Flags
0x6C
0x4
uint32_t
muUncompressedDescriptorCount
Number of compressed resources
0x70
0x4
ResourceDescriptor *
mpUncompressedResourceDescriptors
Compression information offset
Xbox 360
Offset
Length
Type
Name
Description
Comments
0x0
0x5C
CgsResource::BaseBundleExtendedData
Base class
See Bundle
0x5C
0x4
uint32_t
muFlags
Bundle flags
See Flags
0x60
0x4
uint32_t
muUncompressedDescriptorCount
Number of compressed resources
0x64
0x4
ResourceDescriptor *
mpUncompressedResourceDescriptors
Compression information offset
PC
Offset
Length
Type
Name
Description
Comments
0x0
0x50
CgsResource::BaseBundleExtendedData
Base class
See Bundle
0x50
0x4
uint32_t
muFlags
Bundle flags
See Flags
0x5C
0x4
uint32_t
muUncompressedDescriptorCount
Number of compressed resources
0x60
0x4
ResourceDescriptor *
mpUncompressedResourceDescriptors
Compression information offset
CgsResource::BundleV5ExtendedData
PlayStation 3
Offset
Length
Type
Name
Description
Comments
0x0
0x74
BundleV4ExtendedData
Base class
0x74
0x4
int32_t
miMainMemAlignment
0x78
0x4
int32_t
miGraphicsMemAlignment
Xbox 360
Offset
Length
Type
Name
Description
Comments
0x0
0x68
BundleV4ExtendedData
Base class
0x68
0x4
int32_t
miMainMemAlignment
0x6C
0x4
int32_t
miGraphicsMemAlignment
PC
Offset
Length
Type
Name
Description
Comments
0x0
0x5C
BundleV4ExtendedData
Base class
0x5C
0x4
int32_t
miMainMemAlignment
0x60
0x4
int32_t
miGraphicsMemAlignment
CgsResource::Bundle::ResourceEntry
PlayStation 3
Offset
Length
Type
Name
Description
Comments
0x0
0x4
void*
mpResource
Resource data memory address
Set at runtime
0x4
0x4
ImportTable *
mpImportTable
Bundle imports offset
0x8
0x4
CgsResource::Type*
mpType
Resource type
Type ID replaced by pointer at runtime. See Resource Types
0xC
0x30
ResourceDescriptor [6]
mSerialisedResourceDescriptor
Resource sizes in bundle Compressed size if compression used
0x3C
0x30
ResourceDescriptor [6]
mSerialisedOffsetResourceDescriptor
Offsets in bundle
Alignment is unused (always 1)
0x6C
0x18
Resource [6]
mSerialisedResource
Memory addresses
Set at runtime
Xbox 360
Offset
Length
Type
Name
Description
Comments
0x0
0x4
void*
mpResource
Resource data memory address
Set at runtime
0x4
0x4
ImportTable *
mpImportTable
Bundle imports offset
0x8
0x4
CgsResource::Type*
mpType
Resource type
Type ID replaced by pointer at runtime. See Resource Types
0xC
0x28
ResourceDescriptor [5]
mSerialisedResourceDescriptor
Resource sizes in bundle Compressed size if compression used
0x34
0x28
ResourceDescriptor [5]
mSerialisedOffsetResourceDescriptor
Offsets in bundle
Alignment is unused (always 1)
0x5C
0x14
Resource [5]
mSerialisedResource
Memory addresses
Set at runtime
PC
Offset
Length
Type
Name
Description
Comments
0x0
0x4
void*
mpResource
Resource data memory address
Set at runtime
0x4
0x4
ImportTable *
mpImportTable
Bundle imports offset
0x8
0x4
CgsResource::Type*
mpType
Resource type
Type ID replaced by pointer at runtime. See Resource Types
0xC
0x20
ResourceDescriptor [4]
mSerialisedResourceDescriptor
Resource sizes in bundle Compressed size if compression used
0x2C
0x20
ResourceDescriptor [4]
mSerialisedOffsetResourceDescriptor
Offsets in bundle
Alignment is unused (always 1)
0x4C
0x10
Resource [4]
mSerialisedResource
Memory addresses
Set at runtime
CgsResource::Bundle::ImportTable
This structure is followed by an ImportEntry array.
Offset
Length
Type
Name
Description
Comments
0x0
0x4
uint32_t
muNumImports
Number of import entries
0x8
0x4
uint32_t
pad1
Padding
CgsResource::Bundle::ImportEntry
Offset
Length
Type
Name
Description
Comments
0x0
0x8
ID
mImportID
Resource name CRC32
0x8
0x4
RwUInt32
muOffset
0xC
0x4
Padding
rw::ResourceDescriptor
PlayStation 3
Xbox 360
PC
rw::BaseResourceDescriptors
PlayStation 3
Xbox 360
PC
rw::BaseResourceDescriptor
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
rw::Resource
PlayStation 3
Offset
Length
Type
Name
Description
Comments
0x0
0x18
BaseResources
Base class
Xbox 360
Offset
Length
Type
Name
Description
Comments
0x0
0x14
BaseResources
Base class
PC
Offset
Length
Type
Name
Description
Comments
0x0
0x10
BaseResources
Base class
rw::BaseResources
PlayStation 3
Offset
Length
Type
Name
Description
Comments
0x0
0x18
BaseResource [6]
m_baseResources
Per type base resource pointers
Xbox 360
Offset
Length
Type
Name
Description
Comments
0x0
0x14
BaseResource [5]
m_baseResources
Per type base resource pointers
PC
Offset
Length
Type
Name
Description
Comments
0x0
0x10
BaseResource [4]
m_baseResources
Per type base resource pointers
Typedefs
rw::BaseResource
Name
Type
Length
Comments
BaseResource
void*
0x4
Enumerations
Platform
Three constants used by the platform field.
Name
Value
Comments
KU_BUNDLE_DX9
1
PC
KU_BUNDLE_X360
2
Xbox 360
KU_BUNDLE_PS3
3
PlayStation 3
CgsResource::EFlags
Name
Value
Comments
E_BUNDLEFLAG_HAS_DEBUG_DATA
0x0
Has a BundleImports resource. This flag does not work correctly.
E_BUNDLEFLAG_COMPRESSED
0x1
Resources are zlib compressed
Base resource types
Anonymous enumeration with name strings.
PlayStation 3
Name
String
Index
BASERESOURCE_MAINMEMORY
main memory
0
BASERESOURCE_DISPOSABLE
disposable
1
BASERESOURCE_UNINITIALIZED
uninitialized
2
BASERESOURCE_DISPOSABLE_UNINITIALIZED
disposable uninitialized
3
BASERESOURCE_GRAPHICS_SYSTEM
graphics system
4
BASERESOURCE_GRAPHICS_LOCAL
graphics local
5
BASERESOURCE_NUMBEROFBASERESOURCETYPES
6
Xbox 360
Name
String
Index
BASERESOURCE_MAINMEMORY
main memory
0
BASERESOURCE_DISPOSABLE
disposable
1
BASERESOURCE_PHYSICAL?
physical
2
BASERESOURCE_UNINITIALIZED
uninitialized
3
BASERESOURCE_DISPOSABLE_UNINITIALIZED
disposable uninitialized
4
BASERESOURCE_NUMBEROFBASERESOURCETYPES
5
PC
Name
String
Index
BASERESOURCE_MAINMEMORY
main memory
0
BASERESOURCE_DISPOSABLE
disposable
1
BASERESOURCE_UNINITIALIZED
uninitialized
2
BASERESOURCE_DISPOSABLE_UNINITIALIZED
disposable uninitialized
3
BASERESOURCE_NUMBEROFBASERESOURCETYPES
4