Difference between revisions of "Poach Inventory Routine"
Jump to navigation
Jump to search
(Created page with " 0018c680: 3c028019 lui r2,0x8019 0018c684: 8c42f5fc lw r2,-0x0a04(r2) 0018c688: 27bdffe8 addiu r29,r29,0xffe8 0018c68c: afbf0014 sw r31,0x0014(r29) 0018c690: 144...") |
m (return link) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | 0018c680: 3c028019 lui r2,0x8019 | + | 0018c680: 3c028019 lui r2,0x8019 |
− | 0018c684: 8c42f5fc lw r2,-0x0a04(r2) | + | 0018c684: 8c42f5fc lw r2,-0x0a04(r2) |
− | 0018c688: 27bdffe8 addiu r29,r29,0xffe8 | + | 0018c688: 27bdffe8 addiu r29,r29,0xffe8 |
− | 0018c68c: afbf0014 sw r31,0x0014(r29) | + | 0018c68c: afbf0014 sw r31,0x0014(r29) |
− | 0018c690: 14400012 bne r2,r0,0x0018c6dc | + | IF r2 == 0: If word(0x8018f5fc) == 0 |
− | 0018c694: afb00010 sw r16,0x0010(r29) | + | 0018c690: 14400012 bne r2,r0,0x0018c6dc |
− | 0018c698: 3c028019 lui r2,0x8019 | + | 0018c694: afb00010 sw r16,0x0010(r29) |
− | + | THEN: | |
− | + | 0018c698: 3c028019 lui r2,0x8019 | |
− | + | 0018c69c: 8c422d90 lw r2,0x2d90(r2) Load Target Current Action Data | |
− | + | 0018c6a0: 00000000 nop | |
− | + | 0018c6a4: 94420010 lhu r2,0x0010(r2) Load Special Flags | |
− | + | 0018c6a8: 00000000 nop | |
− | + | 0018c6ac: 30420020 andi r2,r2,0x0020 | |
− | + | 0018c6b0: 10400024 beq r2,r0,0x0018c744 RETURN 0 if attack didn't trigger poach | |
− | + | 0018c6b4: 00001021 addu r2,r0,r0 | |
− | + | 0018c6b8: 3c038019 lui r3,0x8019 | |
− | + | 0018c6bc: 8c632d98 lw r3,0x2d98(r3) Load Target's Stats | |
− | + | 0018c6c0: 00000000 nop | |
− | + | 0018c6c4: 90620003 lbu r2,0x0003(r3) Load Target's Job | |
− | + | 0018c6c8: 00000000 nop | |
− | + | 0018c6cc: 2442ffa2 addiu r2,r2,0xffa2 Job ID - 0x5E | |
− | + | 0018c6d0: 2c420030 sltiu r2,r2,0x0030 | |
− | 0018c6dc: 080631d1 j 0x0018c744 | + | 0018c6d4: 14400003 bne r2,r0,0x0018c6e4 ROLL_POACH if is monster (0x5E <= JobID < 0x8E) |
− | + | 0018c6d8: 34040100 ori r4,r0,0x0100 r4 = 0x100 (=256) | |
− | 0018c6e4: 90620003 lbu r2,0x0003(r3) | + | ELSE: |
− | 0018c6e8: 3405001f ori r5,r0,0x001f | + | 0018c6dc: 080631d1 j 0x0018c744 RETURN 0 |
− | 0018c6ec: 0c017833 jal 0x0005e0cc | + | 0018c6e0: 00001021 addu r2,r0,r0 r2 = 0x00 |
− | 0018c6f0: 2450ffa2 addiu r16,r2,0xffa2 | + | ROLL_POACH: |
− | 0018c6f4: 10400006 beq r2,r0,0x0018c710 | + | 0018c6e4: 90620003 lbu r2,0x0003(r3) Load Unit Job ID |
− | 0018c6f8: 00101040 sll r2,r16,0x01 | + | 0018c6e8: 3405001f ori r5,r0,0x001f r5 = 0x1f (=31) |
− | 0018c6fc: 3c018006 lui r1,0x8006 | + | 0018c6ec: 0c017833 jal 0x0005e0cc r2 = roll(256) >= 31 |
− | + | 0018c6f0: 2450ffa2 addiu r16,r2,0xffa2 Job ID - 0x5E | |
− | + | IF roll(256) >= 31: | |
− | + | 0018c6f4: 10400006 beq r2,r0,0x0018c710 | |
− | + | 0018c6f8: 00101040 sll r2,r16,0x01 Job ID * 2 | |
− | 0018c710: 3c018006 lui r1,0x8006 | + | THEN: #87.9% |
− | + | 0018c6fc: 3c018006 lui r1,0x8006 | |
− | + | 0018c700: 00220821 addu r1,r1,r2 | |
− | 0018c71c: 3c018006 lui r1,0x8006 | + | 0018c704: 90236064 lbu r3,0x6064(r1) Load Common Poach |
− | 0018c720: 00230821 addu r1,r1,r3 | + | 0018c708: 080631c7 j 0x0018c71c |
− | 0018c724: 90249494 lbu r4,-0x6b6c(r1) | + | 0018c70c: 00000000 nop |
− | 0018c728: 340200ff ori r2,r0,0x00ff | + | ELSE: #12.1% |
− | 0018c72c: 10820005 beq r4,r2,0x0018c744 | + | 0018c710: 3c018006 lui r1,0x8006 |
− | 0018c730: 00000000 nop | + | 0018c714: 00220821 addu r1,r1,r2 |
− | + | 0018c718: 90236065 lbu r3,0x6065(r1) Load Rare Poach | |
− | + | # R3 = poached item | |
− | + | 0018c71c: 3c018006 lui r1,0x8006 | |
− | + | 0018c720: 00230821 addu r1,r1,r3 | |
− | 0018c744: 8fbf0014 lw r31,0x0014(r29) | + | 0018c724: 90249494 lbu r4,-0x6b6c(r1) Load Fur Shop Inventory for this item. |
− | 0018c748: 8fb00010 lw r16,0x0010(r29) | + | 0018c728: 340200ff ori r2,r0,0x00ff |
− | 0018c74c: 27bd0018 addiu r29,r29,0x0018 | + | 0018c72c: 10820005 beq r4,r2,0x0018c744 RETURN 0xFF if shop has 255 already. |
− | 0018c750: 03e00008 jr r31 | + | 0018c730: 00000000 nop |
+ | 0018c734: 24820001 addiu r2,r4,0x0001 Inventory + 1 | ||
+ | 0018c738: 3c018006 lui r1,0x8006 | ||
+ | 0018c73c: 00230821 addu r1,r1,r3 | ||
+ | 0018c740: a0229494 sb r2,-0x6b6c(r1) Store New Inventory | ||
+ | RETURN: | ||
+ | 0018c744: 8fbf0014 lw r31,0x0014(r29) | ||
+ | 0018c748: 8fb00010 lw r16,0x0010(r29) | ||
+ | 0018c74c: 27bd0018 addiu r29,r29,0x0018 | ||
+ | 0018c750: 03e00008 jr r31 | ||
0018c754: 00000000 nop | 0018c754: 00000000 nop | ||
+ | === Return location === | ||
+ | '''Battle.bin''' | ||
+ | 0018c24c: [[Attack_Finalisation_%26_Reaction_Flagging]] |
Latest revision as of 13:07, 25 November 2022
0018c680: 3c028019 lui r2,0x8019 0018c684: 8c42f5fc lw r2,-0x0a04(r2) 0018c688: 27bdffe8 addiu r29,r29,0xffe8 0018c68c: afbf0014 sw r31,0x0014(r29) IF r2 == 0: If word(0x8018f5fc) == 0 0018c690: 14400012 bne r2,r0,0x0018c6dc 0018c694: afb00010 sw r16,0x0010(r29) THEN: 0018c698: 3c028019 lui r2,0x8019 0018c69c: 8c422d90 lw r2,0x2d90(r2) Load Target Current Action Data 0018c6a0: 00000000 nop 0018c6a4: 94420010 lhu r2,0x0010(r2) Load Special Flags 0018c6a8: 00000000 nop 0018c6ac: 30420020 andi r2,r2,0x0020 0018c6b0: 10400024 beq r2,r0,0x0018c744 RETURN 0 if attack didn't trigger poach 0018c6b4: 00001021 addu r2,r0,r0 0018c6b8: 3c038019 lui r3,0x8019 0018c6bc: 8c632d98 lw r3,0x2d98(r3) Load Target's Stats 0018c6c0: 00000000 nop 0018c6c4: 90620003 lbu r2,0x0003(r3) Load Target's Job 0018c6c8: 00000000 nop 0018c6cc: 2442ffa2 addiu r2,r2,0xffa2 Job ID - 0x5E 0018c6d0: 2c420030 sltiu r2,r2,0x0030 0018c6d4: 14400003 bne r2,r0,0x0018c6e4 ROLL_POACH if is monster (0x5E <= JobID < 0x8E) 0018c6d8: 34040100 ori r4,r0,0x0100 r4 = 0x100 (=256) ELSE: 0018c6dc: 080631d1 j 0x0018c744 RETURN 0 0018c6e0: 00001021 addu r2,r0,r0 r2 = 0x00 ROLL_POACH: 0018c6e4: 90620003 lbu r2,0x0003(r3) Load Unit Job ID 0018c6e8: 3405001f ori r5,r0,0x001f r5 = 0x1f (=31) 0018c6ec: 0c017833 jal 0x0005e0cc r2 = roll(256) >= 31 0018c6f0: 2450ffa2 addiu r16,r2,0xffa2 Job ID - 0x5E IF roll(256) >= 31: 0018c6f4: 10400006 beq r2,r0,0x0018c710 0018c6f8: 00101040 sll r2,r16,0x01 Job ID * 2 THEN: #87.9% 0018c6fc: 3c018006 lui r1,0x8006 0018c700: 00220821 addu r1,r1,r2 0018c704: 90236064 lbu r3,0x6064(r1) Load Common Poach 0018c708: 080631c7 j 0x0018c71c 0018c70c: 00000000 nop ELSE: #12.1% 0018c710: 3c018006 lui r1,0x8006 0018c714: 00220821 addu r1,r1,r2 0018c718: 90236065 lbu r3,0x6065(r1) Load Rare Poach # R3 = poached item 0018c71c: 3c018006 lui r1,0x8006 0018c720: 00230821 addu r1,r1,r3 0018c724: 90249494 lbu r4,-0x6b6c(r1) Load Fur Shop Inventory for this item. 0018c728: 340200ff ori r2,r0,0x00ff 0018c72c: 10820005 beq r4,r2,0x0018c744 RETURN 0xFF if shop has 255 already. 0018c730: 00000000 nop 0018c734: 24820001 addiu r2,r4,0x0001 Inventory + 1 0018c738: 3c018006 lui r1,0x8006 0018c73c: 00230821 addu r1,r1,r3 0018c740: a0229494 sb r2,-0x6b6c(r1) Store New Inventory RETURN: 0018c744: 8fbf0014 lw r31,0x0014(r29) 0018c748: 8fb00010 lw r16,0x0010(r29) 0018c74c: 27bd0018 addiu r29,r29,0x0018 0018c750: 03e00008 jr r31 0018c754: 00000000 nop
Return location
Battle.bin 0018c24c: Attack_Finalisation_&_Reaction_Flagging