I don't know how far you are on this code currently but I went ahead and chopped your source down a bit (for the 2nd ASM). Ofc, with any source changes, test them first in-game before applying changes in the original post. I changed the Exception Vector location to 0x80001798 so the 1st ASM will need to be adjusted for this. No need to give me any credits for this. I'm not overhauling the source, just taking out some redundancy. The source below is for NTSC-U, I'm too lazy to setup macros atm.
#########################
#Load Air Timer Value Into Register 11 #
#########################
lis r12, 0x8000
lwz r11, 0x1798 (r12)
############################################
#Compare r11 to Set Value and Branch to Normal Gravity if Less Than #
############################################
cmplwi r11, 30
blt- normal_value
############################
#Load Analog Stick Y Axis Byte Into Memory#
############################
lis r12, 0x8034 #NTSC-U used for compilation
ori r12, r12, 0xc203
lbz r11, 0 (r12)
#####################################
#Compare Y axis Byte to set values and Branch Accordingly#
#####################################
cmplwi r11, 0xe4
bgt- heaviest_value
cmplwi r11, 0xc9
bgt- heavier_value
cmplwi r11, 0xae
bgt- heavy_value
cmplwi r11, 0x20
blt- lightest_value
cmplwi r11, 0x3b
blt- lighter_value
cmplwi r11, 0x56
blt- light_value
################################
#Set New Value for Gravity and Branch to the End #
################################
normal_value:
lis r12, 0x3f80
b the_end
heavy_value:
lis r12, 0x3f95
b the_end
heavier_value:
lis r12, 0x3fb0
b the_end
heaviest_value:
lis r12, 0x3fc5
b the_end
light_value:
lis r12, 0x3f65
b the_end
lighter_value:
lis r12, 0x3f50
b the_end
lightest_value:
lis r12, 0x3f35
the_end:
stw r12, 0 (r31)
lfs f1, 0 (31)
C2000000 00000012 #no address assigned
3D808000 816C1798
280B001E 41800040
3D80803r 618Cxxxx #Change r value and xxxx values accordingly for region
896C0000 280B00E4
41810044 280B00C9
41810034 280B00AE
41810024 280B0020
41800044 280B003B
41800034 280B0056
41800024 3D80XXXX
48000030 3D80MMMM
48000028 3D80hhhh
48000020 3D80HHHH
48000018 3D80LLLL
48000010 3D80UUUU
48000008 3D80YYYY
919F0000 C03F0000
60000000 00000000
#########################
#Load Air Timer Value Into Register 11 #
#########################
lis r12, 0x8000
lwz r11, 0x1798 (r12)
############################################
#Compare r11 to Set Value and Branch to Normal Gravity if Less Than #
############################################
cmplwi r11, 30
blt- normal_value
############################
#Load Analog Stick Y Axis Byte Into Memory#
############################
lis r12, 0x8034 #NTSC-U used for compilation
ori r12, r12, 0xc203
lbz r11, 0 (r12)
#####################################
#Compare Y axis Byte to set values and Branch Accordingly#
#####################################
cmplwi r11, 0xe4
bgt- heaviest_value
cmplwi r11, 0xc9
bgt- heavier_value
cmplwi r11, 0xae
bgt- heavy_value
cmplwi r11, 0x20
blt- lightest_value
cmplwi r11, 0x3b
blt- lighter_value
cmplwi r11, 0x56
blt- light_value
################################
#Set New Value for Gravity and Branch to the End #
################################
normal_value:
lis r12, 0x3f80
b the_end
heavy_value:
lis r12, 0x3f95
b the_end
heavier_value:
lis r12, 0x3fb0
b the_end
heaviest_value:
lis r12, 0x3fc5
b the_end
light_value:
lis r12, 0x3f65
b the_end
lighter_value:
lis r12, 0x3f50
b the_end
lightest_value:
lis r12, 0x3f35
the_end:
stw r12, 0 (r31)
lfs f1, 0 (31)
C2000000 00000012 #no address assigned
3D808000 816C1798
280B001E 41800040
3D80803r 618Cxxxx #Change r value and xxxx values accordingly for region
896C0000 280B00E4
41810044 280B00C9
41810034 280B00AE
41810024 280B0020
41800044 280B003B
41800034 280B0056
41800024 3D80XXXX
48000030 3D80MMMM
48000028 3D80hhhh
48000020 3D80HHHH
48000018 3D80LLLL
48000010 3D80UUUU
48000008 3D80YYYY
919F0000 C03F0000
60000000 00000000