BATTLE.BIN System Functions

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search

< BATTLE.BIN

Alternate documentation here: 00141b0c - 00142504
00141b0c: 27bdffc8 addiu r29,r29,0xffc8         #
00141b10: afb20018 sw r18,0x0018(r29)           #
00141b14: 00809021 addu r18,r4,r0               #r18 = r4 ?
00141b18: afb3001c sw r19,0x001c(r29)           #
00141b1c: 00a09821 addu r19,r5,r0               #r19 = r5 ??
00141b20: afb60028 sw r22,0x0028(r29)           #
00141b24: 00c0b021 addu r22,r6,r0               #r22 = r6 (Unit ID?)
00141b28: afb10014 sw r17,0x0014(r29)           #
00141b2c: 00e08821 addu r17,r7,r0               #r17 = r7 ???
00141b30: afb40020 sw r20,0x0020(r29)           #
00141b34: 8fb40048 lw r20,0x0048(r29)           #r20 = Something from Stack?
00141b38: afb7002c sw r23,0x002c(r29)           #
00141b3c: 8fb7004c lw r23,0x004c(r29)           #r23 = Some pointer from Stack??
00141b40: 3c028016 lui r2,0x8016                #
00141b44: 24426b10 addiu r2,r2,0x6b10           #r2  = 0x80166b10 (Menu Data pointer?)
00141b48: 3c018017 lui r1,0x8017                #
00141b4c: ac223cb8 sw r2,0x3cb8(r1)             #Store r2 to 0x80173cb8
00141b50: 2402ffff addiu r2,r0,0xffff           #r2  = -1
00141b54: afbf0030 sw r31,0x0030(r29)           #
00141b58: afb50024 sw r21,0x0024(r29)           #
00141b5c: afb00010 sw r16,0x0010(r29)           #
00141b60: 3c018016 lui r1,0x8016                #
00141b64: ac225f84 sw r2,0x5f84(r1)             #Store r2 to 0x80165f84 (Menu/Message display byte)
00141b68: 3c018015 lui r1,0x8015                #
00141b6c: a020d324 sb r0,-0x2cdc(r1)            #Clear 0x8014d324 (No Ability Selected?)
00141b70: 0c0602bf jal 0x00180afc               #Get Unit's Data Pointer
00141b74: 02c02021 addu r4,r22,r0               #r4  = r22 (Unit ID?)
00141b78: 00408021 addu r16,r2,r0               #r16 = Unit's Data Pointer
00141b7c: 34020008 ori r2,r0,0x0008             #r3  = 8
00141b80: 164200a9 bne r18,r2,0x00141e28        #If r18 (initial parameter r4) = 0x08    /Else Branch
00141b84: 00000000 nop                          #
00141b88: 0c04ed64 jal 0x0013b590                   #Get Script Variable
00141b8c: 34040027 ori r4,r0,0x0027                 #r4  = 0x27 (Current Event variable)
00141b90: 00408821 addu r17,r2,r0                   #r17 = Current Event ID
00141b94: 2622fe66 addiu r2,r17,0xfe66              #r2  = Current Event ID - 19A
00141b98: 2c420010 sltiu r2,r2,0x0010               #Tutorial check?
00141b9c: 10400005 beq r2,r0,0x00141bb4             #If not Tutorial Event?    /Else Branch
00141ba0: 34020002 ori r2,r0,0x0002                     #r2  = 2
00141ba4: 1262024c beq r19,r2,0x001424d8                #If r19 (initial parameter r5) is NOT 2    /Else Branch to END
00141ba8: 34020001 ori r2,r0,0x0001                     #r2  = 1
00141bac: 0805078c j 0x00141e30                             #Jump
00141bb0: 00000000 nop                                      #
00141bb4: 3c028016 lui r2,0x8016                    #
00141bb8: 94425ff6 lhu r2,0x5ff6(r2)                #r2  = ??
00141bbc: 00000000 nop                              #
00141bc0: 10400005 beq r2,r0,0x00141bd8             #If ?? is NOT 0    /Else Branch
00141bc4: 34020002 ori r2,r0,0x0002                     #r2  = 2
00141bc8: 12620243 beq r19,r2,0x001424d8                #If r19 (initial parameter r5) is NOT 2    /Else Branch to END
00141bcc: 34020001 ori r2,r0,0x0001                     #r2  = 1
00141bd0: 0805078c j 0x00141e30                             #Jump
00141bd4: 00000000 nop                                      #
00141bd8: 34020001 ori r2,r0,0x0001                 #r2  = 1
00141bdc: 12620094 beq r19,r2,0x00141e30            #If r19 (initial parameter r5) is NOT 1    /Else Branch
00141be0: 00000000 nop                              #
00141be4: 0c053325 jal 0x0014cc94                       #Check Thread Running Status
00141be8: 34040001 ori r4,r0,0x0001                     #r4  = 1 (Thread ID for Events)
00141bec: 10400009 beq r2,r0,0x00141c14                 #If Event is already running    /Else Branch
00141bf0: 00009021 addu r18,r0,r0                       #r18 = 0
00141bf4: 34040007 ori r4,r0,0x0007                         #r4  = 7
00141bf8: 0c01127e jal 0x000449f8                           #000449f8 - 000449fc Null Routine
00141bfc: 34050003 ori r5,r0,0x0003                         #r5  = 3
00141c00: 34020002 ori r2,r0,0x0002                         #r2  = 2
00141c04: 12620234 beq r19,r2,0x001424d8                    #If r19 (initial parameter r5) is 2    /Else Branch to END
00141c08: 34020001 ori r2,r0,0x0001                         #r2  = 1
00141c0c: 0805078c j 0x00141e30                                 #Jump
00141c10: 00000000 nop                                          #
00141c14: 3c018015 lui r1,0x8015                        #
00141c18: ac36d304 sw r22,-0x2cfc(r1)                   #Store r22 (Unit ID?) to 0x8014d304
00141c1c: 00002021 addu r4,r0,r0                        #r4  = 0 (kind of a counter)
00141c20: 2414fffd addiu r20,r0,0xfffd                  #r20 = -3
                                                        #Loop Start:
00141c24: 24900001 addiu r16,r4,0x0001                      #r16 = r4 + 1
00141c28: 0c0602cb jal 0x00180b2c                           #Check Base Class | Ramza Causes Game Over
00141c2c: 02002021 addu r4,r16,r0                           #
00141c30: 14540002 bne r2,r20,0x00141c3c                    #If Ramza is Crystal/Treasure/othwise disabled? (Petrified?)
00141c34: 02002021 addu r4,r16,r0                           #
00141c38: 26520001 addiu r18,r18,0x0001                         #Increment r18 if Ramza (any Chapter) is Crystal/Treasure/othwise disabled
00141c3c: 28820003 slti r2,r4,0x0003                        #Check Ramza classes only
00141c40: 1440fff8 bne r2,r0,0x00141c24                     #Loop
00141c44: 00000000 nop                                      #
00141c48: 0c060cdd jal 0x00183374                       #Check Battle Outcome | Gameover by party incapacitated
00141c4c: 00000000 nop                                  #
00141c50: 04400003 bltz r2,0x00141c60                   #If battle has NOT been lost    /Else Branch
00141c54: 00000000 nop                                  #
00141c58: 12400018 beq r18,r0,0x00141cbc                    #If Ramza is Crystal/Treasure/othwise disabled    /Else Branch
00141c5c: 00000000 nop                                      #

#Defeated
00141c60: 0c04ed64 jal 0x0013b590                       #Get Script Variable
00141c64: 340401fd ori r4,r0,0x01fd                     #r4  = 0x01fd (Battle has not yet begun?)
00141c68: 14400014 bne r2,r0,0x00141cbc                 #If Battle has NOT begun?    /Else Branch
00141c6c: 34020002 ori r2,r0,0x0002                         #r2  = 2
00141c70: 12620010 beq r19,r2,0x00141cb4                    #If r19 (initial parameter r5) is NOT 2    /Else Branch
00141c74: 34040027 ori r4,r0,0x0027                             #r4  = 0x27 (Current Event Variable ID)
00141c78: 0c04ed91 jal 0x0013b644                               #Set Script Variable
00141c7c: 34050190 ori r5,r0,0x0190                             #r5  = 0x0190 (Random Battle Setup ID)
00141c80: 00002021 addu r4,r0,r0                                #r4  = 0
00141c84: 340500ff ori r5,r0,0x00ff                             #r5  = 0xff
00141c88: 0c04f58d jal 0x0013d634                               #Store unit names and some event block data
00141c8c: 340600ff ori r6,r0,0x00ff                             #r6  = 0xff
00141c90: 34020001 ori r2,r0,0x0001                             #r2  = 1
00141c94: 3c018016 lui r1,0x8016                                #
00141c98: a4226048 sh r2,0x6048(r1)                             #Store 1 at 0x80166048 (freezes control to go to next event?)
00141c9c: 3c018017 lui r1,0x8017                                #
00141ca0: a4223cb0 sh r2,0x3cb0(r1)                             #Store 1 at 0x80173cb0 (??)
00141ca4: 0c04fcff jal 0x0013f3fc                               #0013f3fc - 0013f49c
00141ca8: 00000000 nop                                          #
00141cac: 08050936 j 0x001424d8                                 #Jump to END
00141cb0: 34020002 ori r2,r0,0x0002                             #r2  = 2
00141cb4: 08050782 j 0x00141e08                             #Jump
00141cb8: 34020190 ori r2,r0,0x0190                         #r2  = 0x0190 (Random Battle Setup Event ID)

#Not Defeated
00141cbc: 3c028017 lui r2,0x8017                        #
00141cc0: 84423cb0 lh r2,0x3cb0(r2)                     #r2  = Value at 0x80173cb0 (??)
00141cc4: 00000000 nop                                  #
00141cc8: 1040001e beq r2,r0,0x00141d44                 #If ?? is NOT 0    /Else Branch
00141ccc: 00000000 nop                                  #
00141cd0: 0c05096c jal 0x001425b0                           #Process Scenario Conditionals
00141cd4: 00000000 nop                                      #
00141cd8: 10400016 beq r2,r0,0x00141d34                     #If an Event should be run    /Else Branch
00141cdc: 34020002 ori r2,r0,0x0002                             #r2  = 2
00141ce0: 1262000b beq r19,r2,0x00141d10                        #If r19 (initial parameter r5) is NOT 2    /Else Branch
00141ce4: 00002021 addu r4,r0,r0                                    #r4  = 0
00141ce8: 340500ff ori r5,r0,0x00ff                                 #r5  = 0xff
00141cec: 0c04f58d jal 0x0013d634                                   #Store unit names and some event block data
00141cf0: 340600ff ori r6,r0,0x00ff                                 #r6  = 0xff
00141cf4: 34020001 ori r2,r0,0x0001                                 #r2  = 1
00141cf8: 3c018016 lui r1,0x8016                                    #
00141cfc: a4226048 sh r2,0x6048(r1)                                 #Store 1 to 0x80166048 (freezes control to go to next event?)
00141d00: 0c04fcff jal 0x0013f3fc                                   #0013f3fc - 0013f49c
00141d04: 00000000 nop                                              #
00141d08: 08050936 j 0x001424d8                                     #Jump to END
00141d0c: 34020002 ori r2,r0,0x0002                                 #r2  = 2
00141d10: 0c04ed64 jal 0x0013b590                               #Get Script Variable
00141d14: 34040027 ori r4,r0,0x0027                             #r4  = 0x27 (Current Event Variable ID)
00141d18: 3c018017 lui r1,0x8017                                #
00141d1c: ac223c74 sw r2,0x3c74(r1)                             #Store 2 to 0x80173c74 (Next Event?)
00141d20: 34040027 ori r4,r0,0x0027                             #r4  = 0x27 (Current Event Variable ID)
00141d24: 0c04ed91 jal 0x0013b644                               #Set Script Variable
00141d28: 02202821 addu r5,r17,r0                               #r5  = r17 (initial parameter r7 ???)
00141d2c: 08050936 j 0x001424d8                                 #Jump to END
00141d30: 34020002 ori r2,r0,0x0002                             #r2  = 2
00141d34: 126201e8 beq r19,r2,0x001424d8                    #If r19 (initial parameter r5) is NOT 2    /Else Branch to END
00141d38: 34020001 ori r2,r0,0x0001                         #r2  = 1
00141d3c: 0805078c j 0x00141e30                             #Jump
00141d40: 00000000 nop                                      #
00141d44: 0c04ed64 jal 0x0013b590                       #Get Script Variable
00141d48: 340401fd ori r4,r0,0x01fd                     #r4  = 0x01fd (Battle has not yet begun?)
00141d4c: 10400018 beq r2,r0,0x00141db0                 #If Battle has begun?    /Else Branch
00141d50: 34020002 ori r2,r0,0x0002                         #r2  = 2
00141d54: 12620014 beq r19,r2,0x00141da8                    #If r19 (initial parameter r5) is NOT 2    /Else Branch
00141d58: 00002021 addu r4,r0,r0                                #r4  = 0
00141d5c: 340500ff ori r5,r0,0x00ff                             #r5  = 0xff
00141d60: 0c04f58d jal 0x0013d634                               #Store unit names and some event block data
00141d64: 340600ff ori r6,r0,0x00ff                             #r6  = 0xff
00141d68: 34020001 ori r2,r0,0x0001                             #r2  = 1
00141d6c: 3c018016 lui r1,0x8016                                #
00141d70: a4226048 sh r2,0x6048(r1)                             #Store 1 to 0x80166048 (freezes control to go to next event?)
00141d74: 0c04ed64 jal 0x0013b590                               #Get Script Variable
00141d78: 340401fe ori r4,r0,0x01fe                             #r4  = 0x01fe (Next Random is World Debug Battle Style?)
00141d7c: 10400003 beq r2,r0,0x00141d8c                         #If Next Random is World Debug Battle Style?    /Else Branch
00141d80: 34040027 ori r4,r0,0x0027                             #r4  = 0x27 (Current Event Variable ID)
00141d84: 08050764 j 0x00141d90                                     #Jump
00141d88: 34050193 ori r5,r0,0x0193                                 #r5  = 0x0193 (DO NOT USE script?)
00141d8c: 34050191 ori r5,r0,0x0191                             #r5  = 0x0191 (Random Battle Initiate Event ID)
00141d90: 0c04ed91 jal 0x0013b644                               #Set Script Variable
00141d94: 00000000 nop                                          #
00141d98: 0c04fcff jal 0x0013f3fc                               #0013f3fc - 0013f49c
00141d9c: 00000000 nop                                          #
00141da0: 08050936 j 0x001424d8                                 #Jump to END
00141da4: 34020002 ori r2,r0,0x0002                             #r2  = 2
00141da8: 08050782 j 0x00141e08                             #Jump
00141dac: 34020191 ori r2,r0,0x0191                         #r2  = 0x0191 (Random Battle Initiate Event ID)

