Difference between revisions of "Attack Finalisation & Reaction Flagging"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
Line 29: Line 29:
 
  0018be74: 08063199 j 0x0018c664
 
  0018be74: 08063199 j 0x0018c664
 
  0018be78: 2402ffff addiu r2,r0,0xffff
 
  0018be78: 2402ffff addiu r2,r0,0xffff
 +
 
  0018be7c: 90820058 lbu r2,0x0058(r4) Load First Set of Current
 
  0018be7c: 90820058 lbu r2,0x0058(r4) Load First Set of Current
 
   Status
 
   Status
Line 50: Line 51:
 
  0018bec0: 08063199 j 0x0018c664 jump to end
 
  0018bec0: 08063199 j 0x0018c664 jump to end
 
  0018bec4: 00001021 addu r2,r0,r0
 
  0018bec4: 00001021 addu r2,r0,r0
 +
 
  0018bec8: 3c028019 lui r2,0x8019
 
  0018bec8: 3c028019 lui r2,0x8019
 
  0018becc: 8c42f5f0 lw r2,-0x0a10(r2)
 
  0018becc: 8c42f5f0 lw r2,-0x0a10(r2)
Line 59: Line 61:
 
  0018bee4: 00000000 nop
 
  0018bee4: 00000000 nop
 
  0018bee8: a0620189 sb r2,0x0189(r3)
 
  0018bee8: a0620189 sb r2,0x0189(r3)
 +
 
  0018beec: 0c0632c0 jal 0x0018cb00 Sunken State, Caution, Dragon
 
  0018beec: 0c0632c0 jal 0x0018cb00 Sunken State, Caution, Dragon
 
  Spirit, Brave Up, Face Up, Counter Tackle, Counter Flood, Absorb Used MP,
 
  Spirit, Brave Up, Face Up, Counter Tackle, Counter Flood, Absorb Used MP,
Line 71: Line 74:
 
  isn't Catch
 
  isn't Catch
 
  0018bf0c: 00000000 nop
 
  0018bf0c: 00000000 nop
 +
 
  0018bf10: 3c048019 lui r4,0x8019
 
  0018bf10: 3c048019 lui r4,0x8019
 
  0018bf14: 8c842d98 lw r4,0x2d98(r4) Load Target Data
 
  0018bf14: 8c842d98 lw r4,0x2d98(r4) Load Target Data
Line 76: Line 80:
 
  0018bf1c: 0c063a7a jal 0x0018e9e8 Store Caught Item in Inventory
 
  0018bf1c: 0c063a7a jal 0x0018e9e8 Store Caught Item in Inventory
 
  0018bf20: 00000000 nop
 
  0018bf20: 00000000 nop
 +
 
  0018bf24: 3c048019 lui r4,0x8019
 
  0018bf24: 3c048019 lui r4,0x8019
 
  0018bf28: 8c842d90 lw r4,0x2d90(r4) Load Defender's Current Action Data
 
  0018bf28: 8c842d90 lw r4,0x2d90(r4) Load Defender's Current Action Data
Line 83: Line 88:
 
  0018bf38: 104001ca beq r2,r0,0x0018c664 Branch if Attack Missed
 
  0018bf38: 104001ca beq r2,r0,0x0018c664 Branch if Attack Missed
 
  0018bf3c: 00001021 addu r2,r0,r0
 
  0018bf3c: 00001021 addu r2,r0,r0
 +
 
  0018bf40: 94830010 lhu r3,0x0010(r4) load special flags
 
  0018bf40: 94830010 lhu r3,0x0010(r4) load special flags
 
  0018bf44: 00000000 nop
 
  0018bf44: 00000000 nop
  0018bf48: 30628000 andi r2,r3,0x8000
+
  0018bf48: 30628000 andi r2,r3,0x8000 level change check?
 
  0018bf4c: 10400013 beq r2,r0,0x0018bf9c ?
 
  0018bf4c: 10400013 beq r2,r0,0x0018bf9c ?
 
  0018bf50: 30620001 andi r2,r3,0x0001
 
  0018bf50: 30620001 andi r2,r3,0x0001
Line 106: Line 112:
 
  0018bf94: 08063199 j 0x0018c664 jump to end
 
  0018bf94: 08063199 j 0x0018c664 jump to end
 
  0018bf98: a4b10000 sh r17,0x0000(r5) store no hit
 
  0018bf98: a4b10000 sh r17,0x0000(r5) store no hit
 +
 
  0018bf9c: 1040000b beq r2,r0,0x0018bfcc
 
  0018bf9c: 1040000b beq r2,r0,0x0018bfcc
 
  0018bfa0: 00000000 nop
 
  0018bfa0: 00000000 nop
Line 118: Line 125:
 
  0018bfc4: 00230821 addu r1,r1,r3
 
  0018bfc4: 00230821 addu r1,r1,r3
 
  0018bfc8: a422f5f4 sh r2,-0x0a0c(r1)          Store Team's Golem Amount?
 
  0018bfc8: a422f5f4 sh r2,-0x0a0c(r1)          Store Team's Golem Amount?
 +
 
  0018bfcc: 0c06330d jal 0x0018cc34 MP Switch, Distribute, Damage
 
  0018bfcc: 0c06330d jal 0x0018cc34 MP Switch, Distribute, Damage
 
  Split  Check
 
  Split  Check
Line 159: Line 167:
 
  0018c04c: 00000000 nop
 
  0018c04c: 00000000 nop
 
  0018c050: 00801821 addu r3,r4,r0 r3 = max mp
 
  0018c050: 00801821 addu r3,r4,r0 r3 = max mp
  0018c054: 14f10003 bne r7,r17,0x0018c064 branch if current HP != max hp or
+
  0018c054: 14f10003 bne r7,r17,0x0018c064 branch if current HP != max hp or 0?
  0?
 
 
  0018c058: 00000000 nop
 
  0018c058: 00000000 nop
  0018c05c: 10c30003 beq r6,r3,0x0018c06c branch if current mp !=
+
  0018c05c: 10c30003 beq r6,r3,0x0018c06c branch if current mp != max mp or 0?
max mp or 0?
 
 
  0018c060: 34060032 ori r6,r0,0x0032 r6 = 0x32
 
  0018c060: 34060032 ori r6,r0,0x0032 r6 = 0x32
 
  0018c064: 34100001 ori r16,r0,0x0001 r16 = 1
 
  0018c064: 34100001 ori r16,r0,0x0001 r16 = 1
  0018c068: 34060032 ori r6,r0,0x0032 um.. r6 = 0x32 again
+
  0018c068: 34060032 ori r6,r0,0x0032
 
  0018c06c: 3c058019 lui r5,0x8019
 
  0018c06c: 3c058019 lui r5,0x8019
 
  0018c070: 8ca52d98 lw r5,0x2d98(r5) target data
 
  0018c070: 8ca52d98 lw r5,0x2d98(r5) target data
Line 230: Line 236:
 
  0018c160: 0c06355c jal 0x0018d570
 
  0018c160: 0c06355c jal 0x0018d570
 
  0018c164: 24a50026 addiu r5,r5,0x0026
 
  0018c164: 24a50026 addiu r5,r5,0x0026
 +
 
  0018c168: 0c0634f0 jal 0x0018d3c0 Steal/break(?) Routine
 
  0018c168: 0c0634f0 jal 0x0018d3c0 Steal/break(?) Routine
 
  0018c16c: 02028025 or r16,r16,r2
 
  0018c16c: 02028025 or r16,r16,r2
Line 235: Line 242:
 
  0018c174: 8c632d90 lw r3,0x2d90(r3) target action
 
  0018c174: 8c632d90 lw r3,0x2d90(r3) target action
 
  0018c178: 00000000 nop
 
  0018c178: 00000000 nop
  0018c17c: 94630010 lhu r3,0x0010(r3) item to break/use
+
  0018c17c: 94630010 lhu r3,0x0010(r3) load special flags
 
  0018c180: 00000000 nop
 
  0018c180: 00000000 nop
  0018c184: 30630008 andi r3,r3,0x0008 assassin dagger?
