Difference between revisions of "Get Current Effect Target ID"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
 
(One intermediate revision by the same user not shown)
Line 4: Line 4:
 
  001ad82c: afb00010 sw r16,0x0010(r29)
 
  001ad82c: afb00010 sw r16,0x0010(r29)
 
  001ad830: 3c10801c lui r16,0x801c
 
  001ad830: 3c10801c lui r16,0x801c
  001ad834: 92109134 lbu r16,-0x6ecc(r16) Load ? (number of effects played...? loaded into ram...?)
+
  001ad834: 92109134 lbu r16,-0x6ecc(r16) Load current effect target
 
  001ad838: 00000000 nop
 
  001ad838: 00000000 nop
 
  001ad83c: 320200ff andi r2,r16,0x00ff
 
  001ad83c: 320200ff andi r2,r16,0x00ff
  001ad840: 10400037 beq r2,r0,0x001ad920 Branch if ? = 0
+
  001ad840: 10400037 beq r2,r0,0x001ad920 Branch if no target for effect
 
  001ad844: afbf0014 sw r31,0x0014(r29)
 
  001ad844: afbf0014 sw r31,0x0014(r29)
  001ad848: 00022080 sll r4,r2,0x02 ? * 0x4
+
  001ad848: 00022080 sll r4,r2,0x02
  001ad84c: 00822021 addu r4,r4,r2 ? * 0x5
+
  001ad84c: 00822021 addu r4,r4,r2
  001ad850: 00042080 sll r4,r4,0x02 ? * 0x14
+
  001ad850: 00042080 sll r4,r4,0x02
  001ad854: 00822021 addu r4,r4,r2 ? * 0x15
+
  001ad854: 00822021 addu r4,r4,r2
  001ad858: 00042080 sll r4,r4,0x02 ? * 0x54
+
  001ad858: 00042080 sll r4,r4,0x02 effect target ID * 0x54
 
  001ad85c: 3c01801c lui r1,0x801c
 
  001ad85c: 3c01801c lui r1,0x801c
  001ad860: 00240821 addu r1,r1,r4 0x801c0000 + ? * 0x54
