Difference between revisions of "Set target state for all units panels"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
<font face='Courier New'>
 
<font face='Courier New'>
Set target state for all units panels 17a6dc: [[0017a6dc - 0017a7b8]]
+
Expand Range from Ally/Enemy (Nonfunctioning) 17a6dc: [[0017a6dc - 0017a7b8]]
 
   
 
   
 
  001810a0: [[Map Location Calculation]]
 
  001810a0: [[Map Location Calculation]]
   
+
 
  0017a6dc: 27bdffc8 addiu r29,r29,0xffc8
+
  r4 = Caster Data
  0017a6e0: afb10014 sw r17,0x0014(r29) Store 0x0 onto Stack
+
r5 = Ability Flags 1
  0017a6e4: 00808821 addu r17,r4,r0
+
 
  0017a6e8: afb7002c sw r23,0x002c(r29) Store 0x0 onto Stack
+
  0017a6dc: 27bdffc8 addiu r29,r29,-0x0038
  0017a6ec: 30b70080 andi r23,r5,0x0080 0x0 & 0x80
+
  0017a6e0: afb10014 sw r17,0x0014(r29)
  0017a6f0: afb60028 sw r22,0x0028(r29) Store 0x0 onto Stack
+
  0017a6e4: 00808821 addu r17,r4,r0 r17 = Caster Data
  0017a6f4: 30b60040 andi r22,r5,0x0040 0x0 & 0x40
+
  0017a6e8: afb7002c sw r23,0x002c(r29)
  0017a6f8: afb3001c sw r19,0x001c(r29) Store 0x0 onto Stack
+
  0017a6ec: 30b70080 andi r23,r5,0x0080 r23 = Unknown Flag 1
  0017a6fc: 00009821 addu r19,r0,r0
+
  0017a6f0: afb60028 sw r22,0x0028(r29)
  0017a700: afb40020 sw r20,0x0020(r29) Store 0x0 onto Stack
+
  0017a6f4: 30b60040 andi r22,r5,0x0040 r22 = Unknown Flag 2
  0017a704: 34140001 ori r20,r0,0x0001 r20 = (0x1) 1
+
  0017a6f8: afb3001c sw r19,0x001c(r29)
  0017a708: afbf0030 sw r31,0x0030(r29) Store 0x0 onto Stack
+
  0017a6fc: 00009821 addu r19,r0,r0 r19 = Counter
  0017a70c: afb50024 sw r21,0x0024(r29) Store 0x0 onto Stack
+
  0017a700: afb40020 sw r20,0x0020(r29)
  0017a710: afb20018 sw r18,0x0018(r29) Store 0x0 onto Stack
+
  0017a704: 34140001 ori r20,r0,0x0001 r20 = True
  0017a714: afb00010 sw r16,0x0010(r29) Store 0x0 onto Stack
+
  0017a708: afbf0030 sw r31,0x0030(r29)
  0017a718: 92350005 lbu r21,0x0005(r17) Load ENTD Flags
+
  0017a70c: afb50024 sw r21,0x0024(r29)
  0017a71c: 92230001 lbu r3,0x0001(r17) Load ???
+
  0017a710: afb20018 sw r18,0x0018(r29)
  0017a720: 340200ff ori r2,r0,0x00ff r2 = (0xFF) 255
+
  0017a714: afb00010 sw r16,0x0010(r29)
  0017a724: 10620015 beq r3,r2,0x0017a77c Branch if == FF (255)
+
  0017a718: 92350005 lbu r21,0x0005(r17) r21 = ENTD flags
  0017a728: 02202021 addu r4,r17,r0
+
  0017a71c: 92230001 lbu r3,0x0001(r17) r3 = Unit ID
  0017a72c: 922201ba lbu r2,0x01ba(r17) Load ???
+
  0017a720: 340200ff ori r2,r0,0x00ff r2 = 0x00ff
 +
  0017a724: 10620015 beq r3,r2,0x0017a77c Branch if Unit ID(Caster) doesn't exist (FF)?
 +
  0017a728: 02202021 addu r4,r17,r0 r4 = Caster Data
 +
  0017a72c: 922201ba lbu r2,0x01ba(r17) r2 = Modified ENTD Flags
 
  0017a730: 00000000 nop
 
  0017a730: 00000000 nop
  0017a734: 02a28026 xor r16,r21,r2 r16 =  
+
  0017a734: 02a28026 xor r16,r21,r2 r16 = ENTD Flags
  0017a738: 0c060428 jal 0x001810a0 [[Map Location Calculation]]
+
  0017a738: 0c060428 jal 0x001810a0 Get Unit Tile ID
  0017a73c: 02009021 addu r18,r16,r0
+
  0017a73c: 02009021 addu r18,r16,r0 r18 = ENTD Flags
  0017a740: 00021880 sll r3,r2,0x02 Shift left 2 bits (*0x4) (*4)
