From d247cb4a30518d6f9bc8b3bb5b0537c7ad5e7417 Mon Sep 17 00:00:00 2001 From: XyFreak Date: Sun, 19 May 2019 13:40:30 +0200 Subject: [PATCH] Add support for versions 1.0.1E and (propably) 1.0.0E. I don't have access to 1.0.0E right now but since every other patch for 1.0.1E also works with 1.0.0E I'll just assume this one is gonna work as well. --- .../XenobladeX_mod_RebalanceAudio/patches.txt | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/Mods/XenobladeX_mod_RebalanceAudio/patches.txt b/Mods/XenobladeX_mod_RebalanceAudio/patches.txt index 81e4956d..2332933c 100644 --- a/Mods/XenobladeX_mod_RebalanceAudio/patches.txt +++ b/Mods/XenobladeX_mod_RebalanceAudio/patches.txt @@ -132,3 +132,138 @@ _eventHookDefault = 0x0000011C 0x00000124 = blr 0x02893404 = bla _eventHookStart ; Install Hook + +[XCXRebalanceAudioV100E_V101E] +moduleMatches = 0x218F6E07, 0xF882D5CF +codeCaveSize = 0x200 + +## +# You may change these floats +## + +0x000001A0 = .float 0.7 ; BGM +0x000001A4 = .float 1.0 ; VOICE +0x000001A8 = .float 0.7 ; BATTLE +0x000001AC = .float 0.7 ; FIELD +0x000001B0 = .float 0.7 ; GIMMICK +0x000001B4 = .float 0.7 ; SYSTEM +0x000001B8 = .float 1.0 ; ENVIRONMENT +0x000001BC = .float 1.0 ; WEATHER +0x000001C0 = .float 1.0 ; EVENT_CS +0x000001C4 = .float 1.0 ; EVENT_VOICE +0x000001C8 = .float 1.0 ; EVENT_SE + +## +# Do not touch anything below if you don't know what you are doing! +## + +# Labels for individual volume floats +_audioVolumeDefault = 0x1006CF88 ; Also used by the fallback branch of setupCategory +_audioVolumeBgm = 0x000001A0 +_audioVolumeVoice = 0x000001A4 +_audioVolumeBattle = 0x000001A8 +_audioVolumeField = 0x000001AC +_audioVolumeGimmick = 0x000001B0 +_audioVolumeSystem = 0x000001B4 +_audioVolumeEnvironment = 0x000001B8 +_audioVolumeWeather = 0x000001BC +_audioVolumeEventCs = 0x000001C0 +_audioVolumeEventVoice = 0x000001C4 +_audioVolumeEventSe = 0x000001C8 +_audioVolumeUnknown = 0x000001F0 + +## +# Hook routines start here +## + +# Override BGM volume +_hookSetBgmVolume = 0x00000000 +0x00000000 = lis r11, _audioVolumeBgm@ha +0x00000004 = lfs f1, _audioVolumeBgm@l(r11) +0x00000008 = blr +0x028933D4 = bla _hookSetBgmVolume ; Install Hook + +# Override Voice volume +_hookSetVoiceVolume = 0x00000010 +0x00000010 = lis r11, _audioVolumeVoice@ha +0x00000014 = lfs f1, _audioVolumeVoice@l(r11) +0x00000018 = blr +0x028933E8 = bla _hookSetVoiceVolume ; Install Hook + +# Override Battle volume +_hookSetBattleVolume = 0x00000020 +0x00000020 = lis r11, _audioVolumeBattle@ha +0x00000024 = lfs f1, _audioVolumeBattle@l(r11) +0x00000028 = blr +0x028933FC = bla _hookSetBattleVolume ; Install Hook + +# Override Field volume +_hookSetFieldVolume = 0x00000030 +0x00000030 = lis r11, _audioVolumeField@ha +0x00000034 = lfs f1, _audioVolumeField@l(r11) +0x00000038 = blr +0x02893410 = bla _hookSetFieldVolume ; Install Hook + +# Override Gimmick volume +_hookSetGimmickVolume = 0x00000040 +0x00000040 = lis r11, _audioVolumeGimmick@ha +0x00000044 = lfs f1, _audioVolumeGimmick@l(r11) +0x00000048 = blr +0x02893424 = bla _hookSetGimmickVolume ; Install Hook + +# Override System volume +_hookSetSystemVolume = 0x00000050 +0x00000050 = lis r11, _audioVolumeSystem@ha +0x00000054 = lfs f1, _audioVolumeSystem@l(r11) +0x00000058 = blr +0x02893438 = bla _hookSetSystemVolume ; Install Hook + +# Override Environment volume +_hookSetEnvironmentVolume = 0x00000060 +0x00000060 = lis r11, _audioVolumeEnvironment@ha +0x00000064 = lfs f1, _audioVolumeEnvironment@l(r11) +0x00000068 = blr +0x0289344C = bla _hookSetEnvironmentVolume ; Install Hook + +# Override Weather volume +_hookSetWeatherVolume = 0x00000070 +0x00000070 = lis r11, _audioVolumeWeather@ha +0x00000074 = lfs f1, _audioVolumeWeather@l(r11) +0x00000078 = blr +0x02893460 = bla _hookSetWeatherVolume ; Install Hook + +# EVENT_* is initialized in a loop so we have to identify the current loop +# iteration and return the desired value + +_eventHookStart = 0x00000080 +_eventHookVoice = 0x00000094 +_eventHookSe = 0x00000108 +_eventHookDefault = 0x0000011C + +# EVENT_CS +0x00000080 = cmpwi r28, 3 +0x00000084 = bne _eventHookVoice +0x00000088 = lis r11, _audioVolumeEventCs@ha +0x0000008C = lfs f1, _audioVolumeEventCs@l(r11) +0x00000090 = blr + +# EVENT_VOICE +0x00000094 = cmpwi r28, 2 +0x00000098 = bne _eventHookSe +0x0000009C = lis r11, _audioVolumeEventVoice@ha +0x00000100 = lfs f1, _audioVolumeEventVoice@l(r11) +0x00000104 = blr + +# EVENT_SE +0x00000108 = cmpwi r28, 1 +0x0000010C = bne _eventHookDefault +0x00000110 = lis r11, _audioVolumeEventSe@ha +0x00000114 = lfs f1, _audioVolumeEventSe@l(r11) +0x00000118 = blr + +# Anything else +0x0000011C = lis r11, _audioVolumeDefault@ha +0x00000120 = lfs f1, _audioVolumeDefault@l(r11) +0x00000124 = blr + +0x02893480 = bla _eventHookStart ; Install Hook