+
  0018c184: 30630008 andi r3,r3,0x0008 Stealing enemies item check?
 
  0018c188: 10600007 beq r3,r0,0x0018c1a8
 
  0018c188: 10600007 beq r3,r0,0x0018c1a8
 
  0018c18c: 02028025 or r16,r16,r2
 
  0018c18c: 02028025 or r16,r16,r2
Line 246: Line 253:
 
  0018c1a0: 0c063a7a jal 0x0018e9e8 item increment
 
  0018c1a0: 0c063a7a jal 0x0018e9e8 item increment
 
  0018c1a4: 00000000 nop
 
  0018c1a4: 00000000 nop
 +
 
  0018c1a8: 3c038019 lui r3,0x8019
 
  0018c1a8: 3c038019 lui r3,0x8019
 
  0018c1ac: 8c632d90 lw r3,0x2d90(r3) target action
 
  0018c1ac: 8c632d90 lw r3,0x2d90(r3) target action
Line 270: Line 278:
 
  0018c200: 8c842d98 lw r4,0x2d98(r4) target data pointer
 
  0018c200: 8c842d98 lw r4,0x2d98(r4) target data pointer
 
  0018c204: 90450028 lbu r5,0x0028(r2)
 
  0018c204: 90450028 lbu r5,0x0028(r2)
  0018c208: 0c063ad4 jal 0x0018eb50 unknown yet
+
  0018c208: 0c063ad4 jal 0x0018eb50 Apply Exp, gain level up
 
  0018c20c: 00000000 nop
 
  0018c20c: 00000000 nop
 
  0018c210: 3c028019 lui r2,0x8019
 
  0018c210: 3c028019 lui r2,0x8019
Line 277: Line 285:
 
  0018c21c: 90420029 lbu r2,0x0029(r2) stolen jp? unknown data
 
  0018c21c: 90420029 lbu r2,0x0029(r2) stolen jp? unknown data
 
  0018c220: 00000000 nop
 
  0018c220: 00000000 nop
  0018c224: 10400005 beq r2,r0,0x0018c23c branch if 0
+
  0018c224: 10400005 beq r2,r0,0x0018c23c branch if 0
 
  0018c228: 00000000 nop
 
  0018c228: 00000000 nop
 
  0018c22c: 3c048019 lui r4,0x8019
 
  0018c22c: 3c048019 lui r4,0x8019
 
  0018c230: 8c842d98 lw r4,0x2d98(r4) target data
 
  0018c230: 8c842d98 lw r4,0x2d98(r4) target data
  0018c234: 0c0637fe jal 0x0018dff8 ???
+
  0018c234: 0c0637fe jal 0x0018dff8 Apply JP/calculate job level
 
  0018c238: 00000000 nop
 
  0018c238: 00000000 nop
 
  0018c23c: 0c063217 jal 0x0018c85c level up/down
 
  0018c23c: 0c063217 jal 0x0018c85c level up/down
Line 293: Line 301:
 
  0018c25c: 00000000 nop
 
  0018c25c: 00000000 nop
 
  0018c260: 30630002 andi r3,r3,0x0002 murbol morph check
 
  0018c260: 30630002 andi r3,r3,0x0002 murbol morph check
  0018c264: 1060000a beq r3,r0,0x0018c290 branch if not morbolized
+
  0018c264: 1060000a beq r3,r0,0x0018c290 branch if not morbolized
 
  0018c268: 02028025 or r16,r16,r2
 
  0018c268: 02028025 or r16,r16,r2
 
  0018c26c: 3c028019 lui r2,0x8019
 
  0018c26c: 3c028019 lui r2,0x8019
  0018c270: 8c42f5fc lw r2,-0x0a04(r2) load display data
+
  0018c270: 8c42f5fc lw r2,-0x0a04(r2) targeting/attacking check
 
  0018c274: 00000000 nop
 
  0018c274: 00000000 nop
  0018c278: 14400005 bne r2,r0,0x0018c290 skip if not 0
+
  0018c278: 14400005 bne r2,r0,0x0018c290 skip if targeting unit?
 
  0018c27c: 36100001 ori r16,r16,0x0001
 
  0018c27c: 36100001 ori r16,r16,0x0001
 
  0018c280: 3c048019 lui r4,0x8019
 
  0018c280: 3c048019 lui r4,0x8019
 
  0018c284: 8c842d98 lw r4,0x2d98(r4) target data
 
  0018c284: 8c842d98 lw r4,0x2d98(r4) target data
  0018c288: 0c0603d0 jal 0x00180f40 ???
+
  0018c288: 0c0603d0 jal 0x00180f40 special status flag enabling?
 
  0018c28c: 00000000 nop
 
  0018c28c: 00000000 nop
 +
 
  0018c290: 16200028 bne r17,r0,0x0018c334 branch if ?
 
  0018c290: 16200028 bne r17,r0,0x0018c334 branch if ?
 
  0018c294: 00000000 nop
 
  0018c294: 00000000 nop
Line 316: Line 325:
 
  0018c2b8: 3c048019 lui r4,0x8019
 
  0018c2b8: 3c048019 lui r4,0x8019
 
  0018c2bc: 8c842d90 lw r4,0x2d90(r4) target action
 
  0018c2bc: 8c842d90 lw r4,0x2d90(r4) target action
  0018c2c0: 0c062f75 jal 0x0018bdd4 ???
+
  0018c2c0: 0c062f75 jal 0x0018bdd4 null some status data
 
  0018c2c4: 00000000 nop
 
  0018c2c4: 00000000 nop
 
  0018c2c8: 02402021 addu r4,r18,r0
 
  0018c2c8: 02402021 addu r4,r18,r0
Line 323: Line 332:
 
  0018c2d4: 8c422d90 lw r2,0x2d90(r2) target action
 
  0018c2d4: 8c422d90 lw r2,0x2d90(r2) target action
 
  0018c2d8: 34030020 ori r3,r0,0x0020
 
  0018c2d8: 34030020 ori r3,r0,0x0020
  0018c2dc: 0c06381f jal 0x0018e07c ?? ?
+
  0018c2dc: 0c06381f jal 0x0018e07c dead unit hardcoding
 
  0018c2e0: a043001b sb r3,0x001b(r2) store dead as status  inflictin
 
  0018c2e0: a043001b sb r3,0x001b(r2) store dead as status  inflictin
 
  0018c2e4: 3c028019 lui r2,0x8019
 
  0018c2e4: 3c028019 lui r2,0x8019
 
  0018c2e8: 8c42f5fc lw r2,-0x0a04(r2) display data
 
  0018c2e8: 8c42f5fc lw r2,-0x0a04(r2) display data
 
  0018c2ec: 00000000 nop
 
  0018c2ec: 00000000 nop
  0018c2f0: 14400008 bne r2,r0,0x0018c314 ??
+
  0018c2f0: 14400008 bne r2,r0,0x0018c314       Branch if targeting
 
  0018c2f4: 00000000 nop
 
  0018c2f4: 00000000 nop
 
  0018c2f8: 3c038019 lui r3,0x8019
 
  0018c2f8: 3c038019 lui r3,0x8019
 
  0018c2fc: 8c632d98 lw r3,0x2d98(r3) target data
 
  0018c2fc: 8c632d98 lw r3,0x2d98(r3) target data
 
  0018c300: 00000000 nop
 
  0018c300: 00000000 nop
  0018c304: 9062015c lbu r2,0x015c(r3) load ??
+
  0018c304: 9062015c lbu r2,0x015c(r3) load killed unit flag
 
  0018c308: 00000000 nop
 
  0018c308: 00000000 nop
 
  0018c30c: 24420001 addiu r2,r2,0x0001
 
  0018c30c: 24420001 addiu r2,r2,0x0001
  0018c310: a062015c sb r2,0x015c(r3) store 01 into ??
+
  0018c310: a062015c sb r2,0x015c(r3) store killed unit
 
  0018c314: 0c063588 jal 0x0018d620 gained EXP
 
  0018c314: 0c063588 jal 0x0018d620 gained EXP
 
  0018c318: 34040002 ori r4,r0,0x0002
 
  0018c318: 34040002 ori r4,r0,0x0002
