Difference between revisions of "Palette Modification"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(added return locaions)
 
(6 intermediate revisions by the same user not shown)
Line 644: Line 644:
  
 
== Return Locations ==
 
== Return Locations ==
000684e0: [[Store_Palette_data_for_each_unit]]
+
000684e0: [[Store_Palette_data_for_each_unit]]
 
+
00068504: [[Store_Palette_data_for_each_unit]]
00068504: [[Store_Palette_data_for_each_unit]]
+
0006861c: [[Palette_modification_based_on_team]]
 +
000931ac: [[00093170_-_000931c0]]
 +
00074784: [[000746ac_-_000747b4]]
 +
00091fdc: [[000912a4_-_00092598]]
 +
0009204c: [[000912a4_-_00092598]]
 +
000923ec: [[000912a4_-_00092598]]
 +
0009245c: [[000912a4_-_00092598]]
 +
000ec010: [[Background_Tile_Color_For_Targeting/Movement]]
 +
000ec034: [[Background_Tile_Color_For_Targeting/Movement]]
 +
000ec164: [[Background_Tile_Color_For_Targeting/Movement]]
 +
000ec188: [[Background_Tile_Color_For_Targeting/Movement]]
 +
000ec6b8: [[Background_Tile_Color_For_Targeting/Movement]]
 +
000ec6dc: [[Background_Tile_Color_For_Targeting/Movement]]
 +
000817bc: [[Calculate_XYZ,_UV,_and_Palette_of_Post_Action_Text]]
 +
[[000931c4_-_000933c0]]
 +
[[Background_Tile_Color_For_Targeting/Movement_(Partial_Tiles)]]
 +
[[000ec718_-_000ee100]]

Latest revision as of 18:12, 28 June 2025

0008f710: 27bdfff0 addiu r29,r29,0xfff0
0008f714: afb10004 sw r17,0x0004(r29)
0008f718: 00808821 addu r17,r4,r0		r17 = Preset Value (9 in Team checking section)
0008f71c: afb20008 sw r18,0x0008(r29)
0008f720: 00a09021 addu r18,r5,r0		r18 = PV 2
0008f724: afb00000 sw r16,0x0000(r29)
0008f728: 00e08021 addu r16,r7,r0		r16 = Unit/Color ID
0008f72c: 8fa20020 lw r2,0x0020(r29)		Load ?
0008f730: 97ad0024 lhu r13,0x0024(r29)		Load Red Mod
0008f734: 97ae0028 lhu r14,0x0028(r29)		Load Green Mod
0008f738: 97af002c lhu r15,0x002c(r29)		Load Blue Mod
0008f73c: 34030001 ori r3,r0,0x0001		r3 = 1
0008f740: 1443012c bne r2,r3,0x0008fbf4		Branch if ? != 1
0008f744: afb3000c sw r19,0x000c(r29)
0008f748: 00061080 sll r2,r6,0x02		Section ID * 4
0008f74c: 00461021 addu r2,r2,r6		ID * 5
0008f750: 00021080 sll r2,r2,0x02		ID * 20
0008f754: 00461023 subu r2,r2,r6		ID * 19
0008f758: 00021180 sll r2,r2,0x06		ID * 1216
0008f75c: 00461021 addu r2,r2,r6		ID * 1217
0008f760: 00021040 sll r2,r2,0x01		ID * 2434
0008f764: 3c03800a lui r3,0x800a
0008f768: 24639676 addiu r3,r3,0x9676
0008f76c: 00433821 addu r7,r2,r3		r7 = Palette Color Data Pointer
0008f770: 00006021 addu r12,r0,r0		Counter = 0
0008f774: 3c182aaa lui r24,0x2aaa
0008f778: 3718aaab ori r24,r24,0xaaab
0008f77c: 00408021 addu r16,r2,r0		r16 = Palette Color Data Mod
0008f780: 24630700 addiu r3,r3,0x0700
0008f784: 02035021 addu r10,r16,r3		r10 = Raw Palette Mod
0008f788: 000c10c0 sll r2,r12,0x03		Counter * 8
0008f78c: 004c1023 subu r2,r2,r12		Counter * 7
0008f790: 00472821 addu r5,r2,r7
0008f794: 90a20000 lbu r2,0x0000(r5)		Load Red
0008f798: 90a30001 lbu r3,0x0001(r5)		Load Green
0008f79c: 90a40002 lbu r4,0x0002(r5)		Load Blue
0008f7a0: 00431021 addu r2,r2,r3		Red + Green
0008f7a4: 00441021 addu r2,r2,r4		Red + Green + Blue
0008f7a8: 104000dc beq r2,r0,0x0008fb1c		Branch if no color is present
0008f7ac: 2e22000b sltiu r2,r17,0x000b
0008f7b0: 10400097 beq r2,r0,0x0008fa10		Branch if PV >= 0xb
0008f7b4: 00111080 sll r2,r17,0x02		PV * 4
0008f7b8: 3c018007 lui r1,0x8007
0008f7bc: 00220821 addu r1,r1,r2
0008f7c0: 8c2282cc lw r2,-0x7d34(r1)		Load Code Pointer
0008f7c4: 00000000 nop
0008f7c8: 00400008 jr r2
0008f7cc: 00000000 nop
  • PV = 0*
0008f7d0: 000c10c0 sll r2,r12,0x03		Counter * 8
0008f7d4: 004c1023 subu r2,r2,r12		Counter * 7
0008f7d8: 00471021 addu r2,r2,r7
0008f7dc: 90430000 lbu r3,0x0000(r2)		Load Red
0008f7e0: 00000000 nop
0008f7e4: 01a35821 addu r11,r13,r3		r11 = Red Mod + Red
0008f7e8: 90430001 lbu r3,0x0001(r2)		Load Green
0008f7ec: 90420002 lbu r2,0x0002(r2)		Load Blue
0008f7f0: 01c34821 addu r9,r14,r3		r9 = Green Mod + Green
0008f7f4: 08023e84 j 0x0008fa10
0008f7f8: 01e24021 addu r8,r15,r2		r8 = Blue Mod + Blue
  • PV = 1*
