Difference between revisions of "Random Process, gives a number between 0-7fff"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(oops)
m
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Gets a random 16-bit integer (between 0 and 0x7FFF, inclusive), or 0x4000 if this is just damage prediction. The result is stored in r2 as a 32-bit signed number. See ''[[RNG]]''.
+
No Parameters
 
+
 +
Returns r2 = Number between 0x00 and 0x7fff
 +
 +
Gets a random 16-bit integer (between 0 and 0x7FFF, inclusive), or 0x4000 if this is just damage prediction. The result is stored in r2 as a 32-bit signed number. See ''[[RNG]]''.
 +
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
  0018eea0: 3c028019 lui r2,0x8019
 
  0018eea0: 3c028019 lui r2,0x8019
  0018eea4: 8c42f5fc lw r2,-0x0a04(r2) Load ? (maybe dealing with displayed damage?)
+
  0018eea4: 8c42f5fc lw r2,-0x0a04(r2)           |{{f/load|<nowiki>r2 = Action State</nowiki>}}
  0018eea8: 27bdffe8 addiu r29,r29,0xffe8
+
  0018eea8: 27bdffe8 addiu r29,r29,-0x018        |
  0018eeac: 14400005 bne r2,r0,0x0018eec4 Branch if only displaying damage (not actually attacking)
+
  0018eeac: 14400005 bne r2,r0,0x0018eec4       {{f/Cond|If Action is been executed}}
  0018eeb0: afbf0010 sw r31,0x0010(r29)
+
  0018eeb0: afbf0010 sw r31,0x0010(r29)             |
  0018eeb4: 0c0088c3 jal 0x0002230c [[Random Number Generator]] (sets r2 = rand 0..7FFF)
+
  0018eeb4: 0c0088c3 jal 0x0002230c                 |{{f/jal|Random Number Generator|Random Number Generator}} Return r2 = random number between 0x00 and 0x7fff
  0018eeb8: 00000000 nop
+
  0018eeb8: 00000000 nop                             |
  0018eebc: 08063bb2 j 0x0018eec8
+
  0018eebc: 08063bb2 j 0x0018eec8                   {{f/jump|Jump to END}}
 
  0018eec0: 00000000 nop
 
  0018eec0: 00000000 nop
  0018eec4: 34024000 ori r2,r0,0x4000 Random = 4000 (for displayed damage, to show "average")
+
                                                {{f/Cond|Else - Preview / AI processing}}
  0018eec8: 8fbf0010 lw r31,0x0010(r29)
+
  0018eec4: 34024000 ori r2,r0,0x4000     |Random = 0x4000 (Result is forced to Average value)
 +
  0018eec8: 8fbf0010 lw r31,0x0010(r29)        
 
  0018eecc: 27bd0018 addiu r29,r29,0x0018
 
  0018eecc: 27bd0018 addiu r29,r29,0x0018
  0018eed0: 03e00008 jr r31
+
  0018eed0: 03e00008 jr r31                
 
  0018eed4: 00000000 nop
 
  0018eed4: 00000000 nop
 +
 +
=== Return locations ===
 +
'''Battle.bin'''
 +
00185c38: [[Base_XA_Calculation]]
 +
00186524: [[Critical_Hit_Calculation]]
 +
0018692c: [[Damage_and_Knockback_Routine_(Dash,_tackle,_throw_stone)]]
 +
0018698c: [[Damage_and_Knockback_Routine_(Dash,_tackle,_throw_stone)]]
 +
0018774c: [[Magic_Gun_Ability_Decision]]
 +
0018804c: [[Apply status (to action)]]
 +
00189dbc: [[32_Dmg_(Rdm(1…X)*(PA*3%2BY))]]
 +
0018a340: [[4B Heal (Rdm(1..9)) 100% Status]]
 +
0018eef4: [[Random_Process]]

Latest revision as of 21:04, 25 March 2022

No Parameters

Returns r2 = Number between 0x00 and 0x7fff 

Gets a random 16-bit integer (between 0 and 0x7FFF, inclusive), or 0x4000 if this is just damage prediction. The result is stored in r2 as a 32-bit signed number. See RNG.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0018eea0: 3c028019 lui r2,0x8019
0018eea4: 8c42f5fc lw r2,-0x0a04(r2)           |r2 = Action State
0018eea8: 27bdffe8 addiu r29,r29,-0x018        |
0018eeac: 14400005 bne r2,r0,0x0018eec4        #If Action is been executed
0018eeb0: afbf0010 sw r31,0x0010(r29)              |
0018eeb4: 0c0088c3 jal 0x0002230c                  |-->Random Number Generator Return r2 = random number between 0x00 and 0x7fff
0018eeb8: 00000000 nop                             |
0018eebc: 08063bb2 j 0x0018eec8                    >>Jump to END
0018eec0: 00000000 nop
                                               #Else - Preview / AI processing
0018eec4: 34024000 ori r2,r0,0x4000		    |Random = 0x4000 (Result is forced to Average value)
0018eec8: 8fbf0010 lw r31,0x0010(r29)          
0018eecc: 27bd0018 addiu r29,r29,0x0018
0018eed0: 03e00008 jr r31                 
0018eed4: 00000000 nop

Return locations

Battle.bin
00185c38: Base_XA_Calculation
00186524: Critical_Hit_Calculation
0018692c: Damage_and_Knockback_Routine_(Dash,_tackle,_throw_stone)
0018698c: Damage_and_Knockback_Routine_(Dash,_tackle,_throw_stone)
0018774c: Magic_Gun_Ability_Decision
0018804c: Apply status (to action)
00189dbc: 32_Dmg_(Rdm(1…X)*(PA*3+Y))
0018a340: 4B Heal (Rdm(1..9)) 100% Status
0018eef4: Random_Process