Difference between revisions of "001b153c - 001b1ae8"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m (not done, tired)
m
 
(One intermediate revision by the same user not shown)
Line 11: Line 11:
 
  001b1558: afb1007c sw r17,0x007c(r29)
 
  001b1558: afb1007c sw r17,0x007c(r29)
 
  001b155c: afb00078 sw r16,0x0078(r29)
 
  001b155c: afb00078 sw r16,0x0078(r29)
  001b1560: 8cc30008 lw r3,0x0008(r6) #load...? 0 1 or 2?
+
  001b1560: 8cc30008 lw r3,0x0008(r6) #load effect counter
 
  001b1564: 34020002 ori r2,r0,0x0002
 
  001b1564: 34020002 ori r2,r0,0x0002
  001b1568: 10620033 beq r3,r2,0x001b1638 #branch if == 2
+
  001b1568: 10620033 beq r3,r2,0x001b1638 #branch if engaging
 
  001b156c: 2c620003 sltiu r2,r3,0x0003
 
  001b156c: 2c620003 sltiu r2,r3,0x0003
  001b1570: 10400005 beq r2,r0,0x001b1588 #branch if >= 3
+
  001b1570: 10400005 beq r2,r0,0x001b1588 #branch if Finished
 
  001b1574: 34020001 ori r2,r0,0x0001
 
  001b1574: 34020001 ori r2,r0,0x0001
  001b1578: 10620008 beq r3,r2,0x001b159c #branch if == 1
+
  001b1578: 10620008 beq r3,r2,0x001b159c #branch if Initialising
 
  001b157c: 34020004 ori r2,r0,0x0004
 
  001b157c: 34020004 ori r2,r0,0x0004
 
  001b1580: 0806c6b2 j 0x001b1ac8 #end if 0
 
  001b1580: 0806c6b2 j 0x001b1ac8 #end if 0
  001b1584: 02001021 addu r2,r16,r0 #return r16 (not edited before now - current effect target ID)
+
  001b1584: 02001021 addu r2,r16,r0 #return current effect target ID
 
 
if *0x8 Eff data >= 3
 
 
  001b1588: 34020003 ori r2,r0,0x0003
 
  001b1588: 34020003 ori r2,r0,0x0003
  001b158c: 106200d3 beq r3,r2,0x001b18dc #branch if = 3
+
  001b158c: 106200d3 beq r3,r2,0x001b18dc #branch if finished
 
  001b1590: 02001021 addu r2,r16,r0
 
  001b1590: 02001021 addu r2,r16,r0
  001b1594: 0806c6b2 j 0x001b1ac8 #if > 3, end, r2 = current effect target ID
+
  001b1594: 0806c6b2 j 0x001b1ac8 #otherwise End
 
  001b1598: 00000000 nop
 
  001b1598: 00000000 nop
  
  if *0x8 Eff data == 1
+
  if Initialising:
 
  001b159c: 90c3001d lbu r3,0x001d(r6) #load evade type
 
  001b159c: 90c3001d lbu r3,0x001d(r6) #load evade type
 
  001b15a0: 00000000 nop
 
  001b15a0: 00000000 nop
Line 38: Line 36:
 
  001b15b4: 10800003 beq r4,r0,0x001b15c4 #branch if so
 
  001b15b4: 10800003 beq r4,r0,0x001b15c4 #branch if so
 
  001b15b8: 34110007 ori r17,r0,0x0007 #r17 = 7
 
  001b15b8: 34110007 ori r17,r0,0x0007 #r17 = 7
  001b15bc: 0c011180 jal 0x00044600 #[[00044600 - 0004466c]] - does something with an LBA pointer
+
  001b15bc: 0c011180 jal 0x00044600 #[[00044600 - 0004466c]] - does something with an LBA pointer. clears a space in ram if no effect data?
 
  001b15c0: 00000000 nop
 
  001b15c0: 00000000 nop
  001b15c4: 0c011105 jal 0x00044414 #[[00044414 - 000444d8]] - does more with an LBA pointer
+
  001b15c4: 0c011105 jal 0x00044414 #[[Calculate Available RAM Address]] - find ram address for effect data.
  001b15c8: 34040028 ori r4,r0,0x0028 #input = 28
+
  001b15c8: 34040028 ori r4,r0,0x0028 #Ram space requested = 0x28 bytes
  001b15cc: 00409821 addu r19,r2,r0 #r19 == return, effect data address
+
  001b15cc: 00409821 addu r19,r2,r0 #r19 = effect data address
 
  001b15d0: 3c02801c lui r2,0x801c
 
  001b15d0: 3c02801c lui r2,0x801c
 
  001b15d4: 8c42c098 lw r2,-0x3f68(r2) #load current effect target's data
 
  001b15d4: 8c42c098 lw r2,-0x3f68(r2) #load current effect target's data
