Golem Secondary Effect
Jump to navigation
Jump to search
001b1aec: 3c04801c lui r4,0x801c 001b1af0: 8c84c098 lw r4,-0x3f68(r4) #current effect target data 001b1af4: 27bdffb8 addiu r29,r29,0xffb8 001b1af8: afbf0040 sw r31,0x0040(r29) 001b1afc: 8c830008 lw r3,0x0008(r4) #current secondary effect stage 001b1b00: 34050002 ori r5,r0,0x0002 001b1b04: 10650012 beq r3,r5,0x001b1b50 #branch if engaging 001b1b08: 2c620003 sltiu r2,r3,0x0003 001b1b0c: 10400005 beq r2,r0,0x001b1b24 #branch if finishing or greater 001b1b10: 34020001 ori r2,r0,0x0001 001b1b14: 10620008 beq r3,r2,0x001b1b38 #branch if initialising 001b1b18: 00c01021 addu r2,r6,r0 001b1b1c: 0806c6fd j 0x001b1bf4 001b1b20: 00000000 nop 001b1b24: 34020003 ori r2,r0,0x0003 001b1b28: 1062000c beq r3,r2,0x001b1b5c #branch if finishing 001b1b2c: 00c01021 addu r2,r6,r0 001b1b30: 0806c6fd j 0x001b1bf4 #otherwise throw error lol 001b1b34: 00000000 nop
Initialising Golem graphic: 001b1b38: 34060001 ori r6,r0,0x0001 001b1b3c: a480002c sh r0,0x002c(r4) 001b1b40: a480000c sh r0,0x000c(r4) 001b1b44: a480002e sh r0,0x002e(r4) 001b1b48: 0806c6fc j 0x001b1bf0 001b1b4c: ac850008 sw r5,0x0008(r4) #set effect stage to engaging
Engaging golem graphic: 001b1b50: 34040010 ori r4,r0,0x0010 001b1b54: 0c06c33c jal 0x001b0cf0 #001b0cf0 - 001b0f04 001b1b58: 3405000d ori r5,r0,0x000d #graphic palette ID? 001b1b5c: 0c06a689 jal 0x001a9a24 #001a9a24 - 001a9a38 moves 801b8a4c to 801b8a5c 001b1b60: 00000000 nop 001b1b64: 0c06a66b jal 0x001a99ac #001a99ac - 001a99b8 stores r4 at 801b8a4c (effect motion data?) 001b1b68: 34040230 ori r4,r0,0x0230 001b1b6c: 34021000 ori r2,r0,0x1000 001b1b70: afa00030 sw r0,0x0030(r29) 001b1b74: afa00028 sw r0,0x0028(r29) 001b1b78: 0c06a66f jal 0x001a99bc #001a99bc - 001a99ec copy some data from 801b8a40 to 801b8a50 001b1b7c: afa2002c sw r2,0x002c(r29) 001b1b80: 0c06a661 jal 0x001a9984 #Store first section of on hit effects data store data at 801b8a40 001b1b84: 27a40028 addiu r4,r29,0x0028 #parse stack + 0x28 001b1b88: 0c06c3c2 jal 0x001b0f08 #001b0f08 - 001b0fe8 calculates motion data with what's given? 001b1b8c: 34040010 ori r4,r0,0x0010 # 001b1b90: 0c06a68f jal 0x001a9a3c #001a9a3c - 001a9a50 moves 801b8a5c to 801b8a4c 001b1b94: 00000000 nop 001b1b98: 0c06a67c jal 0x001a99f0 #001a99f0 - 001a9a20 copy some data from 801b8a50 to 801b8a40 001b1b9c: 00000000 nop 001b1ba0: 3c05801c lui r5,0x801c 001b1ba4: 8ca5c098 lw r5,-0x3f68(r5) #effect target data 001b1ba8: 00000000 nop 001b1bac: 84a4002e lh r4,0x002e(r5) #? 001b1bb0: 94a3000c lhu r3,0x000c(r5) # 001b1bb4: 38820001 xori r2,r4,0x0001 #flip 0x1 bitflag 001b1bb8: 0002302b sltu r6,r0,r2 #true if originally 1 001b1bbc: 24630001 addiu r3,r3,0x0001 #0xc* + 1 001b1bc0: 84a2002c lh r2,0x002c(r5) #? 001b1bc4: 00000000 nop 001b1bc8: 14400009 bne r2,r0,0x001b1bf0 #end if not 0 001b1bcc: a4a3000c sh r3,0x000c(r5) #store new 0xC* 001b1bd0: 00031400 sll r2,r3,0x10 001b1bd4: 3c03801c lui r3,0x801c 001b1bd8: 90638846 lbu r3,-0x77ba(r3) 001b1bdc: 00021403 sra r2,r2,0x10 #0xC* 001b1be0: 0062182a slt r3,r3,r2 #check if less than? 001b1be4: 10600002 beq r3,r0,0x001b1bf0 001b1be8: 24820001 addiu r2,r4,0x0001 001b1bec: a4a2002e sh r2,0x002e(r5) #store new 0xC in 0x2e*? 001b1bf0: 00c01021 addu r2,r6,r0 001b1bf4: 8fbf0040 lw r31,0x0040(r29) 001b1bf8: 27bd0048 addiu r29,r29,0x0048 001b1bfc: 03e00008 jr r31 001b1c00: 00000000 nop