Line 345: Line 354:
 
  0018c32c: 08063198 j 0x0018c660 end
 
  0018c32c: 08063198 j 0x0018c660 end
 
  0018c330: 000211c2 srl r2,r2,0x07
 
  0018c330: 000211c2 srl r2,r2,0x07
 +
 
  0018c334: 3c028019 lui r2,0x8019
 
  0018c334: 3c028019 lui r2,0x8019
 
  0018c338: 8c422d98 lw r2,0x2d98(r2) target data
 
  0018c338: 8c422d98 lw r2,0x2d98(r2) target data
Line 367: Line 377:
 
  0018c37c: 080630e8 j 0x0018c3a0 skip next rountine
 
  0018c37c: 080630e8 j 0x0018c3a0 skip next rountine
 
  0018c380: a062001d sb r2,0x001d(r3) store set critical status
 
  0018c380: a062001d sb r2,0x001d(r3) store set critical status
 +
 
  0018c384: 3c038019 lui r3,0x8019
 
  0018c384: 3c038019 lui r3,0x8019
 
  0018c388: 8c632d90 lw r3,0x2d90(r3) target action
 
  0018c388: 8c632d90 lw r3,0x2d90(r3) target action
Line 385: Line 396:
 
  0018c3c4: 8c632d90 lw r3,0x2d90(r3)
 
  0018c3c4: 8c632d90 lw r3,0x2d90(r3)
 
  0018c3c8: 00000000 nop
 
  0018c3c8: 00000000 nop
  0018c3cc: 9062001d lbu r2,0x001d(r3) load  
+
  0018c3cc: 9062001d lbu r2,0x001d(r3) load status infliction
 
  0018c3d0: 00000000 nop
 
  0018c3d0: 00000000 nop
  0018c3d4: 34420004 ori r2,r2,0x0004
+
  0018c3d4: 34420004 ori r2,r2,0x0004           add chicken status
 
  0018c3d8: 080630ff j 0x0018c3fc skip brave increment
 
  0018c3d8: 080630ff j 0x0018c3fc skip brave increment
 
  0018c3dc: a062001d sb r2,0x001d(r3) store chicken status
 
  0018c3dc: a062001d sb r2,0x001d(r3) store chicken status
 +
 
  0018c3e0: 3c038019 lui r3,0x8019
 
  0018c3e0: 3c038019 lui r3,0x8019
 
  0018c3e4: 8c632d90 lw r3,0x2d90(r3) target action
 
  0018c3e4: 8c632d90 lw r3,0x2d90(r3) target action
Line 397: Line 409:
 
  0018c3f4: 34420004 ori r2,r2,0x0004
 
  0018c3f4: 34420004 ori r2,r2,0x0004
 
  0018c3f8: a0620022 sb r2,0x0022(r3) store remove chicken status
 
  0018c3f8: a0620022 sb r2,0x0022(r3) store remove chicken status
 +
 
  0018c3fc: 3c038019 lui r3,0x8019
 
  0018c3fc: 3c038019 lui r3,0x8019
 
  0018c400: 8c632d90 lw r3,0x2d90(r3)
 
  0018c400: 8c632d90 lw r3,0x2d90(r3)
Line 408: Line 421:
 
  0018c420: 00000000 nop
 
  0018c420: 00000000 nop
 
  0018c424: 34420030 ori r2,r2,0x0030 store charm/sleep
 
  0018c424: 34420030 ori r2,r2,0x0030 store charm/sleep
  0018c428: a0620024 sb r2,0x0024(r3) remove ^
+
  0018c428: a0620024 sb r2,0x0024(r3) remove ^
 +
 
  0018c42c: 3c038019 lui r3,0x8019
 
  0018c42c: 3c038019 lui r3,0x8019
 
  0018c430: 8c632d90 lw r3,0x2d90(r3) target action
 
  0018c430: 8c632d90 lw r3,0x2d90(r3) target action
Line 416: Line 430:
 
  0018c440: 34420010 ori r2,r2,0x0010
 
  0018c440: 34420010 ori r2,r2,0x0010
 
  0018c444: a0620022 sb r2,0x0022(r3) store remove transparent
 
  0018c444: a0620022 sb r2,0x0022(r3) store remove transparent
 +
 
  0018c448: 3c038019 lui r3,0x8019
 
  0018c448: 3c038019 lui r3,0x8019
 
  0018c44c: 8c632d90 lw r3,0x2d90(r3) target current action
 
  0018c44c: 8c632d90 lw r3,0x2d90(r3) target current action
Line 423: Line 438:
 
  0018c45c: 34420010 ori r2,r2,0x0010
 
  0018c45c: 34420010 ori r2,r2,0x0010
 
  0018c460: a0620021 sb r2,0x0021(r3) store remove confusion
 
  0018c460: a0620021 sb r2,0x0021(r3) store remove confusion
 +
 
  0018c464: 3c028019 lui r2,0x8019
 
  0018c464: 3c028019 lui r2,0x8019
 
  0018c468: 8c422d90 lw r2,0x2d90(r2) target current action
 
  0018c468: 8c422d90 lw r2,0x2d90(r2) target current action
Line 431: Line 447:
 
  0018c47c: 10400012 beq r2,r0,0x0018c4c8 branch if no team switch
 
  0018c47c: 10400012 beq r2,r0,0x0018c4c8 branch if no team switch
 
  0018c480: 00000000 nop
 
  0018c480: 00000000 nop
 +
 
  0018c484: 3c048019 lui r4,0x8019
 
  0018c484: 3c048019 lui r4,0x8019
 
  0018c488: 8c842d98 lw r4,0x2d98(r4) target data
 
  0018c488: 8c842d98 lw r4,0x2d98(r4) target data
  0018c48c: 0c06005e jal 0x00180178 ????
+
  0018c48c: 0c06005e jal 0x00180178 remove charging status/ability CT
 
  0018c490: 00002821 addu r5,r0,r0 r5 = 0
 
  0018c490: 00002821 addu r5,r0,r0 r5 = 0
 
  0018c494: 1040000c beq r2,r0,0x0018c4c8 branch if ?
 
  0018c494: 1040000c beq r2,r0,0x0018c4c8 branch if ?
 
  0018c498: 00000000 nop
 
  0018c498: 00000000 nop
 +
 
  0018c49c: 3c038019 lui r3,0x8019
 
  0018c49c: 3c038019 lui r3,0x8019
 
  0018c4a0: 8c632d90 lw r3,0x2d90(r3) target current action
 
  0018c4a0: 8c632d90 lw r3,0x2d90(r3) target current action
Line 444: Line 462:
 
  0018c4b0: 34420008 ori r2,r2,0x0008 charging
 
  0018c4b0: 34420008 ori r2,r2,0x0008 charging
 
  0018c4b4: a0620020 sb r2,0x0020(r3) remove charging
 
  0018c4b4: a0620020 sb r2,0x0020(r3) remove charging
 +
 
  0018c4b8: 3c038019 lui r3,0x8019
 
  0018c4b8: 3c038019 lui r3,0x8019
 
  0018c4bc: 8c632d98 lw r3,0x2d98(r3) target data
 
  0018c4bc: 8c632d98 lw r3,0x2d98(r3) target data
Line 452: Line 471:
 
  0018c4d0: 00002021 addu r4,r0,r0
 
  0018c4d0: 00002021 addu r4,r0,r0
 
  0018c4d4: 27a30010 addiu r3,r29,0x0010
 
  0018c4d4: 27a30010 addiu r3,r29,0x0010
 +
 
  0018c4d8: 3c028019 lui r2,0x8019
 
  0018c4d8: 3c028019 lui r2,0x8019
 
  0018c4dc: 8c422d98 lw r2,0x2d98(r2) target data
 
  0018c4dc: 8c422d98 lw r2,0x2d98(r2) target data
