Difference between revisions of "Tranfer AI Ability Data and Set Defend flag (00199498)"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
 
Line 1: Line 1:
  Tranfer Skillset CT Ability ID and Set Defend flag
+
'''BATTLE.BIN''' :  - Tranfer Skillset CT Ability ID and Set Defend flag
 
+
Set some Data to AI 0x17fc (Selected Action Data). Set destination from AI 0xcc4 (+0xe2d offset) and Skillset (0x2 if defend can be used, else 0x00)
  00199498: 3c02801a lui r2,0x801a
+
------------------------------------------------------------------------------------------
  0019949c: 904201f1 lbu r2,0x01f1(r2) Load isAbility Decided (Can be 0-2)
+
Parameter : Nothing
  001994a0: 3c03801a lui r3,0x801a
+
Return : Nothing
  001994a4: 8c630bbc lw r3,0x0bbc(r3) Load Acting Unit's Data Pointer
+
------------------------------------------------------------------------------------------
  001994a8: 3c01801a lui r1,0x801a
+
  00199498: 3c02801a lui r2,0x801a             |
  001994ac: a0200bc0 sb r0,0x0bc0(r1) Clear ?
+
  0019949c: 904201f1 lbu r2,0x01f1(r2)         |{{f/load|AI 0xe2d - Movement specification}} {{f/std|(0x00 for any destination, 0x1 if closer from target, 0x2 if away from target)}}
  001994b0: 00021080 sll r2,r2,0x02
+
  001994a0: 3c03801a lui r3,0x801a             |
  001994b4: 3c01801a lui r1,0x801a