0008f7fc: 000c10c0 sll r2,r12,0x03		Counter * 8
0008f800: 004c1023 subu r2,r2,r12		Counter * 7
0008f804: 00471021 addu r2,r2,r7
0008f808: 90430000 lbu r3,0x0000(r2)		Load Red
0008f80c: 90440001 lbu r4,0x0001(r2)		Load Green
0008f810: 90420002 lbu r2,0x0002(r2)		Load Blue
0008f814: 00031842 srl r3,r3,0x01		Red / 2
0008f818: 006d5821 addu r11,r3,r13		r11 = Red / 2 + Red Mod
0008f81c: 00042042 srl r4,r4,0x01		Green / 2
0008f820: 008e4821 addu r9,r4,r14		r9 = Green / 2 + Green Mod
0008f824: 00021042 srl r2,r2,0x01		Blue / 2
0008f828: 08023e84 j 0x0008fa10
0008f82c: 004f4021 addu r8,r2,r15		r8 = Blue / 2 + Blue Mod
  • PV = 2*
0008f830: 000c10c0 sll r2,r12,0x03		Counter * 8
0008f834: 004c1023 subu r2,r2,r12		Counter * 7
0008f838: 00471021 addu r2,r2,r7
0008f83c: 90430000 lbu r3,0x0000(r2)		Load Red
0008f840: 90450001 lbu r5,0x0001(r2)		Load Green
0008f844: 90420002 lbu r2,0x0002(r2)		Load Blue
0008f848: 00031840 sll r3,r3,0x01		Red * 2
0008f84c: 00052040 sll r4,r5,0x01		Green * 2
0008f850: 00852021 addu r4,r4,r5		Green * 3
0008f854: 00641821 addu r3,r3,r4		Red * 2 + Green * 3
0008f858: 00621821 addu r3,r3,r2		Red * 2 + Green * 3 + Blue
0008f85c: 00780018 mult r3,r24			(R * 2 + G * 3 + B) * 0.16666667
0008f860: 00001010 mfhi r2			r2 = Color Mod
0008f864: 08023e6b j 0x0008f9ac			(R/G/B Mod + Color Mod)
0008f868: 00031fc3 sra r3,r3,0x1f
  • PV = 3*
0008f86c: 000c10c0 sll r2,r12,0x03		Counter * 8
0008f870: 004c1023 subu r2,r2,r12		Counter * 7
0008f874: 00471021 addu r2,r2,r7
0008f878: 90440000 lbu r4,0x0000(r2)		Load Red
0008f87c: 90450001 lbu r5,0x0001(r2)		Load Green
0008f880: 90420002 lbu r2,0x0002(r2)		Load Blue
0008f884: 00042040 sll r4,r4,0x01		Red * 2
0008f888: 00051840 sll r3,r5,0x01		Green * 2
0008f88c: 00651821 addu r3,r3,r5		Green * 3
0008f890: 00832021 addu r4,r4,r3		Red * 2 + Green * 3
0008f894: 00822021 addu r4,r4,r2		Red * 2 + Green * 3 + Blue
0008f898: 00980018 mult r4,r24			(R * 2 + G * 3 + B) * 0.16666667
0008f89c: 000427c3 sra r4,r4,0x1f
0008f8a0: 00001010 mfhi r2			r2 = Color Mod
0008f8a4: 00021043 sra r2,r2,0x01		Color Mod / 2
0008f8a8: 08023e6c j 0x0008f9b0			(R/G/B Mod + Color Mod)
0008f8ac: 00441023 subu r2,r2,r4

  • PV = 4, 9*
0008f8b0: 000c1040 sll r2,r12,0x01		Counter * 2
0008f8b4: 004a1021 addu r2,r2,r10
0008f8b8: 94430000 lhu r3,0x0000(r2)		Load Raw Color
0008f8bc: 00000000 nop
0008f8c0: 3062001f andi r2,r3,0x001f		r2 = Red
0008f8c4: 01a25821 addu r11,r13,r2		r11 = Red Mod + Red
0008f8c8: 306203e0 andi r2,r3,0x03e0
0008f8cc: 00021142 srl r2,r2,0x05		r2 = Green
0008f8d0: 01c24821 addu r9,r14,r2		r9 = Green Mod + Green
0008f8d4: 30637c00 andi r3,r3,0x7c00
0008f8d8: 00031a82 srl r3,r3,0x0a		r3 = Blue
0008f8dc: 08023e84 j 0x0008fa10
0008f8e0: 01e34021 addu r8,r15,r3		r8 = Blue Mod + Blue

  • PV = 5*
0008f8e4: 000c1040 sll r2,r12,0x01		Counter * 2
0008f8e8: 004a1021 addu r2,r2,r10
0008f8ec: 94430000 lhu r3,0x0000(r2)		Load Raw Color
0008f8f0: 00000000 nop
0008f8f4: 3062001f andi r2,r3,0x001f		r2 = Red
0008f8f8: 00021043 sra r2,r2,0x01		Red / 2
0008f8fc: 01a25821 addu r11,r13,r2		r11 = Red Mod + Red / 2
0008f900: 306203e0 andi r2,r3,0x03e0
0008f904: 00021182 srl r2,r2,0x06		r2 = Green / 2
0008f908: 01c24821 addu r9,r14,r2		r9 = Green Mod + Green / 2
0008f90c: 30637c00 andi r3,r3,0x7c00
0008f910: 00031ac2 srl r3,r3,0x0b		r3 = Blue / 2
0008f914: 08023e84 j 0x0008fa10
0008f918: 01e34021 addu r8,r15,r3		r8 = Blue Mod + Blue / 2

  • PV = 6*