#Victorious
00141db0: 0c060cdd jal 0x00183374                       #Check Battle Outcome | Gameover by party incapacitated
00141db4: 00000000 nop                                  #
00141db8: 14400017 bne r2,r0,0x00141e18                 #If Battle outcome is Victory    /Else Branch
00141dbc: 34020002 ori r2,r0,0x0002                         #r2  = 2
00141dc0: 12620010 beq r19,r2,0x00141e04                    #If r19 (initial parameter r5) is NOT 2    /Else Branch
00141dc4: 00002021 addu r4,r0,r0                                #r4  = 0
00141dc8: 340500ff ori r5,r0,0x00ff                             #r5  = 0xff
00141dcc: 0c04f58d jal 0x0013d634                               #Store unit names and some event block data
00141dd0: 340600ff ori r6,r0,0x00ff                             #r6  = 0xff
00141dd4: 34040027 ori r4,r0,0x0027                             #r4  = 0x27 (Current Event Variable ID)
00141dd8: 34100001 ori r16,r0,0x0001                            #r16 = 1
00141ddc: 3c018016 lui r1,0x8016                                #
00141de0: a4306048 sh r16,0x6048(r1)                            #Store 1 to 0x80166048 (freezes control to go to next event?)
00141de4: 0c04ed91 jal 0x0013b644                               #Set Script Variable
00141de8: 34050192 ori r5,r0,0x0192                             #r5  = 0x0192 (Random Battle Victory Event ID)
00141dec: 3c018017 lui r1,0x8017                                #
00141df0: a4303cb0 sh r16,0x3cb0(r1)                            #Store 1 to 0x80173cb0 (??)
00141df4: 0c04fcff jal 0x0013f3fc                               #0013f3fc - 0013f49c
00141df8: 00000000 nop                                          #
00141dfc: 08050936 j 0x001424d8                                 #Jump to END
00141e00: 34020002 ori r2,r0,0x0002                             #r2  = 2
00141e04: 34020192 ori r2,r0,0x0192                         #r2  = 0x0192 (Random Battle Victory Event ID)

00141e08: 3c018017 lui r1,0x8017                            #
00141e0c: ac223c74 sw r2,0x3c74(r1)                         #Store r2 to 0x80173c74 (Next Event?)
00141e10: 08050936 j 0x001424d8                             #Jump to END
00141e14: 34020002 ori r2,r0,0x0002                         #r2  = 2
00141e18: 126201af beq r19,r2,0x001424d8                #If r19 (initial parameter r5) is NOT 2    /Else Branch to END
00141e1c: 34020001 ori r2,r0,0x0001                     #r2  = 1
00141e20: 0805078c j 0x00141e30                             #Jump
00141e24: 00000000 nop                                      #

Don't display menu