Line 462: Line 482:
 
  0018c4f8: 1440fff7 bne r2,r0,0x0018c4d8 ??
 
  0018c4f8: 1440fff7 bne r2,r0,0x0018c4d8 ??
 
  0018c4fc: 24630001 addiu r3,r3,0x0001
 
  0018c4fc: 24630001 addiu r3,r3,0x0001
 +
 
  0018c500: 00002021 addu r4,r0,r0
 
  0018c500: 00002021 addu r4,r0,r0
 
  0018c504: 27a30018 addiu r3,r29,0x0018
 
  0018c504: 27a30018 addiu r3,r29,0x0018
Line 475: Line 496:
 
  0018c52c: 24630001 addiu r3,r3,0x0001
 
  0018c52c: 24630001 addiu r3,r3,0x0001
 
  0018c530: 02402021 addu r4,r18,r0
 
  0018c530: 02402021 addu r4,r18,r0
  0018c534: 0c06381f jal 0x0018e07c ???
+
  0018c534: 0c06381f jal 0x0018e07c dead unit hardcoding
 
  0018c538: 00002821 addu r5,r0,r0
 
  0018c538: 00002821 addu r5,r0,r0
 
  0018c53c: 3c038019 lui r3,0x8019
 
  0018c53c: 3c038019 lui r3,0x8019
Line 488: Line 509:
 
  0018c560: 00000000 nop
 
  0018c560: 00000000 nop
 
  0018c564: 30420020 andi r2,r2,0x0020
 
  0018c564: 30420020 andi r2,r2,0x0020
  0018c568: 1440000f bne r2,r0,0x0018c5a8 skip if not dead
+
  0018c568: 1440000f bne r2,r0,0x0018c5a8 skip if not dead
 
  0018c56c: 00000000 nop
 
  0018c56c: 00000000 nop
 
  0018c570: 3c028019 lui r2,0x8019
 
  0018c570: 3c028019 lui r2,0x8019
 
  0018c574: 8c42f5fc lw r2,-0x0a04(r2) display data
 
  0018c574: 8c42f5fc lw r2,-0x0a04(r2) display data
 
  0018c578: 00000000 nop
 
  0018c578: 00000000 nop
  0018c57c: 14400023 bne r2,r0,0x0018c60c branch if not dead?
+
  0018c57c: 14400023 bne r2,r0,0x0018c60c branch if not dead?
 
  0018c580: 34100002 ori r16,r0,0x0002 r16 = 02
 
  0018c580: 34100002 ori r16,r0,0x0002 r16 = 02
 
  0018c584: 9062015c lbu r2,0x015c(r3) load dead flag?
 
  0018c584: 9062015c lbu r2,0x015c(r3) load dead flag?
Line 499: Line 520:
 
  0018c58c: 24420001 addiu r2,r2,0x0001 add 0x01
 
  0018c58c: 24420001 addiu r2,r2,0x0001 add 0x01
 
  0018c590: 08063183 j 0x0018c60c
 
  0018c590: 08063183 j 0x0018c60c
  0018c594: a062015c sb r2,0x015c(r3) store unit dead
+
  0018c594: a062015c sb r2,0x015c(r3) store unit killed
 +
 
  0018c598: 08063176 j 0x0018c5d8
 
  0018c598: 08063176 j 0x0018c5d8
 
  0018c59c: 34100001 ori r16,r0,0x0001
 
  0018c59c: 34100001 ori r16,r0,0x0001
 +
 
  0018c5a0: 08063183 j 0x0018c60c
 
  0018c5a0: 08063183 j 0x0018c60c
 
  0018c5a4: 34100001 ori r16,r0,0x0001
 
  0018c5a4: 34100001 ori r16,r0,0x0001
 +
 
  0018c5a8: 3c068019 lui r6,0x8019
 
  0018c5a8: 3c068019 lui r6,0x8019
 
  0018c5ac: 8cc62d98 lw r6,0x2d98(r6) target data
 
  0018c5ac: 8cc62d98 lw r6,0x2d98(r6) target data
Line 516: Line 540:
 
  0018c5d0: 1440fff8 bne r2,r0,0x0018c5b4
 
  0018c5d0: 1440fff8 bne r2,r0,0x0018c5b4
 
  0018c5d4: 24a50001 addiu r5,r5,0x0001
 
  0018c5d4: 24a50001 addiu r5,r5,0x0001
 +
 
  0018c5d8: 00002021 addu r4,r0,r0
 
  0018c5d8: 00002021 addu r4,r0,r0
 
  0018c5dc: 3c068019 lui r6,0x8019
 
  0018c5dc: 3c068019 lui r6,0x8019
Line 529: Line 554:
 
  0018c604: 1440fff8 bne r2,r0,0x0018c5e8
 
  0018c604: 1440fff8 bne r2,r0,0x0018c5e8
 
  0018c608: 24a50001 addiu r5,r5,0x0001
 
  0018c608: 24a50001 addiu r5,r5,0x0001
 +
 
  0018c60c: 0c063588 jal 0x0018d620 attackers earned exp
 
  0018c60c: 0c063588 jal 0x0018d620 attackers earned exp
 
  0018c610: 02002021 addu r4,r16,r0
 
  0018c610: 02002021 addu r4,r16,r0

Revision as of 15:31, 29 August 2014

Main Reaction Routine (carries out a ton of functions)
0018be08: 27bdffc8 addiu r29,r29,0xffc8
0018be0c: afb20030 sw r18,0x0030(r29)
0018be10: 00809021 addu r18,r4,r0              r18 = target ID
0018be14: afb00028 sw r16,0x0028(r29)
0018be18: 00008021 addu r16,r0,r0
0018be1c: 2a420015 slti r2,r18,0x0015
0018be20: afbf0034 sw r31,0x0034(r29)
0018be24: 10400013 beq r2,r0,0x0018be74        branch if invalid ID
0018be28: afb1002c sw r17,0x002c(r29)
0018be2c: 001218c0 sll r3,r18,0x03
0018be30: 00721823 subu r3,r3,r18
0018be34: 00031980 sll r3,r3,0x06
0018be38: 3c028019 lui r2,0x8019
0018be3c: 244208cc addiu r2,r2,0x08cc		Target Unit Data
0018be40: 00622021 addu r4,r3,r2		
0018be44: 2442018c addiu r2,r2,0x018c		
0018be48: 00622821 addu r5,r3,r2		
0018be4c: 3c018019 lui r1,0x8019		
0018be50: a03238c1 sb r18,0x38c1(r1)		store target unit ID
0018be54: 3c018019 lui r1,0x8019		
0018be58: ac242d98 sw r4,0x2d98(r1)		store target data pointer
0018be5c: 3c018019 lui r1,0x8019		
0018be60: ac252d90 sw r5,0x2d90(r1)		store target action pointer
0018be64: 90830001 lbu r3,0x0001(r4)		
0018be68: 340200ff ori r2,r0,0x00ff		
0018be6c: 14620003 bne r3,r2,0x0018be7c        branch if target exists
0018be70: 00000000 nop				
0018be74: 08063199 j 0x0018c664			
0018be78: 2402ffff addiu r2,r0,0xffff	 	

0018be7c: 90820058 lbu r2,0x0058(r4)		Load First Set of Current
 Status	
0018be80: 00000000 nop				
0018be84: 30420020 andi r2,r2,0x0020		
0018be88: 1040000f beq r2,r0,0x0018bec8	Branch if unit is not dead?
0018be8c: 00000000 nop				
0018be90: 90a2001b lbu r2,0x001b(r5)		status infliction 1
0018be94: 00000000 nop
0018be98: 30420040 andi r2,r2,0x0040		
0018be9c: 14400006 bne r2,r0,0x0018beb8	branch if crystal inflicted
0018bea0: 02402021 addu r4,r18,r0
0018bea4: 90a2001c lbu r2,0x001c(r5)		status infliction 2
0018bea8: 00000000 nop
0018beac: 30420001 andi r2,r2,0x0001
0018beb0: 10400005 beq r2,r0,0x0018bec8		branch if treasure
inflicted
0018beb4: 00000000 nop
0018beb8: 0c06381f jal 0x0018e07c		????
0018bebc: 00002821 addu r5,r0,r0
0018bec0: 08063199 j 0x0018c664			jump to end
0018bec4: 00001021 addu r2,r0,r0

