Bundle (original): Difference between revisions

Content added Content deleted
(Add per-platform info and base resource info. Remove overview as the information is redundant with the main Bundle page.)
(Updated with new information.)
Line 13: Line 13:


= Structures =
= Structures =
=== CgsResource::Bundle ===
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 ===
==== PlayStation 3 ====
==== PlayStation 3 ====
{| class="wikitable"
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x4 || char[4] || macMagicNumber || Bundle magic || bndl
| 0x0 || 0x4 || uint32_t || muMagicNumber || Bundle magic || bndl
|-
|-
| 0x4 || 0x4 || uint32_t || muVersion || Bundle version || 3 in base, 4 in V4, 5 in V5
| 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 ||
| 0x8 || 0x4 || uint32_t || muNumResources || Number of resources in the bundle ||
|-
|-
| 0xC || 0x30 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][6] || || Size and alignment of each chunk ||
| 0xC || 0x30 || [[#rw::ResourceDescriptor|ResourceDescriptor]][6] || mBundleResourceDescriptor || Size and alignment of each chunk ||
|-
|-
| 0x3C || 0x18 || uint32_t[6] || || Memory address of each chunk ||
| 0x3C || 0x18 || [[#rw::Resource|Resource]][6] || mAllocatedResource || Memory address of each chunk ||
|-
|-
| 0x54 || 0x4 || uint32_t || || Resource IDs offset ||
| 0x54 || 0x4 || uint32_t || mHashTableOffset || Resource IDs offset ||
|-
|-
| 0x58 || 0x4 || uint32_t || muResourceEntriesOffset || Resource entries offset ||
| 0x58 || 0x4 || uint32_t || mResourceEntriesOffset || Resource entries offset || See [[#CgsResource::Bundle::ResourceEntry|ResourceEntry]]
|-
|-
| 0x5C || 0x4 || uint32_t || || Imports offset ||
| 0x5C || 0x4 || uint32_t || mImportTablesOffset || Imports offset || See [[#CgsResource::Bundle::ImportTable|ImportTable]]
|-
|-
| 0x60 || 0x4 || uint32_t || muResourceDataOffset || Resource data offset ||
| 0x60 || 0x4 || uint32_t || mResourceDataOffset || Resource data offset ||
|-
|-
| 0x64 || 0x4 || uint32_t || muPlatform || Platform the bundle was built for || See [[#Platform|Platform]]
| 0x64 || 0x4 || uint32_t || muPlatform || Platform the bundle was built for || See [[#Platform|Platform]]
Line 46: Line 43:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x4 || char[4] || macMagicNumber || Bundle magic || bndl
| 0x0 || 0x4 || uint32_t || muMagicNumber || Bundle magic || bndl
|-
|-
| 0x4 || 0x4 || uint32_t || muVersion || Bundle version || 3 in base, 4 in V4, 5 in V5
| 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 ||
| 0x8 || 0x4 || uint32_t || muNumResources || Number of resources in the bundle ||
|-
|-
| 0xC || 0x28 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][5] || || Size and alignment of each chunk ||
| 0xC || 0x28 || [[#rw::ResourceDescriptor|ResourceDescriptor]][5] || mBundleResourceDescriptor || Size and alignment of each chunk ||
|-
|-
| 0x34 || 0x14 || uint32_t[5] || || Memory address of each chunk ||
| 0x34 || 0x14 || [[#rw::Resource|Resource]][5] || mAllocatedResource || Memory address of each chunk ||
|-
|-
| 0x48 || 0x4 || uint32_t || || Resource IDs offset ||
| 0x48 || 0x4 || uint32_t || mHashTableOffset || Resource IDs offset ||
|-
|-
| 0x4C || 0x4 || uint32_t || muResourceEntriesOffset || Resource entries offset ||
| 0x4C || 0x4 || uint32_t || mResourceEntriesOffset || Resource entries offset || See [[#CgsResource::Bundle::ResourceEntry|ResourceEntry]]
|-
|-
| 0x50 || 0x4 || uint32_t || || Imports offset ||
| 0x50 || 0x4 || uint32_t || mImportTablesOffset || Imports offset || See [[#CgsResource::Bundle::ImportTable|ImportTable]]
|-
|-
| 0x54 || 0x4 || uint32_t || muResourceDataOffset || Resource data offset ||
| 0x54 || 0x4 || uint32_t || mResourceDataOffset || Resource data offset ||
|-
|-
| 0x58 || 0x4 || uint32_t || muPlatform || Platform the bundle was built for || See [[#Platform|Platform]]
| 0x58 || 0x4 || uint32_t || muPlatform || Platform the bundle was built for || See [[#Platform|Platform]]
Line 71: Line 68:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x4 || char[4] || macMagicNumber || Bundle magic || bndl
| 0x0 || 0x4 || uint32_t || muMagicNumber || Bundle magic || bndl
|-
|-
| 0x4 || 0x4 || uint32_t || muVersion || Bundle version || 3 in base, 4 in V4, 5 in V5
| 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 ||
| 0x8 || 0x4 || uint32_t || muNumResources || Number of resources in the bundle ||
|-
|-
| 0xC || 0x20 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][4] || || Size and alignment of each chunk ||
| 0xC || 0x20 || [[#rw::ResourceDescriptor|ResourceDescriptor]][4] || mBundleResourceDescriptor || Size and alignment of each chunk ||
|-
|-
| 0x2C || 0x10 || uint32_t[4] || || Memory address of each chunk ||
| 0x2C || 0x10 || [[#rw::Resource|Resource]][4] || mAllocatedResource || Memory address of each chunk ||
|-
|-
| 0x3C || 0x4 || uint32_t || || Resource IDs offset ||
| 0x3C || 0x4 || uint32_t || mHashTableOffset || Resource IDs offset ||
|-
|-
| 0x40 || 0x4 || uint32_t || muResourceEntriesOffset || Resource entries offset ||
| 0x40 || 0x4 || uint32_t || mResourceEntriesOffset || Resource entries offset || See [[#CgsResource::Bundle::ResourceEntry|ResourceEntry]]
|-
|-
| 0x44 || 0x4 || uint32_t || || Imports offset ||
| 0x44 || 0x4 || uint32_t || mImportTablesOffset || Imports offset || See [[#CgsResource::Bundle::ImportTable|ImportTable]]
|-
|-
| 0x48 || 0x4 || uint32_t || muResourceDataOffset || Resource data offset ||
| 0x48 || 0x4 || uint32_t || mResourceDataOffset || Resource data offset ||
|-
|-
| 0x4C || 0x4 || uint32_t || muPlatform || Platform the bundle was built for || See [[#Platform|Platform]]
| 0x4C || 0x4 || uint32_t || muPlatform || Platform the bundle was built for || See [[#Platform|Platform]]
|}
|}


=== CgsResource::BundleV4ExtendedData ===
=== ResourceEntry ===
==== PlayStation 3 ====
==== PlayStation 3 ====
{| class="wikitable"
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x68 || CgsResource::BaseBundleExtendedData || Base class || || See [[#CgsResource::Bundle|Bundle]]
| 0x0 || 0x4 || uint32_t || || Resource data memory address ||
|-
|-
| 0x4 || 0x4 || uint32_t || muImportOffset || Bundle imports offset ||
| 0x68 || 0x4 || uint32_t || muFlags || Bundle flags || See [[#CgsResource::EFlags|Flags]]
|-
|-
| 0x8 || 0x4 || uint32_t || muResourceTypeId || Resource type || See [[#ResourceType|ResourceType]]
| 0x6C || 0x4 || uint32_t || muUncompressedDescriptorCount || Number of compressed resources ||
|-
|-
| 0x70 || 0x4 || [[#rw::ResourceDescriptor|ResourceDescriptor]]* || mpUncompressedResourceDescriptors || Compression information offset ||
| 0xC || 0x30 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][6] || mauSizeAndAlignmentOnDisk || Resource sizes in bundle<br />Compressed size if compression used ||
|}

==== Xbox 360 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x5C || CgsResource::BaseBundleExtendedData || Base class || || See [[#CgsResource::Bundle|Bundle]]
|-
| 0x5C || 0x4 || uint32_t || muFlags || Bundle flags || See [[#CgsResource::EFlags|Flags]]
|-
| 0x60 || 0x4 || uint32_t || muUncompressedDescriptorCount || Number of compressed resources ||
|-
| 0x64 || 0x4 || [[#rw::ResourceDescriptor|ResourceDescriptor]]* || mpUncompressedResourceDescriptors || Compression information offset ||
|}

==== PC ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x50 || CgsResource::BaseBundleExtendedData || Base class || || See [[#CgsResource::Bundle|Bundle]]
|-
| 0x50 || 0x4 || uint32_t || muFlags || Bundle flags || See [[#CgsResource::EFlags|Flags]]
|-
| 0x5C || 0x4 || uint32_t || muUncompressedDescriptorCount || Number of compressed resources ||
|-
| 0x60 || 0x4 || [[#rw::ResourceDescriptor|ResourceDescriptor]]* || mpUncompressedResourceDescriptors || Compression information offset ||
|}

=== CgsResource::BundleV5ExtendedData ===
==== PlayStation 3 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x74 || [[#CgsResource::BundleV4ExtendedData|BundleV4ExtendedData]] || || Base class ||
|-
|-
| 0x74 || 0x4 || int32_t || miMainMemAlignment || ||
| 0x3C || 0x30 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][6] || mauDiskOffset || Offsets in bundle || Alignment is unused (always 1)
|-
|-
| 0x6C || 0x18 || uint32_t[6] || || Memory addresses || Swapped endian
| 0x78 || 0x4 || int32_t || miGraphicsMemAlignment || ||
|}
|}


Line 114: Line 145:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x4 || uint32_t || || Resource data memory address ||
| 0x0 || 0x68 || [[#CgsResource::BundleV4ExtendedData|BundleV4ExtendedData]] || || Base class ||
|-
|-
| 0x4 || 0x4 || uint32_t || muImportOffset || Bundle imports offset ||
| 0x68 || 0x4 || int32_t || miMainMemAlignment || ||
|-
|-
| 0x8 || 0x4 || uint32_t || muResourceTypeId || Resource type || See [[#ResourceType|ResourceType]]
| 0x6C || 0x4 || int32_t || miGraphicsMemAlignment || ||
|}

==== PC ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x5C || [[#CgsResource::BundleV4ExtendedData|BundleV4ExtendedData]] || || Base class ||
|-
| 0x5C || 0x4 || int32_t || miMainMemAlignment || ||
|-
| 0x60 || 0x4 || int32_t || miGraphicsMemAlignment || ||
|}

=== CgsResource::Bundle::ResourceEntry ===
==== PlayStation 3 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || void* || mpResource || Resource data memory address ||
|-
| 0x4 || 0x4 || [[#CgsResource::Bundle::ImportTable|ImportTable]]* || mpImportTable || Bundle imports offset ||
|-
| 0x8 || 0x4 || CgsResource::Type* || mpType || Resource type || Type ID replaced by pointer at runtime. See [[Resource Types]]
|-
| 0xC || 0x30 || [[#rw::ResourceDescriptor|ResourceDescriptor]][6] || mSerialisedResourceDescriptor || Resource sizes in bundle<br />Compressed size if compression used ||
|-
| 0x3C || 0x30 || [[#rw::ResourceDescriptor|ResourceDescriptor]][6] || mSerialisedOffsetResourceDescriptor || Offsets in bundle || Alignment is unused (always 1)
|-
| 0x6C || 0x18 || [[#rw::Resource|Resource]][6] || mSerialisedResource || Memory addresses || Swapped endian
|}

==== Xbox 360 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || void* || mpResource || Resource data memory address ||
|-
| 0x4 || 0x4 || [[#CgsResource::Bundle::ImportTable|ImportTable]]* || mpImportTable || Bundle imports offset ||
|-
| 0x8 || 0x4 || CgsResource::Type* || mpType || Resource type || Type ID replaced by pointer at runtime. See [[Resource Types]]
|-
|-
| 0xC || 0x28 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][5] || mauSizeAndAlignmentOnDisk || Resource sizes in bundle<br />Compressed size if compression used ||
| 0xC || 0x28 || [[#rw::ResourceDescriptor|ResourceDescriptor]][5] || mSerialisedResourceDescriptor || Resource sizes in bundle<br />Compressed size if compression used ||
|-
|-
| 0x34 || 0x28 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][5] || mauDiskOffset || Offsets in bundle || Alignment is unused (always 1)
| 0x34 || 0x28 || [[#rw::ResourceDescriptor|ResourceDescriptor]][5] || mSerialisedOffsetResourceDescriptor || Offsets in bundle || Alignment is unused (always 1)
|-
|-
| 0x5C || 0x14 || uint32_t[5] || || Memory addresses || Swapped endian
| 0x5C || 0x14 || [[#rw::Resource|Resource]][5] || mSerialisedResource || Memory addresses || Swapped endian
|}
|}


Line 131: Line 202:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x4 || uint32_t || || Resource data memory address ||
| 0x0 || 0x4 || void* || mpResource || Resource data memory address ||
|-
|-
| 0x4 || 0x4 || uint32_t || muImportOffset || Bundle imports offset ||
| 0x4 || 0x4 || [[#CgsResource::Bundle::ImportTable|ImportTable]]* || mpImportTable || Bundle imports offset ||
|-
|-
| 0x8 || 0x4 || uint32_t || muResourceTypeId || Resource type || See [[#ResourceType|ResourceType]]
| 0x8 || 0x4 || CgsResource::Type* || mpType || Resource type || Type ID replaced by pointer at runtime. See [[Resource Types]]
|-
|-
| 0xC || 0x20 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][4] || mauSizeAndAlignmentOnDisk || Resource sizes in bundle<br />Compressed size if compression used ||
| 0xC || 0x20 || [[#rw::ResourceDescriptor|ResourceDescriptor]][4] || mSerialisedResourceDescriptor || Resource sizes in bundle<br />Compressed size if compression used ||
|-
|-
| 0x2C || 0x20 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][4] || mauDiskOffset || Offsets in bundle || Alignment is unused (always 1)
| 0x2C || 0x20 || [[#rw::ResourceDescriptor|ResourceDescriptor]][4] || mSerialisedOffsetResourceDescriptor || Offsets in bundle || Alignment is unused (always 1)
|-
|-
| 0x4C || 0x10 || uint32_t[4] || || Memory addresses || Swapped endian
| 0x4C || 0x10 || [[#rw::Resource|Resource]][4] || mSerialisedResource || Memory addresses || Swapped endian
|}
|}


=== CgsResource::Bundle::ImportTable ===
=== Imports ===
This structure is followed by an [[#CgsResource::Bundle::ImportEntry|ImportEntry]] array.
This is not a structure as such; rather, it is <code>uint32_t muImportCount</code> followed by four bytes of padding, then a set of import entries of an amount defined by the aforementioned count.


=== ImportEntry ===
{| class="wikitable"
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x8 || [[Resource ID|ID]] || mResourceId || Resource name CRC32 ||
| 0x0 || 0x4 || uint32_t || muNumImports || Number of import entries ||
|-
|-
| 0x8 || 0x4 || uint32_t || muOffset || ||
| 0x8 || 0x4 || uint32_t || pad1 || Padding ||
|}

=== CgsResource::Bundle::ImportEntry ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[Resource ID|ID]] || mImportID || Resource name CRC32 ||
|-
| 0x8 || 0x4 || RwUInt32 || muOffset || ||
|-
|-
| 0xC || 0x4 || || || padding ||
| 0xC || 0x4 || || || Padding ||
|}

=== rw::ResourceDescriptor ===
==== PlayStation 3 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x30 || [[#rw::BaseResourceDescriptors|BaseResourceDescriptors]] || || Base class ||
|}

==== Xbox 360 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x28 || [[#rw::BaseResourceDescriptors|BaseResourceDescriptors]] || || Base class ||
|}

==== PC ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x20 || [[#rw::BaseResourceDescriptors|BaseResourceDescriptors]] || || Base class ||
|}

=== rw::BaseResourceDescriptors ===
==== PlayStation 3 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x30 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][6] || m_baseResourceDescriptors || ||
|}

==== Xbox 360 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x28 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][5] || m_baseResourceDescriptors || ||
|}

==== PC ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x20 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][4] || m_baseResourceDescriptors || ||
|}
|}


Line 168: Line 291:
|}
|}


== CgsResource::BundleHeaderV4 ==
=== rw::Resource ===
=== Bundle (Additions) ===
==== PlayStation 3 ====
{| class="wikitable"
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x5C || 0x4 || uint32_t || muFlags || Bundle flags || See [[#Flags|Flags]]
| 0x0 || 0x18 || [[#rw::BaseResources|BaseResources]] || || Base class ||
|}

==== Xbox 360 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x60 || 0x4 || uint32_t || || Number of compressed resources ||
| 0x0 || 0x14 || [[#rw::BaseResources|BaseResources]] || || Base class ||
|}

==== PC ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x64 || 0x4 || uint32_t || || Compression information offset ||
| 0x0 || 0x10 || [[#rw::BaseResources|BaseResources]] || || Base class ||
|}
|}


=== Compression Information ===
=== rw::BaseResources ===
==== PlayStation 3 ====
==== PlayStation 3 ====
{| class="wikitable"
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x30 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][6] || mauUncompressedSizeAndAlignment || Uncompressed sizes ||
| 0x0 || 0x18 || [[#rw::BaseResource|BaseResource]][6] || m_baseResources || Per type base resource pointers ||
|}
|}


Line 192: Line 325:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x28 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][5] || mauUncompressedSizeAndAlignment || Uncompressed sizes ||
| 0x0 || 0x14 || [[#rw::BaseResource|BaseResource]][5] || m_baseResources || Per type base resource pointers ||
|}
|}


Line 199: Line 332:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x20 || [[#rw::BaseResourceDescriptor|BaseResourceDescriptor]][4] || mauUncompressedSizeAndAlignment || Uncompressed sizes ||
| 0x0 || 0x10 || [[#rw::BaseResource|BaseResource]][4] || m_baseResources || Per type base resource pointers ||
|}
|}


= Typedefs =
== CgsResource::BundleHeaderV5 ==
=== Bundle (Additions) ===
=== rw::BaseResource ===
{| class="wikitable"
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
! Name !! Type !! Length !! Comments
|-
| 0x68 || 0x4 || uint32_t || || || No idea what this does
|-
|-
| BaseResource || void* || 0x4 ||
| 0x6C || 0x4 || uint32_t || || || Also no idea what this does
|}
|}


= Enumerations =
= Enumerations =
=== Platform ===
=== Platform ===
Three constants used by the platform field.

{| class="wikitable"
{| class="wikitable"
! Name !! Value !! Comments
! Name !! Value !! Comments
|-
|-
| ? || 1 || PC
| KU_BUNDLE_DX9 || 1 || PC
|-
|-
| ? || 2 || Xbox 360
| KU_BUNDLE_X360 || 2 || Xbox 360
|-
|-
| ? || 3 || PlayStation 3
| KU_BUNDLE_PS3 || 3 || PlayStation 3
|}
|}


=== Flags ===
=== CgsResource::EFlags ===
{| class="wikitable"
{| class="wikitable"
! Name !! Value !! Comments
! Name !! Value !! Comments
|-
|-
| E_BUNDLEFLAG_HAS_DEBUG_DATA || 0x0 || Has a BundleImports resource.<br>This flag does not work correctly.
| IsCompressed || 0x1 || Resources are zlib compressed
|-
| E_BUNDLEFLAG_COMPRESSED || 0x1 || Resources are zlib compressed
|}
|}

=== ResourceType ===
See [[Resource Types]].


= Base resource types =
= Base resource types =
Anonymous enumeration with name strings.

==== PlayStation 3 ====
==== PlayStation 3 ====
{| class="wikitable"
{| class="wikitable"
! Name !! Index
! Name !! String !! Index
|-
|-
| main memory || 0
| BASERESOURCE_MAINMEMORY || main memory || 0
|-
|-
| disposable || 1
| BASERESOURCE_DISPOSABLE || disposable || 1
|-
|-
| uninitialized || 2
| BASERESOURCE_UNINITIALIZED || uninitialized || 2
|-
|-
| disposable uninitialized || 3
| BASERESOURCE_DISPOSABLE_UNINITIALIZED || disposable uninitialized || 3
|-
|-
| graphics system || 4
| BASERESOURCE_GRAPHICS_SYSTEM || graphics system || 4
|-
|-
| graphics local || 5
| BASERESOURCE_GRAPHICS_LOCAL || graphics local || 5
|-
| BASERESOURCE_NUMBEROFBASERESOURCETYPES || || 6
|}
|}


==== Xbox 360 ====
==== Xbox 360 ====
{| class="wikitable"
{| class="wikitable"
! Name !! Index
! Name !! String !! Index
|-
|-
| main memory || 0
| BASERESOURCE_MAINMEMORY || main memory || 0
|-
|-
| disposable || 1
| BASERESOURCE_DISPOSABLE || disposable || 1
|-
|-
| physical || 2
| BASERESOURCE_PHYSICAL? || physical || 2
|-
|-
| uninitialized || 3
| BASERESOURCE_UNINITIALIZED || uninitialized || 3
|-
|-
| disposable uninitialized || 4
| BASERESOURCE_DISPOSABLE_UNINITIALIZED || disposable uninitialized || 4
|-
| BASERESOURCE_NUMBEROFBASERESOURCETYPES || || 5
|}
|}


==== PC ====
==== PC ====
{| class="wikitable"
{| class="wikitable"
! Name !! Index
! Name !! String !! Index
|-
| BASERESOURCE_MAINMEMORY || main memory || 0
|-
|-
| BASERESOURCE_DISPOSABLE || disposable || 1
| main memory || 0
|-
|-
| BASERESOURCE_UNINITIALIZED || uninitialized || 2
| disposable || 1
|-
|-
| uninitialized || 2
| BASERESOURCE_DISPOSABLE_UNINITIALIZED || disposable uninitialized || 3
|-
|-
| BASERESOURCE_NUMBEROFBASERESOURCETYPES || || 4
| disposable uninitialized || 3
|}
|}