Color Screen Event Instruction

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
#   ROUTINE: ColorScreen event instruction

801467dc: 27bdffa0 addiu r29,r29,-0x0060
801467e0: 3404000c ori r4,r0,0x000c
801467e4: afbf0058 sw r31,0x0058(r29)
801467e8: afb30054 sw r19,0x0054(r29)
801467ec: afb20050 sw r18,0x0050(r29)
801467f0: afb1004c sw r17,0x004c(r29)
801467f4: 0c052752 jal 0x80149d48
801467f8: afb00048 sw r16,0x0048(r29)
801467fc: 0c0532f0 jal 0x8014cbc0
80146800: 00008021 addu r16,r0,r0               #   index = 0
80146804: 00402021 addu r4,r2,r0                #   params
80146808: 90920000 lbu r18,0x0000(r4)           #   params.BlendingMode
8014680c: 24840001 addiu r4,r4,0x0001
80146810: 27a30018 addiu r3,r29,0x0018          #   colorData (sp + 0x18)
                                                #   do {                                    // Load color values into colorData
80146814: 90820000 lbu r2,0x0000(r4)            #       *paramPtr
80146818: 24840001 addiu r4,r4,0x0001           #       paramPtr = paramPtr = 1
8014681c: 26100001 addiu r16,r16,0x0001         #       index = index + 1
80146820: ac620000 sw r2,0x0000(r3)             #       *colorDataPtr = *paramPtr
80146824: 2a020006 slti r2,r16,0x0006           
80146828: 1440fffa bne r2,r0,0x80146814
8014682c: 24630004 addiu r3,r3,0x0004           #       colorDataPtr = colorDataPtr + 4     // sizeof(int)
                                                #   } while (index < 6)
80146830: 0c05181e jal 0x80146078               #   numFrames = Load Halfword (params.NumFrames)
80146834: 00008021 addu r16,r0,r0               #   r16 = 0
80146838: 00021400 sll r2,r2,0x10
8014683c: 00028c03 sra r17,r2,0x10              #   numFrames
80146840: 1a200023 blez r17,0x801468d0
80146844: 00003021 addu r6,r0,r0                #   r6 = 0
80146848: 27b30018 addiu r19,r29,0x0018         #   colorData
                                                #   do {
8014684c: 0c0532a0 jal 0x8014ca80
80146850: 00000000 nop
80146854: 0c0532a0 jal 0x8014ca80
80146858: 00000000 nop
8014685c: 00003021 addu r6,r0,r0                #       r6 = 0
80146860: 02602821 addu r5,r19,r0               #       colorPtr = colorData
                                                #       do {
80146864: 8ca2000c lw r2,0x000c(r5)
80146868: 8ca40000 lw r4,0x0000(r5)
8014686c: 00000000 nop
80146870: 00441023 subu r2,r2,r4
80146874: 00500018 mult r2,r16
80146878: 00001012 mflo r2
8014687c: 00000000 nop
80146880: 00000000 nop
80146884: 0051001a div r2,r17
80146888: 00001012 mflo r2
8014688c: 24c60001 addiu r6,r6,0x0001
80146890: 00441021 addu r2,r2,r4
80146894: aca20018 sw r2,0x0018(r5)
80146898: 28c20003 slti r2,r6,0x0003
8014689c: 1440fff1 bne r2,r0,0x80146864
801468a0: 24a50004 addiu r5,r5,0x0004
                                                #       } while (r6 < 3)
801468a4: 3244ffff andi r4,r18,0xffff
801468a8: 26100002 addiu r16,r16,0x0002
801468ac: 97a50030 lhu r5,0x0030(r29)
801468b0: 97a60034 lhu r6,0x0034(r29)
801468b4: 97a70038 lhu r7,0x0038(r29)
801468b8: 34020002 ori r2,r0,0x0002
801468bc: 0c023bed jal 0x8008efb4
801468c0: afa20010 sw r2,0x0010(r29)
801468c4: 0211102a slt r2,r16,r17
801468c8: 1440ffe0 bne r2,r0,0x8014684c
801468cc: 00003021 addu r6,r0,r0
                                                #   } while (r16 < numFrames)
801468d0: 27a30018 addiu r3,r29,0x0018          #   colorData
                                                #   do {
801468d4: 8c62000c lw r2,0x000c(r3)
801468d8: 24c60001 addiu r6,r6,0x0001
801468dc: ac620018 sw r2,0x0018(r3)
801468e0: 28c20003 slti r2,r6,0x0003
801468e4: 1440fffb bne r2,r0,0x801468d4
801468e8: 24630004 addiu r3,r3,0x0004
                                                #   } while (r6 < 3)
801468ec: 02402021 addu r4,r18,r0
801468f0: 97a50030 lhu r5,0x0030(r29)
801468f4: 97a60034 lhu r6,0x0034(r29)
801468f8: 97a70038 lhu r7,0x0038(r29)
801468fc: 34020002 ori r2,r0,0x0002
80146900: 0c023bed jal 0x8008efb4               #   Color Screen Related (0x8efb4) (?, ?, ?, ?, 2);
80146904: afa20010 sw r2,0x0010(r29)
80146908: 0c0532a0 jal 0x8014ca80               #   Switch To Next Thread ();
8014690c: 00000000 nop
80146910: 0c0532a0 jal 0x8014ca80               #   Switch To Next Thread ();
80146914: 00000000 nop
80146918: 0c053256 jal 0x8014c958               #   Stop Current Thread ();
8014691c: 00000000 nop
80146920: 8fbf0058 lw r31,0x0058(r29)
80146924: 8fb30054 lw r19,0x0054(r29)
80146928: 8fb20050 lw r18,0x0050(r29)
8014692c: 8fb1004c lw r17,0x004c(r29)
80146930: 8fb00048 lw r16,0x0048(r29)
80146934: 27bd0060 addiu r29,r29,0x0060
80146938: 03e00008 jr r31
8014693c: 00000000 nop