Difference between revisions of "001af3a4 - 001af3d8"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with " Little math routine dedicated to arcing weapon trajectory '''Parameters''' : r4 = (Attacker to target distance)*4096 = [AT distance]*4096 '''Returns''' : r2 = ([AT dist...")
 
m (return link)
 
(2 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
  '''Parameters''' : r4 = (Attacker to target distance)*4096 = [AT distance]*4096
 
  '''Parameters''' : r4 = (Attacker to target distance)*4096 = [AT distance]*4096
 
   
 
   
  '''Returns''' : r2 = ([AT distance]² *4096/336) - 0x54000
+
  '''Returns''' : r2 = 0x54000 - ([AT distance]² *4096/336)
 
  -------------------------------------------------------------------------------------------
 
  -------------------------------------------------------------------------------------------
 
  001af3a4: 00042183 sra r4,r4,0x06          |{{f/std|<nowiki>r4 = [AT distance]*64</nowiki>}}
 
  001af3a4: 00042183 sra r4,r4,0x06          |{{f/std|<nowiki>r4 = [AT distance]*64</nowiki>}}
 
  001af3a8: 00840018 mult r4,r4              |{{f/std|<nowiki> ([AT distance]*64)^2</nowiki>}}
 
  001af3a8: 00840018 mult r4,r4              |{{f/std|<nowiki> ([AT distance]*64)^2</nowiki>}}
 
  001af3ac: 3c03801c lui r3,0x801c            |{{f/std|<nowiki>r3 = 0x801c0000</nowiki>}}
 
  001af3ac: 3c03801c lui r3,0x801c            |{{f/std|<nowiki>r3 = 0x801c0000</nowiki>}}
  001af3b0: 8c638878 lw r3,-0x7788(r3)        |{{f/load|<nowiki>r3 = gravity mod ? 0xa8000 (12*28*2048)</nowiki>}} {{f/std|<nowiki>Higher value send arrow in the sky</nowiki>}}
+
  001af3b0: 8c638878 lw r3,-0x7788(r3)        |{{f/load|<nowiki>r3 = gravity mod ? 0xa8000 (12*28*2048)</nowiki>}} {{f/std|<nowiki>Higher value send arrow in the sky, but less far</nowiki>}}
 
  001af3b4: 00001012 mflo r2                  |{{f/std|<nowiki>r2 = [AT distance]² * 4096</nowiki>}}
 
  001af3b4: 00001012 mflo r2                  |{{f/std|<nowiki>r2 = [AT distance]² * 4096</nowiki>}}
 
  001af3b8: 000322c3 sra r4,r3,0x0b          |{{f/std|<nowiki>r4 = 0xa8000 / 2048 = 12*28</nowiki>}}
 
  001af3b8: 000322c3 sra r4,r3,0x0b          |{{f/std|<nowiki>r4 = 0xa8000 / 2048 = 12*28</nowiki>}}
Line 18: Line 18:
 
  001af3d0: 00031843 sra r3,r3,0x01          |{{f/std|<nowiki>r2 = gravity mod / 2 (0x54000)</nowiki>}}
 
  001af3d0: 00031843 sra r3,r3,0x01          |{{f/std|<nowiki>r2 = gravity mod / 2 (0x54000)</nowiki>}}
 
  001af3d4: 03e00008 jr r31                  |
 
  001af3d4: 03e00008 jr r31                  |
  001af3d8: 00621023 subu r2,r3,r2            |r2 = ([AT distance]² *4096/336) - 0x54000
+
  001af3d8: 00621023 subu r2,r3,r2            |r2 = 0x54000 - ([AT distance]² *4096/336) = ([AT distance]² *12 ?) a height ?
 
=== Wiki Search flag ===
 
=== Wiki Search flag ===
 
  uses 0x801b8878 flagged as gravity mod  ( 801b8878 )
 
  uses 0x801b8878 flagged as gravity mod  ( 801b8878 )
 
=== Return location ===
 
=== Return location ===
 
  '''Battle.bin'''
 
  '''Battle.bin'''
  001af434:
+
  001af434: [[Maths_For_Arcing_Trajectory]]
 +
 
  '''SCUS'''
 
  '''SCUS'''
 
  None
 
  None

Latest revision as of 22:19, 28 January 2022

Little math routine dedicated to arcing weapon trajectory

Parameters : r4 = (Attacker to target distance)*4096 = [AT distance]*4096

Returns : r2 = 0x54000 - ([AT distance]² *4096/336)
-------------------------------------------------------------------------------------------
001af3a4: 00042183 sra r4,r4,0x06           |r4 = [AT distance]*64
001af3a8: 00840018 mult r4,r4               | ([AT distance]*64)^2
001af3ac: 3c03801c lui r3,0x801c            |r3 = 0x801c0000
001af3b0: 8c638878 lw r3,-0x7788(r3)        |r3 = gravity mod ? 0xa8000 (12*28*2048) Higher value send arrow in the sky, but less far
001af3b4: 00001012 mflo r2                  |r2 = [AT distance]² * 4096
001af3b8: 000322c3 sra r4,r3,0x0b           |r4 = 0xa8000 / 2048 = 12*28
001af3bc: 00000000 nop                      |
001af3c0: 0044001a div r2,r4                |[AT distance]²* 4096 / 336
001af3c4: 00001012 mflo r2                  |r2 = [AT distance]²  * 4096 / 336
001af3c8: 000327c2 srl r4,r3,0x1f           |r4 = r3/ 2^31 = 0x00
001af3cc: 00641821 addu r3,r3,r4            |r3 = gravity mod + 0x00
001af3d0: 00031843 sra r3,r3,0x01           |r2 = gravity mod / 2 (0x54000)
001af3d4: 03e00008 jr r31                   |
001af3d8: 00621023 subu r2,r3,r2            |r2 = 0x54000 - ([AT distance]² *4096/336) = ([AT distance]² *12 ?) a height ?

Wiki Search flag

uses 0x801b8878 flagged as gravity mod  ( 801b8878 )

Return location

Battle.bin
001af434: Maths_For_Arcing_Trajectory

SCUS
None