00141e28: 16800005 bne r20,r0,0x00141e40        #If Something from Stack? is 0    /Else Branch
00141e2c: 34140001 ori r20,r0,0x0001            #r20 = 0x01
00141e30: 0c050595 jal 0x00141654                   #00141654 - 0014169c (also the branch destination for section way above)
00141e34: 34040008 ori r4,r0,0x0008                 #r4  = {close} (no menu)
00141e38: 08050936 j 0x001424d8                     #Jump to END
00141e3c: 34020001 ori r2,r0,0x0001                 #r2  = 1
00141e40: 16540026 bne r18,r20,0x00141edc       #If r18 = 0x01    /Else Branch
00141e44: 34030002 ori r3,r0,0x0002             #r3  = 0x02
00141e48: 3c038015 lui r3,0x8015                    #
00141e4c: 8c63d314 lw r3,-0x2cec(r3)                #r3  = Value at 0x8014d314 (Autobattle Setting?)
00141e50: 00000000 nop                              #
00141e54: 10600004 beq r3,r0,0x00141e68             #If Autobattle is on    /Else Branch
00141e58: 34110008 ori r17,r0,0x0008                    #r17 = {close} (do not display menu)
00141e5c: 34020019 ori r2,r0,0x0019                     #r2  = 0x19
00141e60: 14620006 bne r3,r2,0x00141e7c                 #If Autobattle setting = 0x19 (???)    /Else Branch
00141e64: 00000000 nop                                  #
00141e68: 34020002 ori r2,r0,0x0002                 #r2  = 2
00141e6c: 166200d1 bne r19,r2,0x001421b4            #If r19 (initial parameter r5) is 2    /Else Branch
00141e70: 34110007 ori r17,r0,0x0007                #r17 = status/auto battle/end
00141e74: 0805086d j 0x001421b4                             #Jump
00141e78: 34110031 ori r17,r0,0x0031                        #r17 = no place to move
00141e7c: 14720008 bne r3,r18,0x00141ea0                #If Autobattle setting = r18    /Else Branch
00141e80: 3402000c ori r2,r0,0x000c                     #r2  = 0x0c
00141e84: 34020001 ori r2,r0,0x0001                         #r2  = 1
00141e88: 3c018015 lui r1,0x8015                            #
00141e8c: a022d324 sb r2,-0x2cdc(r1)                        #Store 1 to 0x8014d324 (Ability is Selected?)
00141e90: 167200c8 bne r19,r18,0x001421b4                   #If r19 (initial parameter r5) = r18    /Else Branch
00141e94: 34110006 ori r17,r0,0x0006                        #r17 = Protect allies
00141e98: 0805086d j 0x001421b4                                 #Jump
00141e9c: 34110029 ori r17,r0,0x0029                            #r17 = no targetable panels
00141ea0: 14620003 bne r3,r2,0x00141eb0                 #If Autobattle setting = Fight for your life    /Else Branch
00141ea4: 3402000e ori r2,r0,0x000e                     #r2  = 0x0e
00141ea8: 0805086d j 0x001421b4                             #Jump
00141eac: 34110014 ori r17,r0,0x0014                        #r17 = "select unit to attack"
00141eb0: 14620003 bne r3,r2,0x00141ec0                 #If Autobattle setting = Protect Allies    /Else Branch
00141eb4: 34020002 ori r2,r0,0x0002                     #r2  = 2
00141eb8: 0805086d j 0x001421b4                             #Jump
00141ebc: 34110015 ori r17,r0,0x0015                        #r17 = "select unit to protect"
00141ec0: 3c038015 lui r3,0x8015                        #
00141ec4: 8c63d30c lw r3,-0x2cf4(r3)                    #r3  = Value at 0x8014d30c (Used Skillset?)
00141ec8: 00000000 nop                                  #
00141ecc: 146200b9 bne r3,r2,0x001421b4                 #If Used Skillset = Defend?    /Else Branch
00141ed0: 00000000 nop                                  #
00141ed4: 0805086d j 0x001421b4                             #Jump
00141ed8: 3411001c ori r17,r0,0x001c                        #r17 = battle menus out of bound index?

Confirm move destination

00141edc: 16430017 bne r18,r3,0x00141f3c        #If r18 = 0x02    /Else Branch
00141ee0: 34150003 ori r21,r0,0x0003            #r21 = 0x03
00141ee4: 0c04b747 jal 0x0012dd1c                   #0012dd1c - 0012dd2c
00141ee8: 00000000 nop                              #
00141eec: 1260016d beq r19,r0,0x001424a4            #If r19 (initial parameter r5) is NOT 0    /Else Branch
00141ef0: 00000000 nop                              #
00141ef4: 16740005 bne r19,r20,0x00141f0c               #If r19 (initial parameter r5) is 1    /Else Branch
00141ef8: 34020004 ori r2,r0,0x0004                     #r2  = 4
00141efc: 0c050595 jal 0x00141654                           #00141654 - 0014169c
00141f00: 00002021 addu r4,r0,r0                            #r4  = Ride chocobo confirmation
00141f04: 08050932 j 0x001424c8                             #Jump
00141f08: 34020001 ori r2,r0,0x0001                         #r2  = 1
00141f0c: 16620005 bne r19,r2,0x00141f24                #If r19 (initial parameter r5) is 4    /Else Branch
00141f10: 00000000 nop                                  #
00141f14: 0c050595 jal 0x00141654                           #00141654 - 0014169c
00141f18: 34040030 ori r4,r0,0x0030                         #r4  = move confirmation; inherit crystal
00141f1c: 08050932 j 0x001424c8                             #Jump
00141f20: 34020001 ori r2,r0,0x0001                         #r2  = 1
00141f24: 0c04b756 jal 0x0012dd58                       #0012dd58 - 0012dd68
00141f28: 00000000 nop                                  #
00141f2c: 0c050595 jal 0x00141654                       #00141654 - 0014169c
00141f30: 2664000d addiu r4,r19,0x000d                  #r4  = r19 + 0x0d (select within moveable range (r19 = 2) OR move confirmation (r19 = 3)
00141f34: 08050932 j 0x001424c8                         #Jump
00141f38: 34020001 ori r2,r0,0x0001                     #r2  = 1

Show wait instructions

00141f3c: 1655000f bne r18,r21,0x00141f7c       #If r18 = 0x03    /Else Branch
00141f40: 34020004 ori r2,r0,0x0004             #r2  = 0x04
00141f44: 3c028015 lui r2,0x8015                    #
00141f48: 8c42d318 lw r2,-0x2ce8(r2)                #r2 = Value at 0x8014d318 (Function Setting 1?)
00141f4c: 00000000 nop                              #
00141f50: 14430006 bne r2,r3,0x00141f6c             #If Function Setting 1 = 4?    /Else Branch
00141f54: 00000000 nop                              #
00141f58: 3c028015 lui r2,0x8015                        #
00141f5c: 8c42d31c lw r2,-0x2ce4(r2)                    #r2 = Value at 0x8014d31c (Function Setting 2?)
00141f60: 00000000 nop                                  #
00141f64: 1054014f beq r2,r20,0x001424a4                #If Function Setting 2 is NOT 1    /Else Branch
00141f68: 00000000 nop                                  #
00141f6c: 0c050595 jal 0x00141654                   #00141654 - 0014169c
00141f70: 34040001 ori r4,r0,0x0001                 #r4  = Wait instructions
00141f74: 08050932 j 0x001424c8                     #Jump
00141f78: 34020001 ori r2,r0,0x0001                 #r2  = 1

Target selection

