Difference between revisions of "42 Dmg (PA*Y) DmgCas (PA*Y/X)"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with " [42] 0018a17c: 27bdffe8 addiu r29,r29,0xffe8 0018a180: afbf0010 sw r31,0x0010(r29) 0018a184: 0c061781 jal 0x 00185e04 Loads PA and Y 0018a188: 00000000 nop ...")
 
m
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
 
  [42]
 
  [42]
  0018a17c: 27bdffe8 addiu r29,r29,0xffe8
+
  0018a17c: 27bdffe8 addiu r29,r29,0xffe8     |
  0018a180: afbf0010 sw r31,0x0010(r29)
+
  0018a180: afbf0010 sw r31,0x0010(r29)       |
  0018a184: 0c061781 jal 0x 00185e04      Loads PA and Y
+
  0018a184: 0c061781 jal 0x00185e04          |{{f/jal|Store PA and Y|Store PA and Y}} XA = Attacker's PA and YA = Ability Y
  0018a188: 00000000 nop
+
  0018a188: 00000000 nop                     |
  0018a18c: 0c061259 jal 0x 00184964      Zodiac Calculation
+
  0018a18c: 0c061259 jal 0x00184964          |{{f/jal|Compatibility|Compatibility}} Modify Ability XA : from -50% to + 50%
  0018a190: 00000000 nop
+
  0018a190: 00000000 nop                     |
  0018a194: 3c038019 lui r3,0x8019
+
  0018a194: 3c038019 lui r3,0x8019           |
  0018a198: 946338ce lhu r3,0x38ce(r3)     Load PA
+
  0018a198: 946338ce lhu r3,0x38ce(r3)       |{{f/load|<nowiki>r3 = Current Ability XA</nowiki>}}
  0018a19c: 3c028019 lui r2,0x8019
+
  0018a19c: 3c028019 lui r2,0x8019           |
  0018a1a0: 944238d0 lhu r2,0x38d0(r2)     Load Y
+
  0018a1a0: 944238d0 lhu r2,0x38d0(r2)       |{{f/load|<nowiki>r2 = Current Ability YA</nowiki>}}
  0018a1a4: 00000000 nop
+
  0018a1a4: 00000000 nop                     |
  0018a1a8: 0062 0018 mult r3,r2
+
  0018a1a8: 00620018 mult r3,r2               |{{f/std|XA * YA}}
  0018a1ac: 3c038019 lui r3,0x8019
+
  0018a1ac: 3c038019 lui r3,0x8019           |
  0018a1b0: 8c632d90 lw r3,0x2d90(r3)
+
  0018a1b0: 8c632d90 lw r3,0x2d90(r3)         |{{f/adr|<nowiki>r3 = Target Current Action (TCA) data pointer</nowiki>}}
  0018a1b4: 00001012 mflo r2         PA * Y
+
  0018a1b4: 00001012 mflo r2                 |{{f/std|<nowiki>r2 = XA*YA</nowiki>}}
  0018a1b8: a4620004 sh r2,0x0004(r3)     Set PA * Y as HP Damage to enemy
+
  0018a1b8: a4620004 sh r2,0x0004(r3)         |{{f/store|Store XA * YA as TCA HP Damage}}
  0018a1bc: 00021400 sll r2,r2,0x10
+
  0018a1bc: 00021400 sll r2,r2,0x10           |{{f/std|Move XA*YA in upper register}}
  0018a1c0: 3c038019 lui r3,0x8019
+
  0018a1c0: 3c038019 lui r3,0x8019           |
  0018a1c4: 906338f9 lbu r3,0x38f9(r3)     Load X
+
  0018a1c4: 906338f9 lbu r3,0x38f9(r3)       |{{f/load|<nowiki>r3 = Current Ability used Ability X</nowiki>}}
  0018a1c8: 00021403 sra r2,r2,0x10
+
  0018a1c8: 00021403 sra r2,r2,0x10           |{{f/std|Move XA*YA back in r2 lower register}}
  0018a1cc: 0043001a div r2,r3
+
  0018a1cc: 0043001a div r2,r3               |{{f/std|XA * YA / X}}
  0018a1d0: 00001012 mflo r2         Damage / X
+
  0018a1d0: 00001012 mflo r2                 |{{f/std|<nowiki>r2 = XA * YA / X</nowiki>}}
  0018a1d4: 3c048019 lui r4,0x8019
+
  0018a1d4: 3c048019 lui r4,0x8019           |
  0018a1d8: 8c842d8c lw r4,0x2d8c(r4)
+
  0018a1d8: 8c842d8c lw r4,0x2d8c(r4)         |{{f/adr|<nowiki>r4 = Attacker Current Action (ACA) data pointer</nowiki>}}
  0018a1dc: 34030001 ori r3,r0,0x0001
+
  0018a1dc: 34030001 ori r3,r0,0x0001         |{{f/std|<nowiki>r3 = 0x01</nowiki>}}
  0018a1e0: a0830000 sb r3,0x0000(r4)     Hit Self
+
  0018a1e0: a0830000 sb r3,0x0000(r4)         |{{f/store|Set ACA hit flag to HIT}}
  0018a1e4: a4820004 sh r2,0x0004(r4)     Damage Self for PA * Y / X
+
  0018a1e4: a4820004 sh r2,0x0004(r4)         |{{f/store|Set ACA HP damage to XA*YA/X}} {{f/std| (compat PA * Y/X) }}
  0018a1e8: 3c028019 lui r2,0x8019