0018bec8: 3c028019 lui r2,0x8019
0018becc: 8c42f5f0 lw r2,-0x0a10(r2)
0018bed0: 00000000 nop
0018bed4: 14400005 bne r2,r0,0x0018beec
0018bed8: 34020001 ori r2,r0,0x0001
0018bedc: 3c038019 lui r3,0x8019
0018bee0: 8c632d98 lw r3,0x2d98(r3)		Load Defender's Data
0018bee4: 00000000 nop				
0018bee8: a0620189 sb r2,0x0189(r3)		

0018beec: 0c0632c0 jal 0x0018cb00		Sunken State, Caution, Dragon
Spirit, Brave Up, Face Up, Counter Tackle, Counter Flood, Absorb Used MP,
Counter, Counter Magic  usability
0018bef0: 00000000 nop				
0018bef4: 3c058019 lui r5,0x8019		
0018bef8: 8ca52d90 lw r5,0x2d90(r5)		Load Defender's Current Action Data
0018befc: 00000000 nop				
0018bf00: 84a3000e lh r3,0x000e(r5)		Load Reaction ID
0018bf04: 340201c2 ori r2,r0,0x01c2		
0018bf08: 14620006 bne r3,r2,0x0018bf24		Branch if Reaction ID
isn't Catch
0018bf0c: 00000000 nop				

0018bf10: 3c048019 lui r4,0x8019		
0018bf14: 8c842d98 lw r4,0x2d98(r4)		Load Target Data
0018bf18: 90a50026 lbu r5,0x0026(r5)		Load Last Attack?
0018bf1c: 0c063a7a jal 0x0018e9e8		Store Caught Item in Inventory
0018bf20: 00000000 nop				

0018bf24: 3c048019 lui r4,0x8019		
0018bf28: 8c842d90 lw r4,0x2d90(r4)		Load Defender's Current Action Data
0018bf2c: 00000000 nop				
0018bf30: 90820000 lbu r2,0x0000(r4)		Load Hit Flag
0018bf34: 00000000 nop				
0018bf38: 104001ca beq r2,r0,0x0018c664		Branch if Attack Missed
0018bf3c: 00001021 addu r2,r0,r0		

0018bf40: 94830010 lhu r3,0x0010(r4)		load special flags
0018bf44: 00000000 nop				
0018bf48: 30628000 andi r2,r3,0x8000		level change check?
0018bf4c: 10400013 beq r2,r0,0x0018bf9c		?
0018bf50: 30620001 andi r2,r3,0x0001		
0018bf54: 3c028019 lui r2,0x8019		
0018bf58: 8c422d98 lw r2,0x2d98(r2)		Load Defender's Data
0018bf5c: 00000000 nop				
0018bf60: 904201ba lbu r2,0x01ba(r2)		modified ENTD flags
0018bf64: 3c038019 lui r3,0x8019		
0018bf68: 2463f5f4 addiu r3,r3,0xf5f4		
0018bf6c: 30420030 andi r2,r2,0x0030		enemy team check
0018bf70: 000210c2 srl r2,r2,0x03		
0018bf74: 00432821 addu r5,r2,r3		
0018bf78: 94a30000 lhu r3,0x0000(r5)		Load Hit Flag
0018bf7c: 84820004 lh r2,0x0004(r4)		Load HP Damage
0018bf80: 00000000 nop				
0018bf84: 00628823 subu r17,r3,r2		
0018bf88: 06210002 bgez r17,0x0018bf94		
0018bf8c: 00001021 addu r2,r0,r0		
0018bf90: 00008821 addu r17,r0,r0		
0018bf94: 08063199 j 0x0018c664			jump to end
0018bf98: a4b10000 sh r17,0x0000(r5)		store no hit

0018bf9c: 1040000b beq r2,r0,0x0018bfcc		
0018bfa0: 00000000 nop				
0018bfa4: 3c028019 lui r2,0x8019		
0018bfa8: 8c422d98 lw r2,0x2d98(r2)		Load Defender's Data
0018bfac: 34100001 ori r16,r0,0x0001		
0018bfb0: 90430005 lbu r3,0x0005(r2)		Load Defender's Team
0018bfb4: 9442002a lhu r2,0x002a(r2)		Load Defender's Max HP
0018bfb8: 30630030 andi r3,r3,0x0030		enemy team check
0018bfbc: 000318c2 srl r3,r3,0x03
0018bfc0: 3c018019 lui r1,0x8019
0018bfc4: 00230821 addu r1,r1,r3
0018bfc8: a422f5f4 sh r2,-0x0a0c(r1)           Store Team's Golem Amount?