0008f91c: 000c1040 sll r2,r12,0x01		Counter * 2
0008f920: 004a1021 addu r2,r2,r10
0008f924: 94430000 lhu r3,0x0000(r2)		Load Raw Color
0008f928: 00000000 nop
0008f92c: 306403e0 andi r4,r3,0x03e0
0008f930: 30657c00 andi r5,r3,0x7c00
0008f934: 3063001f andi r3,r3,0x001f		r3 = Red
0008f938: 00031840 sll r3,r3,0x01		Red * 2
0008f93c: 00042142 srl r4,r4,0x05		r4 = Green
0008f940: 00041040 sll r2,r4,0x01		Green * 2
0008f944: 00441021 addu r2,r2,r4		Green * 3
0008f948: 00621821 addu r3,r3,r2		Red * 2 + Green * 3
0008f94c: 00052a82 srl r5,r5,0x0a		r5 = Blue
0008f950: 00651821 addu r3,r3,r5		Red * 2 + Green * 3 + Blue
0008f954: 00780018 mult r3,r24			(R * 2 + G * 3 + B) * 0.16666667
0008f958: 00001010 mfhi r2			r2 = Color Mod
0008f95c: 08023e6b j 0x0008f9ac			(R/G/B Mod + Color Mod)
0008f960: 00031fc3 sra r3,r3,0x1f

  • PV = 7*
0008f964: 000c1040 sll r2,r12,0x01		Counter * 2
0008f968: 004a1021 addu r2,r2,r10
0008f96c: 94430000 lhu r3,0x0000(r2)		Load Raw Color
0008f970: 00000000 nop
0008f974: 306403e0 andi r4,r3,0x03e0
0008f978: 30657c00 andi r5,r3,0x7c00
0008f97c: 3063001f andi r3,r3,0x001f		r3 = Red
0008f980: 00031840 sll r3,r3,0x01		Red * 2
0008f984: 00042142 srl r4,r4,0x05		r4 = Green
0008f988: 00041040 sll r2,r4,0x01		Green * 2
0008f98c: 00441021 addu r2,r2,r4		Green * 3
0008f990: 00621821 addu r3,r3,r2		Red * 2 + Green * 3
0008f994: 00052a82 srl r5,r5,0x0a		r5 = Blue
0008f998: 00651821 addu r3,r3,r5		Red * 2 + Green * 3 + Blue
0008f99c: 00780018 mult r3,r24			(R * 2 + G * 3 + B) * 0.16666667
0008f9a0: 00031fc3 sra r3,r3,0x1f
0008f9a4: 00001010 mfhi r2			r2 = Color Mod
0008f9a8: 00021043 sra r2,r2,0x01		Color Mod / 2
0008f9ac: 00431023 subu r2,r2,r3
0008f9b0: 01a25821 addu r11,r13,r2		r11 = Red Mod + Color Mod / 2
0008f9b4: 01c24821 addu r9,r14,r2		r9 = Green Mod + Color Mod / 2
0008f9b8: 08023e84 j 0x0008fa10
0008f9bc: 01e24021 addu r8,r15,r2		r8 = Blue Mod + Color Mod / 2

  • PV = 8*
0008f9c0: 000c1040 sll r2,r12,0x01		Counter * 2
0008f9c4: 004a1021 addu r2,r2,r10
0008f9c8: 94430000 lhu r3,0x0000(r2)		Load Raw Color
0008f9cc: 00000000 nop
0008f9d0: 306b001f andi r11,r3,0x001f		r11 = Red
0008f9d4: 306203e0 andi r2,r3,0x03e0
0008f9d8: 00024942 srl r9,r2,0x05		r9 = Green
0008f9dc: 30637c00 andi r3,r3,0x7c00
0008f9e0: 08023e84 j 0x0008fa10
0008f9e4: 00034282 srl r8,r3,0x0a		r8 = Blue

  • PV = 10*
0008f9e8: 340c000f ori r12,r0,0x000f		Counter = 0xf
0008f9ec: 26020078 addiu r2,r16,0x0078		Palette Color Data Mod + 0x78
0008f9f0: 3c01800a lui r1,0x800a
0008f9f4: 00220821 addu r1,r1,r2
0008f9f8: a02095fa sb r0,-0x6a06(r1)		Store ? = 0
0008f9fc: 258cffff addiu r12,r12,0xffff		Counter --
0008fa00: 0581fffb bgez r12,0x0008f9f0		Branch if Counter >= 0
0008fa04: 2442fff8 addiu r2,r2,0xfff8		Color Data Mod -= 8
0008fa08: 0802400b j 0x0009002c
0008fa0c: 00000000 nop
0008fa10: 000b1400 sll r2,r11,0x10
0008fa14: 00021403 sra r2,r2,0x10
0008fa18: 28420020 slti r2,r2,0x0020
0008fa1c: 14400002 bne r2,r0,0x0008fa28		Branch if Red Mod < 0x20
0008fa20: 00091400 sll r2,r9,0x10
0008fa24: 340b001f ori r11,r0,0x001f		Red Mod = 0x1f
0008fa28: 00021403 sra r2,r2,0x10
0008fa2c: 28420020 slti r2,r2,0x0020
0008fa30: 14400002 bne r2,r0,0x0008fa3c		Branch if Green Mod < 0x20
0008fa34: 00081400 sll r2,r8,0x10
0008fa38: 3409001f ori r9,r0,0x001f		Green Mod = 0x1f
0008fa3c: 00021403 sra r2,r2,0x10
0008fa40: 28420020 slti r2,r2,0x0020
0008fa44: 14400002 bne r2,r0,0x0008fa50		Branch if Blue Mod < 0x20
0008fa48: 000b1400 sll r2,r11,0x10
0008fa4c: 3408001f ori r8,r0,0x001f		Blue Mod = 0x1f
0008fa50: 1c400002 bgtz r2,0x0008fa5c		Branch if Red Mod > 0
0008fa54: 00091400 sll r2,r9,0x10
0008fa58: 00005821 addu r11,r0,r0		Red Mod = 0
0008fa5c: 1c400002 bgtz r2,0x0008fa68		Branch if Green Mod > 0
0008fa60: 00081400 sll r2,r8,0x10
0008fa64: 00004821 addu r9,r0,r0		Green Mod = 0
0008fa68: 1c400002 bgtz r2,0x0008fa74		Branch if Blue Mod > 0
0008fa6c: 01691025 or r2,r11,r9
0008fa70: 00004021 addu r8,r0,r0		Blue Mod = 0
0008fa74: 01021025 or r2,r8,r2
0008fa78: 00021400 sll r2,r2,0x10
0008fa7c: 14400002 bne r2,r0,0x0008fa88		Branch if a color is present
0008fa80: 00000000 nop
0008fa84: 34080001 ori r8,r0,0x0001		Blue Mod = 1
0008fa88: 12400010 beq r18,r0,0x0008facc	Branch if PV2 = 0
0008fa8c: 000c18c0 sll r3,r12,0x03		Counter * 8
0008fa90: 006c1823 subu r3,r3,r12		Counter * 7
0008fa94: 00671821 addu r3,r3,r7
0008fa98: 90620000 lbu r2,0x0000(r3)		Load Red
0008fa9c: 90640001 lbu r4,0x0001(r3)		Load Green
0008faa0: 01621023 subu r2,r11,r2		Red Mod - Red
0008faa4: 2442001f addiu r2,r2,0x001f		Red Mod - Red + 0x1f
0008faa8: 01242023 subu r4,r9,r4		Green Mod - Green
0008faac: a0620004 sb r2,0x0004(r3)		Store Modified Red
0008fab0: 90620002 lbu r2,0x0002(r3)		Load Blue
0008fab4: 2484001f addiu r4,r4,0x001f		Green Mod - Green + 0x1f
0008fab8: a0640005 sb r4,0x0005(r3)		Store Modified Green
0008fabc: 01021023 subu r2,r8,r2		Blue Mod - Blue
0008fac0: 2442001f addiu r2,r2,0x001f		Blue Mod - Blue + 0x1f
0008fac4: 08023ecb j 0x0008fb2c
0008fac8: a0620006 sb r2,0x0006(r3)		Store Modified Blue

  • PV2 = 0*
