001b153c - 001b1ae8
Jump to navigation
Jump to search
Glowing Target secondary effect 001b153c: 3c06801c lui r6,0x801c 001b1540: 8cc6c098 lw r6,-0x3f68(r6) #load current target of effect's data 001b1544: 27bdff70 addiu r29,r29,0xff70 #das big. -0x80. prepare for stack management 001b1548: afbf008c sw r31,0x008c(r29) 001b154c: afb40088 sw r20,0x0088(r29) 001b1550: afb30084 sw r19,0x0084(r29) 001b1554: afb20080 sw r18,0x0080(r29) 001b1558: afb1007c sw r17,0x007c(r29) 001b155c: afb00078 sw r16,0x0078(r29) 001b1560: 8cc30008 lw r3,0x0008(r6) #load effect counter 001b1564: 34020002 ori r2,r0,0x0002 001b1568: 10620033 beq r3,r2,0x001b1638 #branch if engaging 001b156c: 2c620003 sltiu r2,r3,0x0003 001b1570: 10400005 beq r2,r0,0x001b1588 #branch if Finished 001b1574: 34020001 ori r2,r0,0x0001 001b1578: 10620008 beq r3,r2,0x001b159c #branch if Initialising 001b157c: 34020004 ori r2,r0,0x0004 001b1580: 0806c6b2 j 0x001b1ac8 #end if 0 001b1584: 02001021 addu r2,r16,r0 #return current effect target ID 001b1588: 34020003 ori r2,r0,0x0003 001b158c: 106200d3 beq r3,r2,0x001b18dc #branch if finished 001b1590: 02001021 addu r2,r16,r0 001b1594: 0806c6b2 j 0x001b1ac8 #otherwise End 001b1598: 00000000 nop
if Initialising: 001b159c: 90c3001d lbu r3,0x001d(r6) #load evade type 001b15a0: 00000000 nop 001b15a4: 10620148 beq r3,r2,0x001b1ac8 #branch if evade type = nullified by status/element, missed, caught (end, fail) 001b15a8: 00001021 addu r2,r0,r0 #return fail 001b15ac: 8cc40050 lw r4,0x0050(r6) #check if effect data address? 001b15b0: 00000000 nop 001b15b4: 10800003 beq r4,r0,0x001b15c4 #branch if so 001b15b8: 34110007 ori r17,r0,0x0007 #r17 = 7 001b15bc: 0c011180 jal 0x00044600 #00044600 - 0004466c - does something with an LBA pointer. clears a space in ram if no effect data? 001b15c0: 00000000 nop 001b15c4: 0c011105 jal 0x00044414 #Calculate Available RAM Address - find ram address for effect data. 001b15c8: 34040028 ori r4,r0,0x0028 #Ram space requested = 0x28 bytes 001b15cc: 00409821 addu r19,r2,r0 #r19 = effect data address 001b15d0: 3c02801c lui r2,0x801c 001b15d4: 8c42c098 lw r2,-0x3f68(r2) #load current effect target's data 001b15d8: 26630007 addiu r3,r19,0x0007 #effect data + 7 001b15dc: ac530050 sw r19,0x0050(r2) #store effect pointer to target effect data 001b15e0: ae600000 sw r0,0x0000(r19) 001b15e4: ae600004 sw r0,0x0004(r19) 001b15e8: ae600008 sw r0,0x0008(r19) 001b15ec: ae600014 sw r0,0x0014(r19) #clear data 001b15f0: a060000c sb r0,0x000c(r3) #clear data 001b15f4: 2631ffff addiu r17,r17,0xffff #perform 8 times? 001b15f8: 0621fffd bgez r17,0x001b15f0 # 001b15fc: 2463ffff addiu r3,r3,0xffff #clear 0xC to 0x13 001b1600: 3411000f ori r17,r0,0x000f #counter = 0xf 001b1604: 2662000f addiu r2,r19,0x000f 001b1608: a0400018 sb r0,0x0018(r2) 001b160c: 2631ffff addiu r17,r17,0xffff 001b1610: 0621fffd bgez r17,0x001b1608 #perform 0x10 times 001b1614: 2442ffff addiu r2,r2,0xffff #clear 0x18 to 0x27 001b1618: 34100001 ori r16,r0,0x0001 #r16 = 1 001b161c: 3c03801c lui r3,0x801c 001b1620: 8c63c098 lw r3,-0x3f68(r3) #load current effect target's data 001b1624: 34020002 ori r2,r0,0x0002 001b1628: 0c06aa48 jal 0x001aa920 #001aa920 - 001aaaf8 - map related effect data 001b162c: ac620008 sw r2,0x0008(r3) #increment count (initialised) 001b1630: 0806c6b2 j 0x001b1ac8 #finish 001b1634: 02001021 addu r2,r16,r0 #return not 0
if engaging: 001b1638: 34020003 ori r2,r0,0x0003 001b163c: 90c3001d lbu r3,0x001d(r6) #load evade type 001b1640: 8cd30050 lw r19,0x0050(r6) #load effect data pointer 001b1644: 14620002 bne r3,r2,0x001b1650 #branch if evade type = 0x3 (accessory/left hand/right hand evade, arrow guard) 001b1648: 34120001 ori r18,r0,0x0001 #r18 = 1 if not 001b164c: 34120009 ori r18,r0,0x0009 #r18 = 9 if guarded by held item/arrow guard 001b1650: 34020001 ori r2,r0,0x0001 001b1654: 16420018 bne r18,r2,0x001b16b8 #branch if guarded by held item/arrow guard 001b1658: 00000000 nop 001b165c: 8e620000 lw r2,0x0000(r19) #load first byte of effect data? 001b1660: 00000000 nop
Effect *0x0 = 0
001b1664: 14400009 bne r2,r0,0x001b168c #branch if not 0 (should be?) 001b1668: 34040005 ori r4,r0,0x0005 #r4 = 5 (PV = 5, current colors + 1/2 color mod) 001b166c: 00002821 addu r5,r0,r0 #r5 = 0 (PV2 = 0, for palette modification as well... can't tell what it does) 001b1670: 3407001f ori r7,r0,0x001f #r7 = 0x1f (red mod) 001b1674: 90c6001c lbu r6,0x001c(r6) #load misc. ID? 001b1678: 3402001f ori r2,r0,0x001f 001b167c: afa20010 sw r2,0x0010(r29) #store 0x1f in stack (green mod) 001b1680: 0c024cf1 jal 0x000933c4 #color effect? 000933c4 - 00093498 001b1684: afa20014 sw r2,0x0014(r29) #twice (blue mod) 001b1688: 8e620000 lw r2,0x0000(r19) #load first byte again 001b168c: 00000000 nop
Effect *0x0 = 1
001b1690: 14520009 bne r2,r18,0x001b16b8 #at this point, only branches if not 0x1. 001b1694: 34040008 ori r4,r0,0x0008 #PV = 8 (set color, ignore colour mod?) 001b1698: 3c02801c lui r2,0x801c 001b169c: 8c42c098 lw r2,-0x3f68(r2) #target effect data 001b16a0: 34050002 ori r5,r0,0x0002 #PV2 = 2 (get absolute color mod?) 001b16a4: 9046001c lbu r6,0x001c(r2) #load misc. ID? 001b16a8: 00003821 addu r7,r0,r0 #red mod = 0 001b16ac: afa00010 sw r0,0x0010(r29) 001b16b0: 0c024cf1 jal 0x000933c4 #color effect? 000933c4 - 00093498 001b16b4: afa00014 sw r0,0x0014(r29) #green/blue mod = 0 001b16b8: 8e620000 lw r2,0x0000(r19) #first effect byte again 001b16bc: 00000000 nop 001b16c0: 28420004 slti r2,r2,0x0004
Effect *0x0 > 4 & Effect *0x8 > 8
001b16c4: 10400085 beq r2,r0,0x001b18dc #branch if greater than 4? 001b16c8: 00000000 nop 001b16cc: 8e620008 lw r2,0x0008(r19) #that other effect byte 001b16d0: 00000000 nop 001b16d4: 28420008 slti r2,r2,0x0008 #set if less than 8? 001b16d8: 10400038 beq r2,r0,0x001b17bc #branch if not 001b16dc: 00000000 nop 001b16e0: 3c04801c lui r4,0x801c 001b16e4: 2484858e addiu r4,r4,0x858e #0x801b858e 001b16e8: 90820000 lbu r2,0x0000(r4) 001b16ec: 00000000 nop 001b16f0: 18400032 blez r2,0x001b17bc #branch if less than 0? 001b16f4: 00008821 addu r17,r0,r0 #outer index? 001b16f8: 2494ffd6 addiu r20,r4,0xffd6 #r20 = 0x801b8564 001b16fc: 00008021 addu r16,r0,r0 #index counter = 0? 001b1700: 02701021 addu r2,r19,r16 # 001b1704: 9042000c lbu r2,0x000c(r2) #load 0xc + effect data 001b1708: 00000000 nop 001b170c: 10400005 beq r2,r0,0x001b1724 #exit loop if 0 001b1710: 00000000 nop 001b1714: 26100001 addiu r16,r16,0x0001 #index counter + 1 001b1718: 2a020008 slti r2,r16,0x0008 # 001b171c: 1440fff9 bne r2,r0,0x001b1704 #loop while less than 8 attempts 001b1720: 02701021 addu r2,r19,r16 #effect data + inner index 001b1724: 0c06b6cf jal 0x001adb3c #001adb3c - 001adc20 - related to map data? 001b1728: 00000000 nop 001b172c: 02701821 addu r3,r19,r16 #effect data + inner index 001b1730: a062000c sb r2,0x000c(r3) #store return in 0xc effect data + however many loops it took to find a 0 there. 001b1734: 9063000c lbu r3,0x000c(r3) 001b1738: 00000000 nop 001b173c: 1060001f beq r3,r0,0x001b17bc #branch if 0. 001b1740: 00031040 sll r2,r3,0x01 #some kind of ID then? 001b1744: 00431021 addu r2,r2,r3 001b1748: 00021900 sll r3,r2,0x04 001b174c: 00431021 addu r2,r2,r3 001b1750: 00021080 sll r2,r2,0x02 001b1754: 3c03801c lui r3,0x801c 001b1758: 24639278 addiu r3,r3,0x9278 #0x801b9278 001b175c: 00438021 addu r16,r2,r3 #r16 = whatever that's meant to be + ID pointer 001b1760: 02802021 addu r4,r20,r0 #0x801b8564 001b1764: 0c069fd7 jal 0x001a7f5c #001a7f5c - 001a8668 - that's a biggun. dense math, vectors. 001b1768: 26050098 addiu r5,r16,0x0098 #parse + 0x98 001b176c: 3c03801c lui r3,0x801c 001b1770: 8c63c098 lw r3,-0x3f68(r3) #current effect target data 001b1774: 00002021 addu r4,r0,r0 001b1778: a6020094 sh r2,0x0094(r16) #store return at 0x94 of that map? thing. 001b177c: 94650006 lhu r5,0x0006(r3) #load ability element 001b1780: 02003021 addu r6,r16,r0 001b1784: 24a57ac0 addiu r5,r5,0x7ac0 001b1788: 0c06c322 jal 0x001b0c88 #stores element in 0x88 of that map? thing. and what I would guess is palette modification? 0x80 rgb all round. 001b178c: 30a5ffff andi r5,r5,0xffff #0x8540 + element 001b1790: 8e630008 lw r3,0x0008(r19) #load effect word *0x8 001b1794: 34020008 ori r2,r0,0x0008 # 001b1798: 24630001 addiu r3,r3,0x0001 001b179c: 10620007 beq r3,r2,0x001b17bc #branch if + 1 is 7 001b17a0: ae630008 sw r3,0x0008(r19) #store effect counter++ 001b17a4: 3c02801c lui r2,0x801c 001b17a8: 9042858e lbu r2,-0x7a72(r2) #0x801b858e 001b17ac: 26310001 addiu r17,r17,0x0001 001b17b0: 0222102a slt r2,r17,r2 #set if less than 1 001b17b4: 1440ffd2 bne r2,r0,0x001b1700 #loop? if so 001b17b8: 00008021 addu r16,r0,r0 001b17bc: 8e620000 lw r2,0x0000(r19) 001b17c0: 00000000 nop 001b17c4: 28420004 slti r2,r2,0x0004 001b17c8: 10400044 beq r2,r0,0x001b18dc #branch if first effect byte is greater than 4 001b17cc: 00000000 nop 001b17d0: 8e620014 lw r2,0x0014(r19) # 001b17d4: 00000000 nop 001b17d8: 28420010 slti r2,r2,0x0010 001b17dc: 1040003f beq r2,r0,0x001b18dc 001b17e0: 00121040 sll r2,r18,0x01 001b17e4: 00521021 addu r2,r2,r18 001b17e8: 000210c0 sll r2,r2,0x03 001b17ec: 00521023 subu r2,r2,r18 001b17f0: 00022040 sll r4,r2,0x01 001b17f4: 3c01801c lui r1,0x801c 001b17f8: 00240821 addu r1,r1,r4 001b17fc: 9022858e lbu r2,-0x7a72(r1) 001b1800: 00000000 nop 001b1804: 18400035 blez r2,0x001b18dc 001b1808: 00008821 addu r17,r0,r0 001b180c: 00809021 addu r18,r4,r0 001b1810: 00008021 addu r16,r0,r0 001b1814: 02701021 addu r2,r19,r16 001b1818: 90420018 lbu r2,0x0018(r2) 001b181c: 00000000 nop 001b1820: 10400005 beq r2,r0,0x001b1838 001b1824: 00000000 nop 001b1828: 26100001 addiu r16,r16,0x0001 001b182c: 2a020010 slti r2,r16,0x0010 001b1830: 1440fff9 bne r2,r0,0x001b1818 001b1834: 02701021 addu r2,r19,r16 001b1838: 0c06b6cf jal 0x001adb3c 001b183c: 00000000 nop 001b1840: 02701821 addu r3,r19,r16 001b1844: a0620018 sb r2,0x0018(r3) 001b1848: 90630018 lbu r3,0x0018(r3) 001b184c: 00000000 nop 001b1850: 10600022 beq r3,r0,0x001b18dc 001b1854: 00031040 sll r2,r3,0x01 001b1858: 00431021 addu r2,r2,r3 001b185c: 00021900 sll r3,r2,0x04 001b1860: 00431021 addu r2,r2,r3 001b1864: 00021080 sll r2,r2,0x02 001b1868: 3c03801c lui r3,0x801c 001b186c: 24639278 addiu r3,r3,0x9278 001b1870: 00438021 addu r16,r2,r3 001b1874: 3c04801c lui r4,0x801c 001b1878: 24848564 addiu r4,r4,0x8564 001b187c: 02442021 addu r4,r18,r4 001b1880: 0c069fd7 jal 0x001a7f5c 001b1884: 26050098 addiu r5,r16,0x0098 001b1888: 34040001 ori r4,r0,0x0001 001b188c: 34057aca ori r5,r0,0x7aca 001b1890: 02003021 addu r6,r16,r0 001b1894: 0c06c322 jal 0x001b0c88 001b1898: a6020094 sh r2,0x0094(r16) 001b189c: 340200ff ori r2,r0,0x00ff 001b18a0: a2020086 sb r2,0x0086(r16) 001b18a4: a2020085 sb r2,0x0085(r16) 001b18a8: a2020084 sb r2,0x0084(r16) 001b18ac: 8e630014 lw r3,0x0014(r19) 001b18b0: 34020010 ori r2,r0,0x0010 001b18b4: 24630001 addiu r3,r3,0x0001 001b18b8: 10620008 beq r3,r2,0x001b18dc 001b18bc: ae630014 sw r3,0x0014(r19) 001b18c0: 3c01801c lui r1,0x801c 001b18c4: 00320821 addu r1,r1,r18 001b18c8: 9022858e lbu r2,-0x7a72(r1) 001b18cc: 26310001 addiu r17,r17,0x0001 001b18d0: 0222102a slt r2,r17,r2 001b18d4: 1440ffcf bne r2,r0,0x001b1814 001b18d8: 00008021 addu r16,r0,r0 001b18dc: 0c06a689 jal 0x001a9a24 001b18e0: 00008821 addu r17,r0,r0 001b18e4: 0c06a66b jal 0x001a99ac 001b18e8: 34040230 ori r4,r0,0x0230 001b18ec: 34021000 ori r2,r0,0x1000 001b18f0: afa00040 sw r0,0x0040(r29) 001b18f4: afa00038 sw r0,0x0038(r29) 001b18f8: 0c06a66f jal 0x001a99bc 001b18fc: afa2003c sw r2,0x003c(r29) 001b1900: 0c06a661 jal 0x001a9984 001b1904: 27a40038 addiu r4,r29,0x0038 001b1908: 02719021 addu r18,r19,r17 001b190c: 9250000c lbu r16,0x000c(r18) 001b1910: 00000000 nop 001b1914: 1200000c beq r16,r0,0x001b1948 001b1918: 26310001 addiu r17,r17,0x0001 001b191c: 0c06a9f7 jal 0x001aa7dc 001b1920: 02002021 addu r4,r16,r0 001b1924: 14400009 bne r2,r0,0x001b194c 001b1928: 2a220008 slti r2,r17,0x0008 001b192c: 0c06b709 jal 0x001adc24 001b1930: 02002021 addu r4,r16,r0 001b1934: a240000c sb r0,0x000c(r18) 001b1938: 8e620008 lw r2,0x0008(r19) 001b193c: 00000000 nop 001b1940: 2442ffff addiu r2,r2,0xffff 001b1944: ae620008 sw r2,0x0008(r19) 001b1948: 2a220008 slti r2,r17,0x0008 001b194c: 1440ffef bne r2,r0,0x001b190c 001b1950: 02719021 addu r18,r19,r17 001b1954: 00008821 addu r17,r0,r0 001b1958: 02719021 addu r18,r19,r17 001b195c: 92500018 lbu r16,0x0018(r18) 001b1960: 00000000 nop 001b1964: 1200000c beq r16,r0,0x001b1998 001b1968: 26310001 addiu r17,r17,0x0001 001b196c: 0c06a9f7 jal 0x001aa7dc 001b1970: 02002021 addu r4,r16,r0 001b1974: 14400009 bne r2,r0,0x001b199c 001b1978: 2a220010 slti r2,r17,0x0010 001b197c: 0c06b709 jal 0x001adc24 001b1980: 02002021 addu r4,r16,r0 001b1984: a2400018 sb r0,0x0018(r18) 001b1988: 8e620014 lw r2,0x0014(r19) 001b198c: 00000000 nop 001b1990: 2442ffff addiu r2,r2,0xffff 001b1994: ae620014 sw r2,0x0014(r19) 001b1998: 2a220010 slti r2,r17,0x0010 001b199c: 1440ffef bne r2,r0,0x001b195c 001b19a0: 02719021 addu r18,r19,r17 001b19a4: 0c06a68f jal 0x001a9a3c 001b19a8: 00000000 nop 001b19ac: 0c06a67c jal 0x001a99f0 001b19b0: 00000000 nop 001b19b4: 3c02801c lui r2,0x801c 001b19b8: 8c42c098 lw r2,-0x3f68(r2) 001b19bc: 00000000 nop 001b19c0: 9043001d lbu r3,0x001d(r2) 001b19c4: 34020001 ori r2,r0,0x0001 001b19c8: 1462002c bne r3,r2,0x001b1a7c 001b19cc: 00000000 nop 001b19d0: 8e620000 lw r2,0x0000(r19) 001b19d4: 00000000 nop 001b19d8: 14400009 bne r2,r0,0x001b1a00 001b19dc: 34040500 ori r4,r0,0x0500 001b19e0: 00002821 addu r5,r0,r0 001b19e4: 34060002 ori r6,r0,0x0002 001b19e8: 27a70048 addiu r7,r29,0x0048 001b19ec: 2402ff80 addiu r2,r0,0xff80 001b19f0: afa20050 sw r2,0x0050(r29) 001b19f4: afa2004c sw r2,0x004c(r29) 001b19f8: 0c06ad64 jal 0x001ab590 001b19fc: afa20048 sw r2,0x0048(r29) 001b1a00: 8e630000 lw r3,0x0000(r19) 001b1a04: 34020002 ori r2,r0,0x0002 001b1a08: 14620009 bne r3,r2,0x001b1a30 001b1a0c: 34040500 ori r4,r0,0x0500 001b1a10: 00002821 addu r5,r0,r0 001b1a14: 34060002 ori r6,r0,0x0002 001b1a18: 27a70048 addiu r7,r29,0x0048 001b1a1c: 340202e4 ori r2,r0,0x02e4 001b1a20: afa20050 sw r2,0x0050(r29) 001b1a24: afa2004c sw r2,0x004c(r29) 001b1a28: 0c06ad64 jal 0x001ab590 001b1a2c: afa20048 sw r2,0x0048(r29) 001b1a30: 8e700000 lw r16,0x0000(r19) 001b1a34: 34020004 ori r2,r0,0x0004 001b1a38: 16020010 bne r16,r2,0x001b1a7c 001b1a3c: 34040500 ori r4,r0,0x0500 001b1a40: 00002821 addu r5,r0,r0 001b1a44: 3406000c ori r6,r0,0x000c 001b1a48: 27a70048 addiu r7,r29,0x0048 001b1a4c: afa00050 sw r0,0x0050(r29) 001b1a50: afa0004c sw r0,0x004c(r29) 001b1a54: 0c06ad64 jal 0x001ab590 001b1a58: afa00048 sw r0,0x0048(r29) 001b1a5c: 34041440 ori r4,r0,0x1440 001b1a60: 00002821 addu r5,r0,r0 001b1a64: 34060009 ori r6,r0,0x0009 001b1a68: 27a70058 addiu r7,r29,0x0058 001b1a6c: afb00060 sw r16,0x0060(r29) 001b1a70: afb0005c sw r16,0x005c(r29) 001b1a74: 0c06ac75 jal 0x001ab1d4 001b1a78: afb00058 sw r16,0x0058(r29) 001b1a7c: 8e650004 lw r5,0x0004(r19) 001b1a80: 00000000 nop 001b1a84: 38a20001 xori r2,r5,0x0001 001b1a88: 0002802b sltu r16,r0,r2 001b1a8c: 8e620000 lw r2,0x0000(r19) 001b1a90: 8e630008 lw r3,0x0008(r19) 001b1a94: 24440001 addiu r4,r2,0x0001 001b1a98: 1460000a bne r3,r0,0x001b1ac4 001b1a9c: ae640000 sw r4,0x0000(r19) 001b1aa0: 8e620014 lw r2,0x0014(r19) 001b1aa4: 00000000 nop 001b1aa8: 14400007 bne r2,r0,0x001b1ac8 001b1aac: 02001021 addu r2,r16,r0 001b1ab0: 2882001f slti r2,r4,0x001f 001b1ab4: 14400004 bne r2,r0,0x001b1ac8 001b1ab8: 02001021 addu r2,r16,r0 001b1abc: 24a20001 addiu r2,r5,0x0001 001b1ac0: ae620004 sw r2,0x0004(r19) 001b1ac4: 02001021 addu r2,r16,r0 001b1ac8: 8fbf008c lw r31,0x008c(r29) 001b1acc: 8fb40088 lw r20,0x0088(r29) 001b1ad0: 8fb30084 lw r19,0x0084(r29) 001b1ad4: 8fb20080 lw r18,0x0080(r29) 001b1ad8: 8fb1007c lw r17,0x007c(r29) 001b1adc: 8fb00078 lw r16,0x0078(r29) 001b1ae0: 27bd0090 addiu r29,r29,0x0090 001b1ae4: 03e00008 jr r31 001b1ae8: 00000000 nop