0018bfcc: 0c06330d jal 0x0018cc34		MP Switch, Distribute, Damage
Split  Check
0018bfd0: 00000000 nop				
0018bfd4: 3c058019 lui r5,0x8019		
0018bfd8: 8ca52d98 lw r5,0x2d98(r5)		Load Defender's Data
0018bfdc: 3c048019 lui r4,0x8019		
0018bfe0: 8c842d90 lw r4,0x2d90(r4)		Load Defender's Current Action Data
0018bfe4: 94a70028 lhu r7,0x0028(r5)		Load Defender's Current HP
0018bfe8: 84820004 lh r2,0x0004(r4)		Load HP Damage
0018bfec: 84830006 lh r3,0x0006(r4)		Load HP Recovery
0018bff0: 00e21023 subu r2,r7,r2		Defender's Current HP - HP Damage
0018bff4: 00438821 addu r17,r2,r3		Defender's Current HP - HP Damage
+  HP Recovery
0018bff8: 06210002 bgez r17,0x0018c004		Branch if >= 0 
0018bffc: 00000000 nop				
0018c000: 00008821 addu r17,r0,r0		else unit ko'd
0018c004: 94a3002a lhu r3,0x002a(r5)		Load Defender's Max HP
0018c008: 00000000 nop				
0018c00c: 0071102a slt r2,r3,r17		If Defender's Max HP < above, r2 =
1;else is 0
0018c010: 10400002 beq r2,r0,0x0018c01c		branch if defenders max <
hp recovery (cap check)
0018c014: 00000000 nop				
0018c018: 00608821 addu r17,r3,r0		r17 = max hp
0018c01c: 94a6002c lhu r6,0x002c(r5)		Load Defender's Current MP
0018c020: 84820008 lh r2,0x0008(r4)		Load MP Damage
0018c024: 8483000a lh r3,0x000a(r4)		Load MP Recovery
0018c028: 00c21023 subu r2,r6,r2		Defender's Current MP - MP Damage
0018c02c: 00431821 addu r3,r2,r3		Defender's Current MP - MP Damage
+ MP Recovery
0018c030: 04610002 bgez r3,0x0018c03c		Branch if >= 0
0018c034: 00000000 nop				
0018c038: 00001821 addu r3,r0,r0		
0018c03c: 94a4002e lhu r4,0x002e(r5)		Load Defender's Max MP
0018c040: 00000000 nop				
0018c044: 0083102a slt r2,r4,r3			If target max MP < above,
r2 = 1; else is 0
0018c048: 10400002 beq r2,r0,0x0018c054		branch if max mp < mp
recovery  (cap?)
0018c04c: 00000000 nop				
0018c050: 00801821 addu r3,r4,r0		r3 = max mp
0018c054: 14f10003 bne r7,r17,0x0018c064	branch if current HP != max hp or 0?	
0018c058: 00000000 nop
0018c05c: 10c30003 beq r6,r3,0x0018c06c	branch if current mp != max mp or 0?
0018c060: 34060032 ori r6,r0,0x0032		r6 = 0x32
0018c064: 34100001 ori r16,r0,0x0001		r16 = 1
0018c068: 34060032 ori r6,r0,0x0032		
0018c06c: 3c058019 lui r5,0x8019
0018c070: 8ca52d98 lw r5,0x2d98(r5)		target data
0018c074: 3c028019 lui r2,0x8019
0018c078: 8c422d90 lw r2,0x2d90(r2)		target action
0018c07c: 34070001 ori r7,r0,0x0001		r7 = 01
0018c080: a4b10028 sh r17,0x0028(r5)		Store current HP
0018c084: a4a3002c sh r3,0x002c(r5)		store current MP
0018c088: 90440012 lbu r4,0x0012(r2)		load speed change?		
0018c08c: 0c06355c jal 0x0018d570		stat change ?
0018c090: 24a50032 addiu r5,r5,0x0032		target data + 0x32 (stat change  prep?)
0018c094: 02028025 or r16,r16,r2		target action OR 0x01
0018c098: 340600ff ori r6,r0,0x00ff
0018c09c: 00003821 addu r7,r0,r0
0018c0a0: 3c028019 lui r2,0x8019
0018c0a4: 8c422d90 lw r2,0x2d90(r2)		target action
0018c0a8: 3c058019 lui r5,0x8019
0018c0ac: 8ca52d98 lw r5,0x2d98(r5)		target data
0018c0b0: 90440013 lbu r4,0x0013(r2)		load CT change
0018c0b4: 0c06355c jal 0x0018d570		stat change routine?
0018c0b8: 24a50039 addiu r5,r5,0x0039		(stat change prep)
0018c0bc: 02028025 or r16,r16,r2		
0018c0c0: 34060063 ori r6,r0,0x0063		
0018c0c4: 34070001 ori r7,r0,0x0001
0018c0c8: 3c028019 lui r2,0x8019
0018c0cc: 8c422d90 lw r2,0x2d90(r2)		target action
0018c0d0: 3c058019 lui r5,0x8019
0018c0d4: 8ca52d98 lw r5,0x2d98(r5)		target data
0018c0d8: 90440014 lbu r4,0x0014(r2)		load PA change
0018c0dc: 0c06355c jal 0x0018d570
0018c0e0: 24a50030 addiu r5,r5,0x0030
0018c0e4: 02028025 or r16,r16,r2
0018c0e8: 34060063 ori r6,r0,0x0063
0018c0ec: 34070001 ori r7,r0,0x0001
0018c0f0: 3c028019 lui r2,0x8019
0018c0f4: 8c422d90 lw r2,0x2d90(r2)		target action
0018c0f8: 3c058019 lui r5,0x8019
0018c0fc: 8ca52d98 lw r5,0x2d98(r5)		target data
0018c100: 90440015 lbu r4,0x0015(r2)		load MA change
0018c104: 0c06355c jal 0x0018d570
0018c108: 24a50031 addiu r5,r5,0x0031
0018c10c: 02028025 or r16,r16,r2
0018c110: 34060064 ori r6,r0,0x0064
0018c114: 3c038019 lui r3,0x8019
0018c118: 8c632d98 lw r3,0x2d98(r3)		target data
0018c11c: 3c028019 lui r2,0x8019
0018c120: 8c422d90 lw r2,0x2d90(r2)		target action
0018c124: 24650024 addiu r5,r3,0x0024		
0018c128: 90670182 lbu r7,0x0182(r3)		load mount info
0018c12c: 90440016 lbu r4,0x0016(r2)		load brave change
0018c130: 000739c2 srl r7,r7,0x07
0018c134: 00073823 subu r7,r0,r7
0018c138: 0c06355c jal 0x0018d570	
0018c13c: 30e7000a andi r7,r7,0x000a
0018c140: 02028025 or r16,r16,r2
0018c144: 34060064 ori r6,r0,0x0064
0018c148: 00003821 addu r7,r0,r0
0018c14c: 3c028019 lui r2,0x8019
0018c150: 8c422d90 lw r2,0x2d90(r2)		target action
0018c154: 3c058019 lui r5,0x8019
0018c158: 8ca52d98 lw r5,0x2d98(r5)		target data
0018c15c: 90440017 lbu r4,0x0017(r2)		load faith change
0018c160: 0c06355c jal 0x0018d570
0018c164: 24a50026 addiu r5,r5,0x0026

0018c168: 0c0634f0 jal 0x0018d3c0		Steal/break(?) Routine
0018c16c: 02028025 or r16,r16,r2
0018c170: 3c038019 lui r3,0x8019
0018c174: 8c632d90 lw r3,0x2d90(r3)		target action
0018c178: 00000000 nop
0018c17c: 94630010 lhu r3,0x0010(r3)		load special flags
0018c180: 00000000 nop
0018c184: 30630008 andi r3,r3,0x0008		Stealing enemies item check?
0018c188: 10600007 beq r3,r0,0x0018c1a8		
0018c18c: 02028025 or r16,r16,r2
0018c190: 3c048019 lui r4,0x8019
0018c194: 8c842d98 lw r4,0x2d98(r4)		target data
0018c198: 00000000 nop
0018c19c: 90850176 lbu r5,0x0176(r4)		load used item/equip ID
0018c1a0: 0c063a7a jal 0x0018e9e8		item increment	
0018c1a4: 00000000 nop

0018c1a8: 3c038019 lui r3,0x8019
0018c1ac: 8c632d90 lw r3,0x2d90(r3)		target action
0018c1b0: 00000000 nop
0018c1b4: 8462000c lh r2,0x000c(r3)		load gil lost/stolen		
0018c1b8: 00000000 nop
0018c1bc: 14400005 bne r2,r0,0x0018c1d4		skip if not 0
0018c1c0: 00000000 nop
0018c1c4: 90620028 lbu r2,0x0028(r3)		load stolen exp
0018c1c8: 00000000 nop
0018c1cc: 10400002 beq r2,r0,0x0018c1d8		skip if 0
0018c1d0: 00000000 nop
0018c1d4: 36100001 ori r16,r16,0x0001		sets 1 if exp/gil stolen
0018c1d8: 3c028019 lui r2,0x8019
0018c1dc: 8c422d90 lw r2,0x2d90(r2)		target action pointer
0018c1e0: 3c048019 lui r4,0x8019
0018c1e4: 8c842d98 lw r4,0x2d98(r4)		target data pointer
0018c1e8: 8445000c lh r5,0x000c(r2)
0018c1ec: 0c063aa6 jal 0x0018ea98		some steal routine (gil/exp?)
0018c1f0: 00003021 addu r6,r0,r0
0018c1f4: 3c028019 lui r2,0x8019
0018c1f8: 8c422d90 lw r2,0x2d90(r2)		target action pointer
0018c1fc: 3c048019 lui r4,0x8019
0018c200: 8c842d98 lw r4,0x2d98(r4)		target data pointer
0018c204: 90450028 lbu r5,0x0028(r2)		
0018c208: 0c063ad4 jal 0x0018eb50		Apply Exp, gain level up
0018c20c: 00000000 nop
0018c210: 3c028019 lui r2,0x8019
0018c214: 8c422d90 lw r2,0x2d90(r2)		target action pointer
0018c218: 00000000 nop
0018c21c: 90420029 lbu r2,0x0029(r2)		stolen jp? unknown data
0018c220: 00000000 nop
0018c224: 10400005 beq r2,r0,0x0018c23c	branch if 0
0018c228: 00000000 nop
0018c22c: 3c048019 lui r4,0x8019
0018c230: 8c842d98 lw r4,0x2d98(r4)		target data
0018c234: 0c0637fe jal 0x0018dff8		Apply JP/calculate job level
0018c238: 00000000 nop
0018c23c: 0c063217 jal 0x0018c85c		level up/down
0018c240: 00000000 nop
0018c244: 0c0631a0 jal 0x0018c680		Poached item increment
0018c248: 02028025 or r16,r16,r2
0018c24c: 3c038019 lui r3,0x8019
0018c250: 8c632d90 lw r3,0x2d90(r3)
0018c254: 00000000 nop
0018c258: 94630010 lhu r3,0x0010(r3)		load special flags (marlboro)
0018c25c: 00000000 nop
0018c260: 30630002 andi r3,r3,0x0002		murbol morph check
0018c264: 1060000a beq r3,r0,0x0018c290	branch if not morbolized
0018c268: 02028025 or r16,r16,r2
0018c26c: 3c028019 lui r2,0x8019
0018c270: 8c42f5fc lw r2,-0x0a04(r2)		targeting/attacking check	
0018c274: 00000000 nop
0018c278: 14400005 bne r2,r0,0x0018c290	skip if targeting unit?
0018c27c: 36100001 ori r16,r16,0x0001		
0018c280: 3c048019 lui r4,0x8019
0018c284: 8c842d98 lw r4,0x2d98(r4)		target data
0018c288: 0c0603d0 jal 0x00180f40		special status flag enabling?
0018c28c: 00000000 nop

