Difference between revisions of "001ad944 - 001adadc"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Talcall moved page 001ad944 - 001adadc to Incomplete routine x1ad828: I'm too tired to fix this and it has notes on it.)
Tag: New redirect
 
m (Removed redirect to Incomplete routine x1ad828)
Tag: Removed redirect
 
Line 1: Line 1:
#REDIRECT [[Incomplete routine x1ad828]]
+
Failed/no secondary effect?
 +
001ad944: 27bdffe0 addiu r29,r29,0xffe0
 +
001ad948: afb10014 sw r17,0x0014(r29)
 +
001ad94c: 00808821 addu r17,r4,r0
 +
001ad950: 322400ff andi r4,r17,0x00ff #effect target ID
 +
001ad954: 00041080 sll r2,r4,0x02
 +
001ad958: 00441021 addu r2,r2,r4
 +
001ad95c: 00021080 sll r2,r2,0x02
 +
001ad960: 00441021 addu r2,r2,r4
 +
001ad964: 00021080 sll r2,r2,0x02 #times 0x54
 +
001ad968: 3c03801c lui r3,0x801c
 +
001ad96c: 24638b9c addiu r3,r3,0x8b9c #effect target data
 +
001ad970: afb00010 sw r16,0x0010(r29)
 +
001ad974: 00438021 addu r16,r2,r3 #effect target data
 +
001ad978: 10800050 beq r4,r0,0x001adabc #branch if 0
 +
001ad97c: afbf0018 sw r31,0x0018(r29)
 +
001ad980: 2c820011 sltiu r2,r4,0x0011 #check if target is legal
 +
001ad984: 1040004e beq r2,r0,0x001adac0 #branch if not
 +
001ad988: 34040001 ori r4,r0,0x0001
 +
001ad98c: 8e040050 lw r4,0x0050(r16) #load effect data pointer
 +
001ad990: 00000000 nop
 +
001ad994: 10800004 beq r4,r0,0x001ad9a8 #branch if 0
 +
001ad998: 00000000 nop
 +
001ad99c: 0c011180 jal 0x00044600 #[[00044600 - 0004466c]] LBA stuff
 +
001ad9a0: 00000000 nop
 +
001ad9a4: ae000050 sw r0,0x0050(r16) #store 0 effect data pointer
 +
001ad9a8: 92030001 lbu r3,0x0001(r16) #load current effect target ID
 +
001ad9ac: 00000000 nop
 +
001ad9b0: 1060000b beq r3,r0,0x001ad9e0 #branch if 0
 +
001ad9b4: 00031080 sll r2,r3,0x02
 +
001ad9b8: 00431021 addu r2,r2,r3
 +
001ad9bc: 00021080 sll r2,r2,0x02
 +
001ad9c0: 00431021 addu r2,r2,r3
 +
001ad9c4: 92030000 lbu r3,0x0000(r16) #load previous effect target's ID?
 +
001ad9c8: 00021080 sll r2,r2,0x02 #* 0x54
 +
001ad9cc: 3c01801c lui r1,0x801c
 +
001ad9d0: 00220821 addu r1,r1,r2
 +
001ad9d4: a0238b9c sb r3,-0x7464(r1) #store previous effect target's ID back where it was just obtained? using current target's effect data pointer obtain with their ID?
 +
001ad9d8: 0806b67b j 0x001ad9ec
 +
001ad9dc: 00000000 nop
 +
001ad9e0: 92020000 lbu r2,0x0000(r16)
 +
001ad9e4: 3c01801c lui r1,0x801c
 +
001ad9e8: a4229130 sh r2,-0x6ed0(r1) #if current effect target ID is 0, load previous current effect target ID, and store it in 0x801b9130 (first target effect ID to load for)
 +
001ad9ec: 3c03801c lui r3,0x801c
 +
001ad9f0: 94639130 lhu r3,-0x6ed0(r3) #load first effect target ID
 +
001ad9f4: 00000000 nop
 +
001ad9f8: 00031080 sll r2,r3,0x02
 +
001ad9fc: 00431021 addu r2,r2,r3
 +
001ada00: 00021080 sll r2,r2,0x02
 +
001ada04: 00431021 addu r2,r2,r3
 +
001ada08: 00021080 sll r2,r2,0x02
 +
001ada0c: 3c01801c lui r1,0x801c
 +
001ada10: 00220821 addu r1,r1,r2
 +
001ada14: a0208b9d sb r0,-0x7463(r1) #clear first current effect target's ID
 +
001ada18: 3c03801c lui r3,0x801c
 +
001ada1c: 94639134 lhu r3,-0x6ecc(r3) #current to-animate current effect target ID
 +
001ada20: 00000000 nop
 +
001ada24: 1060001f beq r3,r0,0x001adaa4 #branch if 0
 +
001ada28: 322200ff andi r2,r17,0x00ff
 +
001ada2c: 0806b695 j 0x001ada54
 +
001ada30: 00032080 sll r4,r3,0x02
 +
