Difference between revisions of "Attack Finalisation & Reaction Flagging"
Jump to navigation
Jump to search
Line 117: | Line 117: | ||
0018bfc0: 3c018019 lui r1,0x8019 | 0018bfc0: 3c018019 lui r1,0x8019 | ||
0018bfc4: 00230821 addu r1,r1,r3 | 0018bfc4: 00230821 addu r1,r1,r3 | ||
− | 0018bfc8: a422f5f4 sh r2,-0x0a0c(r1) | + | 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 |
Revision as of 00:50, 27 November 2012
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 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 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 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) AI action data? 0018be54: 3c018019 lui r1,0x8019 0018be58: ac242d98 sw r4,0x2d98(r1) store targte data 0018be5c: 3c018019 lui r1,0x8019 0018be60: ac252d90 sw r5,0x2d90(r1) store target action 0018be64: 90830001 lbu r3,0x0001(r4) 0018be68: 340200ff ori r2,r0,0x00ff 0018be6c: 14620003 bne r3,r2,0x0018be7c 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 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 um.. r6 = 0x32 again 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) item to break/use 0018c180: 00000000 nop 0018c184: 30630008 andi r3,r3,0x0008 assassin dagger? 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 unknown yet 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 ??? 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) load display data 0018c274: 00000000 nop 0018c278: 14400005 bne r2,r0,0x0018c290 skip if not 0 0018c27c: 36100001 ori r16,r16,0x0001 0018c280: 3c048019 lui r4,0x8019 0018c284: 8c842d98 lw r4,0x2d98(r4) target data 0018c288: 0c0603d0 jal 0x00180f40 ??? 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 ??? 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 ?? ? 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 ?? 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 ?? 0018c308: 00000000 nop 0018c30c: 24420001 addiu r2,r2,0x0001 0018c310: a062015c sb r2,0x015c(r3) store 01 into ?? 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 0018c3d0: 00000000 nop 0018c3d4: 34420004 ori r2,r2,0x0004 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 ???? 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 ??? 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 dead 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