0008facc: 006c1823 subu r3,r3,r12		Counter * 7
0008fad0: 00671821 addu r3,r3,r7
0008fad4: 3c04800e lui r4,0x800e
0008fad8: 24844ea4 addiu r4,r4,0x4ea4		r4 = Modified Palette Pointer
0008fadc: 00061240 sll r2,r6,0x09		Section ID * 512
0008fae0: 00441021 addu r2,r2,r4
0008fae4: 000c2840 sll r5,r12,0x01		Counter * 2
0008fae8: 00a22821 addu r5,r5,r2
0008faec: 00091140 sll r2,r9,0x05		Green * 32
0008faf0: 01621021 addu r2,r11,r2		Red + Green * 32
0008faf4: 00082280 sll r4,r8,0x0a		Blue * 1024
0008faf8: a06b0000 sb r11,0x0000(r3)		Store Modified Red
0008fafc: a0690001 sb r9,0x0001(r3)		Store Modified Green
0008fb00: a0680002 sb r8,0x0002(r3)		Store Modified Blue
0008fb04: 90630003 lbu r3,0x0003(r3)		Load Alpha Flag
0008fb08: 00441021 addu r2,r2,r4		R + G * 32 + B * 1024
0008fb0c: 00031bc0 sll r3,r3,0x0f		Alpha * 0x8000
0008fb10: 00431021 addu r2,r2,r3		r2 = Complete Color
0008fb14: 08023ecb j 0x0008fb2c
0008fb18: a4a20000 sh r2,0x0000(r5)		Store Modified Palette Color
0008fb1c: 3402001f ori r2,r0,0x001f		r2 = 0x1f
0008fb20: a0a20006 sb r2,0x0006(r5)		Store Blue Mod = 0x1f
0008fb24: a0a20005 sb r2,0x0005(r5)		Store Green Mod = 0x1f
0008fb28: a0a20004 sb r2,0x0004(r5)		Store Red Mod = 0x1f
0008fb2c: 258c0001 addiu r12,r12,0x0001		Counter ++
0008fb30: 29820100 slti r2,r12,0x0100
0008fb34: 1440ff14 bne r2,r0,0x0008f788		Branch if Counter < 0x100
0008fb38: 00000000 nop
0008fb3c: 1240001c beq r18,r0,0x0008fbb0	Branch if PV2 = 0
0008fb40: 00006021 addu r12,r0,r0		Counter = 0
0008fb44: 34040001 ori r4,r0,0x0001		r4 = 1
0008fb48: 00061080 sll r2,r6,0x02		Section ID * 4
0008fb4c: 00461021 addu r2,r2,r6		ID * 5
0008fb50: 00021080 sll r2,r2,0x02		ID * 20
0008fb54: 00461023 subu r2,r2,r6		ID * 19
0008fb58: 00021180 sll r2,r2,0x06		ID * 1216
0008fb5c: 00461021 addu r2,r2,r6		ID * 1217
0008fb60: 00021040 sll r2,r2,0x01		ID * 2434
0008fb64: 3c03800a lui r3,0x800a
0008fb68: 246395f6 addiu r3,r3,0x95f6
0008fb6c: 00431821 addu r3,r2,r3
0008fb70: 34020009 ori r2,r0,0x0009		r2 = 9
0008fb74: a0640000 sb r4,0x0000(r3)		Store ? = 1
0008fb78: a0600001 sb r0,0x0001(r3)		Store ? = 0
0008fb7c: a0600002 sb r0,0x0002(r3)		Store ? = 0
0008fb80: 16220005 bne r17,r2,0x0008fb98	Branch if PV != 9
0008fb84: a0720003 sb r18,0x0003(r3)		Store ? = PV2
0008fb88: a0640004 sb r4,0x0004(r3)		Store ? = 1
0008fb8c: a06d0005 sb r13,0x0005(r3)		Store Red Mod 
0008fb90: a06e0006 sb r14,0x0006(r3)		Store Green Mod
0008fb94: a06f0007 sb r15,0x0007(r3)		Store Blue Mod
0008fb98: 258c0001 addiu r12,r12,0x0001		Counter ++
0008fb9c: 29820010 slti r2,r12,0x0010
0008fba0: 1440fff3 bne r2,r0,0x0008fb70		Branch if Counter < 0x10
0008fba4: 24630008 addiu r3,r3,0x0008		Pointer += 8
0008fba8: 0802400b j 0x0009002c
0008fbac: 00000000 nop
  • PV2 = 0*
