Difference between revisions of "Get Casting units Misc Data"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m
Line 1: Line 1:
<font face='Courier New'>
+
Returns r2 = Unit misc data pointer (Unit misc ID* matching ID at 0x80096118)
Get Casting units Misc Data 7a218: [[0007a218 - 0007a258]]
+
        r2 = 0x00 if not found or invalid
 +
*Unit misc ID = Unit misc data 0x04
 
   
 
   
+
  0007a218: 3c03800a lui r3,0x800a          
  0007a218: 3c03800a lui r3,0x800a
+
  0007a21c: 8c638a54 lw r3,-0x75ac(r3)             |{{f/adr|<nowiki>r3 = Last Unit misc data pointer</nowiki>}} {{f/std|<nowiki> 0x80098a54 / 80098a54</nowiki>}}
  0007a21c: 8c638a54 lw r3,-0x75ac(r3) Load Misc Unit Display Data
+
  0007a220: 00000000 nop                           |
  0007a220: 00000000 nop
+
  0007a224: 1060000b beq r3,r0,0x0007a254         {{f/Cond|<nowiki>If r3 <> 0x00</nowiki>}} /Else branch to end
  0007a224: 1060000b beq r3,r0,0x0007a254 Branch if Misc Unit Display Data  == 0x0
+
  0007a228: 00001021 addu r2,r0,r0                 |{{f/std|<nowiki>r2 = 0x00</nowiki>}}
  0007a228: 00001021 addu r2,r0,r0
+
  0007a22c: 3c048009 lui r4,0x8009                     |{{f/std|<nowiki>r4 = 0x80090000</nowiki>}}
  0007a22c: 3c048009 lui r4,0x8009
+
  0007a230: 8c846118 lw r4,0x6118(r4)                 |{{f/adr|<nowiki>r4 = Active Unit ID ?</nowiki>}} {{f/std|<nowiki> 0x80096618 Load Casting units ID? (mimic?), ability CT resolution ( 80096618 )</nowiki>}}
  0007a230: 8c846118 lw r4,0x6118(r4) Load Casting units ID? (mimic?), ability CT resolution
+
  0007a234: 90620004 lbu r2,0x0004(r3)                 {{f/bloop|<nowiki>LOOP</nowiki>}} {{f/load|<nowiki>r2 = Unit Misc ID</nowiki>}}
  0007a234: 90620004 lbu r2,0x0004(r3) Load Unit Misc ID?
+
  0007a238: 00000000 nop                                   |
  0007a238: 00000000 nop
+
  0007a23c: 10440005 beq r2,r4,0x0007a254                 {{f/Cond|<nowiki>If Misc unit ID <> Acting unit ID</nowiki>}} /Else branch returning r2 = Acting unit misc data pointer
  0007a23c: 10440005 beq r2,r4,0x0007a254 Branch if Unit Misc ID? == Casting units ID? (mimic?), ability CT resolution
+
  0007a240: 00601021 addu r2,r3,r0                         |{{f/std|<nowiki>r2 = This iteration Unit misc data pointer</nowiki>}}
  0007a240: 00601021 addu r2,r3,r0
+
  0007a244: 8c630000 lw r3,0x0000(r3)                         |{{f/adr|<nowiki>r3 = pointer to previous unit misc data</nowiki>}}
  0007a244: 8c630000 lw r3,0x0000(r3) Load Pointer to previous unit's misc data (00000000 means this is the first)
+
  0007a248: 00000000 nop                                       |
  0007a248: 00000000 nop
+
  0007a24c: 1460fff9 bne r3,r0,0x0007a234             {{f/eloop|<nowiki>Loop while pointer <> 0x00 (= 1st unit)</nowiki>}} /Else returns r2 = 0x00
  0007a24c: 1460fff9 bne r3,r0,0x0007a234 Branch if Pointer to previous unit's misc data (00000000 means this is the first),  != 0x0
+
  0007a250: 00001021 addu r2,r0,r0                     |{{f/std|<nowiki>r2 =0x00</nowiki>}}
  0007a250: 00001021 addu r2,r0,r0
+
  0007a254: 03e00008 jr r31                       END
  0007a254: 03e00008 jr r31 Jump to Address