0018c290: 16200028 bne r17,r0,0x0018c334	branch if ?
0018c294: 00000000 nop
0018c298: 3c028019 lui r2,0x8019
0018c29c: 8c422d98 lw r2,0x2d98(r2)		target data
0018c2a0: 00000000 nop
0018c2a4: 94420058 lhu r2,0x0058(r2)		current status 1
0018c2a8: 00000000 nop
0018c2ac: 30420160 andi r2,r2,0x0160		dead/crystal/performing check?
0018c2b0: 14400020 bne r2,r0,0x0018c334		branch  if ^
0018c2b4: 00000000 nop
0018c2b8: 3c048019 lui r4,0x8019
0018c2bc: 8c842d90 lw r4,0x2d90(r4)		target action
0018c2c0: 0c062f75 jal 0x0018bdd4		null some status data
0018c2c4: 00000000 nop
0018c2c8: 02402021 addu r4,r18,r0
0018c2cc: 34050001 ori r5,r0,0x0001
0018c2d0: 3c028019 lui r2,0x8019
0018c2d4: 8c422d90 lw r2,0x2d90(r2)		target action
0018c2d8: 34030020 ori r3,r0,0x0020
0018c2dc: 0c06381f jal 0x0018e07c		dead unit hardcoding
0018c2e0: a043001b sb r3,0x001b(r2)		store dead as status  inflictin		
0018c2e4: 3c028019 lui r2,0x8019
0018c2e8: 8c42f5fc lw r2,-0x0a04(r2)		display data
0018c2ec: 00000000 nop
0018c2f0: 14400008 bne r2,r0,0x0018c314        Branch if targeting
0018c2f4: 00000000 nop
0018c2f8: 3c038019 lui r3,0x8019
0018c2fc: 8c632d98 lw r3,0x2d98(r3)		target data
0018c300: 00000000 nop
0018c304: 9062015c lbu r2,0x015c(r3)		load killed unit flag
0018c308: 00000000 nop
0018c30c: 24420001 addiu r2,r2,0x0001		
0018c310: a062015c sb r2,0x015c(r3)		store killed unit
0018c314: 0c063588 jal 0x0018d620		gained EXP
0018c318: 34040002 ori r4,r0,0x0002
0018c31c: 3c028019 lui r2,0x8019
0018c320: 8c422d98 lw r2,0x2d98(r2)		target data
0018c324: 00000000 nop
0018c328: 90420182 lbu r2,0x0182(r2)		mount flags
0018c32c: 08063198 j 0x0018c660			end
0018c330: 000211c2 srl r2,r2,0x07

0018c334: 3c028019 lui r2,0x8019
0018c338: 8c422d98 lw r2,0x2d98(r2)		target data
0018c33c: 3c03cccc lui r3,0xcccc
0018c340: 9442002a lhu r2,0x002a(r2)		load max HP		
0018c344: 3463cccd ori r3,r3,0xcccd
0018c348: 00430019 multu r2,r3
0018c34c: 00001010 mfhi r2
0018c350: 00021082 srl r2,r2,0x02
0018c354: 3042ffff andi r2,r2,0xffff		checking if max hp = fraction of max hp 
(critical)
0018c358: 0051102a slt r2,r2,r17
0018c35c: 14400009 bne r2,r0,0x0018c384		branch if not critical?
0018c360: 00000000 nop
0018c364: 3c038019 lui r3,0x8019
0018c368: 8c632d90 lw r3,0x2d90(r3)		target action pointer
0018c36c: 00000000 nop
0018c370: 9062001d lbu r2,0x001d(r3)		status infliction 3
0018c374: 00000000 nop
0018c378: 34420001 ori r2,r2,0x0001		critical
0018c37c: 080630e8 j 0x0018c3a0			skip next rountine
0018c380: a062001d sb r2,0x001d(r3)		store set critical status

0018c384: 3c038019 lui r3,0x8019
0018c388: 8c632d90 lw r3,0x2d90(r3)		target action
0018c38c: 00000000 nop
0018c390: 90620022 lbu r2,0x0022(r3)		load status removal 3
0018c394: 00000000 nop
0018c398: 34420001 ori r2,r2,0x0001
0018c39c: a0620022 sb r2,0x0022(r3)		store remove critical status
0018c3a0: 3c028019 lui r2,0x8019
0018c3a4: 8c422d98 lw r2,0x2d98(r2)		target data
0018c3a8: 00000000 nop
0018c3ac: 90420024 lbu r2,0x0024(r2)		load brave
0018c3b0: 00000000 nop
0018c3b4: 2c42000a sltiu r2,r2,0x000a		set if less than 10
0018c3b8: 10400009 beq r2,r0,0x0018c3e0		branch if not less than 10 brave
0018c3bc: 00000000 nop
0018c3c0: 3c038019 lui r3,0x8019
0018c3c4: 8c632d90 lw r3,0x2d90(r3)
0018c3c8: 00000000 nop
0018c3cc: 9062001d lbu r2,0x001d(r3)		load status infliction
0018c3d0: 00000000 nop
0018c3d4: 34420004 ori r2,r2,0x0004            add chicken status
0018c3d8: 080630ff j 0x0018c3fc			skip brave increment
0018c3dc: a062001d sb r2,0x001d(r3)		store chicken status

0018c3e0: 3c038019 lui r3,0x8019
0018c3e4: 8c632d90 lw r3,0x2d90(r3)		target action
0018c3e8: 00000000 nop
0018c3ec: 90620022 lbu r2,0x0022(r3)		load status removal
0018c3f0: 00000000 nop
0018c3f4: 34420004 ori r2,r2,0x0004
0018c3f8: a0620022 sb r2,0x0022(r3)		store remove chicken status

0018c3fc: 3c038019 lui r3,0x8019
0018c400: 8c632d90 lw r3,0x2d90(r3)
0018c404: 00000000 nop
0018c408: 90620025 lbu r2,0x0025(r3)		load attack type
0018c40c: 00000000 nop
0018c410: 30420080 andi r2,r2,0x0080		HP damage check
0018c414: 10400013 beq r2,r0,0x0018c464		branch if not HP damage
0018c418: 00000000 nop
0018c41c: 90620024 lbu r2,0x0024(r3)		load status removal 5
0018c420: 00000000 nop
0018c424: 34420030 ori r2,r2,0x0030		store charm/sleep
0018c428: a0620024 sb r2,0x0024(r3)		remove ^	
	
0018c42c: 3c038019 lui r3,0x8019
0018c430: 8c632d90 lw r3,0x2d90(r3)		target action
0018c434: 00000000 nop
0018c438: 90620022 lbu r2,0x0022(r3)		status removal 3
0018c43c: 00000000 nop
0018c440: 34420010 ori r2,r2,0x0010		
0018c444: a0620022 sb r2,0x0022(r3)		store remove transparent

0018c448: 3c038019 lui r3,0x8019
0018c44c: 8c632d90 lw r3,0x2d90(r3)		target current action
0018c450: 00000000 nop
0018c454: 90620021 lbu r2,0x0021(r3)		status removal 2
0018c458: 00000000 nop
0018c45c: 34420010 ori r2,r2,0x0010
0018c460: a0620021 sb r2,0x0021(r3)		store remove confusion

0018c464: 3c028019 lui r2,0x8019
0018c468: 8c422d90 lw r2,0x2d90(r2)		target current action
0018c46c: 00000000 nop
0018c470: 94420010 lhu r2,0x0010(r2)		special flags
0018c474: 00000000 nop
0018c478: 30424000 andi r2,r2,0x4000		switch team?
0018c47c: 10400012 beq r2,r0,0x0018c4c8		branch if no team switch
0018c480: 00000000 nop

