Hook GetCategoryVolume in loop as well

This commit is contained in:
XyFreak 2019-05-19 13:32:08 +02:00
parent aa9ddb1092
commit d650bbedf8

View File

@ -14,6 +14,9 @@ codeCaveSize = 0x200
0x000001B4 = .float 0.7 ; SYSTEM 0x000001B4 = .float 0.7 ; SYSTEM
0x000001B8 = .float 1.0 ; ENVIRONMENT 0x000001B8 = .float 1.0 ; ENVIRONMENT
0x000001BC = .float 1.0 ; WEATHER 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! # Do not touch anything below if you don't know what you are doing!
@ -29,6 +32,10 @@ _audioVolumeGimmick = 0x000001B0
_audioVolumeSystem = 0x000001B4 _audioVolumeSystem = 0x000001B4
_audioVolumeEnvironment = 0x000001B8 _audioVolumeEnvironment = 0x000001B8
_audioVolumeWeather = 0x000001BC _audioVolumeWeather = 0x000001BC
_audioVolumeEventCs = 0x000001C0
_audioVolumeEventVoice = 0x000001C4
_audioVolumeEventSe = 0x000001C8
_audioVolumeUnknown = 0x000001F0
## ##
# Hook routines start here # Hook routines start here
@ -89,3 +96,39 @@ _hookSetWeatherVolume = 0x00000070
0x00000074 = lfs f1, _audioVolumeWeather@l(r11) 0x00000074 = lfs f1, _audioVolumeWeather@l(r11)
0x00000078 = blr 0x00000078 = blr
0x028933E4 = bla _hookSetWeatherVolume ; Install Hook 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