001ada34: 00021080 sll r2,r2,0x02
 +
001ada38: 00431021 addu r2,r2,r3
 +
001ada3c: 00021080 sll r2,r2,0x02
 +
001ada40: 3c01801c lui r1,0x801c
 +
001ada44: 00220821 addu r1,r1,r2
 +
001ada48: 90238b9c lbu r3,-0x7464(r1) #previous effect target ID
 +
001ada4c: 00000000 nop
 +
001ada50: 00032080 sll r4,r3,0x02
 +
001ada54: 00831021 addu r2,r4,r3
 +
001ada58: 00021080 sll r2,r2,0x02
 +
001ada5c: 00431021 addu r2,r2,r3
 +
001ada60: 00021080 sll r2,r2,0x02 #ID * 0x54
 +
001ada64: 3c01801c lui r1,0x801c
 +
001ada68: 00220821 addu r1,r1,r2
 +
001ada6c: 90228b9c lbu r2,-0x7464(r1) #load their previous effect target's ID
 +
001ada70: 00000000 nop
 +
001ada74: 1440ffef bne r2,r0,0x001ada34 #branch if it's not 0 (loop and find the first unit)
 +
001ada78: 00831021 addu r2,r4,r3
 +
001ada7c: 00031080 sll r2,r3,0x02
 +
001ada80: 00431021 addu r2,r2,r3
 +
001ada84: 00021080 sll r2,r2,0x02
 +
001ada88: 00431021 addu r2,r2,r3
 +
001ada8c: 00021080 sll r2,r2,0x02
 +
001ada90: 3c01801c lui r1,0x801c
 +
001ada94: 00220821 addu r1,r1,r2
 +
001ada98: a0318b9c sb r17,-0x7464(r1) #else store r17 effect target ID as previous effect ID (I wonder how often that even happens.)
 +
001ada9c: 0806b6ac j 0x001adab0
 +
001adaa0: a2030001 sb r3,0x0001(r16) #store current effect target ID as 1
 +
001adaa4: 3c01801c lui r1,0x801c
 +
001adaa8: a4229134 sh r2,-0x6ecc(r1)
 +
001adaac: a2000001 sb r0,0x0001(r16)
 +
001adab0: a2000000 sb r0,0x0000(r16) #clear both current and previous effect target ID
 +
001adab4: 0806b6b2 j 0x001adac8
 +
001adab8: ae000008 sw r0,0x0008(r16) #store animation as no?
 +
001adabc: 34040001 ori r4,r0,0x0001
 +
001adac0: 0c01127e jal 0x000449f8 #only has a jr r31. error code 0x01 0x67?
 +
001adac4: 34050067 ori r5,r0,0x0067
 +
001adac8: 8fbf0018 lw r31,0x0018(r29)
 +
001adacc: 8fb10014 lw r17,0x0014(r29)
 +
001adad0: 8fb00010 lw r16,0x0010(r29)
 +
001adad4: 27bd0020 addiu r29,r29,0x0020
 +
001adad8: 03e00008 jr r31
 +
001adadc: 00000000 nop

Latest revision as of 06:45, 16 October 2022

