Registry: Difference between revisions
(Add missing type names.) Tag: Reverted |
(Undo revision 9209 by Burninrubber0 (talk)) Tag: Undo |
||
Line 63: | Line 63: | ||
* ~SlotSchema~ (hash: <code>EB396D83</code>) |
* ~SlotSchema~ (hash: <code>EB396D83</code>) |
||
* ~VoiceSpec~ (hash: <code>3597AD9B</code>) |
* ~VoiceSpec~ (hash: <code>3597AD9B</code>) |
||
* ~GenericRwacWaveContent::SK_WAVE_DATA_CONTENT_TYPE~ (hash: <code>7CCDA2E7</code>) |
|||
* ~ContentClass~ (hash: <code>1F4F9B6F</code>) |
|||
=== CgsSound::Playback::ContentSpec === |
=== CgsSound::Playback::ContentSpec === |
Revision as of 00:24, 29 July 2023
Registry resources define how the game finds and accesses sounds in conjunction with AttribSys Vault 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.
Structures
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 | |
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 sound 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 |