0008fbb0: 340c000f ori r12,r0,0x000f		Counter = 0xf
0008fbb4: 00061080 sll r2,r6,0x02		Section ID * 4
0008fbb8: 00461021 addu r2,r2,r6		ID * 5
0008fbbc: 00021080 sll r2,r2,0x02		ID * 20
0008fbc0: 00461023 subu r2,r2,r6		ID * 19
0008fbc4: 00021180 sll r2,r2,0x06		ID * 1216
0008fbc8: 00461021 addu r2,r2,r6		ID * 1217
0008fbcc: 00021040 sll r2,r2,0x01		ID * 2434
0008fbd0: 24420078 addiu r2,r2,0x0078		ID * 2434 + 120
0008fbd4: 3c01800a lui r1,0x800a
0008fbd8: 00220821 addu r1,r1,r2
0008fbdc: a02095f6 sb r0,-0x6a0a(r1)		Store ? = 0
0008fbe0: 258cffff addiu r12,r12,0xffff		Counter --
0008fbe4: 0581fffb bgez r12,0x0008fbd4		Branch if Counter >= 0
0008fbe8: 2442fff8 addiu r2,r2,0xfff8		Pointer -= 8
0008fbec: 08024009 j 0x00090024
0008fbf0: 34020001 ori r2,r0,0x0001		r2 = 1
  • ? != 1*
0008fbf4: 00006021 addu r12,r0,r0		r12 = 0
0008fbf8: 3c072aaa lui r7,0x2aaa
0008fbfc: 34e7aaab ori r7,r7,0xaaab
0008fc00: 00061080 sll r2,r6,0x02		Section ID * 4
0008fc04: 00461021 addu r2,r2,r6		ID * 5
0008fc08: 00021080 sll r2,r2,0x02		ID * 20
0008fc0c: 00461023 subu r2,r2,r6		ID * 19
0008fc10: 00021180 sll r2,r2,0x06		ID * 1216
0008fc14: 00461021 addu r2,r2,r6		ID * 1217
0008fc18: 00021040 sll r2,r2,0x01		Palette Mod = ID * 2434
0008fc1c: 3c03800a lui r3,0x800a
0008fc20: 24639676 addiu r3,r3,0x9676		r3 = Palette Color Data Pointer
0008fc24: 00409821 addu r19,r2,r0		r19 = Palette Mod
0008fc28: 24620700 addiu r2,r3,0x0700
0008fc2c: 0262c821 addu r25,r19,r2		r25 = Raw Palette Data Pointer
0008fc30: 0010c100 sll r24,r16,0x04		r24 = ID * 16
0008fc34: 02631821 addu r3,r19,r3
0008fc38: 001010c0 sll r2,r16,0x03		ID * 8
0008fc3c: 00501023 subu r2,r2,r16		ID * 7
0008fc40: 00021100 sll r2,r2,0x04		ID * 112
0008fc44: 00625021 addu r10,r3,r2		r10 = Palette Color Data Pointer
0008fc48: 91420000 lbu r2,0x0000(r10)		Load Red
0008fc4c: 91430001 lbu r3,0x0001(r10)		Load Green
0008fc50: 91440002 lbu r4,0x0002(r10)		Load Blue
0008fc54: 00431021 addu r2,r2,r3		Red + Green
0008fc58: 00441021 addu r2,r2,r4		Red + Green + Blue
0008fc5c: 104000c2 beq r2,r0,0x0008ff68		Branch if no color is present
0008fc60: 2e22000b sltiu r2,r17,0x000b
0008fc64: 10400082 beq r2,r0,0x0008fe70		Branch if PV >= 0xb
0008fc68: 00111080 sll r2,r17,0x02		PV * 4
0008fc6c: 3c018007 lui r1,0x8007
0008fc70: 00220821 addu r1,r1,r2
0008fc74: 8c2282fc lw r2,-0x7d04(r1)		Load Code Pointer
0008fc78: 00000000 nop
0008fc7c: 00400008 jr r2
0008fc80: 00000000 nop
  • PV = 0*
0008fc84: 91420000 lbu r2,0x0000(r10)		Load Red
0008fc88: 91430002 lbu r3,0x0002(r10)		Load Blue
0008fc8c: 01a25821 addu r11,r13,r2		r11 = Red Mod + Red
0008fc90: 91420001 lbu r2,0x0001(r10)		Load Green
0008fc94: 01e34021 addu r8,r15,r3		r8 = Blue Mod + Blue
0008fc98: 08023f9c j 0x0008fe70
0008fc9c: 01c24821 addu r9,r14,r2		r9 = Green Mod + Green
  • PV = 1*
0008fca0: 91420000 lbu r2,0x0000(r10)		Load Red
0008fca4: 91430001 lbu r3,0x0001(r10)		Load Green
0008fca8: 00021042 srl r2,r2,0x01		Red / 2
0008fcac: 004d5821 addu r11,r2,r13		r11 = Red / 2 + Red Mod
0008fcb0: 00031842 srl r3,r3,0x01		Green / 2
0008fcb4: 91420002 lbu r2,0x0002(r10)		Load Blue
0008fcb8: 006e4821 addu r9,r3,r14		r9 = Green / 2 + Green Mod
0008fcbc: 00021042 srl r2,r2,0x01		Blue / 2
0008fcc0: 08023f9c j 0x0008fe70
0008fcc4: 004f4021 addu r8,r2,r15		r8 = Blue / 2 + Blue Mod
  • PV = 2*