00141f7c: 16420029 bne r18,r2,0x00142024        #If r18 = 0x04    /Else Branch
00141f80: 34020005 ori r2,r0,0x0005             #r2  = 0x05
00141f84: 12620022 beq r19,r2,0x00142010            #If r19 is NOT out of firing range    /Else Branch
00141f88: 3411002f ori r17,r0,0x002f                #r17 = out of firing range
00141f8c: 12740020 beq r19,r20,0x00142010               #If r19 is NOT "can follow, tile has target"    /Else Branch
00141f90: 3411000b ori r17,r0,0x000b                    #r17 = centre ability on target or tile
00141f94: 12630003 beq r19,r3,0x00141fa4                    #If r19 is NOT "can/can't follow, no target"    /Else Branch
00141f98: 3402fffe ori r2,r0,0xfffe                         #r2  = -2
00141f9c: 1672000f bne r19,r18,0x00141fdc                       #If r19 = "can't follow, tile has target"    /Else Branch
00141fa0: 00000000 nop                                          #
00141fa4: 3c038015 lui r3,0x8015                            #
00141fa8: 8c63d310 lw r3,-0x2cf0(r3)                        #r3  = Value at 0x8014d310 (Used Item?)
00141fac: 00000000 nop                                      #
00141fb0: 10620006 beq r3,r2,0x00141fcc                     #If Used Item is valid?    /Else Branch
00141fb4: 3411002d ori r17,r0,0x002d                        #r17 = ability will be centred on target tile
00141fb8: 3c028015 lui r2,0x8015                                #
00141fbc: 8c42d320 lw r2,-0x2ce0(r2)                            #r2  = Value at 0x8014d320 (Ability CT?)
00141fc0: 00000000 nop                                          #
00141fc4: 14400003 bne r2,r0,0x00141fd4                         #If Ability CT = 0?    /Else Branch
00141fc8: 00000000 nop                                          #
00141fcc: 08050805 j 0x00142014                             #Jump
00141fd0: 34020001 ori r2,r0,0x0001                         #r2  = 1

if no CT:
00141fd4: 08050804 j 0x00142010                                 #Jump
00141fd8: 3411000c ori r17,r0,0x000c                            #r17 = {close} (no menu)

r19 = auto target (3)/err case (0)
00141fdc: 3c038015 lui r3,0x8015                                #
00141fe0: 8c63d310 lw r3,-0x2cf0(r3)                            #r3  = Value at 0x8014d310 (Used Item?)
00141fe4: 00000000 nop                                          #
00141fe8: 14620006 bne r3,r2,0x00142004                         #If Used Item is valid?    /Else Branch
00141fec: 3411002e ori r17,r0,0x002e                            #r17 = final action confirmation (auto battle confirmation)
00141ff0: 3c028015 lui r2,0x8015                                    #
00141ff4: 8c42d320 lw r2,-0x2ce0(r2)                                #r2  = Value at 0x8014d320 (Ability CT?)
00141ff8: 00000000 nop                                              #
00141ffc: 14400003 bne r2,r0,0x0014200c                             #If Ability CT = 0?    /Else Branch
00142000: 00000000 nop                                              #
00142004: 08050805 j 0x00142014                                 #Jump
00142008: 34020001 ori r2,r0,0x0001                             #r2  = 1

if no CT:
0014200c: 3411000d ori r17,r0,0x000d                                #r17 = {close} (no menu)
00142010: 34020001 ori r2,r0,0x0001                 #r2  = 1
00142014: 3c018015 lui r1,0x8015                    #
00142018: a022d324 sb r2,-0x2cdc(r1)                #Store 1 to 0x8014d324 (Ability is Selected?)
0014201c: 0805086d j 0x001421b4                     #Jump
00142020: 00000000 nop                              #

Spell quotes

00142024: 16420011 bne r18,r2,0x0014206c        #If r18 = 0x05    /Else Branch
00142028: 34020007 ori r2,r0,0x0007             #r2  = 0x07
0014202c: 96e20002 lhu r2,0x0002(r23)               #r2  = used ability ID
00142030: 3c058014 lui r5,0x8014                    #
00142034: 24a5bdcc addiu r5,r5,0xbdcc               #r5  = 
00142038: 304201ff andi r2,r2,0x01ff                #r2  = ability ID - 0x200 flag
0014203c: 3c018015 lui r1,0x8015                    #
00142040: ac22d308 sw r2,-0x2cf8(r1)                #Store Used Ability for Spell Quotes
00142044: 0c053228 jal 0x0014c8a0                   #Initialize Thread
00142048: 34040004 ori r4,r0,0x0004                 #r4  = 4
0014204c: 34040004 ori r4,r0,0x0004                 #r4  = 4
00142050: 02c02821 addu r5,r22,r0                   #r5  = Unit ID
00142054: 3c068015 lui r6,0x8015                    #
00142058: 8cc6d308 lw r6,-0x2cf8(r6)                #r6  = Used Ability
0014205c: 0c05328e jal 0x0014ca38                   #Store Thread Function Parameters
00142060: 00003821 addu r7,r0,r0                    #r7  = 0
00142064: 08050932 j 0x001424c8                     #Jump
00142068: 34020001 ori r2,r0,0x0001                 #r2  = 1

Display action name

