Difference between revisions of "000745ac - 000746a8"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Return Locations)
m
 
Line 1: Line 1:
<font face='Courier New'>
 
 
 
  000745ac: 27bdffe0 addiu r29,r29,0xffe0
 
  000745ac: 27bdffe0 addiu r29,r29,0xffe0
 
  000745b0: afbf001c sw r31,0x001c(r29)
 
  000745b0: afbf001c sw r31,0x001c(r29)
 
  000745b4: 0c01bbbc jal 0x0006eef0
 
  000745b4: 0c01bbbc jal 0x0006eef0
  000745b8: afb00018 sw r16,0x0018(r29)
+
  000745b8: afb00018 sw r16,0x0018(r29)    
 
  000745bc: 3402001b ori r2,r0,0x001b
 
  000745bc: 3402001b ori r2,r0,0x001b
 
  000745c0: 3c018009 lui r1,0x8009
 
  000745c0: 3c018009 lui r1,0x8009
Line 16: Line 14:
 
  000745e0: 3c068009 lui r6,0x8009
 
  000745e0: 3c068009 lui r6,0x8009
 
  000745e4: 8cc661b8 lw r6,0x61b8(r6)
 
  000745e4: 8cc661b8 lw r6,0x61b8(r6)
  000745e8: 0c01e8ae jal 0x0007a2b8
+
  000745e8: 0c01e8ae jal 0x0007a2b8               [[Check if unit is on panel]]
  000745ec: 00408021 addu r16,r2,r0
+
  000745ec: 00408021 addu r16,r2,r0               unit misc. data pointer
  000745f0: 00402021 addu r4,r2,r0
+
  000745f0: 00402021 addu r4,r2,r0                 misc data of unit on panel
  000745f4: 8e030174 lw r3,0x0174(r16)
+
  000745f4: 8e030174 lw r3,0x0174(r16)             load result from [[Set Target Tiles]] -> see [[Decide what to do based on skillset/ability selections]]
 
  000745f8: 34020001 ori r2,r0,0x0001
 
  000745f8: 34020001 ori r2,r0,0x0001
  000745fc: 10620012 beq r3,r2,0x00074648
+
  000745fc: 10620012 beq r3,r2,0x00074648         branch if can't follow target
 
  00074600: 28620002 slti r2,r3,0x0002
 
  00074600: 28620002 slti r2,r3,0x0002
  00074604: 10400005 beq r2,r0,0x0007461c
+
  00074604: 10400005 beq r2,r0,0x0007461c         branch if not -1, 0, 1
 
  00074608: 00000000 nop
 
  00074608: 00000000 nop
  0007460c: 10600008 beq r3,r0,0x00074630
+
  0007460c: 10600008 beq r3,r0,0x00074630         branch if can follow target
 
  00074610: 00000000 nop
 
  00074610: 00000000 nop
  00074614: 0801d19e j 0x00074678
+
  00074614: 0801d19e j 0x00074678                 else go here, set r4 = 4, r5 = 0
 
  00074618: 34040004 ori r4,r0,0x0004
 
  00074618: 34040004 ori r4,r0,0x0004
 +
 
  0007461c: 34020002 ori r2,r0,0x0002
 
  0007461c: 34020002 ori r2,r0,0x0002
  00074620: 1062000f beq r3,r2,0x00074660
+
  00074620: 1062000f beq r3,r2,0x00074660         branch if auto target
 
  00074624: 00000000 nop
 
  00074624: 00000000 nop
  00074628: 0801d19e j 0x00074678
+
  00074628: 0801d19e j 0x00074678                 else, r4 = 4, r5 = 0
 
  0007462c: 34040004 ori r4,r0,0x0004
 
  0007462c: 34040004 ori r4,r0,0x0004
  00074630: 10800003 beq r4,r0,0x00074640
+
 
 +
can follow target
 +
  00074630: 10800003 beq r4,r0,0x00074640         branch if no misc. unit data
 
  00074634: 34040004 ori r4,r0,0x0004
 
  00074634: 34040004 ori r4,r0,0x0004
  00074638: 0801d19f j 0x0007467c
+
  00074638: 0801d19f j 0x0007467c                 r4 = 4, r5 = 1 (can follow, target on tile exists)
 
  0007463c: 34050001 ori r5,r0,0x0001
 
  0007463c: 34050001 ori r5,r0,0x0001
  00074640: 0801d19f j 0x0007467c