Failed/no secondary effect?
001ad944: 27bdffe0 addiu r29,r29,0xffe0
001ad948: afb10014 sw r17,0x0014(r29)
001ad94c: 00808821 addu r17,r4,r0
001ad950: 322400ff andi r4,r17,0x00ff			#effect target ID
001ad954: 00041080 sll r2,r4,0x02
001ad958: 00441021 addu r2,r2,r4
001ad95c: 00021080 sll r2,r2,0x02
001ad960: 00441021 addu r2,r2,r4
001ad964: 00021080 sll r2,r2,0x02			#times 0x54
001ad968: 3c03801c lui r3,0x801c
001ad96c: 24638b9c addiu r3,r3,0x8b9c			#effect target data
001ad970: afb00010 sw r16,0x0010(r29)
001ad974: 00438021 addu r16,r2,r3			#effect target data
001ad978: 10800050 beq r4,r0,0x001adabc		#branch if 0
001ad97c: afbf0018 sw r31,0x0018(r29)
001ad980: 2c820011 sltiu r2,r4,0x0011			#check if target is legal
001ad984: 1040004e beq r2,r0,0x001adac0		#branch if not
001ad988: 34040001 ori r4,r0,0x0001
001ad98c: 8e040050 lw r4,0x0050(r16)			#load effect data pointer
001ad990: 00000000 nop
001ad994: 10800004 beq r4,r0,0x001ad9a8		#branch if 0
001ad998: 00000000 nop
001ad99c: 0c011180 jal 0x00044600			#00044600 - 0004466c LBA stuff
001ad9a0: 00000000 nop
001ad9a4: ae000050 sw r0,0x0050(r16)			#store 0 effect data pointer
001ad9a8: 92030001 lbu r3,0x0001(r16)			#load current effect target ID
001ad9ac: 00000000 nop
001ad9b0: 1060000b beq r3,r0,0x001ad9e0		#branch if 0
001ad9b4: 00031080 sll r2,r3,0x02
001ad9b8: 00431021 addu r2,r2,r3
001ad9bc: 00021080 sll r2,r2,0x02
001ad9c0: 00431021 addu r2,r2,r3
001ad9c4: 92030000 lbu r3,0x0000(r16)			#load previous effect target's ID?
001ad9c8: 00021080 sll r2,r2,0x02			#* 0x54
001ad9cc: 3c01801c lui r1,0x801c
001ad9d0: 00220821 addu r1,r1,r2
001ad9d4: a0238b9c sb r3,-0x7464(r1)			#store previous effect target's ID back where it was just obtained? using current target's effect data pointer obtain with their ID?
001ad9d8: 0806b67b j 0x001ad9ec
001ad9dc: 00000000 nop
001ad9e0: 92020000 lbu r2,0x0000(r16)
001ad9e4: 3c01801c lui r1,0x801c
001ad9e8: a4229130 sh r2,-0x6ed0(r1)			#if current effect target ID is 0, load previous current effect target ID, and store it in 0x801b9130 (first target effect ID to load for)
001ad9ec: 3c03801c lui r3,0x801c
001ad9f0: 94639130 lhu r3,-0x6ed0(r3)			#load first effect target ID
001ad9f4: 00000000 nop
001ad9f8: 00031080 sll r2,r3,0x02
001ad9fc: 00431021 addu r2,r2,r3
001ada00: 00021080 sll r2,r2,0x02
001ada04: 00431021 addu r2,r2,r3
001ada08: 00021080 sll r2,r2,0x02
001ada0c: 3c01801c lui r1,0x801c
001ada10: 00220821 addu r1,r1,r2
001ada14: a0208b9d sb r0,-0x7463(r1)			#clear first current effect target's ID
001ada18: 3c03801c lui r3,0x801c
001ada1c: 94639134 lhu r3,-0x6ecc(r3)			#current to-animate current effect target ID
001ada20: 00000000 nop
001ada24: 1060001f beq r3,r0,0x001adaa4		#branch if 0
001ada28: 322200ff andi r2,r17,0x00ff
001ada2c: 0806b695 j 0x001ada54
001ada30: 00032080 sll r4,r3,0x02			
001ada34: 00021080 sll r2,r2,0x02
001ada38: 00431021 addu r2,r2,r3
001ada3c: 00021080 sll r2,r2,0x02
001ada40: 3c01801c lui r1,0x801c
001ada44: 00220821 addu r1,r1,r2
001ada48: 90238b9c lbu r3,-0x7464(r1)			#previous effect target ID
001ada4c: 00000000 nop
001ada50: 00032080 sll r4,r3,0x02
001ada54: 00831021 addu r2,r4,r3
001ada58: 00021080 sll r2,r2,0x02
001ada5c: 00431021 addu r2,r2,r3
001ada60: 00021080 sll r2,r2,0x02			#ID * 0x54
001ada64: 3c01801c lui r1,0x801c
001ada68: 00220821 addu r1,r1,r2
001ada6c: 90228b9c lbu r2,-0x7464(r1)			#load their previous effect target's ID
001ada70: 00000000 nop
001ada74: 1440ffef bne r2,r0,0x001ada34		#branch if it's not 0 (loop and find the first unit)
001ada78: 00831021 addu r2,r4,r3
001ada7c: 00031080 sll r2,r3,0x02
001ada80: 00431021 addu r2,r2,r3
001ada84: 00021080 sll r2,r2,0x02
001ada88: 00431021 addu r2,r2,r3
001ada8c: 00021080 sll r2,r2,0x02
001ada90: 3c01801c lui r1,0x801c
001ada94: 00220821 addu r1,r1,r2
001ada98: a0318b9c sb r17,-0x7464(r1)			#else store r17 effect target ID as previous effect ID (I wonder how often that even happens.)
001ada9c: 0806b6ac j 0x001adab0
001adaa0: a2030001 sb r3,0x0001(r16)			#store current effect target ID as 1
001adaa4: 3c01801c lui r1,0x801c
001adaa8: a4229134 sh r2,-0x6ecc(r1)
001adaac: a2000001 sb r0,0x0001(r16)
001adab0: a2000000 sb r0,0x0000(r16)			#clear both current and previous effect target ID
001adab4: 0806b6b2 j 0x001adac8
001adab8: ae000008 sw r0,0x0008(r16)			#store animation as no?
001adabc: 34040001 ori r4,r0,0x0001
001adac0: 0c01127e jal 0x000449f8			#only has a jr r31. error code 0x01 0x67?
001adac4: 34050067 ori r5,r0,0x0067
001adac8: 8fbf0018 lw r31,0x0018(r29)
001adacc: 8fb10014 lw r17,0x0014(r29)
001adad0: 8fb00010 lw r16,0x0010(r29)
001adad4: 27bd0020 addiu r29,r29,0x0020
001adad8: 03e00008 jr r31
001adadc: 00000000 nop