0014206c: 16420037 bne r18,r2,0x0014214c        #If r18 = 0x07    /Else Branch
00142070: 34020006 ori r2,r0,0x0006             #r2  = 0x06
00142074: 0c04ebb7 jal 0x0013aedc                   #0013aedc - 0013aee8
00142078: 3404003c ori r4,r0,0x003c                 #r4  = 0x3c
0014207c: 9202016f lbu r2,0x016f(r16)               #r2  = Skillset of Last Attack Used
00142080: 3c018006 lui r1,0x8006                    #
00142084: 00220821 addu r1,r1,r2                    #r1  = Skillset Data
00142088: 90225cb4 lbu r2,0x5cb4(r1)                #r2  = Skillset's Action Menu
0014208c: 00000000 nop                              #
00142090: 14550014 bne r2,r21,0x001420e4            #If Skillset's Action Menu = 3 (Math)    /Else Branch
00142094: 34020006 ori r2,r0,0x0006                 #r2  = 6
00142098: 86020174 lh r2,0x0174(r16)                    #r2  = Calculator Multiplier Ability ID
0014209c: 00000000 nop                                  #
001420a0: 24427000 addiu r2,r2,0x7000                   #r2  = Calculator Multiplier Ability ID + 0x7000 (ability names, [ability]) (?? mult ??)
001420a4: 3c018016 lui r1,0x8016                        #
001420a8: ac225ef8 sw r2,0x5ef8(r1)                     #Store r2 to 0x80165ef8
001420ac: 86020172 lh r2,0x0172(r16)                    #r2  = Calculator Type Ability ID
001420b0: 00000000 nop                                  #
001420b4: 24427000 addiu r2,r2,0x7000                   #r2  = Calculator Type Ability ID + 0x7000 (ability names, [ability]) (stat mult ??)
001420b8: 3c018016 lui r1,0x8016                        #
001420bc: ac225ef4 sw r2,0x5ef4(r1)                     #Store r2 to 0x80165ef4
001420c0: 86020170 lh r2,0x0170(r16)                    #r2  = Last Attack Used ID
001420c4: 00000000 nop                                  #
001420c8: 24427000 addiu r2,r2,0x7000                   #r2  = Last Attack Used ID + 0x7000 (ability names, [ability]) (stat mult spell)
001420cc: 3c018016 lui r1,0x8016                        #
001420d0: ac225efc sw r2,0x5efc(r1)                     #Store r2 to 0x80165efc
001420d4: 0c050595 jal 0x00141654                       #00141654 - 0014169c 
001420d8: 3404002c ori r4,r0,0x002c                     #r4  = used action display name (calculator)
001420dc: 08050932 j 0x001424c8                         #Jump
001420e0: 34020001 ori r2,r0,0x0001                     #r2  = 1
001420e4: 92e30001 lbu r3,0x0001(r23)               #r3  = used skillset
001420e8: 00000000 nop                              #
001420ec: 10620004 beq r3,r2,0x00142100             #If used skillset = item    /Else Branch
001420f0: 00000000 nop                              #
001420f4: 34020014 ori r2,r0,0x0014                     #r2  = 0x14
001420f8: 14620004 bne r3,r2,0x0014210c                 #If used skillset = throw    /Else Branch
001420fc: 00000000 nop                                  #
00142100: 92e20008 lbu r2,0x0008(r23)               #r2  = used Item ID
00142104: 0805084d j 0x00142134                     #Jump
00142108: 24423800 addiu r2,r2,0x3800               #r2  = used item ID + 0x3800  (item names, [item])
0014210c: 96e20002 lhu r2,0x0002(r23)                   #r2  = used ability ID
00142110: 00000000 nop                                  #
00142114: 305101ff andi r17,r2,0x01ff                   #r17 = used ability ID without 0x200 flag (just, makes sure fall damage doesn't try to index something? lol)
00142118: 2622ffc4 addiu r2,r17,0xffc4                  #r2  = ability ID - 0x3c
0014211c: 2c42001a sltiu r2,r2,0x001a                   #Set if r2 is summon or draw out
00142120: 10400003 beq r2,r0,0x00142130                 #
00142124: 3402b7c4 ori r2,r0,0xb7c4                     #r2  = 0xb7c4 (skillset names (but indexed EXTREMELY far out of bounds. probably happens to point to entry 23: summon/draw out))
00142128: 0805084d j 0x00142134                             #Jump
0014212c: 02221021 addu r2,r17,r2                           #r2  = summon/draw out specific text entry
00142130: 26227000 addiu r2,r17,0x7000                  #r2  = ability id + 0x7000 (ability names, [ability])
00142134: 3c018016 lui r1,0x8016                    #
00142138: ac225ef4 sw r2,0x5ef4(r1)                 #Store r2 to 0x80165ef4
0014213c: 0c050595 jal 0x00141654                   #00141654 - 0014169c
00142140: 3404000a ori r4,r0,0x000a                 #r4  = used action display name
00142144: 08050932 j 0x001424c8                     #Jump
00142148: 34020001 ori r2,r0,0x0001                 #r2  = 1
0014214c: 124200d5 beq r18,r2,0x001424a4        #If r18 = 0x06    /Else Branch
00142150: 34020009 ori r2,r0,0x0009             #r2  = 0x09
00142154: 1642001b bne r18,r2,0x001421c4            #If r18 = 0x09    /Else Branch
00142158: 00000000 nop                              #
0014215c: 16740003 bne r19,r20,0x0014216c

AI setting error messages

00142160: 34110008 ori r17,r0,0x0008
00142164: 0805086d j 0x001421b4                 #Jump
00142168: 34110016 ori r17,r0,0x0016            r17 = can't be aggressive to ally
0014216c: 16630003 bne r19,r3,0x0014217c
00142170: 00000000 nop
00142174: 0805086d j 0x001421b4                 #Jump
00142178: 34110017 ori r17,r0,0x0017            r17 = can't protect an enemy
0014217c: 16750003 bne r19,r21,0x0014218c
00142180: 3402000c ori r2,r0,0x000c
00142184: 0805086d j 0x001421b4                 #Jump
00142188: 34110020 ori r17,r0,0x0020            r17 = can't target panel, select unit
0014218c: 3c038015 lui r3,0x8015
00142190: 8c63d314 lw r3,-0x2cec(r3)
00142194: 00000000 nop
00142198: 14620003 bne r3,r2,0x001421a8
0014219c: 3402000e ori r2,r0,0x000e
001421a0: 0805086d j 0x001421b4                 #Jump
001421a4: 3411001a ori r17,r0,0x001a            r17 = aggressive confirmation
001421a8: 14620002 bne r3,r2,0x001421b4
001421ac: 00000000 nop
001421b0: 3411001b ori r17,r0,0x001b            r17 = protect confirmation
001421b4: 0c050595 jal 0x00141654               #00141654 - 0014169c
001421b8: 02202021 addu r4,r17,r0               
001421bc: 08050932 j 0x001424c8                 #Jump
001421c0: 34020001 ori r2,r0,0x0001             #r2  = 1
001421c4: 3402000a ori r2,r0,0x000a
001421c8: 1642000f bne r18,r2,0x00142208        #If r18 = 0x0a    /Else Branch
001421cc: 3402000b ori r2,r0,0x000b             #r2  = 0x0b
001421d0: 3c028004 lui r2,0x8004
001421d4: 8c4273ac lw r2,0x73ac(r2)
001421d8: 3c030018 lui r3,0x0018
001421dc: 00431024 and r2,r2,r3
001421e0: 144000b0 bne r2,r0,0x001424a4
001421e4: 322200ff andi r2,r17,0x00ff
001421e8: 3c018017 lui r1,0x8017
001421ec: a4339506 sh r19,-0x6afa(r1)
001421f0: 3c018016 lui r1,0x8016
001421f4: ac225ef4 sw r2,0x5ef4(r1)
001421f8: 0c050595 jal 0x00141654                   #00141654 - 0014169c
001421fc: 3404001d ori r4,r0,0x001d                 r4 = ?
00142200: 08050932 j 0x001424c8                     #Jump
00142204: 34020001 ori r2,r0,0x0001                 #r2  = 1

Learn Blue Magic

00142208: 16420008 bne r18,r2,0x0014222c        #If r18 = 0x0b    /Else Branch
0014220c: 3402000c ori r2,r0,0x000c             #r2  = 0x0c
00142210: 26627000 addiu r2,r19,0x7000
00142214: 3c018016 lui r1,0x8016
00142218: ac225ef4 sw r2,0x5ef4(r1)
0014221c: 0c050595 jal 0x00141654                   #00141654 - 0014169c
00142220: 3404001e ori r4,r0,0x001e                 r4 = blue magic confirmation
00142224: 08050932 j 0x001424c8                     #Jump
00142228: 34020001 ori r2,r0,0x0001                 #r2  = 1

Open OPTION.BIN

