[XCXRebalanceAudioV101U] moduleMatches = 0xAB97DE6B codeCaveSize = 0x200 ## # Floats for individual volume levels. Use presets to change. ## 0x000001A0 = .float $volBgm ; BGM 0x000001A4 = .float $volVoice ; VOICE 0x000001A8 = .float $volBattle ; BATTLE 0x000001AC = .float $volField ; FIELD 0x000001B0 = .float $volGimmick ; GIMMICK 0x000001B4 = .float $volSystem ; SYSTEM 0x000001B8 = .float $volEnvironment ; ENVIRONMENT 0x000001BC = .float $volWeather ; WEATHER 0x000001C0 = .float $volEventCs ; EVENT_CS 0x000001C4 = .float $volEventVoice ; EVENT_VOICE 0x000001C8 = .float $volEventSe ; EVENT_SE ## # Do not touch anything below if you don't know what you are doing! ## # Labels for individual volume floats _audioVolumeDefault = 0x1006CF30 ; 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 0x02893358 = bla _hookSetBgmVolume ; Install Hook # Override Voice volume _hookSetVoiceVolume = 0x00000010 0x00000010 = lis r11, _audioVolumeVoice@ha 0x00000014 = lfs f1, _audioVolumeVoice@l(r11) 0x00000018 = blr 0x0289336C = bla _hookSetVoiceVolume ; Install Hook # Override Battle volume _hookSetBattleVolume = 0x00000020 0x00000020 = lis r11, _audioVolumeBattle@ha 0x00000024 = lfs f1, _audioVolumeBattle@l(r11) 0x00000028 = blr 0x02893380 = bla _hookSetBattleVolume ; Install Hook # Override Field volume _hookSetFieldVolume = 0x00000030 0x00000030 = lis r11, _audioVolumeField@ha 0x00000034 = lfs f1, _audioVolumeField@l(r11) 0x00000038 = blr 0x02893394 = bla _hookSetFieldVolume ; Install Hook # Override Gimmick volume _hookSetGimmickVolume = 0x00000040 0x00000040 = lis r11, _audioVolumeGimmick@ha 0x00000044 = lfs f1, _audioVolumeGimmick@l(r11) 0x00000048 = blr 0x028933A8 = bla _hookSetGimmickVolume ; Install Hook # Override System volume _hookSetSystemVolume = 0x00000050 0x00000050 = lis r11, _audioVolumeSystem@ha 0x00000054 = lfs f1, _audioVolumeSystem@l(r11) 0x00000058 = blr 0x028933BC = bla _hookSetSystemVolume ; Install Hook # Override Environment volume _hookSetEnvironmentVolume = 0x00000060 0x00000060 = lis r11, _audioVolumeEnvironment@ha 0x00000064 = lfs f1, _audioVolumeEnvironment@l(r11) 0x00000068 = blr 0x028933D0 = bla _hookSetEnvironmentVolume ; Install Hook # Override Weather volume _hookSetWeatherVolume = 0x00000070 0x00000070 = lis r11, _audioVolumeWeather@ha 0x00000074 = lfs f1, _audioVolumeWeather@l(r11) 0x00000078 = blr 0x028933E4 = 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 0x02893404 = bla _eventHookStart ; Install Hook [XCXRebalanceAudioV100E_V101E] moduleMatches = 0x218F6E07, 0xF882D5CF codeCaveSize = 0x200 ## # Floats for individual volume levels. Use presets to change. ## 0x000001A0 = .float $volBgm ; BGM 0x000001A4 = .float $volVoice ; VOICE 0x000001A8 = .float $volBattle ; BATTLE 0x000001AC = .float $volField ; FIELD 0x000001B0 = .float $volGimmick ; GIMMICK 0x000001B4 = .float $volSystem ; SYSTEM 0x000001B8 = .float $volEnvironment ; ENVIRONMENT 0x000001BC = .float $volWeather ; WEATHER 0x000001C0 = .float $volEventCs ; EVENT_CS 0x000001C4 = .float $volEventVoice ; EVENT_VOICE 0x000001C8 = .float $volEventSe ; 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