.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global Get__Q34nw4r3lyt6TexMapCFP9_GXTexObj Get__Q34nw4r3lyt6TexMapCFP9_GXTexObj: /* 8038D388 00388FE8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8038D38C 00388FEC 7C 08 02 A6 */ mflr r0 /* 8038D390 00388FF0 81 43 00 18 */ lwz r10, 0x18(r3) /* 8038D394 00388FF4 90 01 00 24 */ stw r0, 0x24(r1) /* 8038D398 00388FF8 55 47 27 3E */ srwi r7, r10, 0x1c /* 8038D39C 00388FFC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8038D3A0 00389000 38 07 FF F8 */ addi r0, r7, -8 /* 8038D3A4 00389004 28 00 00 02 */ cmplwi r0, 2 /* 8038D3A8 00389008 7C 9F 23 78 */ mr r31, r4 /* 8038D3AC 0038900C 93 C1 00 18 */ stw r30, 0x18(r1) /* 8038D3B0 00389010 7C 7E 1B 78 */ mr r30, r3 /* 8038D3B4 00389014 41 81 00 3C */ bgt lbl_8038D3F0 /* 8038D3B8 00389018 7F E3 FB 78 */ mr r3, r31 /* 8038D3BC 0038901C 4B EF 56 9D */ bl GXGetTexObjTlut /* 8038D3C0 00389020 80 1E 00 18 */ lwz r0, 0x18(r30) /* 8038D3C4 00389024 90 61 00 08 */ stw r3, 8(r1) /* 8038D3C8 00389028 7F E3 FB 78 */ mr r3, r31 /* 8038D3CC 0038902C 80 9E 00 00 */ lwz r4, 0(r30) /* 8038D3D0 00389030 54 07 27 3E */ srwi r7, r0, 0x1c /* 8038D3D4 00389034 A0 BE 00 08 */ lhz r5, 8(r30) /* 8038D3D8 00389038 54 08 3F BE */ rlwinm r8, r0, 7, 0x1e, 0x1f /* 8038D3DC 0038903C A0 DE 00 0A */ lhz r6, 0xa(r30) /* 8038D3E0 00389040 54 09 4F BE */ rlwinm r9, r0, 9, 0x1e, 0x1f /* 8038D3E4 00389044 54 0A 2F FE */ rlwinm r10, r0, 5, 0x1f, 0x1f /* 8038D3E8 00389048 4B EF 54 F5 */ bl GXInitTexObjCI /* 8038D3EC 0038904C 48 00 00 24 */ b lbl_8038D410 lbl_8038D3F0: /* 8038D3F0 00389050 80 9E 00 00 */ lwz r4, 0(r30) /* 8038D3F4 00389054 7F E3 FB 78 */ mr r3, r31 /* 8038D3F8 00389058 A0 BE 00 08 */ lhz r5, 8(r30) /* 8038D3FC 0038905C 55 48 3F BE */ rlwinm r8, r10, 7, 0x1e, 0x1f /* 8038D400 00389060 55 49 4F BE */ rlwinm r9, r10, 9, 0x1e, 0x1f /* 8038D404 00389064 A0 DE 00 0A */ lhz r6, 0xa(r30) /* 8038D408 00389068 55 4A 2F FE */ rlwinm r10, r10, 5, 0x1f, 0x1f /* 8038D40C 0038906C 4B EF 52 C5 */ bl GXInitTexObj lbl_8038D410: /* 8038D410 00389070 A0 9E 00 14 */ lhz r4, 0x14(r30) /* 8038D414 00389074 3C A0 43 30 */ lis r5, 0x4330 /* 8038D418 00389078 80 1E 00 18 */ lwz r0, 0x18(r30) /* 8038D41C 0038907C 7F E3 FB 78 */ mr r3, r31 /* 8038D420 00389080 90 81 00 14 */ stw r4, 0x14(r1) /* 8038D424 00389084 C8 62 A8 C8 */ lfd f3, lbl_80642EC8-_SDA2_BASE_(r2) /* 8038D428 00389088 54 04 67 7E */ rlwinm r4, r0, 0xc, 0x1d, 0x1f /* 8038D42C 0038908C 90 A1 00 10 */ stw r5, 0x10(r1) /* 8038D430 00389090 54 05 7F 7E */ rlwinm r5, r0, 0xf, 0x1d, 0x1f /* 8038D434 00389094 C0 02 A8 C0 */ lfs f0, lbl_80642EC0-_SDA2_BASE_(r2) /* 8038D438 00389098 54 06 87 FE */ rlwinm r6, r0, 0x10, 0x1f, 0x1f /* 8038D43C 0038909C C8 21 00 10 */ lfd f1, 0x10(r1) /* 8038D440 003890A0 54 07 8F FE */ rlwinm r7, r0, 0x11, 0x1f, 0x1f /* 8038D444 003890A4 C0 5E 00 10 */ lfs f2, 0x10(r30) /* 8038D448 003890A8 54 08 9F BE */ rlwinm r8, r0, 0x13, 0x1e, 0x1f /* 8038D44C 003890AC EC 61 18 28 */ fsubs f3, f1, f3 /* 8038D450 003890B0 C0 3E 00 0C */ lfs f1, 0xc(r30) /* 8038D454 003890B4 EC 63 00 32 */ fmuls f3, f3, f0 /* 8038D458 003890B8 4B EF 54 CD */ bl GXInitTexObjLOD /* 8038D45C 003890BC 80 01 00 24 */ lwz r0, 0x24(r1) /* 8038D460 003890C0 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8038D464 003890C4 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8038D468 003890C8 7C 08 03 A6 */ mtlr r0 /* 8038D46C 003890CC 38 21 00 20 */ addi r1, r1, 0x20 /* 8038D470 003890D0 4E 80 00 20 */ blr .global Get__Q34nw4r3lyt6TexMapCFP10_GXTlutObj Get__Q34nw4r3lyt6TexMapCFP10_GXTlutObj: /* 8038D474 003890D4 7C 65 1B 78 */ mr r5, r3 /* 8038D478 003890D8 7C 83 23 78 */ mr r3, r4 /* 8038D47C 003890DC 80 05 00 18 */ lwz r0, 0x18(r5) /* 8038D480 003890E0 80 85 00 04 */ lwz r4, 4(r5) /* 8038D484 003890E4 A0 C5 00 16 */ lhz r6, 0x16(r5) /* 8038D488 003890E8 54 05 AF BE */ rlwinm r5, r0, 0x15, 0x1e, 0x1f /* 8038D48C 003890EC 4B EF 57 8C */ b GXInitTlutObj .global Set__Q34nw4r3lyt6TexMapFP10TPLPaletteUl Set__Q34nw4r3lyt6TexMapFP10TPLPaletteUl: /* 8038D490 003890F0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8038D494 003890F4 7C 08 02 A6 */ mflr r0 /* 8038D498 003890F8 90 01 00 24 */ stw r0, 0x24(r1) /* 8038D49C 003890FC 3C 00 80 00 */ lis r0, 0x8000 /* 8038D4A0 00389100 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8038D4A4 00389104 7C BF 2B 78 */ mr r31, r5 /* 8038D4A8 00389108 93 C1 00 18 */ stw r30, 0x18(r1) /* 8038D4AC 0038910C 7C 9E 23 78 */ mr r30, r4 /* 8038D4B0 00389110 93 A1 00 14 */ stw r29, 0x14(r1) /* 8038D4B4 00389114 7C 7D 1B 78 */ mr r29, r3 /* 8038D4B8 00389118 80 C4 00 08 */ lwz r6, 8(r4) /* 8038D4BC 0038911C 7C 06 00 40 */ cmplw r6, r0 /* 8038D4C0 00389120 40 80 00 0C */ bge lbl_8038D4CC /* 8038D4C4 00389124 7F C3 F3 78 */ mr r3, r30 /* 8038D4C8 00389128 4B F0 E4 51 */ bl TPLBind lbl_8038D4CC: /* 8038D4CC 0038912C 7F C3 F3 78 */ mr r3, r30 /* 8038D4D0 00389130 7F E4 FB 78 */ mr r4, r31 /* 8038D4D4 00389134 4B F0 E5 59 */ bl TPLGet /* 8038D4D8 00389138 7C 7F 1B 78 */ mr r31, r3 /* 8038D4DC 0038913C 7F A3 EB 78 */ mr r3, r29 /* 8038D4E0 00389140 7F E4 FB 78 */ mr r4, r31 /* 8038D4E4 00389144 48 00 00 95 */ bl SetNoWrap__Q34nw4r3lyt6TexMapFPC13TPLDescriptor /* 8038D4E8 00389148 80 7F 00 00 */ lwz r3, 0(r31) /* 8038D4EC 0038914C 80 1D 00 18 */ lwz r0, 0x18(r29) /* 8038D4F0 00389150 80 83 00 0C */ lwz r4, 0xc(r3) /* 8038D4F4 00389154 80 63 00 10 */ lwz r3, 0x10(r3) /* 8038D4F8 00389158 50 80 C9 4C */ rlwimi r0, r4, 0x19, 5, 6 /* 8038D4FC 0038915C 50 60 B9 D0 */ rlwimi r0, r3, 0x17, 7, 8 /* 8038D500 00389160 90 1D 00 18 */ stw r0, 0x18(r29) /* 8038D504 00389164 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8038D508 00389168 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8038D50C 0038916C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8038D510 00389170 80 01 00 24 */ lwz r0, 0x24(r1) /* 8038D514 00389174 7C 08 03 A6 */ mtlr r0 /* 8038D518 00389178 38 21 00 20 */ addi r1, r1, 0x20 /* 8038D51C 0038917C 4E 80 00 20 */ blr .global SetNoWrap__Q34nw4r3lyt6TexMapFRCQ34nw4r3lyt6TexMap SetNoWrap__Q34nw4r3lyt6TexMapFRCQ34nw4r3lyt6TexMap: /* 8038D520 00389180 80 A3 00 18 */ lwz r5, 0x18(r3) /* 8038D524 00389184 80 04 00 18 */ lwz r0, 0x18(r4) /* 8038D528 00389188 50 A0 01 4C */ rlwimi r0, r5, 0, 5, 6 /* 8038D52C 0038918C 81 24 00 00 */ lwz r9, 0(r4) /* 8038D530 00389190 50 A0 01 D0 */ rlwimi r0, r5, 0, 7, 8 /* 8038D534 00389194 81 04 00 04 */ lwz r8, 4(r4) /* 8038D538 00389198 A0 E4 00 08 */ lhz r7, 8(r4) /* 8038D53C 0038919C A0 C4 00 0A */ lhz r6, 0xa(r4) /* 8038D540 003891A0 C0 24 00 0C */ lfs f1, 0xc(r4) /* 8038D544 003891A4 C0 04 00 10 */ lfs f0, 0x10(r4) /* 8038D548 003891A8 A0 A4 00 14 */ lhz r5, 0x14(r4) /* 8038D54C 003891AC A0 84 00 16 */ lhz r4, 0x16(r4) /* 8038D550 003891B0 91 23 00 00 */ stw r9, 0(r3) /* 8038D554 003891B4 91 03 00 04 */ stw r8, 4(r3) /* 8038D558 003891B8 B0 E3 00 08 */ sth r7, 8(r3) /* 8038D55C 003891BC B0 C3 00 0A */ sth r6, 0xa(r3) /* 8038D560 003891C0 D0 23 00 0C */ stfs f1, 0xc(r3) /* 8038D564 003891C4 D0 03 00 10 */ stfs f0, 0x10(r3) /* 8038D568 003891C8 B0 A3 00 14 */ sth r5, 0x14(r3) /* 8038D56C 003891CC B0 83 00 16 */ sth r4, 0x16(r3) /* 8038D570 003891D0 90 03 00 18 */ stw r0, 0x18(r3) /* 8038D574 003891D4 4E 80 00 20 */ blr .global SetNoWrap__Q34nw4r3lyt6TexMapFPC13TPLDescriptor SetNoWrap__Q34nw4r3lyt6TexMapFPC13TPLDescriptor: /* 8038D578 003891D8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8038D57C 003891DC 3C 00 43 30 */ lis r0, 0x4330 /* 8038D580 003891E0 80 E4 00 00 */ lwz r7, 0(r4) /* 8038D584 003891E4 81 04 00 04 */ lwz r8, 4(r4) /* 8038D588 003891E8 80 87 00 08 */ lwz r4, 8(r7) /* 8038D58C 003891EC 80 C3 00 18 */ lwz r6, 0x18(r3) /* 8038D590 003891F0 2C 08 00 00 */ cmpwi r8, 0 /* 8038D594 003891F4 90 83 00 00 */ stw r4, 0(r3) /* 8038D598 003891F8 C8 62 A8 C8 */ lfd f3, lbl_80642EC8-_SDA2_BASE_(r2) /* 8038D59C 003891FC A0 A7 00 00 */ lhz r5, 0(r7) /* 8038D5A0 00389200 A0 87 00 02 */ lhz r4, 2(r7) /* 8038D5A4 00389204 90 01 00 08 */ stw r0, 8(r1) /* 8038D5A8 00389208 C0 02 A8 D0 */ lfs f0, lbl_80642ED0-_SDA2_BASE_(r2) /* 8038D5AC 0038920C B0 83 00 08 */ sth r4, 8(r3) /* 8038D5B0 00389210 B0 A3 00 0A */ sth r5, 0xa(r3) /* 8038D5B4 00389214 80 87 00 04 */ lwz r4, 4(r7) /* 8038D5B8 00389218 90 01 00 10 */ stw r0, 0x10(r1) /* 8038D5BC 0038921C 50 86 E0 06 */ rlwimi r6, r4, 0x1c, 0, 3 /* 8038D5C0 00389220 90 C3 00 18 */ stw r6, 0x18(r3) /* 8038D5C4 00389224 88 A7 00 21 */ lbz r5, 0x21(r7) /* 8038D5C8 00389228 88 07 00 22 */ lbz r0, 0x22(r7) /* 8038D5CC 0038922C 7C 85 00 50 */ subf r4, r5, r0 /* 8038D5D0 00389230 7C 00 28 50 */ subf r0, r0, r5 /* 8038D5D4 00389234 7C 80 03 78 */ or r0, r4, r0 /* 8038D5D8 00389238 50 06 E1 08 */ rlwimi r6, r0, 0x1c, 4, 4 /* 8038D5DC 0038923C 90 C3 00 18 */ stw r6, 0x18(r3) /* 8038D5E0 00389240 80 07 00 14 */ lwz r0, 0x14(r7) /* 8038D5E4 00389244 80 87 00 18 */ lwz r4, 0x18(r7) /* 8038D5E8 00389248 50 06 A2 56 */ rlwimi r6, r0, 0x14, 9, 0xb /* 8038D5EC 0038924C 50 86 8B 1C */ rlwimi r6, r4, 0x11, 0xc, 0xe /* 8038D5F0 00389250 90 C3 00 18 */ stw r6, 0x18(r3) /* 8038D5F4 00389254 88 87 00 22 */ lbz r4, 0x22(r7) /* 8038D5F8 00389258 88 07 00 21 */ lbz r0, 0x21(r7) /* 8038D5FC 0038925C 90 81 00 0C */ stw r4, 0xc(r1) /* 8038D600 00389260 90 01 00 14 */ stw r0, 0x14(r1) /* 8038D604 00389264 C8 41 00 08 */ lfd f2, 8(r1) /* 8038D608 00389268 C8 21 00 10 */ lfd f1, 0x10(r1) /* 8038D60C 0038926C EC 42 18 28 */ fsubs f2, f2, f3 /* 8038D610 00389270 EC 21 18 28 */ fsubs f1, f1, f3 /* 8038D614 00389274 D0 43 00 10 */ stfs f2, 0x10(r3) /* 8038D618 00389278 D0 23 00 0C */ stfs f1, 0xc(r3) /* 8038D61C 0038927C C0 27 00 1C */ lfs f1, 0x1c(r7) /* 8038D620 00389280 EC 00 00 72 */ fmuls f0, f0, f1 /* 8038D624 00389284 FC 00 00 1E */ fctiwz f0, f0 /* 8038D628 00389288 D8 01 00 18 */ stfd f0, 0x18(r1) /* 8038D62C 0038928C 80 01 00 1C */ lwz r0, 0x1c(r1) /* 8038D630 00389290 B0 03 00 14 */ sth r0, 0x14(r3) /* 8038D634 00389294 88 87 00 20 */ lbz r4, 0x20(r7) /* 8038D638 00389298 7C 04 00 D0 */ neg r0, r4 /* 8038D63C 0038929C 7C 00 23 78 */ or r0, r0, r4 /* 8038D640 003892A0 50 06 84 20 */ rlwimi r6, r0, 0x10, 0x10, 0x10 /* 8038D644 003892A4 90 C3 00 18 */ stw r6, 0x18(r3) /* 8038D648 003892A8 41 82 00 24 */ beq lbl_8038D66C /* 8038D64C 003892AC 80 08 00 08 */ lwz r0, 8(r8) /* 8038D650 003892B0 90 03 00 04 */ stw r0, 4(r3) /* 8038D654 003892B4 80 08 00 04 */ lwz r0, 4(r8) /* 8038D658 003892B8 50 06 5C E8 */ rlwimi r6, r0, 0xb, 0x13, 0x14 /* 8038D65C 003892BC 90 C3 00 18 */ stw r6, 0x18(r3) /* 8038D660 003892C0 A0 08 00 00 */ lhz r0, 0(r8) /* 8038D664 003892C4 B0 03 00 16 */ sth r0, 0x16(r3) /* 8038D668 003892C8 48 00 00 18 */ b lbl_8038D680 lbl_8038D66C: /* 8038D66C 003892CC 38 80 00 00 */ li r4, 0 /* 8038D670 003892D0 54 C0 05 64 */ rlwinm r0, r6, 0, 0x15, 0x12 /* 8038D674 003892D4 90 83 00 04 */ stw r4, 4(r3) /* 8038D678 003892D8 90 03 00 18 */ stw r0, 0x18(r3) /* 8038D67C 003892DC B0 83 00 16 */ sth r4, 0x16(r3) lbl_8038D680: /* 8038D680 003892E0 38 21 00 20 */ addi r1, r1, 0x20 /* 8038D684 003892E4 4E 80 00 20 */ blr