0008fcc8: 91430000 lbu r3,0x0000(r10)		Load Red
0008fccc: 91440001 lbu r4,0x0001(r10)		Load Green
0008fcd0: 00031840 sll r3,r3,0x01		Red * 2
0008fcd4: 00041040 sll r2,r4,0x01		Green * 2
0008fcd8: 00441021 addu r2,r2,r4		Green * 3
0008fcdc: 91440002 lbu r4,0x0002(r10)		Load Blue
0008fce0: 00621821 addu r3,r3,r2		Red * 2 + Green * 3
0008fce4: 00641821 addu r3,r3,r4		R * 2 + G * 3 + B
0008fce8: 00670018 mult r3,r7			(R * 2 + G * 3 + B) * 0.16666667
0008fcec: 00001010 mfhi r2			r2 = Color Mod
0008fcf0: 08023f86 j 0x0008fe18			(R/G/B Mod + Color Mod)
0008fcf4: 00031fc3 sra r3,r3,0x1f
  • PV = 3*
0008fcf8: 91430000 lbu r3,0x0000(r10)		Load Red
0008fcfc: 91440001 lbu r4,0x0001(r10)		Load Green
0008fd00: 00031840 sll r3,r3,0x01		Red * 2
0008fd04: 00041040 sll r2,r4,0x01		Green * 2
0008fd08: 00441021 addu r2,r2,r4		Green * 3
0008fd0c: 91440002 lbu r4,0x0002(r10)		Load Blue
0008fd10: 00621821 addu r3,r3,r2		Red * 2 + Blue * 3
0008fd14: 08023f82 j 0x0008fe08			(same as PV = 2, but gets / 2)
0008fd18: 00641821 addu r3,r3,r4		R * 2 + G * 3 + B
  • PV = 4, 9*
0008fd1c: 00181040 sll r2,r24,0x01		ID * 32
0008fd20: 00591021 addu r2,r2,r25
0008fd24: 94430000 lhu r3,0x0000(r2)		Load Raw Color
0008fd28: 00000000 nop
0008fd2c: 3062001f andi r2,r3,0x001f		r2 = Red
0008fd30: 01a25821 addu r11,r13,r2		r11 = Red Mod + Red
0008fd34: 306203e0 andi r2,r3,0x03e0
0008fd38: 00021142 srl r2,r2,0x05		r2 = Green
0008fd3c: 01c24821 addu r9,r14,r2		r9 = Green Mod + Green
0008fd40: 30637c00 andi r3,r3,0x7c00
0008fd44: 00031a82 srl r3,r3,0x0a		r3 = Blue
0008fd48: 08023f9c j 0x0008fe70
0008fd4c: 01e34021 addu r8,r15,r3		r8 = Blue Mod + Blue
  • PV = 5*
0008fd50: 00181040 sll r2,r24,0x01		ID * 32
0008fd54: 00591021 addu r2,r2,r25
0008fd58: 94430000 lhu r3,0x0000(r2)		Load Raw Color
0008fd5c: 00000000 nop
0008fd60: 3062001f andi r2,r3,0x001f		r2 = Red
0008fd64: 00021043 sra r2,r2,0x01		Red / 2
0008fd68: 01a25821 addu r11,r13,r2		r11 = Red Mod + Red / 2
0008fd6c: 306203e0 andi r2,r3,0x03e0
0008fd70: 00021182 srl r2,r2,0x06		r2 = Green / 2
0008fd74: 01c24821 addu r9,r14,r2		r9 = Green Mod + Green / 2
0008fd78: 30637c00 andi r3,r3,0x7c00
0008fd7c: 00031ac2 srl r3,r3,0x0b		r3 = Blue / 2
0008fd80: 08023f9c j 0x0008fe70
0008fd84: 01e34021 addu r8,r15,r3		r8 = Blue Mod + Blue / 2
  • PV = 6*
0008fd88: 00181040 sll r2,r24,0x01		ID * 32
0008fd8c: 00591021 addu r2,r2,r25 
0008fd90: 94430000 lhu r3,0x0000(r2)		Load Raw Color
0008fd94: 00000000 nop
0008fd98: 306403e0 andi r4,r3,0x03e0
0008fd9c: 30657c00 andi r5,r3,0x7c00
0008fda0: 3063001f andi r3,r3,0x001f		r3 = Red
0008fda4: 00031840 sll r3,r3,0x01		Red * 2
0008fda8: 00042142 srl r4,r4,0x05		r4 = Green
0008fdac: 00041040 sll r2,r4,0x01		Green * 2
0008fdb0: 00441021 addu r2,r2,r4		Green * 3
0008fdb4: 00621821 addu r3,r3,r2		Red * 2 + Green * 3
0008fdb8: 00052a82 srl r5,r5,0x0a		r5 = Blue
0008fdbc: 00651821 addu r3,r3,r5		R * 2 + G * 3 + B
0008fdc0: 00670018 mult r3,r7			(R * 2 + G * 3 + B) * 0.16666667
0008fdc4: 00001010 mfhi r2			r2 = Color Mod
0008fdc8: 08023f86 j 0x0008fe18			(R/G/B Mod + Color Mod)
0008fdcc: 00031fc3 sra r3,r3,0x1f
  • PV = 7*
0008fdd0: 00181040 sll r2,r24,0x01		ID * 32
0008fdd4: 00591021 addu r2,r2,r25
0008fdd8: 94430000 lhu r3,0x0000(r2)		Load Raw Color
0008fddc: 00000000 nop
0008fde0: 306403e0 andi r4,r3,0x03e0
0008fde4: 30657c00 andi r5,r3,0x7c00
0008fde8: 3063001f andi r3,r3,0x001f		r3 = Red
0008fdec: 00031840 sll r3,r3,0x01		Red * 2
0008fdf0: 00042142 srl r4,r4,0x05		r4 = Green
0008fdf4: 00041040 sll r2,r4,0x01		Green * 2
0008fdf8: 00441021 addu r2,r2,r4		Green * 3
0008fdfc: 00621821 addu r3,r3,r2		Red * 2 + Green * 3
0008fe00: 00052a82 srl r5,r5,0x0a		r5 = Blue
0008fe04: 00651821 addu r3,r3,r5		R * 2 + G * 3 + B
0008fe08: 00670018 mult r3,r7			(R * 2 + G * 3 + B) * 0.16666667
0008fe0c: 00031fc3 sra r3,r3,0x1f
0008fe10: 00001010 mfhi r2			r2 = Color Mod
0008fe14: 00021043 sra r2,r2,0x01		Color Mod / 2
0008fe18: 00431023 subu r2,r2,r3
0008fe1c: 01a25821 addu r11,r13,r2		r11 = Red Mod + Color Mod / 2
0008fe20: 01c24821 addu r9,r14,r2		r9 = Green Mod + Color Mod / 2
0008fe24: 08023f9c j 0x0008fe70
0008fe28: 01e24021 addu r8,r15,r2		r8 = Blue Mod + Color Mod / 2

  • PV = 8*
0008fe2c: 00181040 sll r2,r24,0x01		ID * 2
0008fe30: 00591021 addu r2,r2,r25
0008fe34: 94430000 lhu r3,0x0000(r2)		Load Raw Color
0008fe38: 00000000 nop
0008fe3c: 306b001f andi r11,r3,0x001f		r11 = Red
0008fe40: 306203e0 andi r2,r3,0x03e0
0008fe44: 00024942 srl r9,r2,0x05		r9 = Green
0008fe48: 30637c00 andi r3,r3,0x7c00
0008fe4c: 08023f9c j 0x0008fe70
0008fe50: 00034282 srl r8,r3,0x0a		r8 = Blue
  • PV = 10*
0008fe54: 001010c0 sll r2,r16,0x03		ID * 8
0008fe58: 00531021 addu r2,r2,r19		Palette Mod + ID * 8
0008fe5c: 3c01800a lui r1,0x800a
0008fe60: 00220821 addu r1,r1,r2
0008fe64: a02095fa sb r0,-0x6a06(r1)		Store ? = 0
0008fe68: 0802400b j 0x0009002c
0008fe6c: 00000000 nop
0008fe70: 000b1400 sll r2,r11,0x10
0008fe74: 00021403 sra r2,r2,0x10
0008fe78: 28420020 slti r2,r2,0x0020
0008fe7c: 14400002 bne r2,r0,0x0008fe88		Branch if Red Mod < 0x20
0008fe80: 00091400 sll r2,r9,0x10
0008fe84: 340b001f ori r11,r0,0x001f		Red Mod = 0x1f
0008fe88: 00021403 sra r2,r2,0x10
0008fe8c: 28420020 slti r2,r2,0x0020
0008fe90: 14400002 bne r2,r0,0x0008fe9c		Branch if Green Mod < 0x20
0008fe94: 00081400 sll r2,r8,0x10
0008fe98: 3409001f ori r9,r0,0x001f		Green Mod = 0x1f
0008fe9c: 00021403 sra r2,r2,0x10
0008fea0: 28420020 slti r2,r2,0x0020
0008fea4: 14400002 bne r2,r0,0x0008feb0		Branch if Blue Mod < 0x20
0008fea8: 000b1400 sll r2,r11,0x10
0008feac: 3408001f ori r8,r0,0x001f		Blue Mod = 0x1f
0008feb0: 1c400002 bgtz r2,0x0008febc		Branch if Red Mod > 0
0008feb4: 00091400 sll r2,r9,0x10
0008feb8: 00005821 addu r11,r0,r0		Red Mod = 0
0008febc: 1c400002 bgtz r2,0x0008fec8		Branch if Green Mod > 0
0008fec0: 00081400 sll r2,r8,0x10
0008fec4: 00004821 addu r9,r0,r0		Green Mod = 0
0008fec8: 1c400002 bgtz r2,0x0008fed4		Branch if Blue Mod > 0
0008fecc: 01691025 or r2,r11,r9
0008fed0: 00004021 addu r8,r0,r0		Blue Mod = 0
0008fed4: 01021025 or r2,r8,r2
0008fed8: 00021400 sll r2,r2,0x10
0008fedc: 14400002 bne r2,r0,0x0008fee8		Branch if Colors are present
0008fee0: 00000000 nop
0008fee4: 34080001 ori r8,r0,0x0001		Blue Mod = 1
0008fee8: 1240000e beq r18,r0,0x0008ff24	Branch if PV2 = 0
0008feec: 00061240 sll r2,r6,0x09		Section ID * 512
0008fef0: 91420000 lbu r2,0x0000(r10)		Load Red
0008fef4: 91430001 lbu r3,0x0001(r10)		Load Green
0008fef8: 01621023 subu r2,r11,r2		Red Mod - Red
0008fefc: 2442001f addiu r2,r2,0x001f		Red Mod - Red + 0x1f
0008ff00: 01231823 subu r3,r9,r3		Green Mod - Green
0008ff04: a1420004 sb r2,0x0004(r10)		Store Modified Red?
0008ff08: 91420002 lbu r2,0x0002(r10)		Load Blue
0008ff0c: 2463001f addiu r3,r3,0x001f		Green Mod - Green + 0x1f
0008ff10: a1430005 sb r3,0x0005(r10)		Store Modified Green?
0008ff14: 01021023 subu r2,r8,r2		Blue Mod - Blue
0008ff18: 2442001f addiu r2,r2,0x001f		Blue Mod - Blue + 0x1f
0008ff1c: 08023fde j 0x0008ff78
0008ff20: a1420006 sb r2,0x0006(r10)		Store Modified Blue?
  • PV2 = 0*
0008ff24: 3c03800e lui r3,0x800e
0008ff28: 24634ea4 addiu r3,r3,0x4ea4
0008ff2c: 00431021 addu r2,r2,r3
0008ff30: 00182840 sll r5,r24,0x01		r5 = Unit/Color ID * 2
0008ff34: 00a22821 addu r5,r5,r2		r5 = Modified Palette Data Pointer
0008ff38: 00091140 sll r2,r9,0x05		Green * 32
0008ff3c: 01621021 addu r2,r11,r2		Green * 32 + Red
0008ff40: 00082280 sll r4,r8,0x0a		Blue * 1024
0008ff44: 91430003 lbu r3,0x0003(r10)		Load Alpha Flag
0008ff48: 00441021 addu r2,r2,r4		Red + Green * 0x20 + Blue * 0x400
0008ff4c: a14b0000 sb r11,0x0000(r10)		Store Red
0008ff50: a1490001 sb r9,0x0001(r10)		Store Green
0008ff54: a1480002 sb r8,0x0002(r10)		Store Blue
0008ff58: 00031bc0 sll r3,r3,0x0f		Alpha * 0x8000
0008ff5c: 00431021 addu r2,r2,r3		r2 = Color 
0008ff60: 08023fde j 0x0008ff78
0008ff64: a4a20000 sh r2,0x0000(r5)		Store Color
  • No color present*
0008ff68: 3402001f ori r2,r0,0x001f		r2 = 0x1f
0008ff6c: a1420006 sb r2,0x0006(r10)		Store Modified Blue? = 0x1f
0008ff70: a1420005 sb r2,0x0005(r10)		Store Modified Green? = 0x1f
0008ff74: a1420004 sb r2,0x0004(r10)		Store Modified Red? = 0x1f
0008ff78: 27180001 addiu r24,r24,0x0001		Unit/Color ID ++
0008ff7c: 258c0001 addiu r12,r12,0x0001		Counter ++
0008ff80: 29820010 slti r2,r12,0x0010
0008ff84: 1440ff30 bne r2,r0,0x0008fc48		Branch if Counter < 0x10
0008ff88: 254a0007 addiu r10,r10,0x0007		Color Mod Pointer += 7
0008ff8c: 12400018 beq r18,r0,0x0008fff0	Branch if PV2 = 0
0008ff90: 00061080 sll r2,r6,0x02		Section ID * 4
0008ff94: 00461021 addu r2,r2,r6		ID * 5
0008ff98: 00021080 sll r2,r2,0x02		ID * 20
0008ff9c: 00461023 subu r2,r2,r6		ID * 19
0008ffa0: 00021180 sll r2,r2,0x06		ID * 1216
0008ffa4: 00461021 addu r2,r2,r6		ID * 1217
0008ffa8: 00021040 sll r2,r2,0x01		ID * 2434
0008ffac: 3c03800a lui r3,0x800a
0008ffb0: 246395f6 addiu r3,r3,0x95f6
0008ffb4: 00431021 addu r2,r2,r3
0008ffb8: 001018c0 sll r3,r16,0x03		Unit/Color ID * 8
0008ffbc: 00431821 addu r3,r2,r3		r3 = ? Color Data
0008ffc0: 34040001 ori r4,r0,0x0001		r4 = 1
0008ffc4: 34020009 ori r2,r0,0x0009		r2 = 9
0008ffc8: a0640000 sb r4,0x0000(r3)		Store ? = 1
0008ffcc: a0600001 sb r0,0x0001(r3)		Store ? = 0
0008ffd0: a0600002 sb r0,0x0002(r3)		Store ? = 0
0008ffd4: 16220015 bne r17,r2,0x0009002c	
0008ffd8: a0720003 sb r18,0x0003(r3)		Store ? = PV2
0008ffdc: a0640004 sb r4,0x0004(r3)		Store ? = 1
0008ffe0: a06d0005 sb r13,0x0005(r3)		Store Red Mod
0008ffe4: a06e0006 sb r14,0x0006(r3)		Store Green Mod
0008ffe8: 0802400b j 0x0009002c
0008ffec: a06f0007 sb r15,0x0007(r3)		Store Blue Mod
  • PV2 = 0 with no color present*
0008fff0: 001010c0 sll r2,r16,0x03		Unit/Color ID * 8
0008fff4: 00061880 sll r3,r6,0x02		Section ID * 4
0008fff8: 00661821 addu r3,r3,r6		ID * 5
0008fffc: 00031880 sll r3,r3,0x02		ID * 20
00090000: 00661823 subu r3,r3,r6		ID * 19
00090004: 00031980 sll r3,r3,0x06		ID * 1216
00090008: 00661821 addu r3,r3,r6		ID * 1217
0009000c: 00031840 sll r3,r3,0x01		ID * 2434
00090010: 00431021 addu r2,r2,r3
00090014: 3c01800a lui r1,0x800a
00090018: 00220821 addu r1,r1,r2
0009001c: a02095f6 sb r0,-0x6a0a(r1)		Store ? = 0
00090020: 34020001 ori r2,r0,0x0001		r2 = 1
00090024: 3c01800a lui r1,0x800a
00090028: ac2295ec sw r2,-0x6a14(r1)		Store ? = 1
0009002c: 8fb3000c lw r19,0x000c(r29)
00090030: 8fb20008 lw r18,0x0008(r29)
00090034: 8fb10004 lw r17,0x0004(r29)
00090038: 8fb00000 lw r16,0x0000(r29)
0009003c: 27bd0010 addiu r29,r29,0x0010
00090040: 03e00008 jr r31
00090044: 00000000 nop


Return Locations

000684e0: Store_Palette_data_for_each_unit
00068504: Store_Palette_data_for_each_unit
0006861c: Palette_modification_based_on_team
000931ac: 00093170_-_000931c0
00074784: 000746ac_-_000747b4
00091fdc: 000912a4_-_00092598
0009204c: 000912a4_-_00092598
000923ec: 000912a4_-_00092598
0009245c: 000912a4_-_00092598
000ec010: Background_Tile_Color_For_Targeting/Movement
000ec034: Background_Tile_Color_For_Targeting/Movement
000ec164: Background_Tile_Color_For_Targeting/Movement
000ec188: Background_Tile_Color_For_Targeting/Movement
000ec6b8: Background_Tile_Color_For_Targeting/Movement
000ec6dc: Background_Tile_Color_For_Targeting/Movement
000817bc: Calculate_XYZ,_UV,_and_Palette_of_Post_Action_Text
000931c4_-_000933c0
Background_Tile_Color_For_Targeting/Movement_(Partial_Tiles)
000ec718_-_000ee100