.include "macros.inc" .section .sbss, "wa" .balign 8 .global sCurrentFrameCount__16CGraphicsPalette sCurrentFrameCount__16CGraphicsPalette: .skip 0x8 .section .text, "ax" .global UnLock__16CGraphicsPaletteFv UnLock__16CGraphicsPaletteFv: /* 8030DE5C 0030ADBC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030DE60 0030ADC0 7C 08 02 A6 */ mflr r0 /* 8030DE64 0030ADC4 90 01 00 14 */ stw r0, 0x14(r1) /* 8030DE68 0030ADC8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8030DE6C 0030ADCC 7C 7F 1B 78 */ mr r31, r3 /* 8030DE70 0030ADD0 80 03 00 08 */ lwz r0, 8(r3) /* 8030DE74 0030ADD4 80 63 00 0C */ lwz r3, 0xc(r3) /* 8030DE78 0030ADD8 54 04 08 3C */ slwi r4, r0, 1 /* 8030DE7C 0030ADDC 48 07 0C 65 */ bl DCStoreRange /* 8030DE80 0030ADE0 80 1F 00 08 */ lwz r0, 8(r31) /* 8030DE84 0030ADE4 38 7F 00 10 */ addi r3, r31, 0x10 /* 8030DE88 0030ADE8 80 BF 00 00 */ lwz r5, 0(r31) /* 8030DE8C 0030ADEC 80 9F 00 0C */ lwz r4, 0xc(r31) /* 8030DE90 0030ADF0 54 06 04 3E */ clrlwi r6, r0, 0x10 /* 8030DE94 0030ADF4 48 06 C6 55 */ bl GXInitTlutObj /* 8030DE98 0030ADF8 80 1F 00 08 */ lwz r0, 8(r31) /* 8030DE9C 0030ADFC 80 7F 00 0C */ lwz r3, 0xc(r31) /* 8030DEA0 0030AE00 54 04 08 3C */ slwi r4, r0, 1 /* 8030DEA4 0030AE04 48 07 0C 0D */ bl DCFlushRange /* 8030DEA8 0030AE08 38 00 00 00 */ li r0, 0 /* 8030DEAC 0030AE0C 98 1F 00 1C */ stb r0, 0x1c(r31) /* 8030DEB0 0030AE10 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030DEB4 0030AE14 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8030DEB8 0030AE18 7C 08 03 A6 */ mtlr r0 /* 8030DEBC 0030AE1C 38 21 00 10 */ addi r1, r1, 0x10 /* 8030DEC0 0030AE20 4E 80 00 20 */ blr .global Load__16CGraphicsPaletteCFv Load__16CGraphicsPaletteCFv: /* 8030DEC4 0030AE24 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030DEC8 0030AE28 7C 08 02 A6 */ mflr r0 /* 8030DECC 0030AE2C 38 80 00 00 */ li r4, 0 /* 8030DED0 0030AE30 90 01 00 14 */ stw r0, 0x14(r1) /* 8030DED4 0030AE34 93 E1 00 0C */ stw r31, 0xc(r1) /* 8030DED8 0030AE38 7C 7F 1B 78 */ mr r31, r3 /* 8030DEDC 0030AE3C 38 7F 00 10 */ addi r3, r31, 0x10 /* 8030DEE0 0030AE40 48 06 C6 51 */ bl GXLoadTlut /* 8030DEE4 0030AE44 80 0D A8 68 */ lwz r0, sCurrentFrameCount__16CGraphicsPalette@sda21(r13) /* 8030DEE8 0030AE48 90 1F 00 04 */ stw r0, 4(r31) /* 8030DEEC 0030AE4C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030DEF0 0030AE50 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8030DEF4 0030AE54 7C 08 03 A6 */ mtlr r0 /* 8030DEF8 0030AE58 38 21 00 10 */ addi r1, r1, 0x10 /* 8030DEFC 0030AE5C 4E 80 00 20 */ blr .global __dt__16CGraphicsPaletteFv __dt__16CGraphicsPaletteFv: /* 8030DF00 0030AE60 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030DF04 0030AE64 7C 08 02 A6 */ mflr r0 /* 8030DF08 0030AE68 90 01 00 14 */ stw r0, 0x14(r1) /* 8030DF0C 0030AE6C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8030DF10 0030AE70 7C 9F 23 78 */ mr r31, r4 /* 8030DF14 0030AE74 93 C1 00 08 */ stw r30, 8(r1) /* 8030DF18 0030AE78 7C 7E 1B 79 */ or. r30, r3, r3 /* 8030DF1C 0030AE7C 41 82 00 50 */ beq lbl_8030DF6C /* 8030DF20 0030AE80 80 7E 00 04 */ lwz r3, 4(r30) /* 8030DF24 0030AE84 80 0D A8 68 */ lwz r0, sCurrentFrameCount__16CGraphicsPalette@sda21(r13) /* 8030DF28 0030AE88 7C 03 00 50 */ subf r0, r3, r0 /* 8030DF2C 0030AE8C 28 00 00 02 */ cmplwi r0, 2 /* 8030DF30 0030AE90 40 80 00 1C */ bge lbl_8030DF4C /* 8030DF34 0030AE94 80 9E 00 0C */ lwz r4, 0xc(r30) /* 8030DF38 0030AE98 38 60 00 00 */ li r3, 0 /* 8030DF3C 0030AE9C 7C 00 00 34 */ cntlzw r0, r0 /* 8030DF40 0030AEA0 90 7E 00 0C */ stw r3, 0xc(r30) /* 8030DF44 0030AEA4 54 03 D9 7E */ srwi r3, r0, 5 /* 8030DF48 0030AEA8 48 05 EC D5 */ bl sub_8036cc1c__19CFrameDelayedKillerFbPv lbl_8030DF4C: /* 8030DF4C 0030AEAC 34 1E 00 0C */ addic. r0, r30, 0xc /* 8030DF50 0030AEB0 41 82 00 0C */ beq lbl_8030DF5C /* 8030DF54 0030AEB4 80 7E 00 0C */ lwz r3, 0xc(r30) /* 8030DF58 0030AEB8 48 00 79 D9 */ bl Free__7CMemoryFPCv lbl_8030DF5C: /* 8030DF5C 0030AEBC 7F E0 07 35 */ extsh. r0, r31 /* 8030DF60 0030AEC0 40 81 00 0C */ ble lbl_8030DF6C /* 8030DF64 0030AEC4 7F C3 F3 78 */ mr r3, r30 /* 8030DF68 0030AEC8 48 00 79 C9 */ bl Free__7CMemoryFPCv lbl_8030DF6C: /* 8030DF6C 0030AECC 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030DF70 0030AED0 7F C3 F3 78 */ mr r3, r30 /* 8030DF74 0030AED4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8030DF78 0030AED8 83 C1 00 08 */ lwz r30, 8(r1) /* 8030DF7C 0030AEDC 7C 08 03 A6 */ mtlr r0 /* 8030DF80 0030AEE0 38 21 00 10 */ addi r1, r1, 0x10 /* 8030DF84 0030AEE4 4E 80 00 20 */ blr .global __ct__16CGraphicsPaletteFR12CInputStream __ct__16CGraphicsPaletteFR12CInputStream: /* 8030DF88 0030AEE8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8030DF8C 0030AEEC 7C 08 02 A6 */ mflr r0 /* 8030DF90 0030AEF0 90 01 00 24 */ stw r0, 0x24(r1) /* 8030DF94 0030AEF4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8030DF98 0030AEF8 93 C1 00 18 */ stw r30, 0x18(r1) /* 8030DF9C 0030AEFC 7C 9E 23 78 */ mr r30, r4 /* 8030DFA0 0030AF00 93 A1 00 14 */ stw r29, 0x14(r1) /* 8030DFA4 0030AF04 7C 7D 1B 78 */ mr r29, r3 /* 8030DFA8 0030AF08 7F C3 F3 78 */ mr r3, r30 /* 8030DFAC 0030AF0C 48 03 0C D9 */ bl ReadLong__12CInputStreamFv /* 8030DFB0 0030AF10 90 7D 00 00 */ stw r3, 0(r29) /* 8030DFB4 0030AF14 7F C3 F3 78 */ mr r3, r30 /* 8030DFB8 0030AF18 48 03 0C F9 */ bl ReadShort__12CInputStreamFv /* 8030DFBC 0030AF1C 7C 7F 07 34 */ extsh r31, r3 /* 8030DFC0 0030AF20 7F C3 F3 78 */ mr r3, r30 /* 8030DFC4 0030AF24 48 03 0C ED */ bl ReadShort__12CInputStreamFv /* 8030DFC8 0030AF28 7C 60 07 34 */ extsh r0, r3 /* 8030DFCC 0030AF2C 3C 80 80 3D */ lis r4, lbl_803D73E8@ha /* 8030DFD0 0030AF30 7C 00 F9 D6 */ mullw r0, r0, r31 /* 8030DFD4 0030AF34 3C 60 80 3D */ lis r3, kUnknownType__10CCallStack@ha /* 8030DFD8 0030AF38 38 A4 73 E8 */ addi r5, r4, lbl_803D73E8@l /* 8030DFDC 0030AF3C 38 C3 6A A8 */ addi r6, r3, kUnknownType__10CCallStack@l /* 8030DFE0 0030AF40 38 61 00 08 */ addi r3, r1, 8 /* 8030DFE4 0030AF44 38 80 FF FF */ li r4, -1 /* 8030DFE8 0030AF48 90 1D 00 08 */ stw r0, 8(r29) /* 8030DFEC 0030AF4C 4B FC 83 E9 */ bl __ct__10CCallStackFUiPCcPCc /* 8030DFF0 0030AF50 80 1D 00 08 */ lwz r0, 8(r29) /* 8030DFF4 0030AF54 7C 67 1B 78 */ mr r7, r3 /* 8030DFF8 0030AF58 38 80 00 02 */ li r4, 2 /* 8030DFFC 0030AF5C 38 A0 00 01 */ li r5, 1 /* 8030E000 0030AF60 54 03 08 3C */ slwi r3, r0, 1 /* 8030E004 0030AF64 38 C0 00 00 */ li r6, 0 /* 8030E008 0030AF68 48 00 79 8D */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack /* 8030E00C 0030AF6C 90 7D 00 0C */ stw r3, 0xc(r29) /* 8030E010 0030AF70 38 00 00 00 */ li r0, 0 /* 8030E014 0030AF74 7F C3 F3 78 */ mr r3, r30 /* 8030E018 0030AF78 98 1D 00 1C */ stb r0, 0x1c(r29) /* 8030E01C 0030AF7C 80 1D 00 08 */ lwz r0, 8(r29) /* 8030E020 0030AF80 80 9D 00 0C */ lwz r4, 0xc(r29) /* 8030E024 0030AF84 54 05 08 3C */ slwi r5, r0, 1 /* 8030E028 0030AF88 48 03 0F 2D */ bl Get__12CInputStreamFPvUl /* 8030E02C 0030AF8C 80 1D 00 08 */ lwz r0, 8(r29) /* 8030E030 0030AF90 38 7D 00 10 */ addi r3, r29, 0x10 /* 8030E034 0030AF94 80 BD 00 00 */ lwz r5, 0(r29) /* 8030E038 0030AF98 80 9D 00 0C */ lwz r4, 0xc(r29) /* 8030E03C 0030AF9C 54 06 04 3E */ clrlwi r6, r0, 0x10 /* 8030E040 0030AFA0 48 06 C4 A9 */ bl GXInitTlutObj /* 8030E044 0030AFA4 80 1D 00 08 */ lwz r0, 8(r29) /* 8030E048 0030AFA8 80 7D 00 0C */ lwz r3, 0xc(r29) /* 8030E04C 0030AFAC 54 04 08 3C */ slwi r4, r0, 1 /* 8030E050 0030AFB0 48 07 0A 61 */ bl DCFlushRange /* 8030E054 0030AFB4 80 01 00 24 */ lwz r0, 0x24(r1) /* 8030E058 0030AFB8 7F A3 EB 78 */ mr r3, r29 /* 8030E05C 0030AFBC 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8030E060 0030AFC0 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8030E064 0030AFC4 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8030E068 0030AFC8 7C 08 03 A6 */ mtlr r0 /* 8030E06C 0030AFCC 38 21 00 20 */ addi r1, r1, 0x20 /* 8030E070 0030AFD0 4E 80 00 20 */ blr .global __ct__16CGraphicsPaletteF14EPaletteFormati __ct__16CGraphicsPaletteF14EPaletteFormati: /* 8030E074 0030AFD4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8030E078 0030AFD8 7C 08 02 A6 */ mflr r0 /* 8030E07C 0030AFDC 3C C0 80 3D */ lis r6, lbl_803D73E8@ha /* 8030E080 0030AFE0 90 01 00 24 */ stw r0, 0x24(r1) /* 8030E084 0030AFE4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8030E088 0030AFE8 7C BF 2B 78 */ mr r31, r5 /* 8030E08C 0030AFEC 38 A6 73 E8 */ addi r5, r6, lbl_803D73E8@l /* 8030E090 0030AFF0 93 C1 00 18 */ stw r30, 0x18(r1) /* 8030E094 0030AFF4 7C 7E 1B 78 */ mr r30, r3 /* 8030E098 0030AFF8 90 83 00 00 */ stw r4, 0(r3) /* 8030E09C 0030AFFC 3C 60 80 3D */ lis r3, kUnknownType__10CCallStack@ha /* 8030E0A0 0030B000 38 C3 6A A8 */ addi r6, r3, kUnknownType__10CCallStack@l /* 8030E0A4 0030B004 38 80 FF FF */ li r4, -1 /* 8030E0A8 0030B008 93 FE 00 08 */ stw r31, 8(r30) /* 8030E0AC 0030B00C 38 61 00 08 */ addi r3, r1, 8 /* 8030E0B0 0030B010 4B FC 83 25 */ bl __ct__10CCallStackFUiPCcPCc /* 8030E0B4 0030B014 7C 67 1B 78 */ mr r7, r3 /* 8030E0B8 0030B018 57 E3 08 3C */ slwi r3, r31, 1 /* 8030E0BC 0030B01C 38 80 00 02 */ li r4, 2 /* 8030E0C0 0030B020 38 A0 00 01 */ li r5, 1 /* 8030E0C4 0030B024 38 C0 00 00 */ li r6, 0 /* 8030E0C8 0030B028 48 00 78 CD */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack /* 8030E0CC 0030B02C 90 7E 00 0C */ stw r3, 0xc(r30) /* 8030E0D0 0030B030 38 00 00 00 */ li r0, 0 /* 8030E0D4 0030B034 38 7E 00 10 */ addi r3, r30, 0x10 /* 8030E0D8 0030B038 98 1E 00 1C */ stb r0, 0x1c(r30) /* 8030E0DC 0030B03C 80 1E 00 08 */ lwz r0, 8(r30) /* 8030E0E0 0030B040 80 BE 00 00 */ lwz r5, 0(r30) /* 8030E0E4 0030B044 80 9E 00 0C */ lwz r4, 0xc(r30) /* 8030E0E8 0030B048 54 06 04 3E */ clrlwi r6, r0, 0x10 /* 8030E0EC 0030B04C 48 06 C3 FD */ bl GXInitTlutObj /* 8030E0F0 0030B050 80 01 00 24 */ lwz r0, 0x24(r1) /* 8030E0F4 0030B054 7F C3 F3 78 */ mr r3, r30 /* 8030E0F8 0030B058 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8030E0FC 0030B05C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8030E100 0030B060 7C 08 03 A6 */ mtlr r0 /* 8030E104 0030B064 38 21 00 20 */ addi r1, r1, 0x20 /* 8030E108 0030B068 4E 80 00 20 */ blr .section .rodata .balign 8 .global lbl_803D73E8 lbl_803D73E8: # ROM: 0x3D43E8 .asciz "??(??)" .balign 4