Instead of overwriting half the original function, we just replace the calls to GetCategoryVolume with calls to our hooking functions located in a codecave (thank god what an awesome feature). Also makes it easier to maintain this patch and gives us volume control for each category independently.
92 lines
2.8 KiB
Plaintext
92 lines
2.8 KiB
Plaintext
[XCXRebalanceAudioV101U]
|
|
moduleMatches = 0xAB97DE6B
|
|
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
|
|
|
|
##
|
|
# 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
|
|
|
|
##
|
|
# 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
|