+
  0007a258: 00000000 nop                          
  0007a258: 00000000 nop
+
 
   
+
=== Return locations ===
   
+
0006e5f0:
  </font>
+
0006e664:
 +
0006fb60:
 +
000703d4:
 +
00070c28:
 +
00070cbc:
 +
00070fc4:
 +
00071044:
 +
000711c8:
 +
000712fc:
 +
000713b8:
 +
000717f0:
 +
00071848:
 +
00071894:
 +
00071950:
 +
000719a8:
 +
00071b74:
 +
00071cbc:
 +
00071f00:
 +
0007247c:
 +
00072560:
 +
00072af8:
 +
00072b74:
 +
000734fc:
 +
00073648:
 +
000739ec: [[Action_phase_control]]
 +
00074008:
 +
00074098:
 +
000740f8:
 +
00074228:
 +
00074318:
 +
00074494:
 +
000744d8:
 +
000745d0:
 +
00074ce8:
 +
00075344:
 +
00075928:
 +
00075ae0:
 +
00076208:
 +
000762d4:
 +
00076444:
 +
00076698:
 +
000769c4:
 +
00076c60:
 +
00076dc0:
 +
  00076f44:
 +
  000770c8:
 +
  00077950:
 +
00077b28:
 +
000780d8:
 +
0007817c:
 +
000783e0:
 +
000784cc:
 +
0007e7c0:
 +
000893b8:
 +
00093774:

Revision as of 14:13, 22 February 2022

Returns r2 = Unit misc data pointer (Unit misc ID* matching ID at 0x80096118)
        r2 = 0x00 if not found or invalid
*Unit misc ID = Unit misc data 0x04

0007a218: 3c03800a lui r3,0x800a            
0007a21c: 8c638a54 lw r3,-0x75ac(r3)             |r3 = Last Unit misc data pointer  0x80098a54 / 80098a54
0007a220: 00000000 nop                           |
0007a224: 1060000b beq r3,r0,0x0007a254          #If r3 <> 0x00 /Else branch to end
0007a228: 00001021 addu r2,r0,r0                 |r2 = 0x00
0007a22c: 3c048009 lui r4,0x8009                     |r4 = 0x80090000
0007a230: 8c846118 lw r4,0x6118(r4)                  |r4 = Active Unit ID ?  0x80096618 Load Casting units ID? (mimic?), ability CT resolution  ( 80096618 )
0007a234: 90620004 lbu r2,0x0004(r3)                 @LOOP r2 = Unit Misc ID
0007a238: 00000000 nop                                   |
0007a23c: 10440005 beq r2,r4,0x0007a254                  #If Misc unit ID <> Acting unit ID /Else branch returning r2 = Acting unit misc data pointer
0007a240: 00601021 addu r2,r3,r0                         |r2 = This iteration Unit misc data pointer
0007a244: 8c630000 lw r3,0x0000(r3)                          |r3 = pointer to previous unit misc data
0007a248: 00000000 nop                                       |
0007a24c: 1460fff9 bne r3,r0,0x0007a234              Λ Loop while pointer <> 0x00 (= 1st unit) /Else returns r2 = 0x00
0007a250: 00001021 addu r2,r0,r0                     |r2 =0x00
0007a254: 03e00008 jr r31                        END
0007a258: 00000000 nop                           

Return locations

0006e5f0:
0006e664:
0006fb60:
000703d4:
00070c28:
00070cbc:
00070fc4:
00071044:
000711c8:
000712fc:
000713b8:
000717f0:
00071848:
00071894:
00071950:
000719a8:
00071b74:
00071cbc:
00071f00:
0007247c:
00072560:
00072af8:
00072b74:
000734fc:
00073648:
000739ec: Action_phase_control
00074008:
00074098:
000740f8:
00074228:
00074318:
00074494:
000744d8:
000745d0:
00074ce8:
00075344:
00075928:
00075ae0:
00076208:
000762d4:
00076444:
00076698:
000769c4:
00076c60:
00076dc0:
00076f44:
000770c8:
00077950:
00077b28:
000780d8:
0007817c:
000783e0:
000784cc:
0007e7c0:
000893b8:
00093774: