cemu-game-mods/Mods/XenobladeX_mod_RebalanceAudio/patches.txt
XyFreak aa9ddb1092 Less intrusive approach using codecave.
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.
2019-05-29 00:04:34 +02:00

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