Skip to content

Commit

Permalink
parser: add v152-beta
Browse files Browse the repository at this point in the history
  • Loading branch information
bnnm committed Aug 9, 2024
1 parent 1446edf commit f6a59f8
Show file tree
Hide file tree
Showing 2 changed files with 110 additions and 8 deletions.
95 changes: 91 additions & 4 deletions wwiser/parser/wdefs.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
144, #0x90 Wwise 2022.1-B (none known)
145, #0x91 Wwise 2022.1 [Sea of Stars (PC), Mortal Kombat 1 (PC)]
150, #0x96 Wwise 2023.1 (none known)
152, #0x98 Wwise 2024.1-B (none known)
]

# no txtp support, even if forced
Expand Down Expand Up @@ -854,8 +855,8 @@
0x35: "MaxNumInstances",
0x36: "BypassAllMetadata",
0x37: "PlayMechanismSpecialTransitionsValue",
0x38: "FirstNonRtpc",
0x37: "LastRtpc",
#0x38: "FirstNonRtpc",
#0x37: "LastRtpc",
0x38: "PriorityDistanceOffset",
0x39: "DelayTime",
0x3A: "TransitionTime",
Expand Down Expand Up @@ -888,6 +889,88 @@
0x55: "AttenuationID",
#0x56: "NUM",
})
AkPropID_152 = wfmt.FormatterLUT({
#0x0: "FirstRtpc",
0x00: "Volume",
0x01: "Pitch",
0x02: "LPF",
0x03: "HPF",
0x04: "BusVolume",
0x05: "MakeUpGain",
0x06: "Priority",
0x07: "MuteRatio",
0x08: "UserAuxSendVolume0",
0x09: "UserAuxSendVolume1",
0x0A: "UserAuxSendVolume2",
0x0B: "UserAuxSendVolume3",
0x0C: "GameAuxSendVolume",
0x0D: "OutputBusVolume",
0x0E: "OutputBusHPF",
0x0F: "OutputBusLPF",
0x10: "UserAuxSendLPF0",
0x11: "UserAuxSendLPF1",
0x12: "UserAuxSendLPF2",
0x13: "UserAuxSendLPF3",
0x14: "UserAuxSendHPF0",
0x15: "UserAuxSendHPF1",
0x16: "UserAuxSendHPF2",
0x17: "UserAuxSendHPF3",
0x18: "GameAuxSendLPF",
0x19: "GameAuxSendHPF",
0x1A: "ReflectionBusVolume",
0x1B: "HDRBusThreshold",
0x1C: "HDRBusRatio",
0x1D: "HDRBusReleaseTime",
0x1E: "HDRActiveRange",
0x1F: "MidiTransposition",
0x20: "MidiVelocityOffset",
0x21: "PlaybackSpeed",
0x22: "InitialDelay",
0x23: "Positioning_Pan_X_2D",
0x24: "Positioning_Pan_Y_2D",
0x25: "Positioning_Pan_Z_2D",
0x26: "Positioning_Pan_X_3D",
0x27: "Positioning_Pan_Y_3D",
0x28: "Positioning_Pan_Z_3D",
0x29: "Positioning_CenterPercent",
0x2A: "Positioning_TypeBlend",
0x2B: "Positioning_EnableAttenuation",
0x2C: "Positioning_Cone_AttenuationOnOff",
0x2D: "Positioning_Cone_Attenuation",
0x2E: "Positioning_Cone_LPF",
0x2F: "Positioning_Cone_HPF",
0x30: "BypassFX",
0x31: "BypassAllFX",
0x32: "Available_0",
0x33: "Available_1",
0x34: "Available_2",
0x35: "MaxNumInstances",
0x36: "BypassAllMetadata",
0x37: "PlayMechanismSpecialTransitionsValue",
0x38: "AttenuationDistanceScaling",
#0x39: "FirstNonRtpc",
#0x38: "LastRtpc",
0x39: "PriorityDistanceOffset",
0x3A: "DelayTime",
0x3B: "TransitionTime",
0x3C: "Probability",
0x3D: "DialogueMode",
0x3E: "HDRBusGameParam",
0x3F: "HDRBusGameParamMin",
0x40: "HDRBusGameParamMax",
0x41: "MidiTrackingRootNote",
0x42: "MidiPlayOnNoteType",
0x43: "MidiKeyRangeMin",
0x44: "MidiKeyRangeMax",
0x45: "MidiVelocityRangeMin",
0x46: "MidiVelocityRangeMax",
0x47: "MidiChannelMask",
0x48: "MidiTempoSource",
0x49: "MidiTargetNode",
0x4A: "Loop",
0x4B: "AttenuationID",
#0x4C: "NUM",
})
AkPropID = None
AkPropID_tids = {
"AttachedPluginFXID", "AttenuationID"
Expand Down Expand Up @@ -1297,7 +1380,9 @@
eCurveXType = wfmt.FormatterLUT({
0x0: "CurveObs",
0x1: "CurveOcc",
#0x2: "MAX_CURVE_X_TYPES",
0x2: "CurveDiff", #152>=
0x3: "CurveTrans", #152>=
#0x4: "MAX_CURVE_X_TYPES",
})

#046>=
Expand Down Expand Up @@ -2193,8 +2278,10 @@ def setup(version):
AkPropID = AkPropID_126
elif version <= 145:
AkPropID = AkPropID_128
else:
elif version <= 150:
AkPropID = AkPropID_150
else:
AkPropID = AkPropID_152

global AkBank__AKBKHircType
if version <= 126:
Expand Down
23 changes: 19 additions & 4 deletions wwiser/parser/wparser.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,10 +242,14 @@ def CAkBankMgr__LoadSource(obj, cls, subnode=False):
elem.U32('uFileOffset')
elem.U32('uInMemoryMediaSize')

else:
elif cls.version <= 150:
#fileID is sourceID
elem.U32('uInMemoryMediaSize')

else:
elem.U32('cacheID')
elem.U32('uInMemoryMediaSize')


if cls.version <= 26:
pass
Expand Down Expand Up @@ -1594,12 +1598,16 @@ def CAkSwitchCntr__SetInitialValues(obj, cls):
elem.U8x('bIsFirstOnly')
elem.U8x('bContinuePlayback')
elem.U32('eOnSwitchMode').fmt(wdefs.AkOnSwitchMode)
else:
elif cls.version <= 150:
elem.U8x('byBitVector') \
.bit('bIsFirstOnly', elem.lastval, 0) \
.bit('bContinuePlayback', elem.lastval, 1)
elem.U8x('byBitVector') \
.bit('eOnSwitchMode', elem.lastval, 0, 0x7, fmt=wdefs.AkOnSwitchMode)
else:
elem.U8x('byBitVector') \
.bit('bIsFirstOnly', elem.lastval, 0) \
.bit('bContinuePlayback', elem.lastval, 1) \

elem.s32('FadeOutTime')
elem.s32('FadeInTime')
Expand Down Expand Up @@ -2219,6 +2227,10 @@ def CAkMusicTrack__SetInitialValues(obj, cls):
for elem in obj.list('pPlaylist', 'AkTrackSrcInfo', obj.lastval):
elem.u32('trackID') #0..N
elem.tid('sourceID').fnv(wdefs.fnv_no)
if cls.version <= 150:
pass
else:
elem.U32('cacheID')
if cls.version <= 132:
pass
else:
Expand Down Expand Up @@ -3648,12 +3660,15 @@ def CAkBankMgr__ProcessEnvSettingsChunk(obj):
obj.set_name('EnvSettingsChunk')
version = get_version(obj)

if version <= 89:
if version <= 89:
max_x = 2
max_y = 2
else:
elif version <= 150:
max_x = 2
max_y = 3
else:
max_x = 4
max_y = 3

obj = obj.node('ConversionTable')
for i in range(max_x):
Expand Down

0 comments on commit f6a59f8

Please sign in to comment.