+
  0018a1e8: 3c028019 lui r2,0x8019           |
  0018a1ec: 8c422d90 lw r2,0x2d90(r2)
+
  0018a1ec: 8c422d90 lw r2,0x2d90(r2)         |{{f/adr|<nowiki>r2 = TCA data pointer</nowiki>}}
  0018a1f0: 34030080 ori r3,r0,0x0080
+
  0018a1f0: 34030080 ori r3,r0,0x0080         |{{f/std|<nowiki>r3 = 0x80</nowiki>}}
  0018a1f4: a0430025 sb r3,0x0025(r2)     Load as HP damage to enemy
+
  0018a1f4: a0430025 sb r3,0x0025(r2)         |{{f/store|Set TCA Attack type to HP damage}}
  0018a1f8: 3c028019 lui r2,0x8019
+
  0018a1f8: 3c028019 lui r2,0x8019           |
  0018a1fc: 8c422d8c lw r2,0x2d8c(r2)
+
  0018a1fc: 8c422d8c lw r2,0x2d8c(r2)         |{{f/adr|<nowiki>r2 = ACA data pointer</nowiki>}}
  0018a200: 00000000 nop
+
  0018a200: 00000000 nop                     |
  0018a204: a0430025 sb r3,0x0025(r2)     Load as HP damage to self
+
  0018a204: a0430025 sb r3,0x0025(r2)         |{{f/store|Set ACA attack type to HP damage}}
  0018a208: 8fbf0010 lw r31,0x0010(r29)
+
  0018a208: 8fbf0010 lw r31,0x0010(r29)
  0018a20c: 27bd 0018 addiu r29,r29,0x 0018
+
  0018a20c: 27bd0018 addiu r29,r29,0x0018
  0018a210: 03e00008 jr r31
+
  0018a210: 03e00008 jr r31  
 
  0018a214: 00000000 nop
 
  0018a214: 00000000 nop
 +
=== Return location ===
 +
'''Battle.bin'''
 +
0018b97c - [[Pre Formula Setup (FDC)|Pre Formula Setup]]

Latest revision as of 20:06, 24 April 2022

[42]
0018a17c: 27bdffe8 addiu r29,r29,0xffe8     |
0018a180: afbf0010 sw r31,0x0010(r29)       |
0018a184: 0c061781 jal 0x00185e04           |-->Store PA and Y XA = Attacker's PA and YA = Ability Y
0018a188: 00000000 nop                      |
0018a18c: 0c061259 jal 0x00184964           |-->Compatibility Modify Ability XA : from -50% to + 50%
0018a190: 00000000 nop                      |
0018a194: 3c038019 lui r3,0x8019            |
0018a198: 946338ce lhu r3,0x38ce(r3)        |r3 = Current Ability XA
0018a19c: 3c028019 lui r2,0x8019            |
0018a1a0: 944238d0 lhu r2,0x38d0(r2)        |r2 = Current Ability YA
0018a1a4: 00000000 nop                      |
0018a1a8: 00620018 mult r3,r2               |XA * YA
0018a1ac: 3c038019 lui r3,0x8019            |
0018a1b0: 8c632d90 lw r3,0x2d90(r3)         |r3 = Target Current Action (TCA) data pointer
0018a1b4: 00001012 mflo r2                  |r2 = XA*YA
0018a1b8: a4620004 sh r2,0x0004(r3)         |Store XA * YA as TCA HP Damage
0018a1bc: 00021400 sll r2,r2,0x10           |Move XA*YA in upper register
0018a1c0: 3c038019 lui r3,0x8019            |
0018a1c4: 906338f9 lbu r3,0x38f9(r3)        |r3 = Current Ability used Ability X
0018a1c8: 00021403 sra r2,r2,0x10           |Move XA*YA back in r2 lower register
0018a1cc: 0043001a div r2,r3                |XA * YA / X
0018a1d0: 00001012 mflo r2                  |r2 = XA * YA / X
0018a1d4: 3c048019 lui r4,0x8019            |
0018a1d8: 8c842d8c lw r4,0x2d8c(r4)         |r4 = Attacker Current Action (ACA) data pointer
0018a1dc: 34030001 ori r3,r0,0x0001         |r3 = 0x01
0018a1e0: a0830000 sb r3,0x0000(r4)         |Set ACA hit flag to HIT
0018a1e4: a4820004 sh r2,0x0004(r4)         |Set ACA HP damage to XA*YA/X  (compat PA * Y/X) 
0018a1e8: 3c028019 lui r2,0x8019            |
0018a1ec: 8c422d90 lw r2,0x2d90(r2)         |r2 = TCA data pointer
0018a1f0: 34030080 ori r3,r0,0x0080         |r3 = 0x80
0018a1f4: a0430025 sb r3,0x0025(r2)         |Set TCA Attack type to HP damage
0018a1f8: 3c028019 lui r2,0x8019            |
0018a1fc: 8c422d8c lw r2,0x2d8c(r2)         |r2 = ACA data pointer
0018a200: 00000000 nop                      |
0018a204: a0430025 sb r3,0x0025(r2)         |Set ACA attack type to HP damage
0018a208: 8fbf0010 lw r31,0x0010(r29)
0018a20c: 27bd0018 addiu r29,r29,0x0018
0018a210: 03e00008 jr r31 
0018a214: 00000000 nop

Return location

Battle.bin
0018b97c - Pre Formula Setup