0014222c: 16420005 bne r18,r2,0x00142244        #If r18 = 0x0c    /Else Branch
00142230: 3402000d ori r2,r0,0x000d             #r2  = 0x0d
00142234: 0c050595 jal 0x00141654                   #00141654 - 0014169c
00142238: 3404001f ori r4,r0,0x001f                 #opens OPTION.BIN, then runs it
0014223c: 08050932 j 0x001424c8                     #Jump
00142240: 34020001 ori r2,r0,0x0001                 #r2  = 1

?

00142244: 16420005 bne r18,r2,0x0014225c        #If r18 = 0x0d    /Else Branch
00142248: 3402000e ori r2,r0,0x000e             #r2  = 0x0e
0014224c: 0c050595 jal 0x00141654                   #00141654 - 0014169c
00142250: 34040021 ori r4,r0,0x0021                 r4 = move confirmation
00142254: 08050932 j 0x001424c8                     #Jump
00142258: 34020001 ori r2,r0,0x0001                 #r2  = 1

stepped on trap

0014225c: 16420005 bne r18,r2,0x00142274        #If r18 = 0x0e    /Else Branch
00142260: 3402000f ori r2,r0,0x000f             #r2  = 0x0f
00142264: 0c050595 jal 0x00141654                   #00141654 - 0014169c
00142268: 26640022 addiu r4,r19,0x0022              r4 = trap (r19 = trap ID, 0 to 3)
0014226c: 08050932 j 0x001424c8                     #Jump
00142270: 34020001 ori r2,r0,0x0001                 #r2  = 1

Recieve item from MFI

00142274: 16420030 bne r18,r2,0x00142338        #If r18 = 0x0f    /Else Branch
00142278: 34020010 ori r2,r0,0x0010             #r2  = 0x10
0014227c: 326400ff andi r4,r19,0x00ff               #r4  = r19 without 0x100 flag
00142280: 0c0178a2 jal 0x0005e288                   #Get Total Equipment Quantity (Equip Change/Formation Screen?)
00142284: 34050001 ori r5,r0,0x0001                 #r5  = 1
00142288: 34030063 ori r3,r0,0x0063                 #r3  = 0x63 (99)
0014228c: 1443001a bne r2,r3,0x001422f8             #If Item quantity = 99    /Else Branch
00142290: 00000000 nop                              #
00142294: 0c016a21 jal 0x0005a884                       #Get Item Data Pointer
00142298: 02602021 addu r4,r19,r0
0014229c: 3c018016 lui r1,0x8016
001422a0: ac335ef4 sw r19,0x5ef4(r1)
001422a4: 3c018016 lui r1,0x8016
001422a8: ac335ef8 sw r19,0x5ef8(r1)
001422ac: 0c016a21 jal 0x0005a884                       #Get Item Data Pointer
001422b0: 02602021 addu r4,r19,r0
001422b4: 00408021 addu r16,r2,r0                       #r16 = Item Data Pointer
001422b8: 96020008 lhu r2,0x0008(r16)
001422bc: 00000000 nop
001422c0: 00021082 srl r2,r2,0x02
001422c4: 3c018016 lui r1,0x8016
001422c8: ac225efc sw r2,0x5efc(r1)
001422cc: 0c04ed64 jal 0x0013b590                       #Get Script Variable
001422d0: 3404002c ori r4,r0,0x002c                     #r4  = 0x2c (War Funds Variable ID)
001422d4: 96050008 lhu r5,0x0008(r16)                   #r5  = Price of Item
001422d8: 3404002c ori r4,r0,0x002c                     #r4  = 0x2c (War Funds Variable ID)
001422dc: 00052882 srl r5,r5,0x02                       #r5  = Price of Item / 4
001422e0: 0c04ed91 jal 0x0013b644                       #Set Script Variable
001422e4: 00a22821 addu r5,r5,r2                        #r5  = War Funds + (Price of Item / 4)
001422e8: 0c050595 jal 0x00141654                       #00141654 - 0014169c
001422ec: 34040026 ori r4,r0,0x0026                     r4 = discovered item; full stock
001422f0: 08050932 j 0x001424c8                         #Jump
001422f4: 34020001 ori r2,r0,0x0001
001422f8: 0c016a21 jal 0x0005a884                   #Get Item Data Pointer
001422fc: 02602021 addu r4,r19,r0
00142300: 3c018016 lui r1,0x8016
00142304: ac335ef4 sw r19,0x5ef4(r1)
00142308: 3c018006 lui r1,0x8006
0014230c: 00330821 addu r1,r1,r19
00142310: 902296e0 lbu r2,-0x6920(r1)               #r2  = Quantity of Item owned
00142314: 00000000 nop
00142318: 24420001 addiu r2,r2,0x0001               #r2  = Quantity of Item owned + 1
0014231c: 3c018006 lui r1,0x8006
00142320: 00330821 addu r1,r1,r19
00142324: a02296e0 sb r2,-0x6920(r1)                #Store new Quantity of Item owned
00142328: 0c050595 jal 0x00141654                   #00141654 - 0014169c
0014232c: 34040027 ori r4,r0,0x0027                 #r4  = discovered item
00142330: 08050932 j 0x001424c8                     #Jump
00142334: 34020001 ori r2,r0,0x0001                 #r2  = 1
00142338: 16420005 bne r18,r2,0x00142350        #If r18 = 0x10    /Else Branch
0014233c: 34020011 ori r2,r0,0x0011             #r2  = 0x11
00142340: 0c050595 jal 0x00141654                   #00141654 - 0014169c
00142344: 34040028 ori r4,r0,0x0028                 #r4  = 0x28 ?
00142348: 08050932 j 0x001424c8                     #Jump
0014234c: 34020001 ori r2,r0,0x0001                 #r2  = 1

Speechcraft/theft stat change

00142350: 16420058 bne r18,r2,0x001424b4        #If r18 = 0x11    /Else Branch
00142354: 34040007 ori r4,r0,0x0007             #r2  = 0x07
00142358: 3c058017 lui r5,0x8017
0014235c: 24a596a8 addiu r5,r5,0x96a8           #r5  = 0x801696a8
00142360: 2662ffd9 addiu r2,r19,0xffd9          #r2  = r19 - 0x27
00142364: 2c420007 sltiu r2,r2,0x0007           #Compare to 0x07
00142368: 10400022 beq r2,r0,0x001423f4         #If post effect message is any talk skill (?)
0014236c: 02201821 addu r3,r17,r0               #
00142370: 2662506b addiu r2,r19,0x506b          # message type + 0x506b (sets at least message battle menus, 0x6b... general case?)
00142374: 3c018016 lui r1,0x8016
00142378: ac225ef8 sw r2,0x5ef8(r1)
0014237c: 3402002d ori r2,r0,0x002d
00142380: 3c018016 lui r1,0x8016
00142384: ac365ef4 sw r22,0x5ef4(r1)
00142388: 16620004 bne r19,r2,0x0014239c        #if post effect message is golem message (?)
0014238c: 32220080 andi r2,r17,0x0080           #check stat change bonus flag
00142390: 10400002 beq r2,r0,0x0014239c 
00142394: 34030001 ori r3,r0,0x0001             # 
00142398: 34030081 ori r3,r0,0x0081             # reverses bonus flag?
0014239c: 3c048016 lui r4,0x8016
001423a0: 24845efc addiu r4,r4,0x5efc
001423a4: 30620080 andi r2,r3,0x0080
001423a8: 10400005 beq r2,r0,0x001423c0         # check bonus flag
001423ac: ac830000 sw r3,0x0000(r4)
001423b0: 3062007f andi r2,r3,0x007f
001423b4: ac820000 sw r2,0x0000(r4)
001423b8: 080508f1 j 0x001423c4
001423bc: 3402508c ori r2,r0,0x508c             # battle menus, stat increment
001423c0: 3402508d ori r2,r0,0x508d             # battle menus, stat decrement
001423c4: a4a20002 sh r2,0x0002(r5)             # store message ID
001423c8: 34020027 ori r2,r0,0x0027
001423cc: 16620031 bne r19,r2,0x00142494
001423d0: 340200ff ori r2,r0,0x00ff
001423d4: 14620003 bne r3,r2,0x001423e4
001423d8: 3402007f ori r2,r0,0x007f
001423dc: 080508fb j 0x001423ec
001423e0: 3402509a ori r2,r0,0x509a             # battle menus, ct100
001423e4: 1462002b bne r3,r2,0x00142494
001423e8: 34025099 ori r2,r0,0x5099             # battle menus, ct00
001423ec: 08050925 j 0x00142494
001423f0: a4a20002 sh r2,0x0002(r5)
001423f4: 3402002e ori r2,r0,0x002e
001423f8: 16620008 bne r19,r2,0x0014241c
001423fc: 34040032 ori r4,r0,0x0032
00142400: 06210002 bgez r17,0x0014240c
00142404: 02201021 addu r2,r17,r0
00142408: 00021023 subu r2,r0,r2
0014240c: 3c018016 lui r1,0x8016
00142410: ac225ef4 sw r2,0x5ef4(r1)
00142414: 0805090f j 0x0014243c
00142418: 3402508f ori r2,r0,0x508f             # battle menus, got gil
0014241c: 3402002f ori r2,r0,0x002f
00142420: 1662000c bne r19,r2,0x00142454        # branch if not exp change
00142424: 2662ffe4 addiu r2,r19,0xffe4
00142428: 34040032 ori r4,r0,0x0032             r4 = speechcraft stat change/gil/exp theft
0014242c: 3222007f andi r2,r17,0x007f
00142430: 3c018016 lui r1,0x8016
00142434: ac225ef4 sw r2,0x5ef4(r1)
00142438: 3402508e ori r2,r0,0x508e             # battle menus, got exp
0014243c: 3c018017 lui r1,0x8017
00142440: a42296aa sh r2,-0x6956(r1)
00142444: 0c050595 jal 0x00141654               #00141654 - 0014169c
00142448: 00000000 nop
0014244c: 08050932 j 0x001424c8
00142450: 34020001 ori r2,r0,0x0001
00142454: 2c420002 sltiu r2,r2,0x0002
00142458: 10400012 beq r2,r0,0x001424a4
0014245c: 32228000 andi r2,r17,0x8000
00142460: 10400006 beq r2,r0,0x0014247c
00142464: 322200ff andi r2,r17,0x00ff
00142468: 24423800 addiu r2,r2,0x3800
0014246c: 3c018016 lui r1,0x8016
00142470: ac225ef4 sw r2,0x5ef4(r1)
00142474: 08050923 j 0x0014248c
00142478: 3402509b ori r2,r0,0x509b             # battle menus, blew item away (?)
0014247c: 26223800 addiu r2,r17,0x3800
00142480: 3c018016 lui r1,0x8016
00142484: ac225ef4 sw r2,0x5ef4(r1)
00142488: 26625074 addiu r2,r19,0x5074          # battle menus, at least message 0x74? another general case?
0014248c: 3c018017 lui r1,0x8017
00142490: a42296aa sh r2,-0x6956(r1)
00142494: 0c050595 jal 0x00141654               #00141654 - 0014169c
00142498: 34040032 ori r4,r0,0x0032             r4 = speechcraft stat change/gil/exp theft
0014249c: 08050932 j 0x001424c8
001424a0: 34020001 ori r2,r0,0x0001
001424a4: 0c050595 jal 0x00141654               #00141654 - 0014169c
001424a8: 34040008 ori r4,r0,0x0008             r4 = {close} (no menu)
001424ac: 08050932 j 0x001424c8
001424b0: 34020001 ori r2,r0,0x0001             #r2 = 1
001424b4: 0c01127e jal 0x000449f8               #000449f8 - 000449fc Null Routine
001424b8: 34050005 ori r5,r0,0x0005
001424bc: 0c050595 jal 0x00141654               #00141654 - 0014169c
001424c0: 34040008 ori r4,r0,0x0008             r4 = {close} (no menu)
001424c4: 00001021 addu r2,r0,r0                #r2 = 0

001424c8: 3c018015 lui r1,0x8015
001424cc: ac32d318 sw r18,-0x2ce8(r1)
001424d0: 3c018015 lui r1,0x8015
001424d4: ac33d31c sw r19,-0x2ce4(r1)
END:
001424d8: 8fbf0030 lw r31,0x0030(r29)
001424dc: 8fb7002c lw r23,0x002c(r29)
001424e0: 8fb60028 lw r22,0x0028(r29)
001424e4: 8fb50024 lw r21,0x0024(r29)
001424e8: 8fb40020 lw r20,0x0020(r29)
001424ec: 8fb3001c lw r19,0x001c(r29)
001424f0: 8fb20018 lw r18,0x0018(r29)
001424f4: 8fb10014 lw r17,0x0014(r29)
001424f8: 8fb00010 lw r16,0x0010(r29)
001424fc: 27bd0038 addiu r29,r29,0x0038
00142500: 03e00008 jr r31
00142504: 00000000 nop

Return locations

00141990: Spell Quote determination
00141a60: System function setup routine