+
  001ad860: 00240821 addu r1,r1,r4 0x801c0000 + EffTar * 0x54
  001ad864: 90228b9c lbu r2,-0x7464(r1) Load ? (0x801b8b9c + ? * 0x54 (up to 0x10 times? every interval increases by 1 up to 0x10, which sets it to 0)
+
  001ad864: 90228b9c lbu r2,-0x7464(r1) Load previous effect target ID
 
  001ad868: 3c01801c lui r1,0x801c
 
  001ad868: 3c01801c lui r1,0x801c
  001ad86c: a4229134 sh r2,-0x6ecc(r1) Store new ? (increments count by 1. in. most cases.)
+
  001ad86c: a4229134 sh r2,-0x6ecc(r1) Store new effect target ID
 
  001ad870: 3c03801c lui r3,0x801c
 
  001ad870: 3c03801c lui r3,0x801c
  001ad874: 94639134 lhu r3,-0x6ecc(r3) Load ?
+
  001ad874: 94639134 lhu r3,-0x6ecc(r3) Load again
 
  001ad878: 00000000 nop
 
  001ad878: 00000000 nop
  001ad87c: 00031080 sll r2,r3,0x02 ? * 0x4
+
  001ad87c: 00031080 sll r2,r3,0x02
  001ad880: 00431021 addu r2,r2,r3 ? * 0x5
+
  001ad880: 00431021 addu r2,r2,r3
  001ad884: 00021080 sll r2,r2,0x02 ? * 0x14
+
  001ad884: 00021080 sll r2,r2,0x02
  001ad888: 00431021 addu r2,r2,r3 ? * 0x15
+
  001ad888: 00431021 addu r2,r2,r3
  001ad88c: 00021080 sll r2,r2,0x02 ? * 0x54
+
  001ad88c: 00021080 sll r2,r2,0x02 ETID * 0x54
 
  001ad890: 3c01801c lui r1,0x801c
 
  001ad890: 3c01801c lui r1,0x801c
 
  001ad894: 00220821 addu r1,r1,r2
 
  001ad894: 00220821 addu r1,r1,r2
  001ad898: a0208b9d sb r0,-0x7463(r1) Store ? = 0 (set the value immediately after the above to 0? every 0 is... the number of times an effect is played...?)
+
  001ad898: a0208b9d sb r0,-0x7463(r1) Store previous effect target's next effect target as 0 (properly processed?)
 
  001ad89c: 3c02801c lui r2,0x801c
 
  001ad89c: 3c02801c lui r2,0x801c
  001ad8a0: 90429130 lbu r2,-0x6ed0(r2) Load ?
+
  001ad8a0: 90429130 lbu r2,-0x6ed0(r2) Load previous effect target
 
  001ad8a4: 3406001f ori r6,r0,0x001f r6 = 0x1f
 
  001ad8a4: 3406001f ori r6,r0,0x001f r6 = 0x1f
 
  001ad8a8: 3c01801c lui r1,0x801c
 
  001ad8a8: 3c01801c lui r1,0x801c
 
  001ad8ac: 00240821 addu r1,r1,r4
 
  001ad8ac: 00240821 addu r1,r1,r4
  001ad8b0: a0208b9d sb r0,-0x7463(r1) Store ? = 0, again.
+
  001ad8b0: a0208b9d sb r0,-0x7463(r1) store current effect target's Current effect target ID to 0 (marks it done?)
 
  001ad8b4: 3c01801c lui r1,0x801c
 
  001ad8b4: 3c01801c lui r1,0x801c
 
  001ad8b8: 00240821 addu r1,r1,r4
 
  001ad8b8: 00240821 addu r1,r1,r4
  001ad8bc: a0228b9c sb r2,-0x7464(r1) store ? (set the value immediately after that to0?)
+
  001ad8bc: a0228b9c sb r2,-0x7464(r1) store current effect target's previous effect target ID to previous effect target (marks it as to be done?)
 
  001ad8c0: 3c02801c lui r2,0x801c
 
  001ad8c0: 3c02801c lui r2,0x801c
 
  001ad8c4: 24428beb addiu r2,r2,0x8beb 0x801b8beb (5 before topmost 0x54 repeating pointer)
 
  001ad8c4: 24428beb addiu r2,r2,0x8beb 0x801b8beb (5 before topmost 0x54 repeating pointer)
 
  001ad8c8: 3c03801c lui r3,0x801c
 
  001ad8c8: 3c03801c lui r3,0x801c
  001ad8cc: 94639130 lhu r3,-0x6ed0(r3) load ? again
+
  001ad8cc: 94639130 lhu r3,-0x6ed0(r3) load previous ETID
  001ad8d0: 00822821 addu r5,r4,r2 0x801b8beb + ? * 0x54
+
  001ad8d0: 00822821 addu r5,r4,r2 0x801b8beb + Current ETID * 0x54
 
  001ad8d4: 00031080 sll r2,r3,0x02
 
  001ad8d4: 00031080 sll r2,r3,0x02
 
  001ad8d8: 00431021 addu r2,r2,r3
 
  001ad8d8: 00431021 addu r2,r2,r3
 
  001ad8dc: 00021080 sll r2,r2,0x02
 
  001ad8dc: 00021080 sll r2,r2,0x02
 
  001ad8e0: 00431021 addu r2,r2,r3
 
  001ad8e0: 00431021 addu r2,r2,r3
  001ad8e4: 00021080 sll r2,r2,0x02 ? * 0x54
+
  001ad8e4: 00021080 sll r2,r2,0x02 previous ETID * 0x54
 
  001ad8e8: 3c01801c lui r1,0x801c
 
  001ad8e8: 3c01801c lui r1,0x801c
 
  001ad8ec: 00220821 addu r1,r1,r2
 
  001ad8ec: 00220821 addu r1,r1,r2
  001ad8f0: a0308b9d sb r16,-0x7463(r1) store original ? to  
+
  001ad8f0: a0308b9d sb r16,-0x7463(r1) store original ETID to previous ETID's current ETID
 
  001ad8f4: 3c01801c lui r1,0x801c
 
  001ad8f4: 3c01801c lui r1,0x801c
  001ad8f8: a4309130 sh r16,-0x6ed0(r1) store original ? back to where it was before? (wasn't overwritten?)
+
  001ad8f8: a4309130 sh r16,-0x6ed0(r1) store current ETID to previous ETID
 
  001ad8fc: 3c01801c lui r1,0x801c
 
  001ad8fc: 3c01801c lui r1,0x801c
  001ad900: 00240821 addu r1,r1,r4 0x801b8ba8 + ? * 0x54 (clear 4 before topmost)
+
  001ad900: 00240821 addu r1,r1,r4 0x801b8ba8 + current ETID * 0x54 (clear 4 before topmost)
  001ad904: a4208ba8 sh r0,-0x7458(r1)
+
  001ad904: a4208ba8 sh r0,-0x7458(r1) Clears some targetting data?
  001ad908: a0a00000 sb r0,0x0000(r5) repeat this 0x1f times
+
  001ad908: a0a00000 sb r0,0x0000(r5) clear 0x50 -> 0x30 current ETID data
 
  001ad90c: 24c6ffff addiu r6,r6,0xffff r6 - 1
 
  001ad90c: 24c6ffff addiu r6,r6,0xffff r6 - 1
 
  001ad910: 04c1fffd bgez r6,0x001ad908 repeat 0x1f times
 
  001ad910: 04c1fffd bgez r6,0x001ad908 repeat 0x1f times
 
  001ad914: 24a5ffff addiu r5,r5,0xffff r5 - 1
 
  001ad914: 24a5ffff addiu r5,r5,0xffff r5 - 1
 
  001ad918: 0806b64c j 0x001ad930
 
  001ad918: 0806b64c j 0x001ad930
  001ad91c: 02001021 addu r2,r16,r0 return: original ?
+
  001ad91c: 02001021 addu r2,r16,r0 return: Current ETID
 
  001ad920: 34040001 ori r4,r0,0x0001 error code 166
 
  001ad920: 34040001 ori r4,r0,0x0001 error code 166
 
  001ad924: 0c01127e jal 0x000449f8              [[000449f8 - 00044a04]]  jr r31. dummied error check?
 
  001ad924: 0c01127e jal 0x000449f8              [[000449f8 - 00044a04]]  jr r31. dummied error check?

Latest revision as of 11:34, 16 March 2024

001ad828: 27bdffe8 addiu r29,r29,0xffe8
001ad82c: afb00010 sw r16,0x0010(r29)
001ad830: 3c10801c lui r16,0x801c
001ad834: 92109134 lbu r16,-0x6ecc(r16)		Load current effect target
001ad838: 00000000 nop
001ad83c: 320200ff andi r2,r16,0x00ff
001ad840: 10400037 beq r2,r0,0x001ad920		Branch if no target for effect
001ad844: afbf0014 sw r31,0x0014(r29)
001ad848: 00022080 sll r4,r2,0x02			
001ad84c: 00822021 addu r4,r4,r2			
001ad850: 00042080 sll r4,r4,0x02			
001ad854: 00822021 addu r4,r4,r2			
001ad858: 00042080 sll r4,r4,0x02			effect target ID * 0x54
001ad85c: 3c01801c lui r1,0x801c
001ad860: 00240821 addu r1,r1,r4			0x801c0000 + EffTar * 0x54
001ad864: 90228b9c lbu r2,-0x7464(r1)			Load previous effect target ID
001ad868: 3c01801c lui r1,0x801c
001ad86c: a4229134 sh r2,-0x6ecc(r1)			Store new effect target ID
001ad870: 3c03801c lui r3,0x801c
001ad874: 94639134 lhu r3,-0x6ecc(r3)			Load again
001ad878: 00000000 nop
001ad87c: 00031080 sll r2,r3,0x02			
001ad880: 00431021 addu r2,r2,r3			
001ad884: 00021080 sll r2,r2,0x02			
001ad888: 00431021 addu r2,r2,r3			
001ad88c: 00021080 sll r2,r2,0x02			ETID * 0x54
001ad890: 3c01801c lui r1,0x801c
001ad894: 00220821 addu r1,r1,r2
001ad898: a0208b9d sb r0,-0x7463(r1)			Store previous effect target's next effect target as 0 (properly processed?)
001ad89c: 3c02801c lui r2,0x801c
001ad8a0: 90429130 lbu r2,-0x6ed0(r2)			Load previous effect target
001ad8a4: 3406001f ori r6,r0,0x001f			r6 = 0x1f
001ad8a8: 3c01801c lui r1,0x801c
001ad8ac: 00240821 addu r1,r1,r4		
001ad8b0: a0208b9d sb r0,-0x7463(r1)			store current effect target's Current effect target ID to 0 (marks it done?)
001ad8b4: 3c01801c lui r1,0x801c
001ad8b8: 00240821 addu r1,r1,r4
001ad8bc: a0228b9c sb r2,-0x7464(r1)			store current effect target's previous effect target ID to previous effect target (marks it as to be done?)
001ad8c0: 3c02801c lui r2,0x801c
001ad8c4: 24428beb addiu r2,r2,0x8beb			0x801b8beb (5 before topmost 0x54 repeating pointer)
001ad8c8: 3c03801c lui r3,0x801c
001ad8cc: 94639130 lhu r3,-0x6ed0(r3)			load previous ETID
001ad8d0: 00822821 addu r5,r4,r2			0x801b8beb + Current ETID * 0x54
001ad8d4: 00031080 sll r2,r3,0x02		
001ad8d8: 00431021 addu r2,r2,r3
001ad8dc: 00021080 sll r2,r2,0x02
001ad8e0: 00431021 addu r2,r2,r3
001ad8e4: 00021080 sll r2,r2,0x02			previous ETID * 0x54
001ad8e8: 3c01801c lui r1,0x801c
001ad8ec: 00220821 addu r1,r1,r2
001ad8f0: a0308b9d sb r16,-0x7463(r1)			store original ETID to previous ETID's current ETID
001ad8f4: 3c01801c lui r1,0x801c
001ad8f8: a4309130 sh r16,-0x6ed0(r1)			store current ETID to previous ETID
001ad8fc: 3c01801c lui r1,0x801c
001ad900: 00240821 addu r1,r1,r4			0x801b8ba8 + current ETID * 0x54 (clear 4 before topmost)
001ad904: a4208ba8 sh r0,-0x7458(r1)			Clears some targetting data?
001ad908: a0a00000 sb r0,0x0000(r5)			clear 0x50 -> 0x30 current ETID data
001ad90c: 24c6ffff addiu r6,r6,0xffff			r6 - 1
001ad910: 04c1fffd bgez r6,0x001ad908			repeat 0x1f times
001ad914: 24a5ffff addiu r5,r5,0xffff			r5 - 1
001ad918: 0806b64c j 0x001ad930
001ad91c: 02001021 addu r2,r16,r0			return: Current ETID
001ad920: 34040001 ori r4,r0,0x0001			error code 166
001ad924: 0c01127e jal 0x000449f8              	000449f8 - 00044a04  jr r31. dummied error check?
001ad928: 34050066 ori r5,r0,0x0066			error code 166
001ad92c: 02001021 addu r2,r16,r0
001ad930: 8fbf0014 lw r31,0x0014(r29)
001ad934: 8fb00010 lw r16,0x0010(r29)
001ad938: 27bd0018 addiu r29,r29,0x0018
001ad93c: 03e00008 jr r31
001ad940: 00000000 nop