+
  001994a4: 8c630bbc lw r3,0x0bbc(r3)         |{{f/adr|Load Acting Unit's Battle Data Pointer}}
  001994b8: 00220821 addu r1,r1,r2
+
  001994a8: 3c01801a lui r1,0x801a             |
  001994bc: 8c220088 lw r2,0x0088(r1) Load Skillset,CT and Ability ID (from 0x0cc4)
+
  001994ac: a0200bc0 sb r0,0x0bc0(r1)         |{{f/store|Clear AI 0x17fc (default value ?)}} {{f/std|AI 0x17fc is where the best action setting is stored}}
  001994c0: 94630016 lhu r3,0x0016(r3) Load Support
+
  001994b0: 00021080 sll r2,r2,0x02           |{{f/std|Word offset based on AI 0xe2d}}
  001994c4: 3c01801a lui r1,0x801a
+
  001994b4: 3c01801a lui r1,0x801a             |
  001994c8: ac220bc4 sw r2,0x0bc4(r1) Save Skillset,CT and Ability ID
+
  001994b8: 00220821 addu r1,r1,r2             |
  001994cc: 340201df ori r2,r0,0x01df
+
  001994bc: 8c220088 lw r2,0x0088(r1)         |{{f/adr|Coordinates at AI 0xcc4 + 0xe2d offset}}
  001994d0: 14620005 bne r3,r2,0x001994e8 Clear ? and exit if Defend (Support)
+
  001994c0: 94630016 lhu r3,0x0016(r3)         |{{f/load|Acting Unit Equipped Support Ability ID}}
  001994d4: 34020002 ori r2,r0,0x0002
+
  001994c4: 3c01801a lui r1,0x801a             |
  001994d8: 3c01801a lui r1,0x801a
+
  001994c8: ac220bc4 sw r2,0x0bc4(r1)         |{{f/store|Save coordinates from AI 0xcc4 (+0x2ed offset) at AI 0x17fc + 0x04}} {{f/std|Destination ?}}
  001994dc: a0220bc9 sb r2,0x0bc9(r1) Save 2 to ? (Use wait command to wait)?
+
  001994cc: 340201df ori r2,r0,0x01df         |
  001994e0: 0806653c j 0x001994f0
+
  001994d0: 14620005 bne r3,r2,0x001994e8     {{f/Cond|If Acting Unit can use [Defend]}}
  001994e4: 00000000 nop
+
  001994d4: 34020002 ori r2,r0,0x0002             |
  001994e8: 3c01801a lui r1,0x801a
+
  001994d8: 3c01801a lui r1,0x801a                 |
  001994ec: a0200bc9 sb r0,0x0bc9(r1) Clear ? (Use Defend command to wait)?
+
  001994dc: a0220bc9 sb r2,0x0bc9(r1)             |{{f/store|Set Used Skillset as Defend}}
 +
  001994e0: 0806653c j 0x001994f0                 |{{f/loc|Exit}}
 +
  001994e4: 00000000 nop                           |
 +
                                              '''Else : Acting unit cannot use defend'''
 +
  001994e8: 3c01801a lui r1,0x801a                 |
 +
  001994ec: a0200bc9 sb r0,0x0bc9(r1)             |{{f/store|Set Skillset to 0x00 }} {{f/std|Move only ?}}
 
  001994f0: 03e00008 jr r31
 
  001994f0: 03e00008 jr r31
 
  001994f4: 00000000 nop
 
  001994f4: 00000000 nop
 +
===Return locations===
 +
'''BATTLE.BIN'''
 +
  00196288: [[Non-Specific_AI_AutoBattle_(Enemies)]]      AI 0x2ed = 0x0
 +
  001982bc: [[Fight_for_Life_-_Auto_Battle_(00197ff4)]]  AI 0x2ed = 0x2
 +
  00198800: [[Protect_Allies_-_Auto_Battle_(001984ec)]]  AI 0x2ed = 0x2
 +
  00199034: [[AI_Critical_or_Run_Like_Rabbit]]

Latest revision as of 19:51, 23 June 2024

BATTLE.BIN :  -  Tranfer Skillset CT Ability ID and Set Defend flag
Set some Data to AI 0x17fc (Selected Action Data). Set destination from AI 0xcc4 (+0xe2d offset) and Skillset (0x2 if defend can be used, else 0x00)
------------------------------------------------------------------------------------------
Parameter : Nothing
Return : Nothing
------------------------------------------------------------------------------------------
00199498: 3c02801a lui r2,0x801a             |
0019949c: 904201f1 lbu r2,0x01f1(r2)         |AI 0xe2d - Movement specification (0x00 for any destination, 0x1 if closer from target, 0x2 if away from target)
001994a0: 3c03801a lui r3,0x801a             |
001994a4: 8c630bbc lw r3,0x0bbc(r3)          |Load Acting Unit's Battle Data Pointer
001994a8: 3c01801a lui r1,0x801a             |
001994ac: a0200bc0 sb r0,0x0bc0(r1)          |Clear AI 0x17fc (default value ?) AI 0x17fc is where the best action setting is stored
001994b0: 00021080 sll r2,r2,0x02            |Word offset based on AI 0xe2d
001994b4: 3c01801a lui r1,0x801a             |
001994b8: 00220821 addu r1,r1,r2             |
001994bc: 8c220088 lw r2,0x0088(r1)          |Coordinates at AI 0xcc4 + 0xe2d offset
001994c0: 94630016 lhu r3,0x0016(r3)         |Acting Unit Equipped Support Ability ID
001994c4: 3c01801a lui r1,0x801a             |
001994c8: ac220bc4 sw r2,0x0bc4(r1)          |Save coordinates from AI 0xcc4 (+0x2ed offset) at AI 0x17fc + 0x04 Destination ?
001994cc: 340201df ori r2,r0,0x01df          |
001994d0: 14620005 bne r3,r2,0x001994e8      #If Acting Unit can use [Defend]
001994d4: 34020002 ori r2,r0,0x0002              |
001994d8: 3c01801a lui r1,0x801a                 |
001994dc: a0220bc9 sb r2,0x0bc9(r1)              |Set Used Skillset as Defend
001994e0: 0806653c j 0x001994f0                  |Exit
001994e4: 00000000 nop                           |
                                             Else : Acting unit cannot use defend
001994e8: 3c01801a lui r1,0x801a                 |
001994ec: a0200bc9 sb r0,0x0bc9(r1)              |Set Skillset to 0x00  Move only ?
001994f0: 03e00008 jr r31
001994f4: 00000000 nop

Return locations

BATTLE.BIN
 00196288: Non-Specific_AI_AutoBattle_(Enemies)      AI 0x2ed = 0x0
 001982bc: Fight_for_Life_-_Auto_Battle_(00197ff4)   AI 0x2ed = 0x2
 00198800: Protect_Allies_-_Auto_Battle_(001984ec)   AI 0x2ed = 0x2
 00199034: AI_Critical_or_Run_Like_Rabbit