Difference between revisions of "Base XA Calculation"
Jump to navigation
Jump to search
m (tabs to spaces --Raijinili) |
|||
Line 1: | Line 1: | ||
Base XA Calculation (Weapons) | Base XA Calculation (Weapons) | ||
00185a9c: 3c028019 lui r2,0x8019 | 00185a9c: 3c028019 lui r2,0x8019 | ||
− | 00185aa0: 904238d8 lbu r2,0x38d8(r2) | + | 00185aa0: 904238d8 lbu r2,0x38d8(r2) Load Used Weapon ID |
00185aa4: 27bdffe8 addiu r29,r29,0xffe8 | 00185aa4: 27bdffe8 addiu r29,r29,0xffe8 | ||
00185aa8: afbf0014 sw r31,0x0014(r29) | 00185aa8: afbf0014 sw r31,0x0014(r29) | ||
00185aac: afb00010 sw r16,0x0010(r29) | 00185aac: afb00010 sw r16,0x0010(r29) | ||
− | 00185ab0: 00021840 sll r3,r2,0x01 | + | 00185ab0: 00021840 sll r3,r2,0x01 ID * 2 |
− | 00185ab4: 00621821 addu r3,r3,r2 | + | 00185ab4: 00621821 addu r3,r3,r2 ID * 3 |
− | 00185ab8: 00031880 sll r3,r3,0x02 | + | 00185ab8: 00031880 sll r3,r3,0x02 ID * 12 |
00185abc: 3c018006 lui r1,0x8006 | 00185abc: 3c018006 lui r1,0x8006 | ||
− | 00185ac0: 00230821 addu r1,r1,r3 | + | 00185ac0: 00230821 addu r1,r1,r3 80060000 + ID * 12 |
− | 00185ac4: 90242ebd lbu r4,0x2ebd(r1) | + | 00185ac4: 90242ebd lbu r4,0x2ebd(r1) Load Used Weapon Item Type |
00185ac8: 3c028019 lui r2,0x8019 | 00185ac8: 3c028019 lui r2,0x8019 | ||
− | 00185acc: 8c422d94 lw r2,0x2d94(r2) | + | 00185acc: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer |
− | 00185ad0: 308300ff andi r3,r4,0x00ff | + | 00185ad0: 308300ff andi r3,r4,0x00ff r3 = Used Weapon Item Type |
− | 00185ad4: 90500036 lbu r16,0x0036(r2) | + | 00185ad4: 90500036 lbu r16,0x0036(r2) Load Attacker's PA |
− | 00185ad8: 90460037 lbu r6,0x0037(r2) | + | 00185ad8: 90460037 lbu r6,0x0037(r2) Load Attacker's MA |
− | 00185adc: 90450024 lbu r5,0x0024(r2) | + | 00185adc: 90450024 lbu r5,0x0024(r2) Load Attacker's Brave |
− | 00185ae0: 14600014 bne r3,r0,0x00185b34 | + | 00185ae0: 14600014 bne r3,r0,0x00185b34 Branch if a weapon is equipped |
− | 00185ae4: 00b00018 mult r5,r16 | + | 00185ae4: 00b00018 mult r5,r16 Brave * PA |
− | 00185ae8: 00001812 mflo r3 | + | 00185ae8: 00001812 mflo r3 r3 = Brave * PA |
00185aec: 3c0251eb lui r2,0x51eb | 00185aec: 3c0251eb lui r2,0x51eb | ||
00185af0: 3442851f ori r2,r2,0x851f | 00185af0: 3442851f ori r2,r2,0x851f | ||
− | 00185af4: 00620018 mult r3,r2 | + | 00185af4: 00620018 mult r3,r2 Brave * PA * 0.32 |
00185af8: 3c018019 lui r1,0x8019 | 00185af8: 3c018019 lui r1,0x8019 | ||
− | 00185afc: a43038ce sh r16,0x38ce(r1) | + | 00185afc: a43038ce sh r16,0x38ce(r1) Store XA = PA |
00185b00: 00031fc3 sra r3,r3,0x1f | 00185b00: 00031fc3 sra r3,r3,0x1f | ||
− | 00185b04: 00001010 mfhi r2 | + | 00185b04: 00001010 mfhi r2 r2 = Brave * PA * 0.32 |
− | 00185b08: 00021143 sra r2,r2,0x05 | + | 00185b08: 00021143 sra r2,r2,0x05 Brave * PA * 0.32 / 32 (or Brave * PA / 100) |
00185b0c: 00431823 subu r3,r2,r3 | 00185b0c: 00431823 subu r3,r2,r3 | ||
− | 00185b10: 00031400 sll r2,r3,0x10 | + | 00185b10: 00031400 sll r2,r3,0x10 Brave * PA / 100 * 65536 |
00185b14: 3c018019 lui r1,0x8019 | 00185b14: 3c018019 lui r1,0x8019 | ||
− | 00185b18: a42338d0 sh r3,0x38d0(r1) | + | 00185b18: a42338d0 sh r3,0x38d0(r1) Store YA = Brave * PA / 100 |
− | 00185b1c: 14400058 bne r2,r0,0x00185c80 | + | 00185b1c: 14400058 bne r2,r0,0x00185c80 Branch if YA > 0 |
− | 00185b20: 24620001 addiu r2,r3,0x0001 | + | 00185b20: 24620001 addiu r2,r3,0x0001 r2 = YA + 1 (minimum of 1 YA) |
00185b24: 3c018019 lui r1,0x8019 | 00185b24: 3c018019 lui r1,0x8019 | ||
− | 00185b28: a42238d0 sh r2,0x38d0(r1) | + | 00185b28: a42238d0 sh r2,0x38d0(r1) Store YA = 1 |
− | 00185b2c: 08061720 j 0x00185c80 | + | 00185b2c: 08061720 j 0x00185c80 Jump to end |
00185b30: 00000000 nop | 00185b30: 00000000 nop | ||
00185b34: 3c028019 lui r2,0x8019 | 00185b34: 3c028019 lui r2,0x8019 | ||
− | 00185b38: 90423902 lbu r2,0x3902(r2) | + | 00185b38: 90423902 lbu r2,0x3902(r2) Load WP |
00185b3c: 3c018019 lui r1,0x8019 | 00185b3c: 3c018019 lui r1,0x8019 | ||
− | 00185b40: a42238d0 sh r2,0x38d0(r1) | + | 00185b40: a42238d0 sh r2,0x38d0(r1) YA = WP |
− | 00185b44: 34020003 ori r2,r0,0x0003 | + | 00185b44: 34020003 ori r2,r0,0x0003 r2 = 3 |
− | 00185b48: 10620007 beq r3,r2,0x00185b68 | + | 00185b48: 10620007 beq r3,r2,0x00185b68 Branch if Used Weapon is a Sword |
− | 00185b4c: 3402000b ori r2,r0,0x000b | + | 00185b4c: 3402000b ori r2,r0,0x000b r2 = b |
− | 00185b50: 10620005 beq r3,r2,0x00185b68 | + | 00185b50: 10620005 beq r3,r2,0x00185b68 Branch if Used Weapon is a Crossbow |
− | 00185b54: 34020007 ori r2,r0,0x0007 | + | 00185b54: 34020007 ori r2,r0,0x0007 r2 = 7 |
− | 00185b58: 10620003 beq r3,r2,0x00185b68 | + | 00185b58: 10620003 beq r3,r2,0x00185b68 Branch if Used Weapon is a Rod |
− | 00185b5c: 3402000f ori r2,r0,0x000f | + | 00185b5c: 3402000f ori r2,r0,0x000f r2 = f |
− | 00185b60: 14620005 bne r3,r2,0x00185b78 | + | 00185b60: 14620005 bne r3,r2,0x00185b78 Branch if Used Weapon is not a Polearm |
− | 00185b64: 2482ffff addiu r2,r4,0xffff | + | 00185b64: 2482ffff addiu r2,r4,0xffff Used Weapon Type - 1 |
00185b68: 3c018019 lui r1,0x8019 | 00185b68: 3c018019 lui r1,0x8019 | ||
− | 00185b6c: a43038ce sh r16,0x38ce(r1) | + | 00185b6c: a43038ce sh r16,0x38ce(r1) Store XA = PA |
− | 00185b70: 08061720 j 0x00185c80 | + | 00185b70: 08061720 j 0x00185c80 Jump to End |
00185b74: 00000000 nop | 00185b74: 00000000 nop | ||
00185b78: 2c420002 sltiu r2,r2,0x0002 | 00185b78: 2c420002 sltiu r2,r2,0x0002 | ||
− | 00185b7c: 14400005 bne r2,r0,0x00185b94 | + | 00185b7c: 14400005 bne r2,r0,0x00185b94 Branch if Used Weapon is a Knife/Ninja Blade |
− | 00185b80: 3402000c ori r2,r0,0x000c | + | 00185b80: 3402000c ori r2,r0,0x000c r2 = c |
− | 00185b84: 10620003 beq r3,r2,0x00185b94 | + | 00185b84: 10620003 beq r3,r2,0x00185b94 Branch if Used Weapon is a Bow |
− | 00185b88: 34020020 ori r2,r0,0x0020 | + | 00185b88: 34020020 ori r2,r0,0x0020 r2 = 20 |
− | 00185b8c: 14620007 bne r3,r2,0x00185bac | + | 00185b8c: 14620007 bne r3,r2,0x00185bac Branch if Used Weapon is not a Thrown Weapon |
− | 00185b90: 2482fffc addiu r2,r4,0xfffc | + | 00185b90: 2482fffc addiu r2,r4,0xfffc Used Weapon Type - 4 |
00185b94: 3c028019 lui r2,0x8019 | 00185b94: 3c028019 lui r2,0x8019 | ||
− | 00185b98: 8c422d94 lw r2,0x2d94(r2) | + | 00185b98: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer |
00185b9c: 00000000 nop | 00185b9c: 00000000 nop | ||
− | 00185ba0: 90420038 lbu r2,0x0038(r2) | + | 00185ba0: 90420038 lbu r2,0x0038(r2) Load Target's SP |
00185ba4: 0806171d j 0x00185c74 | 00185ba4: 0806171d j 0x00185c74 | ||
− | 00185ba8: 02021021 addu r2,r16,r2 | + | 00185ba8: 02021021 addu r2,r16,r2 PA + SP |
00185bac: 2c420002 sltiu r2,r2,0x000 2 | 00185bac: 2c420002 sltiu r2,r2,0x000 2 | ||
− | 00185bb0: 10400010 beq r2,r0,0x00185bf4 | + | 00185bb0: 10400010 beq r2,r0,0x00185bf4 Branch if Used Weapon is a Knight Sword/Katana |
− | 00185bb4: 00b00018 mult r5,r16 | + | 00185bb4: 00b00018 mult r5,r16 Brave * PA |
− | 00185bb8: 00001812 mflo r3 | + | 00185bb8: 00001812 mflo r3 r3 = Brave * PA |
00185bbc: 3c0251eb lui r2,0x51eb | 00185bbc: 3c0251eb lui r2,0x51eb | ||
00185bc0: 3442851f ori r2,r2,0x851f | 00185bc0: 3442851f ori r2,r2,0x851f | ||
− | 00185bc4: 00620018 mult r3,r2 | + | 00185bc4: 00620018 mult r3,r2 Brave * PA * 0.32 |
00185bc8: 00031fc3 sra r3,r3,0x1f | 00185bc8: 00031fc3 sra r3,r3,0x1f | ||
− | 00185bcc: 00001010 mfhi r2 | + | 00185bcc: 00001010 mfhi r2 r2 = Brave * PA * 0.32 |
− | 00185bd0: 00021143 sra r2,r2,0x05 | + | 00185bd0: 00021143 sra r2,r2,0x05 Brave * PA * 0.32 / 32 (or Brave * PA / 100) |
00185bd4: 00431823 subu r3,r2,r3 | 00185bd4: 00431823 subu r3,r2,r3 | ||
00185bd8: 3c018019 lui r1,0x8019 | 00185bd8: 3c018019 lui r1,0x8019 | ||
− | 00185bdc: a42338ce sh r3,0x38ce(r1) | + | 00185bdc: a42338ce sh r3,0x38ce(r1) Store XA = Brave * PA / 100 |
− | 00185be0: 00031400 sll r2,r3,0x10 | + | 00185be0: 00031400 sll r2,r3,0x10 Brave * PA / 100 * 65536 |
− | 00185be4: 14400026 bne r2,r0,0x00185c80 | + | 00185be4: 14400026 bne r2,r0,0x00185c80 Branch if XA > 0 |
− | 00185be8: 24620001 addiu r2,r3,0x0001 | + | 00185be8: 24620001 addiu r2,r3,0x0001 r2 = XA + 1 (min XA of 1) |
00185bec: 0806171e j 0x00185c78 | 00185bec: 0806171e j 0x00185c78 | ||
00185bf0: 00000000 nop | 00185bf0: 00000000 nop | ||
− | 00185bf4: 34020008 ori r2,r0,0x0008 | + | 00185bf4: 34020008 ori r2,r0,0x0008 r2 = 8 |
− | 00185bf8: 10620003 beq r3,r2,0x00185c08 | + | 00185bf8: 10620003 beq r3,r2,0x00185c08 Branch if Used Weapon is a Staff |
− | 00185bfc: 34020010 ori r2,r0,0x0010 | + | 00185bfc: 34020010 ori r2,r0,0x0010 r2 = 10 |
− | 00185c00: 14620005 bne r3,r2,0x00185c18 | + | 00185c00: 14620005 bne r3,r2,0x00185c18 Branch if Used Weapon is not a Pole |
− | 00185c04: 34020006 ori r2,r0,0x0006 | + | 00185c04: 34020006 ori r2,r0,0x0006 r2 = 6 |
00185c08: 3c018019 lui r1,0x8019 | 00185c08: 3c018019 lui r1,0x8019 | ||
− | 00185c0c: a42638ce sh r6,0x38ce(r1) | + | 00185c0c: a42638ce sh r6,0x38ce(r1) Store XA = MA |
00185c10: 08061720 j 0x00185c80 | 00185c10: 08061720 j 0x00185c80 | ||
00185c14: 00000000 nop | 00185c14: 00000000 nop | ||
− | 00185c18: 10620005 beq r3,r2,0x00185c30 | + | 00185c18: 10620005 beq r3,r2,0x00185c30 Branch if Used Weapon is an Axe |
− | 00185c1c: 34020009 ori r2,r0,0x0009 | + | 00185c1c: 34020009 ori r2,r0,0x0009 r2 = 9 |
− | 00185c20: 10620003 beq r3,r2,0x00185c30 | + | 00185c20: 10620003 beq r3,r2,0x00185c30 Branch if Used Weapon is a Flail |
− | 00185c24: 34020011 ori r2,r0,0x0011 | + | 00185c24: 34020011 ori r2,r0,0x0011 r2 = 11 |
− | 00185c28: 1462000b bne r3,r2,0x00185c58 | + | 00185c28: 1462000b bne r3,r2,0x00185c58 Branch if Used Weapon is not a Bag |
− | 00185c2c: 2482fff3 addiu r2,r4,0xfff3 | + | 00185c2c: 2482fff3 addiu r2,r4,0xfff3 r2 = Used Weapon Type - 13 (d) |
− | 00185c30: 0c063ba8 jal 0x0018eea0 | + | 00185c30: 0c063ba8 jal 0x0018eea0 Random Process |
00185c34: 00000000 nop | 00185c34: 00000000 nop | ||
− | 00185c38: 02020018 mult r16,r2 | + | 00185c38: 02020018 mult r16,r2 PA * 0->7fff |
− | 00185c3c: 00001012 mflo r2 | + | 00185c3c: 00001012 mflo r2 r2 = PA * Random |
− | 00185c40: 04410002 bgez r2,0x00185c4c | + | 00185c40: 04410002 bgez r2,0x00185c4c Branch if PA * Random >= 0 |
00185c44: 00000000 nop | 00185c44: 00000000 nop | ||
− | 00185c48: 24427fff addiu r2,r2,0x7fff | + | 00185c48: 24427fff addiu r2,r2,0x7fff Make result positive |
− | 00185c4c: 000213c3 sra r2,r2,0x0f | + | 00185c4c: 000213c3 sra r2,r2,0x0f PA * 0->7fff / 8000h (0->PA - 1) |
00185c50: 0806171e j 0x00185c78 | 00185c50: 0806171e j 0x00185c78 | ||
− | 00185c54: 24420001 addiu r2,r2,0x0001 | + | 00185c54: 24420001 addiu r2,r2,0x0001 r2 += 1 (1->PA) |
00185c58: 2c420002 sltiu r2,r2,0x0002 | 00185c58: 2c420002 sltiu r2,r2,0x0002 | ||
− | 00185c5c: 14400004 bne r2,r0,0x00185c70 | + | 00185c5c: 14400004 bne r2,r0,0x00185c70 Branch if Used Weapon is not an Instrument/Book |
− | 00185c60: 30c200ff andi r2,r6,0x00ff | + | 00185c60: 30c200ff andi r2,r6,0x00ff r2 = MA |
− | 00185c64: 34020012 ori r2,r0,0x0012 | + | 00185c64: 34020012 ori r2,r0,0x0012 r2 = 12 |
− | 00185c68: 14620005 bne r3,r2,0x00185c80 | + | 00185c68: 14620005 bne r3,r2,0x00185c80 Branch if Used Weapon is not a Cloth |
− | 00185c6c: 30c200ff andi r2,r6,0x00ff | + | 00185c6c: 30c200ff andi r2,r6,0x00ff r2 = MA |
− | 00185c70: 02021021 addu r2,r16,r2 | + | 00185c70: 02021021 addu r2,r16,r2 PA * MA |
− | 00185c74: 00021043 sra r2,r2,0x01 | + | 00185c74: 00021043 sra r2,r2,0x01 PA * ?? / 2 (MA or SP, depending on Weapon) |
00185c78: 3c018019 lui r1,0x8019 | 00185c78: 3c018019 lui r1,0x8019 | ||
− | 00185c7c: a42238ce sh r2,0x38ce(r1) | + | 00185c7c: a42238ce sh r2,0x38ce(r1) Store XA = PA * ?? / 2 |
00185c80: 8fbf0014 lw r31,0x0014(r29) | 00185c80: 8fbf0014 lw r31,0x0014(r29) | ||
00185c84: 8fb00010 lw r16,0x0010(r29) | 00185c84: 8fb00010 lw r16,0x0010(r29) |
Revision as of 08:35, 11 July 2015
Base XA Calculation (Weapons) 00185a9c: 3c028019 lui r2,0x8019 00185aa0: 904238d8 lbu r2,0x38d8(r2) Load Used Weapon ID 00185aa4: 27bdffe8 addiu r29,r29,0xffe8 00185aa8: afbf0014 sw r31,0x0014(r29) 00185aac: afb00010 sw r16,0x0010(r29) 00185ab0: 00021840 sll r3,r2,0x01 ID * 2 00185ab4: 00621821 addu r3,r3,r2 ID * 3 00185ab8: 00031880 sll r3,r3,0x02 ID * 12 00185abc: 3c018006 lui r1,0x8006 00185ac0: 00230821 addu r1,r1,r3 80060000 + ID * 12 00185ac4: 90242ebd lbu r4,0x2ebd(r1) Load Used Weapon Item Type 00185ac8: 3c028019 lui r2,0x8019 00185acc: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 00185ad0: 308300ff andi r3,r4,0x00ff r3 = Used Weapon Item Type 00185ad4: 90500036 lbu r16,0x0036(r2) Load Attacker's PA 00185ad8: 90460037 lbu r6,0x0037(r2) Load Attacker's MA 00185adc: 90450024 lbu r5,0x0024(r2) Load Attacker's Brave 00185ae0: 14600014 bne r3,r0,0x00185b34 Branch if a weapon is equipped 00185ae4: 00b00018 mult r5,r16 Brave * PA 00185ae8: 00001812 mflo r3 r3 = Brave * PA 00185aec: 3c0251eb lui r2,0x51eb 00185af0: 3442851f ori r2,r2,0x851f 00185af4: 00620018 mult r3,r2 Brave * PA * 0.32 00185af8: 3c018019 lui r1,0x8019 00185afc: a43038ce sh r16,0x38ce(r1) Store XA = PA 00185b00: 00031fc3 sra r3,r3,0x1f 00185b04: 00001010 mfhi r2 r2 = Brave * PA * 0.32 00185b08: 00021143 sra r2,r2,0x05 Brave * PA * 0.32 / 32 (or Brave * PA / 100) 00185b0c: 00431823 subu r3,r2,r3 00185b10: 00031400 sll r2,r3,0x10 Brave * PA / 100 * 65536 00185b14: 3c018019 lui r1,0x8019 00185b18: a42338d0 sh r3,0x38d0(r1) Store YA = Brave * PA / 100 00185b1c: 14400058 bne r2,r0,0x00185c80 Branch if YA > 0 00185b20: 24620001 addiu r2,r3,0x0001 r2 = YA + 1 (minimum of 1 YA) 00185b24: 3c018019 lui r1,0x8019 00185b28: a42238d0 sh r2,0x38d0(r1) Store YA = 1 00185b2c: 08061720 j 0x00185c80 Jump to end 00185b30: 00000000 nop 00185b34: 3c028019 lui r2,0x8019 00185b38: 90423902 lbu r2,0x3902(r2) Load WP 00185b3c: 3c018019 lui r1,0x8019 00185b40: a42238d0 sh r2,0x38d0(r1) YA = WP 00185b44: 34020003 ori r2,r0,0x0003 r2 = 3 00185b48: 10620007 beq r3,r2,0x00185b68 Branch if Used Weapon is a Sword 00185b4c: 3402000b ori r2,r0,0x000b r2 = b 00185b50: 10620005 beq r3,r2,0x00185b68 Branch if Used Weapon is a Crossbow 00185b54: 34020007 ori r2,r0,0x0007 r2 = 7 00185b58: 10620003 beq r3,r2,0x00185b68 Branch if Used Weapon is a Rod 00185b5c: 3402000f ori r2,r0,0x000f r2 = f 00185b60: 14620005 bne r3,r2,0x00185b78 Branch if Used Weapon is not a Polearm 00185b64: 2482ffff addiu r2,r4,0xffff Used Weapon Type - 1 00185b68: 3c018019 lui r1,0x8019 00185b6c: a43038ce sh r16,0x38ce(r1) Store XA = PA 00185b70: 08061720 j 0x00185c80 Jump to End 00185b74: 00000000 nop 00185b78: 2c420002 sltiu r2,r2,0x0002 00185b7c: 14400005 bne r2,r0,0x00185b94 Branch if Used Weapon is a Knife/Ninja Blade 00185b80: 3402000c ori r2,r0,0x000c r2 = c 00185b84: 10620003 beq r3,r2,0x00185b94 Branch if Used Weapon is a Bow 00185b88: 34020020 ori r2,r0,0x0020 r2 = 20 00185b8c: 14620007 bne r3,r2,0x00185bac Branch if Used Weapon is not a Thrown Weapon 00185b90: 2482fffc addiu r2,r4,0xfffc Used Weapon Type - 4 00185b94: 3c028019 lui r2,0x8019 00185b98: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 00185b9c: 00000000 nop 00185ba0: 90420038 lbu r2,0x0038(r2) Load Target's SP 00185ba4: 0806171d j 0x00185c74 00185ba8: 02021021 addu r2,r16,r2 PA + SP 00185bac: 2c420002 sltiu r2,r2,0x000 2 00185bb0: 10400010 beq r2,r0,0x00185bf4 Branch if Used Weapon is a Knight Sword/Katana 00185bb4: 00b00018 mult r5,r16 Brave * PA 00185bb8: 00001812 mflo r3 r3 = Brave * PA 00185bbc: 3c0251eb lui r2,0x51eb 00185bc0: 3442851f ori r2,r2,0x851f 00185bc4: 00620018 mult r3,r2 Brave * PA * 0.32 00185bc8: 00031fc3 sra r3,r3,0x1f 00185bcc: 00001010 mfhi r2 r2 = Brave * PA * 0.32 00185bd0: 00021143 sra r2,r2,0x05 Brave * PA * 0.32 / 32 (or Brave * PA / 100) 00185bd4: 00431823 subu r3,r2,r3 00185bd8: 3c018019 lui r1,0x8019 00185bdc: a42338ce sh r3,0x38ce(r1) Store XA = Brave * PA / 100 00185be0: 00031400 sll r2,r3,0x10 Brave * PA / 100 * 65536 00185be4: 14400026 bne r2,r0,0x00185c80 Branch if XA > 0 00185be8: 24620001 addiu r2,r3,0x0001 r2 = XA + 1 (min XA of 1) 00185bec: 0806171e j 0x00185c78 00185bf0: 00000000 nop 00185bf4: 34020008 ori r2,r0,0x0008 r2 = 8 00185bf8: 10620003 beq r3,r2,0x00185c08 Branch if Used Weapon is a Staff 00185bfc: 34020010 ori r2,r0,0x0010 r2 = 10 00185c00: 14620005 bne r3,r2,0x00185c18 Branch if Used Weapon is not a Pole 00185c04: 34020006 ori r2,r0,0x0006 r2 = 6 00185c08: 3c018019 lui r1,0x8019 00185c0c: a42638ce sh r6,0x38ce(r1) Store XA = MA 00185c10: 08061720 j 0x00185c80 00185c14: 00000000 nop 00185c18: 10620005 beq r3,r2,0x00185c30 Branch if Used Weapon is an Axe 00185c1c: 34020009 ori r2,r0,0x0009 r2 = 9 00185c20: 10620003 beq r3,r2,0x00185c30 Branch if Used Weapon is a Flail 00185c24: 34020011 ori r2,r0,0x0011 r2 = 11 00185c28: 1462000b bne r3,r2,0x00185c58 Branch if Used Weapon is not a Bag 00185c2c: 2482fff3 addiu r2,r4,0xfff3 r2 = Used Weapon Type - 13 (d) 00185c30: 0c063ba8 jal 0x0018eea0 Random Process 00185c34: 00000000 nop 00185c38: 02020018 mult r16,r2 PA * 0->7fff 00185c3c: 00001012 mflo r2 r2 = PA * Random 00185c40: 04410002 bgez r2,0x00185c4c Branch if PA * Random >= 0 00185c44: 00000000 nop 00185c48: 24427fff addiu r2,r2,0x7fff Make result positive 00185c4c: 000213c3 sra r2,r2,0x0f PA * 0->7fff / 8000h (0->PA - 1) 00185c50: 0806171e j 0x00185c78 00185c54: 24420001 addiu r2,r2,0x0001 r2 += 1 (1->PA) 00185c58: 2c420002 sltiu r2,r2,0x0002 00185c5c: 14400004 bne r2,r0,0x00185c70 Branch if Used Weapon is not an Instrument/Book 00185c60: 30c200ff andi r2,r6,0x00ff r2 = MA 00185c64: 34020012 ori r2,r0,0x0012 r2 = 12 00185c68: 14620005 bne r3,r2,0x00185c80 Branch if Used Weapon is not a Cloth 00185c6c: 30c200ff andi r2,r6,0x00ff r2 = MA 00185c70: 02021021 addu r2,r16,r2 PA * MA 00185c74: 00021043 sra r2,r2,0x01 PA * ?? / 2 (MA or SP, depending on Weapon) 00185c78: 3c018019 lui r1,0x8019 00185c7c: a42238ce sh r2,0x38ce(r1) Store XA = PA * ?? / 2 00185c80: 8fbf0014 lw r31,0x0014(r29) 00185c84: 8fb00010 lw r16,0x0010(r29) 00185c88: 27bd0018 addiu r29,r29,0x0018 00185c8c: 03e00008 jr r31 00185c90: 00000000 nop
Return Locations
- Battle.bin
00188cb4: 05 Dmg_(Weapon) 00188d0c: 06 AbsHP_(Weapon) 00188d44: 07 Heal_(Weapon) 00189414: 1D Hit_(X)% 00188640: Weapon Damage Calculation 00188cb4: 00188d0c: 00188d44: 00189414: