From f0a2ee8f4865ce8b6514e4823081bb6c9f2de274 Mon Sep 17 00:00:00 2001 From: Lucas Schwiderski Date: Sat, 13 Jul 2024 17:15:40 +0200 Subject: [PATCH] Update File Type - Wwise Event --- File Type - Wwise Event.-.md | 45 ++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/File Type - Wwise Event.-.md b/File Type - Wwise Event.-.md index 15c9e23..f0a295f 100644 --- a/File Type - Wwise Event.-.md +++ b/File Type - Wwise Event.-.md @@ -51,8 +51,30 @@ typedef struct(data_DIDX &DIDX_dataObj) FSeek(pos + parentof(this).secLen); } data_DATA; +typedef enum { + Settings = 1, + SoundVoice, + EventAction, + Event, + RandomContainer, + SwitchContainer, + ActorMixer, + AudioBus, + BlendContainer, + MusicSegment, + MusicTrack, + MusicSwitchContainer, + MusicPlaylistContainer, + Attenuation, + DialogueEvent, + MotionBus, + MotionFX, + Effect, + AuxiliaryBus = 20 +} data_HIRC_object_type; + typedef struct { - byte object_type; + data_HIRC_object_type object_type; uint32 object_length; uint32 id ; byte data[object_length-4]; @@ -98,6 +120,7 @@ uint32 length; // A section of values that don't belong the actual Wwise bank struct { uint32 unknown1; + Assert(unknown1 == 0x0); // Matches the file itself uint64 this_file ; uint32 unknown2; @@ -110,18 +133,32 @@ struct { // - Wwise bus the event runs on // Corresponds to the `id` value of a HIRC object of type "event" later on in the file - uint32 unknown4 ; - float unknown5; + uint32 hirc_event_id ; + // No particularly clear value. + // Sometimes when interpreted as `float`, it produces whole numbers. + // Sometimes, it's very close to `0xFFFFFFFF`. + uint32 unknown5; + + // Following two usually look like hashes. + // Also often reasonably looking floats close to `1`. Could be something like volume. + // Would still fit with it sometimes showing up elsewhere in a `.wwise_bank`: It's not unreasonable + // for the bnk to have volume values as well. + + // In at least one instance, shows up in `MotionBus`/`MotionFX` sections in a `.wwise_bank`. uint32 unknown6 ; // At least in one instance, this was identical with `unknown6` uint32 unknown7 ; uint32 unknown8; + Assert(unknown8 == 0x0); uint32 unknown9; + Assert(unknown9 == 0x0 || unknown9 == 0x1); uint32 unknown10; + Assert(unknown10 == 0x0); uint32 unknown11; -} header ; + Assert(unknown11 == 0x0); +} header; struct bnk {