+
  0017a740: 00021880 sll r3,r2,0x02 r3 = Caster Tile ID
 
  0017a744: 00621821 addu r3,r3,r2
 
  0017a744: 00621821 addu r3,r3,r2
  0017a748: 3c028019 lui r2,0x8019
+
  0017a748: 3c028019 lui r2,0x8019
  0017a74c: 24422dd8 addiu r2,r2,0x2dd8
+
  0017a74c: 24422dd8 addiu r2,r2,0x2dd8 r2 = Tile Grid Data (0x192dd8)
  0017a750: 12e00005 beq r23,r0,0x0017a768 Branch if  == 0x0
+
  0017a750: 12e00005 beq r23,r0,0x0017a768 If Unknown Flag = False
  0017a754: 00621821 addu r3,r3,r2
+
  0017a754: 00621821 addu r3,r3,r2 r3 = Caster Tile Data
  0017a758: 32020030 andi r2,r16,0x0030 r2 = team check
+
  0017a758: 32020030 andi r2,r16,0x0030 r2 = Green Team Flag
  0017a75c: 14400002 bne r2,r0,0x0017a768 Branch if enemy
+
  0017a75c: 14400002 bne r2,r0,0x0017a768 Branch if Green Team
 
  0017a760: 00000000 nop
 
  0017a760: 00000000 nop
  0017a764: a0740001 sb r20,0x0001(r3) Store panel is targeted
+
  0017a764: a0740001 sb r20,0x0001(r3) Caster Tile is Targeted
  0017a768: 12c00004 beq r22,r0,0x0017a77c Branch if  == 0x0
+
  0017a768: 12c00004 beq r22,r0,0x0017a77c If Unknown Flag 2 = False
  0017a76c: 32420030 andi r2,r18,0x0030 r2 = team check
+
  0017a76c: 32420030 andi r2,r18,0x0030 r2 = Green Team Flag
  0017a770: 10400002 beq r2,r0,0x0017a77c Branch if ally team?
+
  0017a770: 10400002 beq r2,r0,0x0017a77c Branch if not Green Team
  0017a774: 00000000 nop
+
  0017a774: 00000000 nop                                        
  0017a778: a0740001 sb r20,0x0001(r3) Store panel is targeted
+
  0017a778: a0740001 sb r20,0x0001(r3) Caster Tile is Targeted
  0017a77c: 26730001 addiu r19,r19,0x0001
+
  0017a77c: 26730001 addiu r19,r19,0x0001 Counter++
  0017a780: 2a620015 slti r2,r19,0x0015 Do for each unit
+
  0017a780: 2a620015 slti r2,r19,0x0015 If Counter < 0x0015
  0017a784: 1440ffe5 bne r2,r0,0x0017a71c
+
  0017a784: 1440ffe5 bne r2,r0,0x0017a71c Branch Back if True
  0017a788: 00000000 nop
+
  0017a788: 00000000 nop                                         Should be "addiu r17,r17,0x01c0"
  0017a78c: 8fbf0030 lw r31,0x0030(r29) Load Stack + 0x30
+
  0017a78c: 8fbf0030 lw r31,0x0030(r29)
  0017a790: 8fb7002c lw r23,0x002c(r29) Load Stack + 0x2C
+
  0017a790: 8fb7002c lw r23,0x002c(r29)
  0017a794: 8fb60028 lw r22,0x0028(r29) Load Stack + 0x28
+
  0017a794: 8fb60028 lw r22,0x0028(r29)
  0017a798: 8fb50024 lw r21,0x0024(r29) Load Stack + 0x24
+
  0017a798: 8fb50024 lw r21,0x0024(r29)
  0017a79c: 8fb40020 lw r20,0x0020(r29) Load Stack + 0x20
+
  0017a79c: 8fb40020 lw r20,0x0020(r29)
  0017a7a0: 8fb3001c lw r19,0x001c(r29) Load Stack + 0x1C
+
  0017a7a0: 8fb3001c lw r19,0x001c(r29)
  0017a7a4: 8fb20018 lw r18,0x0018(r29) Load Stack + 0x18
+
  0017a7a4: 8fb20018 lw r18,0x0018(r29)
  0017a7a8: 8fb10014 lw r17,0x0014(r29) Load Stack + 0x14
+
  0017a7a8: 8fb10014 lw r17,0x0014(r29)
  0017a7ac: 8fb00010 lw r16,0x0010(r29) Load Stack + 0x10
+
  0017a7ac: 8fb00010 lw r16,0x0010(r29)
  0017a7b0: 27bd0038 addiu r29,r29,0x0038
+
  0017a7b0: 27bd0038 addiu r29,r29,0x0038
  0017a7b4: 03e00008 jr r31 Jump to Address
+
  0017a7b4: 03e00008 jr r31
 
  0017a7b8: 00000000 nop
 
  0017a7b8: 00000000 nop
 
   
 
   
 +
 +
