Registry: Difference between revisions
(Created page.) |
m (Table normalization) |
||
Line 9: | Line 9: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x4 || uint32_t || mu32EntityCount || Total number of entities || |
| 0x0 || 0x4 || uint32_t || mu32EntityCount || Total number of entities || |
||
Line 29: | Line 29: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x4 || uint32_t || mu32EntityCount || Total number of entities || |
| 0x0 || 0x4 || uint32_t || mu32EntityCount || Total number of entities || |
||
Line 49: | Line 49: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x4 || [[Common Data Types (Burnout Paradise)#CgsSound::Playback::Name | Name]] || mName || Entity name hash || Original string may be found in the string table |
| 0x0 || 0x4 || [[Common Data Types (Burnout Paradise)#CgsSound::Playback::Name | Name]] || mName || Entity name hash || Original string may be found in the string table |
||
Line 70: | Line 70: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the ContentSpec || |
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the ContentSpec || |
||
Line 86: | Line 86: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the ContentSpec || |
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the ContentSpec || |
||
Line 105: | Line 105: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the ContentSpec || |
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the ContentSpec || |
||
Line 115: | Line 115: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the ContentType || |
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the ContentType || |
||
Line 125: | Line 125: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the ContentClass || |
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the ContentClass || |
||
Line 139: | Line 139: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the FeatureSchema || |
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the FeatureSchema || |
||
Line 153: | Line 153: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the ParameterSchema || |
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the ParameterSchema || |
||
Line 168: | Line 168: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the SlotSchema || |
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the SlotSchema || |
||
Line 178: | Line 178: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the SlotSchema || |
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the SlotSchema || |
||
Line 189: | Line 189: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the VoiceSpec || |
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the VoiceSpec || |
||
Line 207: | Line 207: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the VoiceSpec || |
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the VoiceSpec || |
||
Line 227: | Line 227: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the VoiceSchema || |
| 0x0 || 0x8 || Entity || super_Entity || The entity prior to the VoiceSchema || |
Revision as of 18:40, 8 July 2022
Registry resources define how the game finds and accesses sounds in conjunction with AttribSys resources such as BurnoutGlobalData.
Overview
Registry entries contain information on specific sounds. This is done by having a system where each sound is an entity and each entity is of a certain type. The most common of these is the ContentSpec, which specifies the load attributes and whether it is an AEMS Bank or a Wave. The other entity types have not been properly researched.
Layout
CgsSound::Playback::Registry
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | mu32EntityCount | Total number of entities | |
0x4 | 0x4 | uint32_t | mu32EntityCapacity | Space allocated for entities | Always 0x800 in Burnout. Entity pointers randomly placed throughout 0x1C-201B |
0x8 | 0x4 | size_t | muDataSize | Entity data size | |
0xC | 0x4 | uint8_t* | mpu8Data | Entity data end | |
0x10 | 0x4 | size_t | muStringTableSize | String table size | |
0x14 | 0x4 | char* | mpcStringTable | String table end | Effectively resource end |
0x18 | 0x4 | uintptr_t | muNameHashMask |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | mu32EntityCount | Total number of entities | |
0x4 | 0x4 | uint32_t | mu32EntityCapacity | Space allocated for entities | Always 0x800 in Burnout. Entity pointers randomly placed throughout 0x30-402F |
0x8 | 0x8 | size_t | muDataSize | Entity data size | |
0x10 | 0x8 | uint8_t* | mpu8Data | Entity data end | Start is always 0x1C |
0x18 | 0x8 | size_t | muStringTableSize | String table size | |
0x20 | 0x8 | char* | mpcStringTable | String table end | Effectively resource end |
0x28 | 0x8 | uintptr_t | muNameHashMask |
CgsSound::Playback::Entity
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | Name | mName | Entity name hash | Original string may be found in the string table |
0x4 | 0x4 | Name | mTypeName | Type name hash | Original string may be found in the string table |
Possible type names include:
- ~ParameterSchema~ (hash:
8D2C6829
) - ~ContentSpec~ (hash:
511A448B
) - ~FeatureSchema~ (hash:
CB8B64C5
) - ~VoiceSchema~ (hash:
C7382281
) - ~SlotSchema~ (hash:
EB396D83
) - ~VoiceSpec~ (hash:
3597AD9B
)
CgsSound::Playback::ContentSpec
Immediately followed by a string, usually a gamedb://
path.
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Entity | super_Entity | The entity prior to the ContentSpec | |
0x8 | 0x4 | ContentType* | mpContentType | Content type hash | Not actually a pointer |
0xC | 0x2 | uint16_t | mu16PathLength | Length of the string immediately following the ContentSpec | |
0xE | 0x1 | uint8_t | mu8LoadMethod | See EContentLoadMethod | |
0xF | 0x1 | uint8_t | mu8LoadTime | See EContentLoadTime |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Entity | super_Entity | The entity prior to the ContentSpec | |
0x8 | 0x8 | ContentType* | mpContentType | Content type hash | Not actually a pointer |
0x10 | 0x2 | uint16_t | mu16PathLength | Length of the string immediately following the ContentSpec | |
0x12 | 0x1 | uint8_t | mu8LoadMethod | See EContentLoadMethod | |
0x13 | 0x1 | uint8_t | mu8LoadTime | See EContentLoadTime | |
0x14 | 0x4 | padding | Filled by 0xCD |
CgsSound::Playback::ContentType
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Entity | super_Entity | The entity prior to the ContentSpec | |
0x8 | 0x4 | ContentClass* | mpContentClass | Content class hash | Not actually a pointer |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Entity | super_Entity | The entity prior to the ContentType | |
0x8 | 0x8 | ContentClass* | mpContentClass | Content class hash | Not actually a pointer |
CgsSound::Playback::ContentClass
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Entity | super_Entity | The entity prior to the ContentClass |
Possible class values include:
- AemsVoiceCsisClass (hash:
84D7FBE7
) - GenericRwacFeatureImplementation (hash:
7CCDA2E7
)
CgsSound::Playback::FeatureSchema
Immediately followed by an array of Name hashes.
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Entity | super_Entity | The entity prior to the FeatureSchema | |
0x8 | 0x4 | uint32_t | mu32ParameterSchemaCount | ||
0xC | 0x4 | uint32_t | mu32SlotSchemaCount | ||
0x10 | 0x4 | uint32_t | mu32OutputParamCount |
CgsSound::Playback::ParameterSchema
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Entity | super_Entity | The entity prior to the ParameterSchema | |
0x8 | 0x4 | float | mf32Minimum | ||
0xC | 0x4 | float | mf32Maximum | ||
0x10 | 0x4 | uint32_t | mu32Direction |
CgsSound::Playback::SlotSchema
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Entity | super_Entity | The entity prior to the SlotSchema | |
0x8 | 0x4 | ContentClass* | mpContentClass | Content class hash | Not actually a pointer |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Entity | super_Entity | The entity prior to the SlotSchema | |
0x8 | 0x8 | ContentClass* | mpContentClass | Content class hash | Not actually a pointer |
CgsSound::Playback::VoiceSpec
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Entity | super_Entity | The entity prior to the VoiceSpec | |
0x8 | 0x4 | VoiceSchema* | mpVoiceSchema | ||
0xC | 0x1 | uint8_t | mu8SendCount | ||
0xD | 0x1 | uint8_t | mu8ProcessingStage | ||
0xE | 0x1 | uint8_t | mu8ChannelCount | ||
0xF | 0x1 | uint8_t | mu8VoiceType | See EVoiceType |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Entity | super_Entity | The entity prior to the VoiceSpec | |
0x8 | 0x8 | VoiceSchema* | mpVoiceSchema | ||
0x10 | 0x1 | uint8_t | mu8SendCount | ||
0x11 | 0x1 | uint8_t | mu8ProcessingStage | ||
0x12 | 0x1 | uint8_t | mu8ChannelCount | ||
0x13 | 0x1 | uint8_t | mu8VoiceType | See EVoiceType | |
0x14 | 0x4 | padding | Filled by 0xCD |
CgsSound::Playback::VoiceSchema
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Entity | super_Entity | The entity prior to the VoiceSchema | |
0x8 | 0x4 | uint32_t | mu32FeatureSchemaCount | ||
0x10 | 0x4 | uint32_t | mu32SlotCount | ||
0x11 | 0x4 | uint32_t | mu32ParameterCount | ||
0x12 | 0x4 | uint32_t | mu32OutputParamCount |
Enumerations
CgsSound::Playback::EContentLoadMethod
Name | Value | Comments |
---|---|---|
E_CONTENT_LOAD_INVALID | 0 | |
E_CONTENT_LOAD_RESOURCE_MODULE | 1 |
CgsSound::Playback::EContentLoadTime
Name | Value | Comments |
---|---|---|
E_CONTENT_LOAD_JUST_IN_TIME | 0 | |
E_CONTENT_LOAD_IMMEDIATE | 1 |
CgsSound::Playback::EParameterDirection
Name | Value | Comments |
---|---|---|
E_PARAMETER_INPUT | 0 | |
E_PARAMETER_OUTPUT | 1 |
CgsSound::Playback::EVoiceType
Name | Value | Comments |
---|---|---|
E_PLAYER_VOICE | 0 | |
E_SUBMIX_VOICE | 1 | |
E_MASTER_VOICE | 2 | |
E_VOICE_TYPE_COUNT | 3 |
Bundle resource names
Unlike some resource types, Registry resources are most often listed in the Bundle debug data as simply having the name "Registry". This is only the name of one resource. For convenience, all resource names are listed here.
File | Hash | Name | Comments |
---|---|---|---|
PLAYBACKREGISTRY.BUNDLE | CDA81D0A | Registry | |
RWACFEATUREREGISTRY.BUNDLE | 45DA3125 | RwacFeatureRegistry | |
SOUND/SOUNDENTITY.BUNDLE | 93ED63CD | SoundEntity | |
SOUND/STREAMS/STREAMSREGISTRY.BUNDLE | 8D8FA6F0 | StreamsRegistry | Other languages have same name |
SOUND/AEMS/CSIS.BUNDLE | D725BF37 | BoostCsisEntityReg | |
SOUND/AEMS/CSIS.BUNDLE | 89C1A799 | BoostCsisVoiceReg | |
SOUND/AEMS/CSIS.BUNDLE | 1FD8B917 | BoostCsisFactoryReg | |
SOUND/AEMS/CSIS.BUNDLE | 44E7DFC5 | TrafficCsisEntityReg | |
SOUND/AEMS/CSIS.BUNDLE | 425EC814 | TrafficCsisVoiceReg | |
SOUND/AEMS/CSIS.BUNDLE | 4CF8E847 | TrafficCsisFactoryReg | |
SOUND/AEMS/CSIS.BUNDLE | 8CE32170 | SkidsCsisEntityReg | |
SOUND/AEMS/CSIS.BUNDLE | 91F1FD26 | SkidsCsisVoiceReg | |
SOUND/AEMS/CSIS.BUNDLE | F73BABBA | SkidsCsisFactoryReg | |
SOUND/AEMS/CSIS.BUNDLE | F76C41FC | HornsCsisEntityReg | |
SOUND/AEMS/CSIS.BUNDLE | AFBADFEC | HornsCsisVoiceReg | |
SOUND/AEMS/CSIS.BUNDLE | 134EEBD1 | HornsCsisFactoryReg | |
SOUND/AEMS/CSIS.BUNDLE | 1345FDC7 | ScrapesCsisEntityReg | |
SOUND/AEMS/CSIS.BUNDLE | 88C9EF60 | ScrapesCsisVoiceReg | |
SOUND/AEMS/CSIS.BUNDLE | A2A12B49 | ScrapesCsisFactoryReg | |
SOUND/AEMS/CSIS.BUNDLE | 5679585E | InAirCsisEntityReg | |
SOUND/AEMS/CSIS.BUNDLE | 6B30034D | InAirCsisVoiceReg | |
SOUND/AEMS/CSIS.BUNDLE | 2B373C0C | InAirCsisFactoryReg | |
SOUND/AEMS/CSIS.BUNDLE | 498CBDB2 | SurfaceCsisEntityReg | |
SOUND/AEMS/CSIS.BUNDLE | 4456819E | SurfaceCsisVoiceReg | |
SOUND/AEMS/CSIS.BUNDLE | 829467BA | SurfaceCsisFactoryReg | |
SOUND/AEMS/CSIS.BUNDLE | E9F9266F | TurboCsisEntityReg | |
SOUND/AEMS/CSIS.BUNDLE | 3B2F247E | TurboCsisVoiceReg | |
SOUND/AEMS/CSIS.BUNDLE | 7A56BC48 | TurboCsisFactoryReg | |
SOUND/AEMS/CSIS.BUNDLE | 6D87D547 | GearWhineCsisEntityReg | |
SOUND/AEMS/CSIS.BUNDLE | FB9DD26D | GearWhineCsisVoiceReg | |
SOUND/AEMS/CSIS.BUNDLE | 4F676A41 | GearWhineCsisFactoryReg | |
SOUND/AEMS/CSIS.BUNDLE | AB17EF30 | CrumpleCsisEntityReg | |
SOUND/AEMS/CSIS.BUNDLE | 677E1757 | CrumpleCsisVoiceReg | |
SOUND/AEMS/CSIS.BUNDLE | 81C01EE4 | CrumpleCsisFactoryReg | |
ENGINES/*.BUNDLE | <name>Registry | e.g., C5_ENRegistry |