0018c484: 3c048019 lui r4,0x8019
0018c488: 8c842d98 lw r4,0x2d98(r4)		target data
0018c48c: 0c06005e jal 0x00180178		remove charging status/ability CT
0018c490: 00002821 addu r5,r0,r0		r5 = 0
0018c494: 1040000c beq r2,r0,0x0018c4c8		branch if ?
0018c498: 00000000 nop

0018c49c: 3c038019 lui r3,0x8019
0018c4a0: 8c632d90 lw r3,0x2d90(r3)		target current action
0018c4a4: 00000000 nop
0018c4a8: 90620020 lbu r2,0x0020(r3)		attack status removal 1
0018c4ac: 00000000 nop
0018c4b0: 34420008 ori r2,r2,0x0008		charging
0018c4b4: a0620020 sb r2,0x0020(r3)		remove charging

0018c4b8: 3c038019 lui r3,0x8019
0018c4bc: 8c632d98 lw r3,0x2d98(r3)		target data
0018c4c0: 340200ff ori r2,r0,0x00ff		ff
0018c4c4: a062015d sb r2,0x015d(r3)		store current ability CT ff (no  charge?)
0018c4c8: 0c0612c9 jal 0x00184b24		status infliction checks
0018c4cc: 00002021 addu r4,r0,r0
0018c4d0: 00002021 addu r4,r0,r0
0018c4d4: 27a30010 addiu r3,r29,0x0010

0018c4d8: 3c028019 lui r2,0x8019
0018c4dc: 8c422d98 lw r2,0x2d98(r2)		target data
0018c4e0: 00000000 nop
0018c4e4: 00441021 addu r2,r2,r4
0018c4e8: 90420058 lbu r2,0x0058(r2)		load current status 1
0018c4ec: 24840001 addiu r4,r4,0x0001		??
0018c4f0: a0620000 sb r2,0x0000(r3)		store current status ??
0018c4f4: 28820005 slti r2,r4,0x0005
0018c4f8: 1440fff7 bne r2,r0,0x0018c4d8		??
0018c4fc: 24630001 addiu r3,r3,0x0001

0018c500: 00002021 addu r4,r0,r0
0018c504: 27a30018 addiu r3,r29,0x0018
0018c508: 3c028019 lui r2,0x8019
0018c50c: 8c422d98 lw r2,0x2d98(r2)		target data
0018c510: 00000000 nop
0018c514: 00441021 addu r2,r2,r4
0018c518: 9042005d lbu r2,0x005d(r2)		current status 2
0018c51c: 24840001 addiu r4,r4,0x0001
0018c520: a0620000 sb r2,0x0000(r3)
0018c524: 28820010 slti r2,r4,0x0010
0018c528: 1440fff7 bne r2,r0,0x0018c508		???
0018c52c: 24630001 addiu r3,r3,0x0001
0018c530: 02402021 addu r4,r18,r0
0018c534: 0c06381f jal 0x0018e07c		dead unit hardcoding
0018c538: 00002821 addu r5,r0,r0
0018c53c: 3c038019 lui r3,0x8019
0018c540: 8c632d98 lw r3,0x2d98(r3)		target data
0018c544: 00000000 nop
0018c548: 90620058 lbu r2,0x0058(r3)		current status 1
0018c54c: 00000000 nop
0018c550: 30420020 andi r2,r2,0x0020		dead
0018c554: 10400014 beq r2,r0,0x0018c5a8		branch if not
0018c558: 00002021 addu r4,r0,r0		r4 = 0
0018c55c: 93a20010 lbu r2,0x0010(r29)		
0018c560: 00000000 nop
0018c564: 30420020 andi r2,r2,0x0020
0018c568: 1440000f bne r2,r0,0x0018c5a8	skip if not dead
0018c56c: 00000000 nop
0018c570: 3c028019 lui r2,0x8019
0018c574: 8c42f5fc lw r2,-0x0a04(r2)		display data
0018c578: 00000000 nop
0018c57c: 14400023 bne r2,r0,0x0018c60c	branch if not dead?
0018c580: 34100002 ori r16,r0,0x0002		r16 = 02
0018c584: 9062015c lbu r2,0x015c(r3)		load dead flag?
0018c588: 00000000 nop
0018c58c: 24420001 addiu r2,r2,0x0001		add 0x01
0018c590: 08063183 j 0x0018c60c			
0018c594: a062015c sb r2,0x015c(r3)		store unit killed

0018c598: 08063176 j 0x0018c5d8
0018c59c: 34100001 ori r16,r0,0x0001

0018c5a0: 08063183 j 0x0018c60c
0018c5a4: 34100001 ori r16,r0,0x0001

0018c5a8: 3c068019 lui r6,0x8019
0018c5ac: 8cc62d98 lw r6,0x2d98(r6)		target data
0018c5b0: 27a50010 addiu r5,r29,0x0010		target dead check
0018c5b4: 00c41021 addu r2,r6,r4
0018c5b8: 90430058 lbu r3,0x0058(r2)		load current status
0018c5bc: 90a20000 lbu r2,0x0000(r5)		??		
0018c5c0: 00000000 nop
0018c5c4: 1462fff4 bne r3,r2,0x0018c598		??
0018c5c8: 24840001 addiu r4,r4,0x0001
0018c5cc: 28820005 slti r2,r4,0x0005
0018c5d0: 1440fff8 bne r2,r0,0x0018c5b4
0018c5d4: 24a50001 addiu r5,r5,0x0001

0018c5d8: 00002021 addu r4,r0,r0
0018c5dc: 3c068019 lui r6,0x8019
0018c5e0: 8cc62d98 lw r6,0x2d98(r6)		target data
0018c5e4: 27a50018 addiu r5,r29,0x0018
0018c5e8: 00c41021 addu r2,r6,r4
0018c5ec: 9043005d lbu r3,0x005d(r2)		load status CT left
0018c5f0: 90a20000 lbu r2,0x0000(r5)
0018c5f4: 00000000 nop
0018c5f8: 1462ffe9 bne r3,r2,0x0018c5a0		??
0018c5fc: 24840001 addiu r4,r4,0x0001		
0018c600: 28820010 slti r2,r4,0x0010
0018c604: 1440fff8 bne r2,r0,0x0018c5e8
0018c608: 24a50001 addiu r5,r5,0x0001

0018c60c: 0c063588 jal 0x0018d620		attackers earned exp
0018c610: 02002021 addu r4,r16,r0
0018c614: 12000005 beq r16,r0,0x0018c62c	
0018c618: 34020002 ori r2,r0,0x0002		r2 = 02
0018c61c: 3c038019 lui r3,0x8019
0018c620: 8c632d98 lw r3,0x2d98(r3)		target data
0018c624: 00000000 nop
0018c628: a0620189 sb r2,0x0189(r3)		store in water??
0018c62c: 0c063336 jal 0x0018ccd8		PA Save, MA Save, Speed Save,
Regenerator, HP Restore, MP Restore, Critical Quick Meatbone Slash, Auto Potion,
Gilgame Heart check
0018c630: 00000000 nop
0018c634: 3c048019 lui r4,0x8019
0018c638: 8c842d98 lw r4,0x2d98(r4)		target data
0018c63c: 00000000 nop
0018c640: 90830058 lbu r3,0x0058(r4)		load current status
0018c644: 00000000 nop
0018c648: 30630060 andi r3,r3,0x0060		
0018c64c: 10600005 beq r3,r0,0x0018c664		branch if not dead/crystal
0018c650: 00001021 addu r2,r0,r0
0018c654: 90820182 lbu r2,0x0182(r4)		set mount flags = 0
0018c658: 00000000 nop
0018c65c: 000211c2 srl r2,r2,0x07
0018c660: 00021023 subu r2,r0,r2
0018c664: 8fbf0034 lw r31,0x0034(r29)
0018c668: 8fb20030 lw r18,0x0030(r29)
0018c66c: 8fb1002c lw r17,0x002c(r29)
0018c670: 8fb00028 lw r16,0x0028(r29)
0018c674: 27bd0038 addiu r29,r29,0x0038
0018c678: 03e00008 jr r31
0018c67c: 00000000 no