===Notes: ===
 +
 +
'''Bugs'''
 +
-Loop does not properly iterate though character data offsets.
 +
-Character data starts at cur_Chardata offset instead of 0x1908cc
 
  </font>
 
  </font>

Latest revision as of 16:06, 9 July 2023

Expand Range from Ally/Enemy (Nonfunctioning) 17a6dc: 0017a6dc - 0017a7b8

	001810a0: Map Location Calculation
r4 = Caster Data
r5 = Ability Flags 1
0017a6dc: 27bdffc8 addiu r29,r29,-0x0038
0017a6e0: afb10014 sw r17,0x0014(r29)
0017a6e4: 00808821 addu r17,r4,r0					r17 = Caster Data
0017a6e8: afb7002c sw r23,0x002c(r29)
0017a6ec: 30b70080 andi r23,r5,0x0080				r23 = Unknown Flag 1
0017a6f0: afb60028 sw r22,0x0028(r29)
0017a6f4: 30b60040 andi r22,r5,0x0040				r22 = Unknown Flag 2
0017a6f8: afb3001c sw r19,0x001c(r29)
0017a6fc: 00009821 addu r19,r0,r0					r19 = Counter
0017a700: afb40020 sw r20,0x0020(r29)
0017a704: 34140001 ori r20,r0,0x0001				r20 = True
0017a708: afbf0030 sw r31,0x0030(r29)
0017a70c: afb50024 sw r21,0x0024(r29)
0017a710: afb20018 sw r18,0x0018(r29)
0017a714: afb00010 sw r16,0x0010(r29)
0017a718: 92350005 lbu r21,0x0005(r17)				r21 = ENTD flags
0017a71c: 92230001 lbu r3,0x0001(r17)				r3 = Unit ID
0017a720: 340200ff ori r2,r0,0x00ff					r2 = 0x00ff
0017a724: 10620015 beq r3,r2,0x0017a77c				Branch if Unit ID(Caster) doesn't exist (FF)?
0017a728: 02202021 addu r4,r17,r0					r4 = Caster Data
0017a72c: 922201ba lbu r2,0x01ba(r17)				r2 = Modified ENTD Flags
0017a730: 00000000 nop
0017a734: 02a28026 xor r16,r21,r2					r16 = ENTD Flags
0017a738: 0c060428 jal 0x001810a0					Get Unit Tile ID
0017a73c: 02009021 addu r18,r16,r0					r18 = ENTD Flags
0017a740: 00021880 sll r3,r2,0x02					r3 = Caster Tile ID
0017a744: 00621821 addu r3,r3,r2
0017a748: 3c028019 lui r2,0x8019
0017a74c: 24422dd8 addiu r2,r2,0x2dd8				r2 = Tile Grid Data (0x192dd8)
0017a750: 12e00005 beq r23,r0,0x0017a768			If Unknown Flag = False
0017a754: 00621821 addu r3,r3,r2					r3 = Caster Tile Data
0017a758: 32020030 andi r2,r16,0x0030				r2 = Green Team Flag
0017a75c: 14400002 bne r2,r0,0x0017a768				Branch if Green Team
0017a760: 00000000 nop
0017a764: a0740001 sb r20,0x0001(r3)				Caster Tile is Targeted
0017a768: 12c00004 beq r22,r0,0x0017a77c			If Unknown Flag 2 = False
0017a76c: 32420030 andi r2,r18,0x0030				r2 = Green Team Flag
0017a770: 10400002 beq r2,r0,0x0017a77c				Branch if not Green Team
0017a774: 00000000 nop                                         
0017a778: a0740001 sb r20,0x0001(r3)				Caster Tile is Targeted
0017a77c: 26730001 addiu r19,r19,0x0001				Counter++
0017a780: 2a620015 slti r2,r19,0x0015				If Counter < 0x0015
0017a784: 1440ffe5 bne r2,r0,0x0017a71c				Branch Back if True
0017a788: 00000000 nop                                         Should be "addiu r17,r17,0x01c0"
0017a78c: 8fbf0030 lw r31,0x0030(r29)
0017a790: 8fb7002c lw r23,0x002c(r29)
0017a794: 8fb60028 lw r22,0x0028(r29)
0017a798: 8fb50024 lw r21,0x0024(r29)
0017a79c: 8fb40020 lw r20,0x0020(r29)
0017a7a0: 8fb3001c lw r19,0x001c(r29)
0017a7a4: 8fb20018 lw r18,0x0018(r29)
0017a7a8: 8fb10014 lw r17,0x0014(r29)
0017a7ac: 8fb00010 lw r16,0x0010(r29)
0017a7b0: 27bd0038 addiu r29,r29,0x0038
0017a7b4: 03e00008 jr r31
0017a7b8: 00000000 nop

Notes:

Bugs
-Loop does not properly iterate though character data offsets.
-Character data starts at cur_Chardata offset instead of 0x1908cc