Difference between revisions of "001ad944 - 001adadc"
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: | ||
− | # | + | 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