Line 50: Line 48:
 
  001b15e4: ae600004 sw r0,0x0004(r19)
 
  001b15e4: ae600004 sw r0,0x0004(r19)
 
  001b15e8: ae600008 sw r0,0x0008(r19)
 
  001b15e8: ae600008 sw r0,0x0008(r19)
  001b15ec: ae600014 sw r0,0x0014(r19) #clear a bunch of effect data
+
  001b15ec: ae600014 sw r0,0x0014(r19) #clear data
  001b15f0: a060000c sb r0,0x000c(r3) #clear 0x13
+
  001b15f0: a060000c sb r0,0x000c(r3) #clear data
 
  001b15f4: 2631ffff addiu r17,r17,0xffff #perform 8 times?
 
  001b15f4: 2631ffff addiu r17,r17,0xffff #perform 8 times?
 
  001b15f8: 0621fffd bgez r17,0x001b15f0 #
 
  001b15f8: 0621fffd bgez r17,0x001b15f0 #
  001b15fc: 2463ffff addiu r3,r3,0xffff #effect data pointer - 1 (clears 0xC to 0x13? was this at all fucking necessary?)
+
  001b15fc: 2463ffff addiu r3,r3,0xffff #clear 0xC to 0x13
 
  001b1600: 3411000f ori r17,r0,0x000f #counter = 0xf
 
  001b1600: 3411000f ori r17,r0,0x000f #counter = 0xf
 
  001b1604: 2662000f addiu r2,r19,0x000f
 
  001b1604: 2662000f addiu r2,r19,0x000f
Line 60: Line 58:
 
  001b160c: 2631ffff addiu r17,r17,0xffff
 
  001b160c: 2631ffff addiu r17,r17,0xffff
 
  001b1610: 0621fffd bgez r17,0x001b1608 #perform 0x10 times
 
  001b1610: 0621fffd bgez r17,0x001b1608 #perform 0x10 times
  001b1614: 2442ffff addiu r2,r2,0xffff #effect data pointer - 1 (clears 0x18 to 0x27? again? serious? what the fuck?)
+
  001b1614: 2442ffff addiu r2,r2,0xffff #clear 0x18 to 0x27
 
  001b1618: 34100001 ori r16,r0,0x0001 #r16 = 1
 
  001b1618: 34100001 ori r16,r0,0x0001 #r16 = 1
 
  001b161c: 3c03801c lui r3,0x801c
 
  001b161c: 3c03801c lui r3,0x801c
Line 66: Line 64:
 
  001b1624: 34020002 ori r2,r0,0x0002
 
  001b1624: 34020002 ori r2,r0,0x0002
 
  001b1628: 0c06aa48 jal 0x001aa920 #[[001aa920 - 001aaaf8]] - map related effect data
 
  001b1628: 0c06aa48 jal 0x001aa920 #[[001aa920 - 001aaaf8]] - map related effect data
  001b162c: ac620008 sw r2,0x0008(r3) #store 2 in 0x8 (some kind of over complicated loop counter?)
+
  001b162c: ac620008 sw r2,0x0008(r3) #increment count (initialised)
 
  001b1630: 0806c6b2 j 0x001b1ac8 #finish
 
  001b1630: 0806c6b2 j 0x001b1ac8 #finish
 
  001b1634: 02001021 addu r2,r16,r0 #return not 0
 
  001b1634: 02001021 addu r2,r16,r0 #return not 0
  
  if *0x8 == 2
+
  if engaging:
 
  001b1638: 34020003 ori r2,r0,0x0003
 
  001b1638: 34020003 ori r2,r0,0x0003
 
  001b163c: 90c3001d lbu r3,0x001d(r6) #load evade type
 
  001b163c: 90c3001d lbu r3,0x001d(r6) #load evade type
Line 82: Line 80:
 
  001b165c: 8e620000 lw r2,0x0000(r19) #load first byte of effect data?
 
  001b165c: 8e620000 lw r2,0x0000(r19) #load first byte of effect data?
 
  001b1660: 00000000 nop
 
  001b1660: 00000000 nop
 +
 +
Effect *0x0 = 0
 
  001b1664: 14400009 bne r2,r0,0x001b168c #branch if not 0 (should be?)
 
  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)
 
  001b1668: 34040005 ori r4,r0,0x0005 #r4 = 5 (PV = 5, current colors + 1/2 color mod)
Line 93: Line 93:
 
  001b1688: 8e620000 lw r2,0x0000(r19) #load first byte again
 
  001b1688: 8e620000 lw r2,0x0000(r19) #load first byte again
 
  001b168c: 00000000 nop
 
  001b168c: 00000000 nop
 +
 +
