Difference between revisions of "Effect Related (0x1a1d28)"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with " 801a1d28: 3c07801c lui r7,0x801c 801a1d2c: 24e79158 addiu r7,r7,-0x6ea8 # 0x801b9158 801a1d30: 3c06801c lui r6,0x801c 801a1d34: 24c6bf90 addiu r6,r6,-0x4070...")
 
m
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
  801a1d28: 3c07801c lui r7,0x801c
 
  801a1d28: 3c07801c lui r7,0x801c
  801a1d2c: 24e79158 addiu r7,r7,-0x6ea8              #  0x801b9158
+
  801a1d2c: 24e79158 addiu r7,r7,-0x6ea8              #  next effect phase to execute
 
  801a1d30: 3c06801c lui r6,0x801c
 
  801a1d30: 3c06801c lui r6,0x801c
  801a1d34: 24c6bf90 addiu r6,r6,-0x4070              #  0x801bbf90
+
  801a1d34: 24c6bf90 addiu r6,r6,-0x4070              #  currently executing effect phase
  801a1d38: 84e20000 lh r2,0x0000(r7)                #  old_0x801b9158 = *0x801b9158
+
  801a1d38: 84e20000 lh r2,0x0000(r7)                #  load next effect phase
  801a1d3c: 94c50000 lhu r5,0x0000(r6)                #  *0x801bbf90
+
  801a1d3c: 94c50000 lhu r5,0x0000(r6)                #  load currently executing effect phase
  801a1d40: 00022140 sll r4,r2,0x05                  #  old_0x801b9158 * 32
+
  801a1d40: 00022140 sll r4,r2,0x05                  #   
  801a1d44: 00822023 subu r4,r4,r2                    #  old_0x801b9158 * 31
+
  801a1d44: 00822023 subu r4,r4,r2                    #   
  801a1d48: 000420c0 sll r4,r4,0x03                  #  offset = old_0x801b9158 * 248
+
  801a1d48: 000420c0 sll r4,r4,0x03                  #  phase ID * 0xF8
 
  801a1d4c: 3c01801c lui r1,0x801c
 
  801a1d4c: 3c01801c lui r1,0x801c
 
  801a1d50: 00240821 addu r1,r1,r4
 
  801a1d50: 00240821 addu r1,r1,r4
  801a1d54: 9423f02c lhu r3,-0x0fd4(r1)              #  *(0x801bf02c + offset)
+
  801a1d54: 9423f02c lhu r3,-0x0fd4(r1)              #  load queued phase
 
  801a1d58: 00000000 nop
 
  801a1d58: 00000000 nop
  801a1d5c: a4e30000 sh r3,0x0000(r7)                #  *0x801b9158 = *(0x801bf02c + offset)
+
  801a1d5c: a4e30000 sh r3,0x0000(r7)                #  store as next phase ID
 
  801a1d60: 3c01801c lui r1,0x801c
 
  801a1d60: 3c01801c lui r1,0x801c
 
  801a1d64: 00240821 addu r1,r1,r4
 
  801a1d64: 00240821 addu r1,r1,r4
  801a1d68: a425f02c sh r5,-0x0fd4(r1)                #  *(0x801bf02c + offset) = *0x801bbf90
+
  801a1d68: a425f02c sh r5,-0x0fd4(r1)                #  store current effect phase into next effect phase (phase 0 executed twice per any other phase (queues itself)
  801a1d6c: a4c20000 sh r2,0x0000(r6)                #  *0x801bbf90 = old_0x801b9158
+
  801a1d6c: a4c20000 sh r2,0x0000(r6)                #  store next phase into currently executing phase
 
  801a1d70: 3c01801c lui r1,0x801c
 
  801a1d70: 3c01801c lui r1,0x801c
 
  801a1d74: 00240821 addu r1,r1,r4
 
  801a1d74: 00240821 addu r1,r1,r4
Line 24: Line 24:
 
  801a1d84: 3c01801c lui r1,0x801c
 
  801a1d84: 3c01801c lui r1,0x801c
 
  801a1d88: 00240821 addu r1,r1,r4
 
  801a1d88: 00240821 addu r1,r1,r4
  801a1d8c: a423f04a sh r3,-0x0fb6(r1)                #  *(0x801bf04a + offset) = *(0x801bf04a + offset) | 1
+
  801a1d8c: a423f04a sh r3,-0x0fb6(r1)                #  store with 0x1 bitflag? (skips some step?)
 
  801a1d90: 27bd0008 addiu r29,r29,0x0008             
 
  801a1d90: 27bd0008 addiu r29,r29,0x0008             
  801a1d94: 03e00008 jr r31                          #  return old_0x801b9158;
+
  801a1d94: 03e00008 jr r31                          #  return effect phase to initialise?
 
  801a1d98: 00000000 nop
 
  801a1d98: 00000000 nop

Latest revision as of 05:51, 23 December 2022

801a1d28: 3c07801c lui r7,0x801c
801a1d2c: 24e79158 addiu r7,r7,-0x6ea8              #   next effect phase to execute
801a1d30: 3c06801c lui r6,0x801c
801a1d34: 24c6bf90 addiu r6,r6,-0x4070              #   currently executing effect phase
801a1d38: 84e20000 lh r2,0x0000(r7)                 #   load next effect phase
801a1d3c: 94c50000 lhu r5,0x0000(r6)                #   load currently executing effect phase
801a1d40: 00022140 sll r4,r2,0x05                   #   
801a1d44: 00822023 subu r4,r4,r2                    #   
801a1d48: 000420c0 sll r4,r4,0x03                   #   phase ID * 0xF8
801a1d4c: 3c01801c lui r1,0x801c
801a1d50: 00240821 addu r1,r1,r4
801a1d54: 9423f02c lhu r3,-0x0fd4(r1)               #   load queued phase
801a1d58: 00000000 nop
801a1d5c: a4e30000 sh r3,0x0000(r7)                 #   store as next phase ID
801a1d60: 3c01801c lui r1,0x801c
801a1d64: 00240821 addu r1,r1,r4
801a1d68: a425f02c sh r5,-0x0fd4(r1)                #   store current effect phase into next effect phase (phase 0 executed twice per any other phase (queues itself)
801a1d6c: a4c20000 sh r2,0x0000(r6)                 #   store next phase into currently executing phase
801a1d70: 3c01801c lui r1,0x801c
801a1d74: 00240821 addu r1,r1,r4
801a1d78: 9423f04a lhu r3,-0x0fb6(r1)               #   *(0x801bf04a + offset)
801a1d7c: 27bdfff8 addiu r29,r29,-0x0008            
801a1d80: 34630001 ori r3,r3,0x0001                 #   *(0x801bf04a + offset) | 1
801a1d84: 3c01801c lui r1,0x801c
801a1d88: 00240821 addu r1,r1,r4
801a1d8c: a423f04a sh r3,-0x0fb6(r1)                #   store with 0x1 bitflag? (skips some step?)
801a1d90: 27bd0008 addiu r29,r29,0x0008             
801a1d94: 03e00008 jr r31                           #   return effect phase to initialise?
801a1d98: 00000000 nop