+
  00074640: 0801d19f j 0x0007467c                 r4 = 4, r5 = 2 (can follow, no target on tile)
 
  00074644: 34050002 ori r5,r0,0x0002
 
  00074644: 34050002 ori r5,r0,0x0002
  00074648: 10800003 beq r4,r0,0x00074658
+
 
 +
can't follow target
 +
  00074648: 10800003 beq r4,r0,0x00074658         branch if no misc. unit data
 
  0007464c: 34040004 ori r4,r0,0x0004
 
  0007464c: 34040004 ori r4,r0,0x0004
  00074650: 0801d19f j 0x0007467c
+
  00074650: 0801d19f j 0x0007467c                 r4 = 4, r5 = 4 (can't follow, target on tile exists)
 
  00074654: 34050004 ori r5,r0,0x0004
 
  00074654: 34050004 ori r5,r0,0x0004
  00074658: 0801d19f j 0x0007467c
+
  00074658: 0801d19f j 0x0007467c                 r4 = 4, r5 = 2 (can't follow, no target on tile)
 
  0007465c: 34050002 ori r5,r0,0x0002
 
  0007465c: 34050002 ori r5,r0,0x0002
  00074660: 10800003 beq r4,r0,0x00074670
+
 
 +
auto target
 +
  00074660: 10800003 beq r4,r0,0x00074670         branch if no misc. unit data
 
  00074664: 34040004 ori r4,r0,0x0004
 
  00074664: 34040004 ori r4,r0,0x0004
  00074668: 0801d19f j 0x0007467c
+
  00074668: 0801d19f j 0x0007467c                 r4 = 4, r5 = 3
 
  0007466c: 34050003 ori r5,r0,0x0003
 
  0007466c: 34050003 ori r5,r0,0x0003
  00074670: 0801d19f j 0x0007467c
+
  00074670: 0801d19f j 0x0007467c                 r4 = 4, r5 = 3
 
  00074674: 34050002 ori r5,r0,0x0002
 
  00074674: 34050002 ori r5,r0,0x0002
  00074678: 00002821 addu r5,r0,r0
+
 
 +
otherwise
 +
  00074678: 00002821 addu r5,r0,r0            
 +
 
 +
all return
 
  0007467c: 00003821 addu r7,r0,r0
 
  0007467c: 00003821 addu r7,r0,r0
 
  00074680: 8e020134 lw r2,0x0134(r16)
 
  00074680: 8e020134 lw r2,0x0134(r16)
  00074684: 9203013d lbu r3,0x013d(r16)
+
  00074684: 9203013d lbu r3,0x013d(r16)           ENTD flags from Unit data
 
  00074688: 9046018a lbu r6,0x018a(r2)
 
  00074688: 9046018a lbu r6,0x018a(r2)
  0007468c: 30630008 andi r3,r3,0x0008
+
  0007468c: 30630008 andi r3,r3,0x0008             check control bit
  00074690: 0c05066e jal 0x001419b8
+
  00074690: 0c05066e jal 0x001419b8               [[System function setup routine]] do [[Routine at 141b0c]] (r5, casUnitID, 0, isControlled)
 
  00074694: afa30010 sw r3,0x0010(r29)
 
  00074694: afa30010 sw r3,0x0010(r29)
 
  00074698: 8fbf001c lw r31,0x001c(r29)
 
  00074698: 8fbf001c lw r31,0x001c(r29)
Line 65: Line 74:
 
  000746a4: 03e00008 jr r31
 
  000746a4: 03e00008 jr r31
 
  000746a8: 00000000 nop
 
  000746a8: 00000000 nop
</font>
 
  
 
== Return Locations ==
 
== Return Locations ==
  
 
  00076d50: [[00076c50 - 00076d80]]
 
  00076d50: [[00076c50 - 00076d80]]

Latest revision as of 11:30, 25 January 2025

000745ac: 27bdffe0 addiu r29,r29,0xffe0
000745b0: afbf001c sw r31,0x001c(r29)
000745b4: 0c01bbbc jal 0x0006eef0
000745b8: afb00018 sw r16,0x0018(r29)      
000745bc: 3402001b ori r2,r0,0x001b
000745c0: 3c018009 lui r1,0x8009
000745c4: ac2260e4 sw r2,0x60e4(r1)
000745c8: 0c01e886 jal 0x0007a218
000745cc: 00000000 nop
000745d0: 3c048009 lui r4,0x8009
000745d4: 8c8461b4 lw r4,0x61b4(r4)
000745d8: 3c058009 lui r5,0x8009
000745dc: 8ca561bc lw r5,0x61bc(r5)
000745e0: 3c068009 lui r6,0x8009
000745e4: 8cc661b8 lw r6,0x61b8(r6)
000745e8: 0c01e8ae jal 0x0007a2b8                Check if unit is on panel
000745ec: 00408021 addu r16,r2,r0                unit misc. data pointer
000745f0: 00402021 addu r4,r2,r0                 misc data of unit on panel
000745f4: 8e030174 lw r3,0x0174(r16)             load result from Set Target Tiles -> see Decide what to do based on skillset/ability selections
000745f8: 34020001 ori r2,r0,0x0001
000745fc: 10620012 beq r3,r2,0x00074648          branch if can't follow target
00074600: 28620002 slti r2,r3,0x0002
00074604: 10400005 beq r2,r0,0x0007461c          branch if not -1, 0, 1
00074608: 00000000 nop
0007460c: 10600008 beq r3,r0,0x00074630          branch if can follow target
00074610: 00000000 nop
00074614: 0801d19e j 0x00074678                  else go here, set r4 = 4, r5 = 0
00074618: 34040004 ori r4,r0,0x0004
0007461c: 34020002 ori r2,r0,0x0002
00074620: 1062000f beq r3,r2,0x00074660          branch if auto target
00074624: 00000000 nop
00074628: 0801d19e j 0x00074678                  else, r4 = 4, r5 = 0
0007462c: 34040004 ori r4,r0,0x0004

can follow target

00074630: 10800003 beq r4,r0,0x00074640          branch if no misc. unit data
00074634: 34040004 ori r4,r0,0x0004
00074638: 0801d19f j 0x0007467c                  r4 = 4, r5 = 1 (can follow, target on tile exists)
0007463c: 34050001 ori r5,r0,0x0001
00074640: 0801d19f j 0x0007467c                  r4 = 4, r5 = 2 (can follow, no target on tile)
00074644: 34050002 ori r5,r0,0x0002

can't follow target

00074648: 10800003 beq r4,r0,0x00074658          branch if no misc. unit data
0007464c: 34040004 ori r4,r0,0x0004
00074650: 0801d19f j 0x0007467c                  r4 = 4, r5 = 4 (can't follow, target on tile exists)
00074654: 34050004 ori r5,r0,0x0004
00074658: 0801d19f j 0x0007467c                  r4 = 4, r5 = 2 (can't follow, no target on tile)
0007465c: 34050002 ori r5,r0,0x0002

auto target

00074660: 10800003 beq r4,r0,0x00074670          branch if no misc. unit data
00074664: 34040004 ori r4,r0,0x0004
00074668: 0801d19f j 0x0007467c                  r4 = 4, r5 = 3
0007466c: 34050003 ori r5,r0,0x0003
00074670: 0801d19f j 0x0007467c                  r4 = 4, r5 = 3
00074674: 34050002 ori r5,r0,0x0002

otherwise

00074678: 00002821 addu r5,r0,r0              

all return

0007467c: 00003821 addu r7,r0,r0
00074680: 8e020134 lw r2,0x0134(r16)
00074684: 9203013d lbu r3,0x013d(r16)            ENTD flags from Unit data
00074688: 9046018a lbu r6,0x018a(r2)
0007468c: 30630008 andi r3,r3,0x0008             check control bit
00074690: 0c05066e jal 0x001419b8                System function setup routine do Routine at 141b0c (r5, casUnitID, 0, isControlled)
00074694: afa30010 sw r3,0x0010(r29)
00074698: 8fbf001c lw r31,0x001c(r29)
0007469c: 8fb00018 lw r16,0x0018(r29)
000746a0: 27bd0020 addiu r29,r29,0x0020
000746a4: 03e00008 jr r31
000746a8: 00000000 nop

Return Locations

00076d50: 00076c50 - 00076d80