Effect *0x0 = 1
 
  001b1690: 14520009 bne r2,r18,0x001b16b8 #at this point, only branches if not 0x1.
 
  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?)
 
  001b1694: 34040008 ori r4,r0,0x0008 #PV = 8 (set color, ignore colour mod?)
Line 106: Line 108:
 
  001b16bc: 00000000 nop
 
  001b16bc: 00000000 nop
 
  001b16c0: 28420004 slti r2,r2,0x0004
 
  001b16c0: 28420004 slti r2,r2,0x0004
 +
 +
Effect *0x0 > 4 & Effect *0x8 > 8
 
  001b16c4: 10400085 beq r2,r0,0x001b18dc #branch if greater than 4?
 
  001b16c4: 10400085 beq r2,r0,0x001b18dc #branch if greater than 4?
 
  001b16c8: 00000000 nop
 
  001b16c8: 00000000 nop
Line 122: Line 126:
 
  001b16fc: 00008021 addu r16,r0,r0 #index counter = 0?
 
  001b16fc: 00008021 addu r16,r0,r0 #index counter = 0?
 
  001b1700: 02701021 addu r2,r19,r16 #
 
  001b1700: 02701021 addu r2,r19,r16 #
  001b1704: 9042000c lbu r2,0x000c(r2) #load 0xc++ effect data
+
  001b1704: 9042000c lbu r2,0x000c(r2) #load 0xc + effect data
 
  001b1708: 00000000 nop
 
  001b1708: 00000000 nop
 
  001b170c: 10400005 beq r2,r0,0x001b1724 #exit loop if 0
 
  001b170c: 10400005 beq r2,r0,0x001b1724 #exit loop if 0
Line 129: Line 133:
 
  001b1718: 2a020008 slti r2,r16,0x0008 #
 
  001b1718: 2a020008 slti r2,r16,0x0008 #
 
  001b171c: 1440fff9 bne r2,r0,0x001b1704 #loop while less than 8 attempts
 
  001b171c: 1440fff9 bne r2,r0,0x001b1704 #loop while less than 8 attempts
  001b1720: 02701021 addu r2,r19,r16
+
  001b1720: 02701021 addu r2,r19,r16 #effect data + inner index
 
  001b1724: 0c06b6cf jal 0x001adb3c #[[001adb3c - 001adc20]] - related to map data?
 
  001b1724: 0c06b6cf jal 0x001adb3c #[[001adb3c - 001adc20]] - related to map data?
 
  001b1728: 00000000 nop
 
  001b1728: 00000000 nop
  001b172c: 02701821 addu r3,r19,r16
+
  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.
 
  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)
 
  001b1734: 9063000c lbu r3,0x000c(r3)
 
  001b1738: 00000000 nop
 
  001b1738: 00000000 nop
  001b173c: 1060001f beq r3,r0,0x001b17bc #branch if after all that it's still 0
+
  001b173c: 1060001f beq r3,r0,0x001b17bc #branch if 0.
  001b1740: 00031040 sll r2,r3,0x01
+
  001b1740: 00031040 sll r2,r3,0x01 #some kind of ID then?
 
  001b1744: 00431021 addu r2,r2,r3
 
  001b1744: 00431021 addu r2,r2,r3
 
  001b1748: 00021900 sll r3,r2,0x04
 
  001b1748: 00021900 sll r3,r2,0x04
Line 157: Line 161:
 
  001b1788: 0c06c322 jal 0x001b0c88 #stores element in 0x88 of that map? thing. and what I would guess is palette modification? 0x80 rgb all round.
 
  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
 
  001b178c: 30a5ffff andi r5,r5,0xffff #0x8540 + element
  001b1790: 8e630008 lw r3,0x0008(r19) #load 0x8 of effect data
+
  001b1790: 8e630008 lw r3,0x0008(r19) #load effect word *0x8
 
  001b1794: 34020008 ori r2,r0,0x0008 #
 
  001b1794: 34020008 ori r2,r0,0x0008 #
 
  001b1798: 24630001 addiu r3,r3,0x0001
 
  001b1798: 24630001 addiu r3,r3,0x0001
  001b179c: 10620007 beq r3,r2,0x001b17bc #branch if *0x8 + 1 is 7
+
  001b179c: 10620007 beq r3,r2,0x001b17bc #branch if + 1 is 7
  001b17a0: ae630008 sw r3,0x0008(r19) #store + increment
+
  001b17a0: ae630008 sw r3,0x0008(r19) #store effect counter++
 
  001b17a4: 3c02801c lui r2,0x801c
 
  001b17a4: 3c02801c lui r2,0x801c
 
  001b17a8: 9042858e lbu r2,-0x7a72(r2) #0x801b858e
 
  001b17a8: 9042858e lbu r2,-0x7a72(r2) #0x801b858e

Latest revision as of 04:37, 20 November 2022

< BATTLE.BIN

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