.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global TPLBind TPLBind: /* 8029B918 00297578 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8029B91C 0029757C 7C 08 02 A6 */ mflr r0 /* 8029B920 00297580 90 01 00 14 */ stw r0, 0x14(r1) /* 8029B924 00297584 93 E1 00 0C */ stw r31, 0xc(r1) /* 8029B928 00297588 7C 7F 1B 78 */ mr r31, r3 /* 8029B92C 0029758C 80 83 00 00 */ lwz r4, 0(r3) /* 8029B930 00297590 3C 04 FF E0 */ addis r0, r4, 0xffe0 /* 8029B934 00297594 28 00 AF 30 */ cmplwi r0, 0xaf30 /* 8029B938 00297598 41 82 00 1C */ beq lbl_8029B954 /* 8029B93C 0029759C 3C A0 80 44 */ lis r5, lbl_8043BEC0@ha /* 8029B940 002975A0 38 6D 89 08 */ addi r3, r13, lbl_8063DBC8-_SDA_BASE_ /* 8029B944 002975A4 38 A5 BE C0 */ addi r5, r5, lbl_8043BEC0@l /* 8029B948 002975A8 38 80 00 19 */ li r4, 0x19 /* 8029B94C 002975AC 4C C6 31 82 */ crclr 6 /* 8029B950 002975B0 4B FC FB 4D */ bl OSPanic lbl_8029B954: /* 8029B954 002975B4 80 1F 00 08 */ lwz r0, 8(r31) /* 8029B958 002975B8 38 60 00 00 */ li r3, 0 /* 8029B95C 002975BC 38 A0 00 01 */ li r5, 1 /* 8029B960 002975C0 7C 00 FA 14 */ add r0, r0, r31 /* 8029B964 002975C4 90 1F 00 08 */ stw r0, 8(r31) /* 8029B968 002975C8 48 00 00 A0 */ b lbl_8029BA08 lbl_8029B96C: /* 8029B96C 002975CC 80 9F 00 08 */ lwz r4, 8(r31) /* 8029B970 002975D0 54 66 1B 78 */ rlwinm r6, r3, 3, 0xd, 0x1c /* 8029B974 002975D4 7C 04 30 2E */ lwzx r0, r4, r6 /* 8029B978 002975D8 2C 00 00 00 */ cmpwi r0, 0 /* 8029B97C 002975DC 41 82 00 38 */ beq lbl_8029B9B4 /* 8029B980 002975E0 7C 1F 02 14 */ add r0, r31, r0 /* 8029B984 002975E4 7C 04 31 2E */ stwx r0, r4, r6 /* 8029B988 002975E8 80 9F 00 08 */ lwz r4, 8(r31) /* 8029B98C 002975EC 7C 84 30 2E */ lwzx r4, r4, r6 /* 8029B990 002975F0 88 04 00 23 */ lbz r0, 0x23(r4) /* 8029B994 002975F4 2C 00 00 00 */ cmpwi r0, 0 /* 8029B998 002975F8 40 82 00 1C */ bne lbl_8029B9B4 /* 8029B99C 002975FC 80 04 00 08 */ lwz r0, 8(r4) /* 8029B9A0 00297600 7C 1F 02 14 */ add r0, r31, r0 /* 8029B9A4 00297604 90 04 00 08 */ stw r0, 8(r4) /* 8029B9A8 00297608 80 9F 00 08 */ lwz r4, 8(r31) /* 8029B9AC 0029760C 7C 84 30 2E */ lwzx r4, r4, r6 /* 8029B9B0 00297610 98 A4 00 23 */ stb r5, 0x23(r4) lbl_8029B9B4: /* 8029B9B4 00297614 80 1F 00 08 */ lwz r0, 8(r31) /* 8029B9B8 00297618 7C 80 32 14 */ add r4, r0, r6 /* 8029B9BC 0029761C 80 04 00 04 */ lwz r0, 4(r4) /* 8029B9C0 00297620 2C 00 00 00 */ cmpwi r0, 0 /* 8029B9C4 00297624 41 82 00 40 */ beq lbl_8029BA04 /* 8029B9C8 00297628 7C 1F 02 14 */ add r0, r31, r0 /* 8029B9CC 0029762C 90 04 00 04 */ stw r0, 4(r4) /* 8029B9D0 00297630 80 1F 00 08 */ lwz r0, 8(r31) /* 8029B9D4 00297634 7C 80 32 14 */ add r4, r0, r6 /* 8029B9D8 00297638 80 84 00 04 */ lwz r4, 4(r4) /* 8029B9DC 0029763C 88 04 00 02 */ lbz r0, 2(r4) /* 8029B9E0 00297640 2C 00 00 00 */ cmpwi r0, 0 /* 8029B9E4 00297644 40 82 00 20 */ bne lbl_8029BA04 /* 8029B9E8 00297648 80 04 00 08 */ lwz r0, 8(r4) /* 8029B9EC 0029764C 7C 1F 02 14 */ add r0, r31, r0 /* 8029B9F0 00297650 90 04 00 08 */ stw r0, 8(r4) /* 8029B9F4 00297654 80 1F 00 08 */ lwz r0, 8(r31) /* 8029B9F8 00297658 7C 80 32 14 */ add r4, r0, r6 /* 8029B9FC 0029765C 80 84 00 04 */ lwz r4, 4(r4) /* 8029BA00 00297660 98 A4 00 02 */ stb r5, 2(r4) lbl_8029BA04: /* 8029BA04 00297664 38 63 00 01 */ addi r3, r3, 1 lbl_8029BA08: /* 8029BA08 00297668 80 1F 00 04 */ lwz r0, 4(r31) /* 8029BA0C 0029766C 54 64 04 3E */ clrlwi r4, r3, 0x10 /* 8029BA10 00297670 7C 04 00 40 */ cmplw r4, r0 /* 8029BA14 00297674 41 80 FF 58 */ blt lbl_8029B96C /* 8029BA18 00297678 80 01 00 14 */ lwz r0, 0x14(r1) /* 8029BA1C 0029767C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8029BA20 00297680 7C 08 03 A6 */ mtlr r0 /* 8029BA24 00297684 38 21 00 10 */ addi r1, r1, 0x10 /* 8029BA28 00297688 4E 80 00 20 */ blr .global TPLGet TPLGet: /* 8029BA2C 0029768C 80 A3 00 04 */ lwz r5, 4(r3) /* 8029BA30 00297690 80 63 00 08 */ lwz r3, 8(r3) /* 8029BA34 00297694 7C 04 2B 96 */ divwu r0, r4, r5 /* 8029BA38 00297698 7C 00 29 D6 */ mullw r0, r0, r5 /* 8029BA3C 0029769C 7C 00 20 50 */ subf r0, r0, r4 /* 8029BA40 002976A0 54 00 18 38 */ slwi r0, r0, 3 /* 8029BA44 002976A4 7C 63 02 14 */ add r3, r3, r0 /* 8029BA48 002976A8 4E 80 00 20 */ blr .global TPLGetGXTexObjFromPalette TPLGetGXTexObjFromPalette: /* 8029BA4C 002976AC 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8029BA50 002976B0 7C 08 02 A6 */ mflr r0 /* 8029BA54 002976B4 90 01 00 34 */ stw r0, 0x34(r1) /* 8029BA58 002976B8 93 E1 00 2C */ stw r31, 0x2c(r1) /* 8029BA5C 002976BC 93 C1 00 28 */ stw r30, 0x28(r1) /* 8029BA60 002976C0 93 A1 00 24 */ stw r29, 0x24(r1) /* 8029BA64 002976C4 7C 9D 23 78 */ mr r29, r4 /* 8029BA68 002976C8 80 C3 00 04 */ lwz r6, 4(r3) /* 8029BA6C 002976CC 83 C3 00 08 */ lwz r30, 8(r3) /* 8029BA70 002976D0 7F A3 EB 78 */ mr r3, r29 /* 8029BA74 002976D4 7C 05 33 96 */ divwu r0, r5, r6 /* 8029BA78 002976D8 7C 00 31 D6 */ mullw r0, r0, r6 /* 8029BA7C 002976DC 7C 00 28 50 */ subf r0, r0, r5 /* 8029BA80 002976E0 54 1F 18 38 */ slwi r31, r0, 3 /* 8029BA84 002976E4 7D 3E F8 2E */ lwzx r9, r30, r31 /* 8029BA88 002976E8 88 C9 00 21 */ lbz r6, 0x21(r9) /* 8029BA8C 002976EC 88 09 00 22 */ lbz r0, 0x22(r9) /* 8029BA90 002976F0 80 89 00 08 */ lwz r4, 8(r9) /* 8029BA94 002976F4 7C A6 00 50 */ subf r5, r6, r0 /* 8029BA98 002976F8 7C 00 30 50 */ subf r0, r0, r6 /* 8029BA9C 002976FC 7C A0 03 78 */ or r0, r5, r0 /* 8029BAA0 00297700 A0 A9 00 02 */ lhz r5, 2(r9) /* 8029BAA4 00297704 A0 C9 00 00 */ lhz r6, 0(r9) /* 8029BAA8 00297708 54 0A 0F FE */ srwi r10, r0, 0x1f /* 8029BAAC 0029770C 80 E9 00 04 */ lwz r7, 4(r9) /* 8029BAB0 00297710 81 09 00 0C */ lwz r8, 0xc(r9) /* 8029BAB4 00297714 81 29 00 10 */ lwz r9, 0x10(r9) /* 8029BAB8 00297718 4B FE 6C 19 */ bl GXInitTexObj /* 8029BABC 0029771C 7C FE F8 2E */ lwzx r7, r30, r31 /* 8029BAC0 00297720 3C A0 43 30 */ lis r5, 0x4330 /* 8029BAC4 00297724 90 A1 00 08 */ stw r5, 8(r1) /* 8029BAC8 00297728 7F A3 EB 78 */ mr r3, r29 /* 8029BACC 0029772C 88 87 00 21 */ lbz r4, 0x21(r7) /* 8029BAD0 00297730 38 C0 00 00 */ li r6, 0 /* 8029BAD4 00297734 88 07 00 22 */ lbz r0, 0x22(r7) /* 8029BAD8 00297738 39 00 00 00 */ li r8, 0 /* 8029BADC 0029773C 90 81 00 0C */ stw r4, 0xc(r1) /* 8029BAE0 00297740 C8 42 A3 78 */ lfd f2, lbl_80642978-_SDA2_BASE_(r2) /* 8029BAE4 00297744 C8 01 00 08 */ lfd f0, 8(r1) /* 8029BAE8 00297748 90 A1 00 10 */ stw r5, 0x10(r1) /* 8029BAEC 0029774C EC 20 10 28 */ fsubs f1, f0, f2 /* 8029BAF0 00297750 80 87 00 14 */ lwz r4, 0x14(r7) /* 8029BAF4 00297754 90 01 00 14 */ stw r0, 0x14(r1) /* 8029BAF8 00297758 80 A7 00 18 */ lwz r5, 0x18(r7) /* 8029BAFC 0029775C C8 01 00 10 */ lfd f0, 0x10(r1) /* 8029BB00 00297760 C0 67 00 1C */ lfs f3, 0x1c(r7) /* 8029BB04 00297764 EC 40 10 28 */ fsubs f2, f0, f2 /* 8029BB08 00297768 88 E7 00 20 */ lbz r7, 0x20(r7) /* 8029BB0C 0029776C 4B FE 6E 19 */ bl GXInitTexObjLOD /* 8029BB10 00297770 80 01 00 34 */ lwz r0, 0x34(r1) /* 8029BB14 00297774 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 8029BB18 00297778 83 C1 00 28 */ lwz r30, 0x28(r1) /* 8029BB1C 0029777C 83 A1 00 24 */ lwz r29, 0x24(r1) /* 8029BB20 00297780 7C 08 03 A6 */ mtlr r0 /* 8029BB24 00297784 38 21 00 30 */ addi r1, r1, 0x30 /* 8029BB28 00297788 4E 80 00 20 */ blr