Color Screen Event Instruction
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