summaryrefslogtreecommitdiff
path: root/asm/SDK/GX
diff options
context:
space:
mode:
Diffstat (limited to 'asm/SDK/GX')
-rw-r--r--asm/SDK/GX/GXBump.s591
-rw-r--r--asm/SDK/GX/GXFrameBuf.s2
-rw-r--r--asm/SDK/GX/GXGeometry.s4
-rw-r--r--asm/SDK/GX/GXInit.s136
-rw-r--r--asm/SDK/GX/GXPixel.s547
-rw-r--r--asm/SDK/GX/GXTev.s493
-rw-r--r--asm/SDK/GX/GXTexture.s970
7 files changed, 2672 insertions, 71 deletions
diff --git a/asm/SDK/GX/GXBump.s b/asm/SDK/GX/GXBump.s
new file mode 100644
index 0000000..598cdfe
--- /dev/null
+++ b/asm/SDK/GX/GXBump.s
@@ -0,0 +1,591 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global GXSetTevIndirect
+GXSetTevIndirect:
+/* 80283364 0027EFC4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80283368 0027EFC8 39 80 00 00 */ li r12, 0
+/* 8028336C 0027EFCC 50 8C 07 BE */ rlwimi r12, r4, 0, 0x1e, 0x1f
+/* 80283370 0027EFD0 38 83 00 10 */ addi r4, r3, 0x10
+/* 80283374 0027EFD4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80283378 0027EFD8 50 AC 17 3A */ rlwimi r12, r5, 2, 0x1c, 0x1d
+/* 8028337C 0027EFDC 3D 60 CC 01 */ lis r11, 0xCC008000@ha
+/* 80283380 0027EFE0 38 00 00 61 */ li r0, 0x61
+/* 80283384 0027EFE4 98 0B 80 00 */ stb r0, 0xCC008000@l(r11)
+/* 80283388 0027EFE8 50 CC 26 76 */ rlwimi r12, r6, 4, 0x19, 0x1b
+/* 8028338C 0027EFEC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80283390 0027EFF0 38 00 00 00 */ li r0, 0
+/* 80283394 0027EFF4 88 A1 00 1B */ lbz r5, 0x1b(r1)
+/* 80283398 0027EFF8 53 EC 3D F0 */ rlwimi r12, r31, 7, 0x17, 0x18
+/* 8028339C 0027EFFC 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802833A0 0027F000 50 EC 4C EC */ rlwimi r12, r7, 9, 0x13, 0x16
+/* 802833A4 0027F004 51 0C 6C 24 */ rlwimi r12, r8, 0xd, 0x10, 0x12
+/* 802833A8 0027F008 51 2C 83 5E */ rlwimi r12, r9, 0x10, 0xd, 0xf
+/* 802833AC 0027F00C 50 AC 9B 18 */ rlwimi r12, r5, 0x13, 0xc, 0xc
+/* 802833B0 0027F010 51 4C A2 D6 */ rlwimi r12, r10, 0x14, 0xb, 0xb
+/* 802833B4 0027F014 50 8C C0 0E */ rlwimi r12, r4, 0x18, 0, 7
+/* 802833B8 0027F018 91 8B 80 00 */ stw r12, -0x8000(r11)
+/* 802833BC 0027F01C B0 03 00 02 */ sth r0, 2(r3)
+/* 802833C0 0027F020 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802833C4 0027F024 38 21 00 10 */ addi r1, r1, 0x10
+/* 802833C8 0027F028 4E 80 00 20 */ blr
+
+.global GXSetIndTexMtx
+GXSetIndTexMtx:
+/* 802833CC 0027F02C 2C 03 00 08 */ cmpwi r3, 8
+/* 802833D0 0027F030 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 802833D4 0027F034 41 82 00 44 */ beq lbl_80283418
+/* 802833D8 0027F038 40 80 00 1C */ bge lbl_802833F4
+/* 802833DC 0027F03C 2C 03 00 04 */ cmpwi r3, 4
+/* 802833E0 0027F040 41 82 00 38 */ beq lbl_80283418
+/* 802833E4 0027F044 40 80 00 24 */ bge lbl_80283408
+/* 802833E8 0027F048 2C 03 00 01 */ cmpwi r3, 1
+/* 802833EC 0027F04C 40 80 00 14 */ bge lbl_80283400
+/* 802833F0 0027F050 48 00 00 28 */ b lbl_80283418
+lbl_802833F4:
+/* 802833F4 0027F054 2C 03 00 0C */ cmpwi r3, 0xc
+/* 802833F8 0027F058 40 80 00 20 */ bge lbl_80283418
+/* 802833FC 0027F05C 48 00 00 14 */ b lbl_80283410
+lbl_80283400:
+/* 80283400 0027F060 38 63 FF FF */ addi r3, r3, -1
+/* 80283404 0027F064 48 00 00 18 */ b lbl_8028341C
+lbl_80283408:
+/* 80283408 0027F068 38 63 FF FB */ addi r3, r3, -5
+/* 8028340C 0027F06C 48 00 00 10 */ b lbl_8028341C
+lbl_80283410:
+/* 80283410 0027F070 38 63 FF F7 */ addi r3, r3, -9
+/* 80283414 0027F074 48 00 00 08 */ b lbl_8028341C
+lbl_80283418:
+/* 80283418 0027F078 38 60 00 00 */ li r3, 0
+lbl_8028341C:
+/* 8028341C 0027F07C C0 C2 A1 68 */ lfs f6, lbl_80642768-_SDA2_BASE_(r2)
+/* 80283420 0027F080 54 60 10 3A */ slwi r0, r3, 2
+/* 80283424 0027F084 C0 24 00 00 */ lfs f1, 0(r4)
+/* 80283428 0027F088 7D 23 00 50 */ subf r9, r3, r0
+/* 8028342C 0027F08C C0 04 00 0C */ lfs f0, 0xc(r4)
+/* 80283430 0027F090 39 05 00 11 */ addi r8, r5, 0x11
+/* 80283434 0027F094 EC 26 00 72 */ fmuls f1, f6, f1
+/* 80283438 0027F098 C0 64 00 04 */ lfs f3, 4(r4)
+/* 8028343C 0027F09C EC 06 00 32 */ fmuls f0, f6, f0
+/* 80283440 0027F0A0 C0 44 00 10 */ lfs f2, 0x10(r4)
+/* 80283444 0027F0A4 EC 66 00 F2 */ fmuls f3, f6, f3
+/* 80283448 0027F0A8 3C C0 CC 01 */ lis r6, 0xCC008000@ha
+/* 8028344C 0027F0AC FC A0 08 1E */ fctiwz f5, f1
+/* 80283450 0027F0B0 C0 24 00 08 */ lfs f1, 8(r4)
+/* 80283454 0027F0B4 FC 80 00 1E */ fctiwz f4, f0
+/* 80283458 0027F0B8 C0 04 00 14 */ lfs f0, 0x14(r4)
+/* 8028345C 0027F0BC EC 46 00 B2 */ fmuls f2, f6, f2
+/* 80283460 0027F0C0 38 E0 00 61 */ li r7, 0x61
+/* 80283464 0027F0C4 D8 A1 00 08 */ stfd f5, 8(r1)
+/* 80283468 0027F0C8 FC 60 18 1E */ fctiwz f3, f3
+/* 8028346C 0027F0CC EC 26 00 72 */ fmuls f1, f6, f1
+/* 80283470 0027F0D0 38 A0 00 00 */ li r5, 0
+/* 80283474 0027F0D4 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 80283478 0027F0D8 FC 40 10 1E */ fctiwz f2, f2
+/* 8028347C 0027F0DC EC 06 00 32 */ fmuls f0, f6, f0
+/* 80283480 0027F0E0 FC 20 08 1E */ fctiwz f1, f1
+/* 80283484 0027F0E4 D8 81 00 10 */ stfd f4, 0x10(r1)
+/* 80283488 0027F0E8 50 05 05 7E */ rlwimi r5, r0, 0, 0x15, 0x1f
+/* 8028348C 0027F0EC FC 00 00 1E */ fctiwz f0, f0
+/* 80283490 0027F0F0 38 69 00 06 */ addi r3, r9, 6
+/* 80283494 0027F0F4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80283498 0027F0F8 D8 61 00 18 */ stfd f3, 0x18(r1)
+/* 8028349C 0027F0FC 38 80 00 00 */ li r4, 0
+/* 802834A0 0027F100 50 05 5A A8 */ rlwimi r5, r0, 0xb, 0xa, 0x14
+/* 802834A4 0027F104 80 01 00 1C */ lwz r0, 0x1c(r1)
+/* 802834A8 0027F108 51 05 B2 12 */ rlwimi r5, r8, 0x16, 8, 9
+/* 802834AC 0027F10C 50 65 C0 0E */ rlwimi r5, r3, 0x18, 0, 7
+/* 802834B0 0027F110 98 E6 80 00 */ stb r7, 0xCC008000@l(r6)
+/* 802834B4 0027F114 50 04 05 7E */ rlwimi r4, r0, 0, 0x15, 0x1f
+/* 802834B8 0027F118 38 69 00 07 */ addi r3, r9, 7
+/* 802834BC 0027F11C 90 A6 80 00 */ stw r5, -0x8000(r6)
+/* 802834C0 0027F120 38 A0 00 00 */ li r5, 0
+/* 802834C4 0027F124 D8 41 00 20 */ stfd f2, 0x20(r1)
+/* 802834C8 0027F128 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802834CC 0027F12C D8 21 00 28 */ stfd f1, 0x28(r1)
+/* 802834D0 0027F130 50 04 5A A8 */ rlwimi r4, r0, 0xb, 0xa, 0x14
+/* 802834D4 0027F134 80 01 00 2C */ lwz r0, 0x2c(r1)
+/* 802834D8 0027F138 51 04 A2 12 */ rlwimi r4, r8, 0x14, 8, 9
+/* 802834DC 0027F13C 50 64 C0 0E */ rlwimi r4, r3, 0x18, 0, 7
+/* 802834E0 0027F140 98 E6 80 00 */ stb r7, -0x8000(r6)
+/* 802834E4 0027F144 50 05 05 7E */ rlwimi r5, r0, 0, 0x15, 0x1f
+/* 802834E8 0027F148 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802834EC 0027F14C 90 86 80 00 */ stw r4, -0x8000(r6)
+/* 802834F0 0027F150 38 89 00 08 */ addi r4, r9, 8
+/* 802834F4 0027F154 D8 01 00 30 */ stfd f0, 0x30(r1)
+/* 802834F8 0027F158 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802834FC 0027F15C 98 E6 80 00 */ stb r7, -0x8000(r6)
+/* 80283500 0027F160 50 05 5A A8 */ rlwimi r5, r0, 0xb, 0xa, 0x14
+/* 80283504 0027F164 38 00 00 00 */ li r0, 0
+/* 80283508 0027F168 51 05 92 12 */ rlwimi r5, r8, 0x12, 8, 9
+/* 8028350C 0027F16C 50 85 C0 0E */ rlwimi r5, r4, 0x18, 0, 7
+/* 80283510 0027F170 90 A6 80 00 */ stw r5, -0x8000(r6)
+/* 80283514 0027F174 B0 03 00 02 */ sth r0, 2(r3)
+/* 80283518 0027F178 38 21 00 40 */ addi r1, r1, 0x40
+/* 8028351C 0027F17C 4E 80 00 20 */ blr
+
+.global GXSetIndTexCoordScale
+GXSetIndTexCoordScale:
+/* 80283520 0027F180 2C 03 00 02 */ cmpwi r3, 2
+/* 80283524 0027F184 41 82 00 8C */ beq lbl_802835B0
+/* 80283528 0027F188 40 80 00 14 */ bge lbl_8028353C
+/* 8028352C 0027F18C 2C 03 00 00 */ cmpwi r3, 0
+/* 80283530 0027F190 41 82 00 18 */ beq lbl_80283548
+/* 80283534 0027F194 40 80 00 48 */ bge lbl_8028357C
+/* 80283538 0027F198 48 00 00 DC */ b lbl_80283614
+lbl_8028353C:
+/* 8028353C 0027F19C 2C 03 00 04 */ cmpwi r3, 4
+/* 80283540 0027F1A0 40 80 00 D4 */ bge lbl_80283614
+/* 80283544 0027F1A4 48 00 00 A0 */ b lbl_802835E4
+lbl_80283548:
+/* 80283548 0027F1A8 81 02 A0 D0 */ lwz r8, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028354C 0027F1AC 38 C0 00 25 */ li r6, 0x25
+/* 80283550 0027F1B0 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80283554 0027F1B4 38 00 00 61 */ li r0, 0x61
+/* 80283558 0027F1B8 80 E8 01 78 */ lwz r7, 0x178(r8)
+/* 8028355C 0027F1BC 50 87 07 3E */ rlwimi r7, r4, 0, 0x1c, 0x1f
+/* 80283560 0027F1C0 50 A7 26 36 */ rlwimi r7, r5, 4, 0x18, 0x1b
+/* 80283564 0027F1C4 50 C7 C0 0E */ rlwimi r7, r6, 0x18, 0, 7
+/* 80283568 0027F1C8 90 E8 01 78 */ stw r7, 0x178(r8)
+/* 8028356C 0027F1CC 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80283570 0027F1D0 80 08 01 78 */ lwz r0, 0x178(r8)
+/* 80283574 0027F1D4 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80283578 0027F1D8 48 00 00 9C */ b lbl_80283614
+lbl_8028357C:
+/* 8028357C 0027F1DC 81 02 A0 D0 */ lwz r8, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283580 0027F1E0 38 C0 00 25 */ li r6, 0x25
+/* 80283584 0027F1E4 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80283588 0027F1E8 38 00 00 61 */ li r0, 0x61
+/* 8028358C 0027F1EC 80 E8 01 78 */ lwz r7, 0x178(r8)
+/* 80283590 0027F1F0 50 87 45 2E */ rlwimi r7, r4, 8, 0x14, 0x17
+/* 80283594 0027F1F4 50 A7 64 26 */ rlwimi r7, r5, 0xc, 0x10, 0x13
+/* 80283598 0027F1F8 50 C7 C0 0E */ rlwimi r7, r6, 0x18, 0, 7
+/* 8028359C 0027F1FC 90 E8 01 78 */ stw r7, 0x178(r8)
+/* 802835A0 0027F200 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 802835A4 0027F204 80 08 01 78 */ lwz r0, 0x178(r8)
+/* 802835A8 0027F208 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 802835AC 0027F20C 48 00 00 68 */ b lbl_80283614
+lbl_802835B0:
+/* 802835B0 0027F210 81 02 A0 D0 */ lwz r8, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802835B4 0027F214 38 C0 00 26 */ li r6, 0x26
+/* 802835B8 0027F218 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 802835BC 0027F21C 38 00 00 61 */ li r0, 0x61
+/* 802835C0 0027F220 80 E8 01 7C */ lwz r7, 0x17c(r8)
+/* 802835C4 0027F224 50 87 07 3E */ rlwimi r7, r4, 0, 0x1c, 0x1f
+/* 802835C8 0027F228 50 A7 26 36 */ rlwimi r7, r5, 4, 0x18, 0x1b
+/* 802835CC 0027F22C 50 C7 C0 0E */ rlwimi r7, r6, 0x18, 0, 7
+/* 802835D0 0027F230 90 E8 01 7C */ stw r7, 0x17c(r8)
+/* 802835D4 0027F234 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 802835D8 0027F238 80 08 01 7C */ lwz r0, 0x17c(r8)
+/* 802835DC 0027F23C 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 802835E0 0027F240 48 00 00 34 */ b lbl_80283614
+lbl_802835E4:
+/* 802835E4 0027F244 81 02 A0 D0 */ lwz r8, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802835E8 0027F248 38 C0 00 26 */ li r6, 0x26
+/* 802835EC 0027F24C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 802835F0 0027F250 38 00 00 61 */ li r0, 0x61
+/* 802835F4 0027F254 80 E8 01 7C */ lwz r7, 0x17c(r8)
+/* 802835F8 0027F258 50 87 45 2E */ rlwimi r7, r4, 8, 0x14, 0x17
+/* 802835FC 0027F25C 50 A7 64 26 */ rlwimi r7, r5, 0xc, 0x10, 0x13
+/* 80283600 0027F260 50 C7 C0 0E */ rlwimi r7, r6, 0x18, 0, 7
+/* 80283604 0027F264 90 E8 01 7C */ stw r7, 0x17c(r8)
+/* 80283608 0027F268 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 8028360C 0027F26C 80 08 01 7C */ lwz r0, 0x17c(r8)
+/* 80283610 0027F270 90 03 80 00 */ stw r0, -0x8000(r3)
+lbl_80283614:
+/* 80283614 0027F274 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283618 0027F278 38 00 00 00 */ li r0, 0
+/* 8028361C 0027F27C B0 03 00 02 */ sth r0, 2(r3)
+/* 80283620 0027F280 4E 80 00 20 */ blr
+
+.global GXSetIndTexOrder
+GXSetIndTexOrder:
+/* 80283624 0027F284 2C 05 00 FF */ cmpwi r5, 0xff
+/* 80283628 0027F288 40 82 00 08 */ bne lbl_80283630
+/* 8028362C 0027F28C 38 A0 00 00 */ li r5, 0
+lbl_80283630:
+/* 80283630 0027F290 2C 04 00 FF */ cmpwi r4, 0xff
+/* 80283634 0027F294 40 82 00 08 */ bne lbl_8028363C
+/* 80283638 0027F298 38 80 00 00 */ li r4, 0
+lbl_8028363C:
+/* 8028363C 0027F29C 2C 03 00 02 */ cmpwi r3, 2
+/* 80283640 0027F2A0 41 82 00 54 */ beq lbl_80283694
+/* 80283644 0027F2A4 40 80 00 14 */ bge lbl_80283658
+/* 80283648 0027F2A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8028364C 0027F2AC 41 82 00 18 */ beq lbl_80283664
+/* 80283650 0027F2B0 40 80 00 2C */ bge lbl_8028367C
+/* 80283654 0027F2B4 48 00 00 6C */ b lbl_802836C0
+lbl_80283658:
+/* 80283658 0027F2B8 2C 03 00 04 */ cmpwi r3, 4
+/* 8028365C 0027F2BC 40 80 00 64 */ bge lbl_802836C0
+/* 80283660 0027F2C0 48 00 00 4C */ b lbl_802836AC
+lbl_80283664:
+/* 80283664 0027F2C4 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283668 0027F2C8 80 03 01 70 */ lwz r0, 0x170(r3)
+/* 8028366C 0027F2CC 50 A0 07 7E */ rlwimi r0, r5, 0, 0x1d, 0x1f
+/* 80283670 0027F2D0 50 80 1E B8 */ rlwimi r0, r4, 3, 0x1a, 0x1c
+/* 80283674 0027F2D4 90 03 01 70 */ stw r0, 0x170(r3)
+/* 80283678 0027F2D8 48 00 00 48 */ b lbl_802836C0
+lbl_8028367C:
+/* 8028367C 0027F2DC 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283680 0027F2E0 80 03 01 70 */ lwz r0, 0x170(r3)
+/* 80283684 0027F2E4 50 A0 35 F2 */ rlwimi r0, r5, 6, 0x17, 0x19
+/* 80283688 0027F2E8 50 80 4D 2C */ rlwimi r0, r4, 9, 0x14, 0x16
+/* 8028368C 0027F2EC 90 03 01 70 */ stw r0, 0x170(r3)
+/* 80283690 0027F2F0 48 00 00 30 */ b lbl_802836C0
+lbl_80283694:
+/* 80283694 0027F2F4 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283698 0027F2F8 80 03 01 70 */ lwz r0, 0x170(r3)
+/* 8028369C 0027F2FC 50 A0 64 66 */ rlwimi r0, r5, 0xc, 0x11, 0x13
+/* 802836A0 0027F300 50 80 7B A0 */ rlwimi r0, r4, 0xf, 0xe, 0x10
+/* 802836A4 0027F304 90 03 01 70 */ stw r0, 0x170(r3)
+/* 802836A8 0027F308 48 00 00 18 */ b lbl_802836C0
+lbl_802836AC:
+/* 802836AC 0027F30C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802836B0 0027F310 80 03 01 70 */ lwz r0, 0x170(r3)
+/* 802836B4 0027F314 50 A0 92 DA */ rlwimi r0, r5, 0x12, 0xb, 0xd
+/* 802836B8 0027F318 50 80 AA 14 */ rlwimi r0, r4, 0x15, 8, 0xa
+/* 802836BC 0027F31C 90 03 01 70 */ stw r0, 0x170(r3)
+lbl_802836C0:
+/* 802836C0 0027F320 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 802836C4 0027F324 38 00 00 61 */ li r0, 0x61
+/* 802836C8 0027F328 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
+/* 802836CC 0027F32C 38 00 00 00 */ li r0, 0
+/* 802836D0 0027F330 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802836D4 0027F334 80 65 01 70 */ lwz r3, 0x170(r5)
+/* 802836D8 0027F338 90 64 80 00 */ stw r3, -0x8000(r4)
+/* 802836DC 0027F33C 80 65 05 FC */ lwz r3, 0x5fc(r5)
+/* 802836E0 0027F340 60 63 00 03 */ ori r3, r3, 3
+/* 802836E4 0027F344 90 65 05 FC */ stw r3, 0x5fc(r5)
+/* 802836E8 0027F348 B0 05 00 02 */ sth r0, 2(r5)
+/* 802836EC 0027F34C 4E 80 00 20 */ blr
+
+.global GXSetNumIndStages
+GXSetNumIndStages:
+/* 802836F0 0027F350 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802836F4 0027F354 80 04 02 54 */ lwz r0, 0x254(r4)
+/* 802836F8 0027F358 50 60 83 5E */ rlwimi r0, r3, 0x10, 0xd, 0xf
+/* 802836FC 0027F35C 90 04 02 54 */ stw r0, 0x254(r4)
+/* 80283700 0027F360 80 04 05 FC */ lwz r0, 0x5fc(r4)
+/* 80283704 0027F364 60 00 00 06 */ ori r0, r0, 6
+/* 80283708 0027F368 90 04 05 FC */ stw r0, 0x5fc(r4)
+/* 8028370C 0027F36C 4E 80 00 20 */ blr
+
+.global GXSetTevDirect
+GXSetTevDirect:
+/* 80283710 0027F370 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80283714 0027F374 7C 08 02 A6 */ mflr r0
+/* 80283718 0027F378 38 80 00 00 */ li r4, 0
+/* 8028371C 0027F37C 38 A0 00 00 */ li r5, 0
+/* 80283720 0027F380 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80283724 0027F384 38 00 00 00 */ li r0, 0
+/* 80283728 0027F388 38 C0 00 00 */ li r6, 0
+/* 8028372C 0027F38C 38 E0 00 00 */ li r7, 0
+/* 80283730 0027F390 90 01 00 08 */ stw r0, 8(r1)
+/* 80283734 0027F394 39 00 00 00 */ li r8, 0
+/* 80283738 0027F398 39 20 00 00 */ li r9, 0
+/* 8028373C 0027F39C 39 40 00 00 */ li r10, 0
+/* 80283740 0027F3A0 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80283744 0027F3A4 4B FF FC 21 */ bl GXSetTevIndirect
+/* 80283748 0027F3A8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8028374C 0027F3AC 7C 08 03 A6 */ mtlr r0
+/* 80283750 0027F3B0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80283754 0027F3B4 4E 80 00 20 */ blr
+
+.global GXSetTevIndWarp
+GXSetTevIndWarp:
+/* 80283758 0027F3B8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8028375C 0027F3BC 7C 08 02 A6 */ mflr r0
+/* 80283760 0027F3C0 2C 06 00 00 */ cmpwi r6, 0
+/* 80283764 0027F3C4 39 00 00 00 */ li r8, 0
+/* 80283768 0027F3C8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8028376C 0027F3CC 41 82 00 08 */ beq lbl_80283774
+/* 80283770 0027F3D0 39 00 00 06 */ li r8, 6
+lbl_80283774:
+/* 80283774 0027F3D4 38 C0 00 00 */ li r6, 0
+/* 80283778 0027F3D8 2C 05 00 00 */ cmpwi r5, 0
+/* 8028377C 0027F3DC 90 C1 00 08 */ stw r6, 8(r1)
+/* 80283780 0027F3E0 38 A0 00 00 */ li r5, 0
+/* 80283784 0027F3E4 90 C1 00 0C */ stw r6, 0xc(r1)
+/* 80283788 0027F3E8 41 82 00 08 */ beq lbl_80283790
+/* 8028378C 0027F3EC 38 C0 00 07 */ li r6, 7
+lbl_80283790:
+/* 80283790 0027F3F0 7D 09 43 78 */ mr r9, r8
+/* 80283794 0027F3F4 39 40 00 00 */ li r10, 0
+/* 80283798 0027F3F8 4B FF FB CD */ bl GXSetTevIndirect
+/* 8028379C 0027F3FC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802837A0 0027F400 7C 08 03 A6 */ mtlr r0
+/* 802837A4 0027F404 38 21 00 10 */ addi r1, r1, 0x10
+/* 802837A8 0027F408 4E 80 00 20 */ blr
+
+.global GXSetTevIndTile
+GXSetTevIndTile:
+/* 802837AC 0027F40C 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 802837B0 0027F410 7C 08 02 A6 */ mflr r0
+/* 802837B4 0027F414 90 01 00 64 */ stw r0, 0x64(r1)
+/* 802837B8 0027F418 39 61 00 60 */ addi r11, r1, 0x60
+/* 802837BC 0027F41C 4B F4 39 61 */ bl _savegpr_24
+/* 802837C0 0027F420 2C 05 00 40 */ cmpwi r5, 0x40
+/* 802837C4 0027F424 83 81 00 68 */ lwz r28, 0x68(r1)
+/* 802837C8 0027F428 83 A1 00 6C */ lwz r29, 0x6c(r1)
+/* 802837CC 0027F42C 7C 78 1B 78 */ mr r24, r3
+/* 802837D0 0027F430 7C 99 23 78 */ mr r25, r4
+/* 802837D4 0027F434 7D 3A 4B 78 */ mr r26, r9
+/* 802837D8 0027F438 7D 5B 53 78 */ mr r27, r10
+/* 802837DC 0027F43C 41 82 00 48 */ beq lbl_80283824
+/* 802837E0 0027F440 40 80 00 1C */ bge lbl_802837FC
+/* 802837E4 0027F444 2C 05 00 20 */ cmpwi r5, 0x20
+/* 802837E8 0027F448 41 82 00 44 */ beq lbl_8028382C
+/* 802837EC 0027F44C 40 80 00 50 */ bge lbl_8028383C
+/* 802837F0 0027F450 2C 05 00 10 */ cmpwi r5, 0x10
+/* 802837F4 0027F454 41 82 00 40 */ beq lbl_80283834
+/* 802837F8 0027F458 48 00 00 44 */ b lbl_8028383C
+lbl_802837FC:
+/* 802837FC 0027F45C 2C 05 01 00 */ cmpwi r5, 0x100
+/* 80283800 0027F460 41 82 00 14 */ beq lbl_80283814
+/* 80283804 0027F464 40 80 00 38 */ bge lbl_8028383C
+/* 80283808 0027F468 2C 05 00 80 */ cmpwi r5, 0x80
+/* 8028380C 0027F46C 41 82 00 10 */ beq lbl_8028381C
+/* 80283810 0027F470 48 00 00 2C */ b lbl_8028383C
+lbl_80283814:
+/* 80283814 0027F474 3B E0 00 01 */ li r31, 1
+/* 80283818 0027F478 48 00 00 28 */ b lbl_80283840
+lbl_8028381C:
+/* 8028381C 0027F47C 3B E0 00 02 */ li r31, 2
+/* 80283820 0027F480 48 00 00 20 */ b lbl_80283840
+lbl_80283824:
+/* 80283824 0027F484 3B E0 00 03 */ li r31, 3
+/* 80283828 0027F488 48 00 00 18 */ b lbl_80283840
+lbl_8028382C:
+/* 8028382C 0027F48C 3B E0 00 04 */ li r31, 4
+/* 80283830 0027F490 48 00 00 10 */ b lbl_80283840
+lbl_80283834:
+/* 80283834 0027F494 3B E0 00 05 */ li r31, 5
+/* 80283838 0027F498 48 00 00 08 */ b lbl_80283840
+lbl_8028383C:
+/* 8028383C 0027F49C 3B E0 00 00 */ li r31, 0
+lbl_80283840:
+/* 80283840 0027F4A0 2C 06 00 40 */ cmpwi r6, 0x40
+/* 80283844 0027F4A4 41 82 00 48 */ beq lbl_8028388C
+/* 80283848 0027F4A8 40 80 00 1C */ bge lbl_80283864
+/* 8028384C 0027F4AC 2C 06 00 20 */ cmpwi r6, 0x20
+/* 80283850 0027F4B0 41 82 00 44 */ beq lbl_80283894
+/* 80283854 0027F4B4 40 80 00 50 */ bge lbl_802838A4
+/* 80283858 0027F4B8 2C 06 00 10 */ cmpwi r6, 0x10
+/* 8028385C 0027F4BC 41 82 00 40 */ beq lbl_8028389C
+/* 80283860 0027F4C0 48 00 00 44 */ b lbl_802838A4
+lbl_80283864:
+/* 80283864 0027F4C4 2C 06 01 00 */ cmpwi r6, 0x100
+/* 80283868 0027F4C8 41 82 00 14 */ beq lbl_8028387C
+/* 8028386C 0027F4CC 40 80 00 38 */ bge lbl_802838A4
+/* 80283870 0027F4D0 2C 06 00 80 */ cmpwi r6, 0x80
+/* 80283874 0027F4D4 41 82 00 10 */ beq lbl_80283884
+/* 80283878 0027F4D8 48 00 00 2C */ b lbl_802838A4
+lbl_8028387C:
+/* 8028387C 0027F4DC 3B C0 00 01 */ li r30, 1
+/* 80283880 0027F4E0 48 00 00 28 */ b lbl_802838A8
+lbl_80283884:
+/* 80283884 0027F4E4 3B C0 00 02 */ li r30, 2
+/* 80283888 0027F4E8 48 00 00 20 */ b lbl_802838A8
+lbl_8028388C:
+/* 8028388C 0027F4EC 3B C0 00 03 */ li r30, 3
+/* 80283890 0027F4F0 48 00 00 18 */ b lbl_802838A8
+lbl_80283894:
+/* 80283894 0027F4F4 3B C0 00 04 */ li r30, 4
+/* 80283898 0027F4F8 48 00 00 10 */ b lbl_802838A8
+lbl_8028389C:
+/* 8028389C 0027F4FC 3B C0 00 05 */ li r30, 5
+/* 802838A0 0027F500 48 00 00 08 */ b lbl_802838A8
+lbl_802838A4:
+/* 802838A4 0027F504 3B C0 00 00 */ li r30, 0
+lbl_802838A8:
+/* 802838A8 0027F508 3C 00 43 30 */ lis r0, 0x4330
+/* 802838AC 0027F50C C0 22 A1 70 */ lfs f1, lbl_80642770-_SDA2_BASE_(r2)
+/* 802838B0 0027F510 90 E1 00 2C */ stw r7, 0x2c(r1)
+/* 802838B4 0027F514 7F 63 DB 78 */ mr r3, r27
+/* 802838B8 0027F518 C8 82 A1 78 */ lfd f4, lbl_80642778-_SDA2_BASE_(r2)
+/* 802838BC 0027F51C 38 81 00 10 */ addi r4, r1, 0x10
+/* 802838C0 0027F520 90 01 00 28 */ stw r0, 0x28(r1)
+/* 802838C4 0027F524 38 A0 00 0A */ li r5, 0xa
+/* 802838C8 0027F528 C0 62 A1 6C */ lfs f3, lbl_8064276C-_SDA2_BASE_(r2)
+/* 802838CC 0027F52C C8 01 00 28 */ lfd f0, 0x28(r1)
+/* 802838D0 0027F530 91 01 00 34 */ stw r8, 0x34(r1)
+/* 802838D4 0027F534 EC 40 20 28 */ fsubs f2, f0, f4
+/* 802838D8 0027F538 90 01 00 30 */ stw r0, 0x30(r1)
+/* 802838DC 0027F53C C8 01 00 30 */ lfd f0, 0x30(r1)
+/* 802838E0 0027F540 EC 42 00 F2 */ fmuls f2, f2, f3
+/* 802838E4 0027F544 D0 21 00 18 */ stfs f1, 0x18(r1)
+/* 802838E8 0027F548 EC 00 20 28 */ fsubs f0, f0, f4
+/* 802838EC 0027F54C D0 41 00 10 */ stfs f2, 0x10(r1)
+/* 802838F0 0027F550 EC 00 00 F2 */ fmuls f0, f0, f3
+/* 802838F4 0027F554 D0 21 00 14 */ stfs f1, 0x14(r1)
+/* 802838F8 0027F558 D0 21 00 24 */ stfs f1, 0x24(r1)
+/* 802838FC 0027F55C D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 80283900 0027F560 D0 21 00 1C */ stfs f1, 0x1c(r1)
+/* 80283904 0027F564 4B FF FA C9 */ bl GXSetIndTexMtx
+/* 80283908 0027F568 38 00 00 01 */ li r0, 1
+/* 8028390C 0027F56C 7F 03 C3 78 */ mr r3, r24
+/* 80283910 0027F570 90 01 00 08 */ stw r0, 8(r1)
+/* 80283914 0027F574 7F 24 CB 78 */ mr r4, r25
+/* 80283918 0027F578 7F 45 D3 78 */ mr r5, r26
+/* 8028391C 0027F57C 7F 86 E3 78 */ mr r6, r28
+/* 80283920 0027F580 93 A1 00 0C */ stw r29, 0xc(r1)
+/* 80283924 0027F584 7F 67 DB 78 */ mr r7, r27
+/* 80283928 0027F588 7F E8 FB 78 */ mr r8, r31
+/* 8028392C 0027F58C 7F C9 F3 78 */ mr r9, r30
+/* 80283930 0027F590 39 40 00 00 */ li r10, 0
+/* 80283934 0027F594 4B FF FA 31 */ bl GXSetTevIndirect
+/* 80283938 0027F598 39 61 00 60 */ addi r11, r1, 0x60
+/* 8028393C 0027F59C 4B F4 38 2D */ bl _restgpr_24
+/* 80283940 0027F5A0 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 80283944 0027F5A4 7C 08 03 A6 */ mtlr r0
+/* 80283948 0027F5A8 38 21 00 60 */ addi r1, r1, 0x60
+/* 8028394C 0027F5AC 4E 80 00 20 */ blr
+
+.global GXSetTevIndBumpST
+GXSetTevIndBumpST:
+/* 80283950 0027F5B0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80283954 0027F5B4 7C 08 02 A6 */ mflr r0
+/* 80283958 0027F5B8 2C 05 00 02 */ cmpwi r5, 2
+/* 8028395C 0027F5BC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80283960 0027F5C0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80283964 0027F5C4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80283968 0027F5C8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8028396C 0027F5CC 7C 9D 23 78 */ mr r29, r4
+/* 80283970 0027F5D0 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80283974 0027F5D4 7C 7C 1B 78 */ mr r28, r3
+/* 80283978 0027F5D8 41 82 00 2C */ beq lbl_802839A4
+/* 8028397C 0027F5DC 40 80 00 10 */ bge lbl_8028398C
+/* 80283980 0027F5E0 2C 05 00 01 */ cmpwi r5, 1
+/* 80283984 0027F5E4 40 80 00 14 */ bge lbl_80283998
+/* 80283988 0027F5E8 48 00 00 30 */ b lbl_802839B8
+lbl_8028398C:
+/* 8028398C 0027F5EC 2C 05 00 04 */ cmpwi r5, 4
+/* 80283990 0027F5F0 40 80 00 28 */ bge lbl_802839B8
+/* 80283994 0027F5F4 48 00 00 1C */ b lbl_802839B0
+lbl_80283998:
+/* 80283998 0027F5F8 38 E0 00 05 */ li r7, 5
+/* 8028399C 0027F5FC 3B C0 00 09 */ li r30, 9
+/* 802839A0 0027F600 48 00 00 18 */ b lbl_802839B8
+lbl_802839A4:
+/* 802839A4 0027F604 38 E0 00 06 */ li r7, 6
+/* 802839A8 0027F608 3B C0 00 0A */ li r30, 0xa
+/* 802839AC 0027F60C 48 00 00 0C */ b lbl_802839B8
+lbl_802839B0:
+/* 802839B0 0027F610 38 E0 00 07 */ li r7, 7
+/* 802839B4 0027F614 3B C0 00 0B */ li r30, 0xb
+lbl_802839B8:
+/* 802839B8 0027F618 3B E0 00 00 */ li r31, 0
+/* 802839BC 0027F61C 7F 83 E3 78 */ mr r3, r28
+/* 802839C0 0027F620 93 E1 00 08 */ stw r31, 8(r1)
+/* 802839C4 0027F624 7F A4 EB 78 */ mr r4, r29
+/* 802839C8 0027F628 38 A0 00 00 */ li r5, 0
+/* 802839CC 0027F62C 38 C0 00 03 */ li r6, 3
+/* 802839D0 0027F630 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802839D4 0027F634 39 00 00 06 */ li r8, 6
+/* 802839D8 0027F638 39 20 00 06 */ li r9, 6
+/* 802839DC 0027F63C 39 40 00 00 */ li r10, 0
+/* 802839E0 0027F640 4B FF F9 85 */ bl GXSetTevIndirect
+/* 802839E4 0027F644 93 E1 00 08 */ stw r31, 8(r1)
+/* 802839E8 0027F648 7F A4 EB 78 */ mr r4, r29
+/* 802839EC 0027F64C 7F C7 F3 78 */ mr r7, r30
+/* 802839F0 0027F650 38 7C 00 01 */ addi r3, r28, 1
+/* 802839F4 0027F654 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802839F8 0027F658 38 A0 00 00 */ li r5, 0
+/* 802839FC 0027F65C 38 C0 00 03 */ li r6, 3
+/* 80283A00 0027F660 39 00 00 06 */ li r8, 6
+/* 80283A04 0027F664 39 20 00 06 */ li r9, 6
+/* 80283A08 0027F668 39 40 00 01 */ li r10, 1
+/* 80283A0C 0027F66C 4B FF F9 59 */ bl GXSetTevIndirect
+/* 80283A10 0027F670 93 E1 00 08 */ stw r31, 8(r1)
+/* 80283A14 0027F674 7F A4 EB 78 */ mr r4, r29
+/* 80283A18 0027F678 38 7C 00 02 */ addi r3, r28, 2
+/* 80283A1C 0027F67C 38 A0 00 00 */ li r5, 0
+/* 80283A20 0027F680 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80283A24 0027F684 38 C0 00 00 */ li r6, 0
+/* 80283A28 0027F688 38 E0 00 00 */ li r7, 0
+/* 80283A2C 0027F68C 39 00 00 00 */ li r8, 0
+/* 80283A30 0027F690 39 20 00 00 */ li r9, 0
+/* 80283A34 0027F694 39 40 00 01 */ li r10, 1
+/* 80283A38 0027F698 4B FF F9 2D */ bl GXSetTevIndirect
+/* 80283A3C 0027F69C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80283A40 0027F6A0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80283A44 0027F6A4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80283A48 0027F6A8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80283A4C 0027F6AC 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80283A50 0027F6B0 7C 08 03 A6 */ mtlr r0
+/* 80283A54 0027F6B4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80283A58 0027F6B8 4E 80 00 20 */ blr
+
+.global GXSetTevIndBumpXYZ
+GXSetTevIndBumpXYZ:
+/* 80283A5C 0027F6BC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80283A60 0027F6C0 7C 08 02 A6 */ mflr r0
+/* 80283A64 0027F6C4 7C A7 2B 78 */ mr r7, r5
+/* 80283A68 0027F6C8 38 A0 00 00 */ li r5, 0
+/* 80283A6C 0027F6CC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80283A70 0027F6D0 38 00 00 00 */ li r0, 0
+/* 80283A74 0027F6D4 38 C0 00 07 */ li r6, 7
+/* 80283A78 0027F6D8 39 00 00 00 */ li r8, 0
+/* 80283A7C 0027F6DC 90 01 00 08 */ stw r0, 8(r1)
+/* 80283A80 0027F6E0 39 20 00 00 */ li r9, 0
+/* 80283A84 0027F6E4 39 40 00 00 */ li r10, 0
+/* 80283A88 0027F6E8 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80283A8C 0027F6EC 4B FF F8 D9 */ bl GXSetTevIndirect
+/* 80283A90 0027F6F0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80283A94 0027F6F4 7C 08 03 A6 */ mtlr r0
+/* 80283A98 0027F6F8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80283A9C 0027F6FC 4E 80 00 20 */ blr
+
+.global GXSetTevIndRepeat
+GXSetTevIndRepeat:
+/* 80283AA0 0027F700 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80283AA4 0027F704 7C 08 02 A6 */ mflr r0
+/* 80283AA8 0027F708 38 80 00 00 */ li r4, 0
+/* 80283AAC 0027F70C 38 A0 00 00 */ li r5, 0
+/* 80283AB0 0027F710 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80283AB4 0027F714 38 00 00 00 */ li r0, 0
+/* 80283AB8 0027F718 38 C0 00 00 */ li r6, 0
+/* 80283ABC 0027F71C 38 E0 00 00 */ li r7, 0
+/* 80283AC0 0027F720 90 01 00 08 */ stw r0, 8(r1)
+/* 80283AC4 0027F724 39 00 00 06 */ li r8, 6
+/* 80283AC8 0027F728 39 20 00 06 */ li r9, 6
+/* 80283ACC 0027F72C 39 40 00 01 */ li r10, 1
+/* 80283AD0 0027F730 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80283AD4 0027F734 4B FF F8 91 */ bl GXSetTevIndirect
+/* 80283AD8 0027F738 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80283ADC 0027F73C 7C 08 03 A6 */ mtlr r0
+/* 80283AE0 0027F740 38 21 00 10 */ addi r1, r1, 0x10
+/* 80283AE4 0027F744 4E 80 00 20 */ blr
+
+.global __GXUpdateBPMask
+__GXUpdateBPMask:
+/* 80283AE8 0027F748 4E 80 00 20 */ blr
+
+.global __GXSetIndirectMask
+__GXSetIndirectMask:
+/* 80283AEC 0027F74C 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283AF0 0027F750 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80283AF4 0027F754 38 A0 00 61 */ li r5, 0x61
+/* 80283AF8 0027F758 38 00 00 00 */ li r0, 0
+/* 80283AFC 0027F75C 80 C7 01 74 */ lwz r6, 0x174(r7)
+/* 80283B00 0027F760 50 66 06 3E */ rlwimi r6, r3, 0, 0x18, 0x1f
+/* 80283B04 0027F764 90 C7 01 74 */ stw r6, 0x174(r7)
+/* 80283B08 0027F768 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 80283B0C 0027F76C 80 67 01 74 */ lwz r3, 0x174(r7)
+/* 80283B10 0027F770 90 64 80 00 */ stw r3, -0x8000(r4)
+/* 80283B14 0027F774 B0 07 00 02 */ sth r0, 2(r7)
+/* 80283B18 0027F778 4E 80 00 20 */ blr
+
+.global __GXFlushTextureState
+__GXFlushTextureState:
+/* 80283B1C 0027F77C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80283B20 0027F780 38 00 00 61 */ li r0, 0x61
+/* 80283B24 0027F784 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
+/* 80283B28 0027F788 38 00 00 00 */ li r0, 0
+/* 80283B2C 0027F78C 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283B30 0027F790 80 65 01 74 */ lwz r3, 0x174(r5)
+/* 80283B34 0027F794 90 64 80 00 */ stw r3, -0x8000(r4)
+/* 80283B38 0027F798 B0 05 00 02 */ sth r0, 2(r5)
+/* 80283B3C 0027F79C 4E 80 00 20 */ blr
diff --git a/asm/SDK/GX/GXFrameBuf.s b/asm/SDK/GX/GXFrameBuf.s
index 77b5434..061587d 100644
--- a/asm/SDK/GX/GXFrameBuf.s
+++ b/asm/SDK/GX/GXFrameBuf.s
@@ -106,7 +106,7 @@ lbl_802815A0:
/* 802815C4 0027D224 38 E1 00 0C */ addi r7, r1, 0xc
/* 802815C8 0027D228 90 1D 00 00 */ stw r0, 0(r29)
/* 802815CC 0027D22C 39 01 00 08 */ addi r8, r1, 8
-/* 802815D0 0027D230 48 00 10 41 */ bl func_80282610
+/* 802815D0 0027D230 48 00 10 41 */ bl __GetImageTileCount
/* 802815D4 0027D234 38 00 00 00 */ li r0, 0
/* 802815D8 0027D238 38 60 00 00 */ li r3, 0
/* 802815DC 0027D23C 90 1C 02 48 */ stw r0, 0x248(r28)
diff --git a/asm/SDK/GX/GXGeometry.s b/asm/SDK/GX/GXGeometry.s
index 7c343d3..ced9906 100644
--- a/asm/SDK/GX/GXGeometry.s
+++ b/asm/SDK/GX/GXGeometry.s
@@ -13,11 +13,11 @@ __GXSetDirtyState:
/* 80280EE8 0027CB48 83 DF 05 FC */ lwz r30, 0x5fc(r31)
/* 80280EEC 0027CB4C 57 C0 07 FF */ clrlwi. r0, r30, 0x1f
/* 80280EF0 0027CB50 41 82 00 08 */ beq lbl_80280EF8
-/* 80280EF4 0027CB54 48 00 1F B5 */ bl func_80282EA8
+/* 80280EF4 0027CB54 48 00 1F B5 */ bl __GXSetSUTexRegs
lbl_80280EF8:
/* 80280EF8 0027CB58 57 C0 07 BD */ rlwinm. r0, r30, 0, 0x1e, 0x1e
/* 80280EFC 0027CB5C 41 82 00 08 */ beq lbl_80280F04
-/* 80280F00 0027CB60 48 00 2B E9 */ bl func_80283AE8
+/* 80280F00 0027CB60 48 00 2B E9 */ bl __GXUpdateBPMask
lbl_80280F04:
/* 80280F04 0027CB64 57 C0 07 7B */ rlwinm. r0, r30, 0, 0x1d, 0x1d
/* 80280F08 0027CB68 41 82 00 24 */ beq lbl_80280F2C
diff --git a/asm/SDK/GX/GXInit.s b/asm/SDK/GX/GXInit.s
index 2fcd736..5705adc 100644
--- a/asm/SDK/GX/GXInit.s
+++ b/asm/SDK/GX/GXInit.s
@@ -12,10 +12,10 @@ __GXDefaultTexRegionCallback:
/* 8027D638 00279298 7C 9E 23 78 */ mr r30, r4
/* 8027D63C 0027929C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8027D640 002792A0 7C 7D 1B 78 */ mr r29, r3
-/* 8027D644 002792A4 48 00 54 01 */ bl func_80282A44
+/* 8027D644 002792A4 48 00 54 01 */ bl GXGetTexObjFmt
/* 8027D648 002792A8 7C 7F 1B 78 */ mr r31, r3
/* 8027D64C 002792AC 7F A3 EB 78 */ mr r3, r29
-/* 8027D650 002792B0 48 00 53 FD */ bl func_80282A4C
+/* 8027D650 002792B0 48 00 53 FD */ bl GXGetTexObjMipMap
/* 8027D654 002792B4 57 C0 E8 04 */ slwi r0, r30, 0x1d
/* 8027D658 002792B8 57 C4 0F FE */ srwi r4, r30, 0x1f
/* 8027D65C 002792BC 7C 04 00 50 */ subf r0, r4, r0
@@ -474,7 +474,7 @@ lbl_8027DBD4:
/* 8027DCF4 00279954 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
/* 8027DCF8 00279958 7C 03 00 16 */ mulhwu r0, r3, r0
/* 8027DCFC 0027995C 54 1A D9 7E */ srwi r26, r0, 5
-/* 8027DD00 00279960 48 00 5E 1D */ bl func_80283B1C
+/* 8027DD00 00279960 48 00 5E 1D */ bl __GXFlushTextureState
/* 8027DD04 00279964 57 40 AA FE */ srwi r0, r26, 0xb
/* 8027DD08 00279968 3F A0 CC 01 */ lis r29, 0xCC008000@ha
/* 8027DD0C 0027996C 3B 80 00 61 */ li r28, 0x61
@@ -482,7 +482,7 @@ lbl_8027DBD4:
/* 8027DD14 00279974 9B 9D 80 00 */ stb r28, 0xCC008000@l(r29)
/* 8027DD18 00279978 60 00 04 00 */ ori r0, r0, 0x400
/* 8027DD1C 0027997C 90 1D 80 00 */ stw r0, -0x8000(r29)
-/* 8027DD20 00279980 48 00 5D FD */ bl func_80283B1C
+/* 8027DD20 00279980 48 00 5D FD */ bl __GXFlushTextureState
/* 8027DD24 00279984 3C 60 3E 10 */ lis r3, 0x3E0F83E1@ha
/* 8027DD28 00279988 9B 9D 80 00 */ stb r28, -0x8000(r29)
/* 8027DD2C 0027998C 38 03 83 E1 */ addi r0, r3, 0x3E0F83E1@l
@@ -505,21 +505,21 @@ lbl_8027DD60:
/* 8027DD6C 002799CC 38 80 00 00 */ li r4, 0
/* 8027DD70 002799D0 38 C0 00 00 */ li r6, 0
/* 8027DD74 002799D4 39 00 00 00 */ li r8, 0
-/* 8027DD78 002799D8 48 00 4F 5D */ bl func_80282CD4
+/* 8027DD78 002799D8 48 00 4F 5D */ bl GXInitTexCacheRegion
/* 8027DD7C 002799DC 80 BC 00 40 */ lwz r5, 0x40(r28)
/* 8027DD80 002799E0 7F 63 DB 78 */ mr r3, r27
/* 8027DD84 002799E4 80 FC 00 60 */ lwz r7, 0x60(r28)
/* 8027DD88 002799E8 38 80 00 00 */ li r4, 0
/* 8027DD8C 002799EC 38 C0 00 00 */ li r6, 0
/* 8027DD90 002799F0 39 00 00 00 */ li r8, 0
-/* 8027DD94 002799F4 48 00 4F 41 */ bl func_80282CD4
+/* 8027DD94 002799F4 48 00 4F 41 */ bl GXInitTexCacheRegion
/* 8027DD98 002799F8 80 BC 00 80 */ lwz r5, 0x80(r28)
/* 8027DD9C 002799FC 7F C3 F3 78 */ mr r3, r30
/* 8027DDA0 00279A00 80 FC 00 A0 */ lwz r7, 0xa0(r28)
/* 8027DDA4 00279A04 38 80 00 01 */ li r4, 1
/* 8027DDA8 00279A08 38 C0 00 00 */ li r6, 0
/* 8027DDAC 00279A0C 39 00 00 00 */ li r8, 0
-/* 8027DDB0 00279A10 48 00 4F 25 */ bl func_80282CD4
+/* 8027DDB0 00279A10 48 00 4F 25 */ bl GXInitTexCacheRegion
/* 8027DDB4 00279A14 3B 5A 00 01 */ addi r26, r26, 1
/* 8027DDB8 00279A18 3B BD 00 10 */ addi r29, r29, 0x10
/* 8027DDBC 00279A1C 28 1A 00 08 */ cmplwi r26, 8
@@ -534,7 +534,7 @@ lbl_8027DDDC:
/* 8027DDDC 00279A3C 7F A3 EB 78 */ mr r3, r29
/* 8027DDE0 00279A40 7F 84 E3 78 */ mr r4, r28
/* 8027DDE4 00279A44 38 A0 00 10 */ li r5, 0x10
-/* 8027DDE8 00279A48 48 00 4F A1 */ bl func_80282D88
+/* 8027DDE8 00279A48 48 00 4F A1 */ bl GXInitTlutRegion
/* 8027DDEC 00279A4C 3B 7B 00 01 */ addi r27, r27, 1
/* 8027DDF0 00279A50 3B BD 00 10 */ addi r29, r29, 0x10
/* 8027DDF4 00279A54 28 1B 00 10 */ cmplwi r27, 0x10
@@ -549,7 +549,7 @@ lbl_8027DE0C:
/* 8027DE14 00279A74 54 00 20 36 */ slwi r0, r0, 4
/* 8027DE18 00279A78 38 A0 00 40 */ li r5, 0x40
/* 8027DE1C 00279A7C 7C 7D 02 14 */ add r3, r29, r0
-/* 8027DE20 00279A80 48 00 4F 69 */ bl func_80282D88
+/* 8027DE20 00279A80 48 00 4F 69 */ bl GXInitTlutRegion
/* 8027DE24 00279A84 3B 7B 00 01 */ addi r27, r27, 1
/* 8027DE28 00279A88 3F 9C 00 01 */ addis r28, r28, 1
/* 8027DE2C 00279A8C 28 1B 00 04 */ cmplwi r27, 4
@@ -584,9 +584,9 @@ lbl_8027DE0C:
/* 8027DEA0 00279B00 90 89 80 00 */ stw r4, -0x8000(r9)
/* 8027DEA4 00279B04 98 C9 80 00 */ stb r6, -0x8000(r9)
/* 8027DEA8 00279B08 90 09 80 00 */ stw r0, -0x8000(r9)
-/* 8027DEAC 00279B0C 48 00 5C 41 */ bl func_80283AEC
+/* 8027DEAC 00279B0C 48 00 5C 41 */ bl __GXSetIndirectMask
/* 8027DEB0 00279B10 38 60 00 02 */ li r3, 2
-/* 8027DEB4 00279B14 48 00 51 5D */ bl func_80283010
+/* 8027DEB4 00279B14 48 00 51 5D */ bl __GXSetTmemConfig
/* 8027DEB8 00279B18 48 00 00 25 */ bl __GXInitGX
/* 8027DEBC 00279B1C 3C 60 80 51 */ lis r3, lbl_80515930@ha
/* 8027DEC0 00279B20 39 61 00 20 */ addi r11, r1, 0x20
@@ -877,13 +877,13 @@ lbl_8027E0E0:
/* 8027E304 00279F64 38 60 00 05 */ li r3, 5
/* 8027E308 00279F68 90 01 00 0C */ stw r0, 0xc(r1)
/* 8027E30C 00279F6C 48 00 41 65 */ bl GXSetChanMatColor
-/* 8027E310 00279F70 48 00 4A 99 */ bl func_80282DA8
+/* 8027E310 00279F70 48 00 4A 99 */ bl GXInvalidateTexAll
/* 8027E314 00279F74 3C 60 80 28 */ lis r3, __GXDefaultTexRegionCallback@ha
/* 8027E318 00279F78 38 63 D6 24 */ addi r3, r3, __GXDefaultTexRegionCallback@l
-/* 8027E31C 00279F7C 48 00 4A D5 */ bl func_80282DF0
+/* 8027E31C 00279F7C 48 00 4A D5 */ bl GXSetTexRegionCallback
/* 8027E320 00279F80 3C 60 80 28 */ lis r3, __GXDefaultTlutRegionCallback@ha
/* 8027E324 00279F84 38 63 D7 18 */ addi r3, r3, __GXDefaultTlutRegionCallback@l
-/* 8027E328 00279F88 48 00 4A DD */ bl func_80282E04
+/* 8027E328 00279F88 48 00 4A DD */ bl GXSetTlutRegionCallback
/* 8027E32C 00279F8C 38 61 00 28 */ addi r3, r1, 0x28
/* 8027E330 00279F90 38 9E 00 60 */ addi r4, r30, 0x60
/* 8027E334 00279F94 38 A0 00 04 */ li r5, 4
@@ -892,138 +892,138 @@ lbl_8027E0E0:
/* 8027E340 00279FA0 39 00 00 00 */ li r8, 0
/* 8027E344 00279FA4 39 20 00 00 */ li r9, 0
/* 8027E348 00279FA8 39 40 00 00 */ li r10, 0
-/* 8027E34C 00279FAC 48 00 43 85 */ bl func_802826D0
+/* 8027E34C 00279FAC 48 00 43 85 */ bl GXInitTexObj
/* 8027E350 00279FB0 38 61 00 28 */ addi r3, r1, 0x28
/* 8027E354 00279FB4 38 80 00 00 */ li r4, 0
-/* 8027E358 00279FB8 48 00 48 6D */ bl func_80282BC4
+/* 8027E358 00279FB8 48 00 48 6D */ bl GXLoadTexObj
/* 8027E35C 00279FBC 38 61 00 28 */ addi r3, r1, 0x28
/* 8027E360 00279FC0 38 80 00 01 */ li r4, 1
-/* 8027E364 00279FC4 48 00 48 61 */ bl func_80282BC4
+/* 8027E364 00279FC4 48 00 48 61 */ bl GXLoadTexObj
/* 8027E368 00279FC8 38 61 00 28 */ addi r3, r1, 0x28
/* 8027E36C 00279FCC 38 80 00 02 */ li r4, 2
-/* 8027E370 00279FD0 48 00 48 55 */ bl func_80282BC4
+/* 8027E370 00279FD0 48 00 48 55 */ bl GXLoadTexObj
/* 8027E374 00279FD4 38 61 00 28 */ addi r3, r1, 0x28
/* 8027E378 00279FD8 38 80 00 03 */ li r4, 3
-/* 8027E37C 00279FDC 48 00 48 49 */ bl func_80282BC4
+/* 8027E37C 00279FDC 48 00 48 49 */ bl GXLoadTexObj
/* 8027E380 00279FE0 38 61 00 28 */ addi r3, r1, 0x28
/* 8027E384 00279FE4 38 80 00 04 */ li r4, 4
-/* 8027E388 00279FE8 48 00 48 3D */ bl func_80282BC4
+/* 8027E388 00279FE8 48 00 48 3D */ bl GXLoadTexObj
/* 8027E38C 00279FEC 38 61 00 28 */ addi r3, r1, 0x28
/* 8027E390 00279FF0 38 80 00 05 */ li r4, 5
-/* 8027E394 00279FF4 48 00 48 31 */ bl func_80282BC4
+/* 8027E394 00279FF4 48 00 48 31 */ bl GXLoadTexObj
/* 8027E398 00279FF8 38 61 00 28 */ addi r3, r1, 0x28
/* 8027E39C 00279FFC 38 80 00 06 */ li r4, 6
-/* 8027E3A0 0027A000 48 00 48 25 */ bl func_80282BC4
+/* 8027E3A0 0027A000 48 00 48 25 */ bl GXLoadTexObj
/* 8027E3A4 0027A004 38 61 00 28 */ addi r3, r1, 0x28
/* 8027E3A8 0027A008 38 80 00 07 */ li r4, 7
-/* 8027E3AC 0027A00C 48 00 48 19 */ bl func_80282BC4
+/* 8027E3AC 0027A00C 48 00 48 19 */ bl GXLoadTexObj
/* 8027E3B0 0027A010 38 60 00 00 */ li r3, 0
/* 8027E3B4 0027A014 38 80 00 00 */ li r4, 0
/* 8027E3B8 0027A018 38 A0 00 00 */ li r5, 0
/* 8027E3BC 0027A01C 38 C0 00 04 */ li r6, 4
-/* 8027E3C0 0027A020 48 00 5C 81 */ bl func_80284040
+/* 8027E3C0 0027A020 48 00 5C 81 */ bl GXSetTevOrder
/* 8027E3C4 0027A024 38 60 00 01 */ li r3, 1
/* 8027E3C8 0027A028 38 80 00 01 */ li r4, 1
/* 8027E3CC 0027A02C 38 A0 00 01 */ li r5, 1
/* 8027E3D0 0027A030 38 C0 00 04 */ li r6, 4
-/* 8027E3D4 0027A034 48 00 5C 6D */ bl func_80284040
+/* 8027E3D4 0027A034 48 00 5C 6D */ bl GXSetTevOrder
/* 8027E3D8 0027A038 38 60 00 02 */ li r3, 2
/* 8027E3DC 0027A03C 38 80 00 02 */ li r4, 2
/* 8027E3E0 0027A040 38 A0 00 02 */ li r5, 2
/* 8027E3E4 0027A044 38 C0 00 04 */ li r6, 4
-/* 8027E3E8 0027A048 48 00 5C 59 */ bl func_80284040
+/* 8027E3E8 0027A048 48 00 5C 59 */ bl GXSetTevOrder
/* 8027E3EC 0027A04C 38 60 00 03 */ li r3, 3
/* 8027E3F0 0027A050 38 80 00 03 */ li r4, 3
/* 8027E3F4 0027A054 38 A0 00 03 */ li r5, 3
/* 8027E3F8 0027A058 38 C0 00 04 */ li r6, 4
-/* 8027E3FC 0027A05C 48 00 5C 45 */ bl func_80284040
+/* 8027E3FC 0027A05C 48 00 5C 45 */ bl GXSetTevOrder
/* 8027E400 0027A060 38 60 00 04 */ li r3, 4
/* 8027E404 0027A064 38 80 00 04 */ li r4, 4
/* 8027E408 0027A068 38 A0 00 04 */ li r5, 4
/* 8027E40C 0027A06C 38 C0 00 04 */ li r6, 4
-/* 8027E410 0027A070 48 00 5C 31 */ bl func_80284040
+/* 8027E410 0027A070 48 00 5C 31 */ bl GXSetTevOrder
/* 8027E414 0027A074 38 60 00 05 */ li r3, 5
/* 8027E418 0027A078 38 80 00 05 */ li r4, 5
/* 8027E41C 0027A07C 38 A0 00 05 */ li r5, 5
/* 8027E420 0027A080 38 C0 00 04 */ li r6, 4
-/* 8027E424 0027A084 48 00 5C 1D */ bl func_80284040
+/* 8027E424 0027A084 48 00 5C 1D */ bl GXSetTevOrder
/* 8027E428 0027A088 38 60 00 06 */ li r3, 6
/* 8027E42C 0027A08C 38 80 00 06 */ li r4, 6
/* 8027E430 0027A090 38 A0 00 06 */ li r5, 6
/* 8027E434 0027A094 38 C0 00 04 */ li r6, 4
-/* 8027E438 0027A098 48 00 5C 09 */ bl func_80284040
+/* 8027E438 0027A098 48 00 5C 09 */ bl GXSetTevOrder
/* 8027E43C 0027A09C 38 60 00 07 */ li r3, 7
/* 8027E440 0027A0A0 38 80 00 07 */ li r4, 7
/* 8027E444 0027A0A4 38 A0 00 07 */ li r5, 7
/* 8027E448 0027A0A8 38 C0 00 04 */ li r6, 4
-/* 8027E44C 0027A0AC 48 00 5B F5 */ bl func_80284040
+/* 8027E44C 0027A0AC 48 00 5B F5 */ bl GXSetTevOrder
/* 8027E450 0027A0B0 38 60 00 08 */ li r3, 8
/* 8027E454 0027A0B4 38 80 00 FF */ li r4, 0xff
/* 8027E458 0027A0B8 38 A0 00 FF */ li r5, 0xff
/* 8027E45C 0027A0BC 38 C0 00 FF */ li r6, 0xff
-/* 8027E460 0027A0C0 48 00 5B E1 */ bl func_80284040
+/* 8027E460 0027A0C0 48 00 5B E1 */ bl GXSetTevOrder
/* 8027E464 0027A0C4 38 60 00 09 */ li r3, 9
/* 8027E468 0027A0C8 38 80 00 FF */ li r4, 0xff
/* 8027E46C 0027A0CC 38 A0 00 FF */ li r5, 0xff
/* 8027E470 0027A0D0 38 C0 00 FF */ li r6, 0xff
-/* 8027E474 0027A0D4 48 00 5B CD */ bl func_80284040
+/* 8027E474 0027A0D4 48 00 5B CD */ bl GXSetTevOrder
/* 8027E478 0027A0D8 38 60 00 0A */ li r3, 0xa
/* 8027E47C 0027A0DC 38 80 00 FF */ li r4, 0xff
/* 8027E480 0027A0E0 38 A0 00 FF */ li r5, 0xff
/* 8027E484 0027A0E4 38 C0 00 FF */ li r6, 0xff
-/* 8027E488 0027A0E8 48 00 5B B9 */ bl func_80284040
+/* 8027E488 0027A0E8 48 00 5B B9 */ bl GXSetTevOrder
/* 8027E48C 0027A0EC 38 60 00 0B */ li r3, 0xb
/* 8027E490 0027A0F0 38 80 00 FF */ li r4, 0xff
/* 8027E494 0027A0F4 38 A0 00 FF */ li r5, 0xff
/* 8027E498 0027A0F8 38 C0 00 FF */ li r6, 0xff
-/* 8027E49C 0027A0FC 48 00 5B A5 */ bl func_80284040
+/* 8027E49C 0027A0FC 48 00 5B A5 */ bl GXSetTevOrder
/* 8027E4A0 0027A100 38 60 00 0C */ li r3, 0xc
/* 8027E4A4 0027A104 38 80 00 FF */ li r4, 0xff
/* 8027E4A8 0027A108 38 A0 00 FF */ li r5, 0xff
/* 8027E4AC 0027A10C 38 C0 00 FF */ li r6, 0xff
-/* 8027E4B0 0027A110 48 00 5B 91 */ bl func_80284040
+/* 8027E4B0 0027A110 48 00 5B 91 */ bl GXSetTevOrder
/* 8027E4B4 0027A114 38 60 00 0D */ li r3, 0xd
/* 8027E4B8 0027A118 38 80 00 FF */ li r4, 0xff
/* 8027E4BC 0027A11C 38 A0 00 FF */ li r5, 0xff
/* 8027E4C0 0027A120 38 C0 00 FF */ li r6, 0xff
-/* 8027E4C4 0027A124 48 00 5B 7D */ bl func_80284040
+/* 8027E4C4 0027A124 48 00 5B 7D */ bl GXSetTevOrder
/* 8027E4C8 0027A128 38 60 00 0E */ li r3, 0xe
/* 8027E4CC 0027A12C 38 80 00 FF */ li r4, 0xff
/* 8027E4D0 0027A130 38 A0 00 FF */ li r5, 0xff
/* 8027E4D4 0027A134 38 C0 00 FF */ li r6, 0xff
-/* 8027E4D8 0027A138 48 00 5B 69 */ bl func_80284040
+/* 8027E4D8 0027A138 48 00 5B 69 */ bl GXSetTevOrder
/* 8027E4DC 0027A13C 38 60 00 0F */ li r3, 0xf
/* 8027E4E0 0027A140 38 80 00 FF */ li r4, 0xff
/* 8027E4E4 0027A144 38 A0 00 FF */ li r5, 0xff
/* 8027E4E8 0027A148 38 C0 00 FF */ li r6, 0xff
-/* 8027E4EC 0027A14C 48 00 5B 55 */ bl func_80284040
+/* 8027E4EC 0027A14C 48 00 5B 55 */ bl GXSetTevOrder
/* 8027E4F0 0027A150 38 60 00 01 */ li r3, 1
-/* 8027E4F4 0027A154 48 00 5C A9 */ bl func_8028419C
+/* 8027E4F4 0027A154 48 00 5C A9 */ bl GXSetNumTevStages
/* 8027E4F8 0027A158 38 60 00 00 */ li r3, 0
/* 8027E4FC 0027A15C 38 80 00 03 */ li r4, 3
-/* 8027E500 0027A160 48 00 56 41 */ bl func_80283B40
+/* 8027E500 0027A160 48 00 56 41 */ bl GXSetTevOp
/* 8027E504 0027A164 38 60 00 07 */ li r3, 7
/* 8027E508 0027A168 38 80 00 00 */ li r4, 0
/* 8027E50C 0027A16C 38 A0 00 00 */ li r5, 0
/* 8027E510 0027A170 38 C0 00 07 */ li r6, 7
/* 8027E514 0027A174 38 E0 00 00 */ li r7, 0
-/* 8027E518 0027A178 48 00 5A 65 */ bl func_80283F7C
+/* 8027E518 0027A178 48 00 5A 65 */ bl GXSetAlphaCompare
/* 8027E51C 0027A17C 38 60 00 00 */ li r3, 0
/* 8027E520 0027A180 38 80 00 11 */ li r4, 0x11
/* 8027E524 0027A184 38 A0 00 00 */ li r5, 0
-/* 8027E528 0027A188 48 00 5A 8D */ bl func_80283FB4
+/* 8027E528 0027A188 48 00 5A 8D */ bl GXSetZTexture
/* 8027E52C 0027A18C 3B 80 00 00 */ li r28, 0
lbl_8027E530:
/* 8027E530 0027A190 7F 83 E3 78 */ mr r3, r28
/* 8027E534 0027A194 38 80 00 06 */ li r4, 6
-/* 8027E538 0027A198 48 00 58 ED */ bl func_80283E24
+/* 8027E538 0027A198 48 00 58 ED */ bl GXSetTevKColorSel
/* 8027E53C 0027A19C 7F 83 E3 78 */ mr r3, r28
/* 8027E540 0027A1A0 38 80 00 00 */ li r4, 0
-/* 8027E544 0027A1A4 48 00 59 31 */ bl func_80283E74
+/* 8027E544 0027A1A4 48 00 59 31 */ bl GXSetTevKAlphaSel
/* 8027E548 0027A1A8 7F 83 E3 78 */ mr r3, r28
/* 8027E54C 0027A1AC 38 80 00 00 */ li r4, 0
/* 8027E550 0027A1B0 38 A0 00 00 */ li r5, 0
-/* 8027E554 0027A1B4 48 00 59 71 */ bl func_80283EC4
+/* 8027E554 0027A1B4 48 00 59 71 */ bl GXSetTevSwapMode
/* 8027E558 0027A1B8 3B 9C 00 01 */ addi r28, r28, 1
/* 8027E55C 0027A1BC 28 1C 00 10 */ cmplwi r28, 0x10
/* 8027E560 0027A1C0 41 80 FF D0 */ blt lbl_8027E530
@@ -1032,50 +1032,50 @@ lbl_8027E530:
/* 8027E56C 0027A1CC 38 A0 00 01 */ li r5, 1
/* 8027E570 0027A1D0 38 C0 00 02 */ li r6, 2
/* 8027E574 0027A1D4 38 E0 00 03 */ li r7, 3
-/* 8027E578 0027A1D8 48 00 59 89 */ bl func_80283F00
+/* 8027E578 0027A1D8 48 00 59 89 */ bl GXSetTevSwapModeTable
/* 8027E57C 0027A1DC 38 60 00 01 */ li r3, 1
/* 8027E580 0027A1E0 38 80 00 00 */ li r4, 0
/* 8027E584 0027A1E4 38 A0 00 00 */ li r5, 0
/* 8027E588 0027A1E8 38 C0 00 00 */ li r6, 0
/* 8027E58C 0027A1EC 38 E0 00 03 */ li r7, 3
-/* 8027E590 0027A1F0 48 00 59 71 */ bl func_80283F00
+/* 8027E590 0027A1F0 48 00 59 71 */ bl GXSetTevSwapModeTable
/* 8027E594 0027A1F4 38 60 00 02 */ li r3, 2
/* 8027E598 0027A1F8 38 80 00 01 */ li r4, 1
/* 8027E59C 0027A1FC 38 A0 00 01 */ li r5, 1
/* 8027E5A0 0027A200 38 C0 00 01 */ li r6, 1
/* 8027E5A4 0027A204 38 E0 00 03 */ li r7, 3
-/* 8027E5A8 0027A208 48 00 59 59 */ bl func_80283F00
+/* 8027E5A8 0027A208 48 00 59 59 */ bl GXSetTevSwapModeTable
/* 8027E5AC 0027A20C 38 60 00 03 */ li r3, 3
/* 8027E5B0 0027A210 38 80 00 02 */ li r4, 2
/* 8027E5B4 0027A214 38 A0 00 02 */ li r5, 2
/* 8027E5B8 0027A218 38 C0 00 02 */ li r6, 2
/* 8027E5BC 0027A21C 38 E0 00 03 */ li r7, 3
-/* 8027E5C0 0027A220 48 00 59 41 */ bl func_80283F00
+/* 8027E5C0 0027A220 48 00 59 41 */ bl GXSetTevSwapModeTable
/* 8027E5C4 0027A224 3B 80 00 00 */ li r28, 0
lbl_8027E5C8:
/* 8027E5C8 0027A228 7F 83 E3 78 */ mr r3, r28
-/* 8027E5CC 0027A22C 48 00 51 45 */ bl func_80283710
+/* 8027E5CC 0027A22C 48 00 51 45 */ bl GXSetTevDirect
/* 8027E5D0 0027A230 3B 9C 00 01 */ addi r28, r28, 1
/* 8027E5D4 0027A234 28 1C 00 10 */ cmplwi r28, 0x10
/* 8027E5D8 0027A238 41 80 FF F0 */ blt lbl_8027E5C8
/* 8027E5DC 0027A23C 38 60 00 00 */ li r3, 0
-/* 8027E5E0 0027A240 48 00 51 11 */ bl func_802836F0
+/* 8027E5E0 0027A240 48 00 51 11 */ bl GXSetNumIndStages
/* 8027E5E4 0027A244 38 60 00 00 */ li r3, 0
/* 8027E5E8 0027A248 38 80 00 00 */ li r4, 0
/* 8027E5EC 0027A24C 38 A0 00 00 */ li r5, 0
-/* 8027E5F0 0027A250 48 00 4F 31 */ bl func_80283520
+/* 8027E5F0 0027A250 48 00 4F 31 */ bl GXSetIndTexCoordScale
/* 8027E5F4 0027A254 38 60 00 01 */ li r3, 1
/* 8027E5F8 0027A258 38 80 00 00 */ li r4, 0
/* 8027E5FC 0027A25C 38 A0 00 00 */ li r5, 0
-/* 8027E600 0027A260 48 00 4F 21 */ bl func_80283520
+/* 8027E600 0027A260 48 00 4F 21 */ bl GXSetIndTexCoordScale
/* 8027E604 0027A264 38 60 00 02 */ li r3, 2
/* 8027E608 0027A268 38 80 00 00 */ li r4, 0
/* 8027E60C 0027A26C 38 A0 00 00 */ li r5, 0
-/* 8027E610 0027A270 48 00 4F 11 */ bl func_80283520
+/* 8027E610 0027A270 48 00 4F 11 */ bl GXSetIndTexCoordScale
/* 8027E614 0027A274 38 60 00 03 */ li r3, 3
/* 8027E618 0027A278 38 80 00 00 */ li r4, 0
/* 8027E61C 0027A27C 38 A0 00 00 */ li r5, 0
-/* 8027E620 0027A280 48 00 4F 01 */ bl func_80283520
+/* 8027E620 0027A280 48 00 4F 01 */ bl GXSetIndTexCoordScale
/* 8027E624 0027A284 C0 42 A0 E4 */ lfs f2, lbl_806426E4-_SDA2_BASE_(r2)
/* 8027E628 0027A288 38 81 00 08 */ addi r4, r1, 8
/* 8027E62C 0027A28C 93 E1 00 08 */ stw r31, 8(r1)
@@ -1083,37 +1083,37 @@ lbl_8027E5C8:
/* 8027E634 0027A294 FC 80 10 90 */ fmr f4, f2
/* 8027E638 0027A298 C0 22 A0 D8 */ lfs f1, lbl_806426D8-_SDA2_BASE_(r2)
/* 8027E63C 0027A29C C0 62 A0 E8 */ lfs f3, lbl_806426E8-_SDA2_BASE_(r2)
-/* 8027E640 0027A2A0 48 00 5B 81 */ bl func_802841C0
+/* 8027E640 0027A2A0 48 00 5B 81 */ bl GXSetFog
/* 8027E644 0027A2A4 38 60 00 00 */ li r3, 0
/* 8027E648 0027A2A8 38 80 00 00 */ li r4, 0
/* 8027E64C 0027A2AC 38 A0 00 00 */ li r5, 0
-/* 8027E650 0027A2B0 48 00 5F 29 */ bl func_80284578
+/* 8027E650 0027A2B0 48 00 5F 29 */ bl GXSetFogRangeAdj
/* 8027E654 0027A2B4 38 60 00 00 */ li r3, 0
/* 8027E658 0027A2B8 38 80 00 04 */ li r4, 4
/* 8027E65C 0027A2BC 38 A0 00 05 */ li r5, 5
/* 8027E660 0027A2C0 38 C0 00 00 */ li r6, 0
-/* 8027E664 0027A2C4 48 00 60 39 */ bl func_8028469C
+/* 8027E664 0027A2C4 48 00 60 39 */ bl GXSetBlendMode
/* 8027E668 0027A2C8 38 60 00 01 */ li r3, 1
-/* 8027E66C 0027A2CC 48 00 60 81 */ bl func_802846EC
+/* 8027E66C 0027A2CC 48 00 60 81 */ bl GXSetColorUpdate
/* 8027E670 0027A2D0 38 60 00 01 */ li r3, 1
-/* 8027E674 0027A2D4 48 00 60 A5 */ bl func_80284718
+/* 8027E674 0027A2D4 48 00 60 A5 */ bl GXSetAlphaUpdate
/* 8027E678 0027A2D8 38 60 00 01 */ li r3, 1
/* 8027E67C 0027A2DC 38 80 00 03 */ li r4, 3
/* 8027E680 0027A2E0 38 A0 00 01 */ li r5, 1
-/* 8027E684 0027A2E4 48 00 60 C1 */ bl func_80284744
+/* 8027E684 0027A2E4 48 00 60 C1 */ bl GXSetZMode
/* 8027E688 0027A2E8 38 60 00 01 */ li r3, 1
-/* 8027E68C 0027A2EC 48 00 60 ED */ bl func_80284778
+/* 8027E68C 0027A2EC 48 00 60 ED */ bl GXSetZCompLoc
/* 8027E690 0027A2F0 38 60 00 01 */ li r3, 1
-/* 8027E694 0027A2F4 48 00 61 BD */ bl func_80284850
+/* 8027E694 0027A2F4 48 00 61 BD */ bl GXSetDither
/* 8027E698 0027A2F8 38 60 00 00 */ li r3, 0
/* 8027E69C 0027A2FC 38 80 00 00 */ li r4, 0
-/* 8027E6A0 0027A300 48 00 61 DD */ bl func_8028487C
+/* 8027E6A0 0027A300 48 00 61 DD */ bl GXSetDstAlpha
/* 8027E6A4 0027A304 38 60 00 00 */ li r3, 0
/* 8027E6A8 0027A308 38 80 00 00 */ li r4, 0
-/* 8027E6AC 0027A30C 48 00 60 FD */ bl func_802847A8
+/* 8027E6AC 0027A30C 48 00 60 FD */ bl GXSetPixelFmt
/* 8027E6B0 0027A310 38 60 00 01 */ li r3, 1
/* 8027E6B4 0027A314 38 80 00 01 */ li r4, 1
-/* 8027E6B8 0027A318 48 00 61 F5 */ bl func_802848AC
+/* 8027E6B8 0027A318 48 00 61 F5 */ bl GXSetFieldMask
/* 8027E6BC 0027A31C A0 1D 00 08 */ lhz r0, 8(r29)
/* 8027E6C0 0027A320 A0 7D 00 10 */ lhz r3, 0x10(r29)
/* 8027E6C4 0027A324 54 00 08 3C */ slwi r0, r0, 1
@@ -1125,7 +1125,7 @@ lbl_8027E6D8:
/* 8027E6D8 0027A338 38 80 00 00 */ li r4, 0
lbl_8027E6DC:
/* 8027E6DC 0027A33C 88 7D 00 18 */ lbz r3, 0x18(r29)
-/* 8027E6E0 0027A340 48 00 62 01 */ bl func_802848E0
+/* 8027E6E0 0027A340 48 00 62 01 */ bl GXSetFieldMode
/* 8027E6E4 0027A344 A0 BD 00 04 */ lhz r5, 4(r29)
/* 8027E6E8 0027A348 38 60 00 00 */ li r3, 0
/* 8027E6EC 0027A34C A0 DD 00 06 */ lhz r6, 6(r29)
diff --git a/asm/SDK/GX/GXPixel.s b/asm/SDK/GX/GXPixel.s
new file mode 100644
index 0000000..730cbd8
--- /dev/null
+++ b/asm/SDK/GX/GXPixel.s
@@ -0,0 +1,547 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global GXSetFog
+GXSetFog:
+/* 802841C0 0027FE20 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 802841C4 0027FE24 7C 08 02 A6 */ mflr r0
+/* 802841C8 0027FE28 90 01 00 44 */ stw r0, 0x44(r1)
+/* 802841CC 0027FE2C DB E1 00 30 */ stfd f31, 0x30(r1)
+/* 802841D0 0027FE30 F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0
+/* 802841D4 0027FE34 39 00 00 00 */ li r8, 0
+/* 802841D8 0027FE38 39 20 00 00 */ li r9, 0
+/* 802841DC 0027FE3C 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 802841E0 0027FE40 54 7F 07 7E */ clrlwi r31, r3, 0x1d
+/* 802841E4 0027FE44 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 802841E8 0027FE48 54 7E EF FF */ rlwinm. r30, r3, 0x1d, 0x1f, 0x1f
+/* 802841EC 0027FE4C 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 802841F0 0027FE50 7C 9D 23 78 */ mr r29, r4
+/* 802841F4 0027FE54 93 81 00 20 */ stw r28, 0x20(r1)
+/* 802841F8 0027FE58 41 82 00 4C */ beq lbl_80284244
+/* 802841FC 0027FE5C FC 04 18 00 */ fcmpu cr0, f4, f3
+/* 80284200 0027FE60 41 82 00 0C */ beq lbl_8028420C
+/* 80284204 0027FE64 FC 02 08 00 */ fcmpu cr0, f2, f1
+/* 80284208 0027FE68 40 82 00 14 */ bne lbl_8028421C
+lbl_8028420C:
+/* 8028420C 0027FE6C C0 02 A1 80 */ lfs f0, lbl_80642780-_SDA2_BASE_(r2)
+/* 80284210 0027FE70 D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 80284214 0027FE74 D0 01 00 08 */ stfs f0, 8(r1)
+/* 80284218 0027FE78 48 00 01 1C */ b lbl_80284334
+lbl_8028421C:
+/* 8028421C 0027FE7C EC C2 08 28 */ fsubs f6, f2, f1
+/* 80284220 0027FE80 C0 A2 A1 84 */ lfs f5, lbl_80642784-_SDA2_BASE_(r2)
+/* 80284224 0027FE84 EC 44 18 28 */ fsubs f2, f4, f3
+/* 80284228 0027FE88 EC 01 18 28 */ fsubs f0, f1, f3
+/* 8028422C 0027FE8C EC 65 30 24 */ fdivs f3, f5, f6
+/* 80284230 0027FE90 EC 23 00 B2 */ fmuls f1, f3, f2
+/* 80284234 0027FE94 EC 03 00 32 */ fmuls f0, f3, f0
+/* 80284238 0027FE98 D0 21 00 0C */ stfs f1, 0xc(r1)
+/* 8028423C 0027FE9C D0 01 00 08 */ stfs f0, 8(r1)
+/* 80284240 0027FEA0 48 00 00 F4 */ b lbl_80284334
+lbl_80284244:
+/* 80284244 0027FEA4 FC 04 18 00 */ fcmpu cr0, f4, f3
+/* 80284248 0027FEA8 41 82 00 0C */ beq lbl_80284254
+/* 8028424C 0027FEAC FC 02 08 00 */ fcmpu cr0, f2, f1
+/* 80284250 0027FEB0 40 82 00 14 */ bne lbl_80284264
+lbl_80284254:
+/* 80284254 0027FEB4 C0 62 A1 80 */ lfs f3, lbl_80642780-_SDA2_BASE_(r2)
+/* 80284258 0027FEB8 C0 82 A1 88 */ lfs f4, lbl_80642788-_SDA2_BASE_(r2)
+/* 8028425C 0027FEBC FF E0 18 90 */ fmr f31, f3
+/* 80284260 0027FEC0 48 00 00 20 */ b lbl_80284280
+lbl_80284264:
+/* 80284264 0027FEC4 EC 04 18 28 */ fsubs f0, f4, f3
+/* 80284268 0027FEC8 EC 42 08 28 */ fsubs f2, f2, f1
+/* 8028426C 0027FECC EC 64 00 F2 */ fmuls f3, f4, f3
+/* 80284270 0027FED0 EC 84 00 24 */ fdivs f4, f4, f0
+/* 80284274 0027FED4 EC 00 00 B2 */ fmuls f0, f0, f2
+/* 80284278 0027FED8 EF E1 10 24 */ fdivs f31, f1, f2
+/* 8028427C 0027FEDC EC 63 00 24 */ fdivs f3, f3, f0
+lbl_80284280:
+/* 80284280 0027FEE0 C0 22 A1 88 */ lfs f1, lbl_80642788-_SDA2_BASE_(r2)
+/* 80284284 0027FEE4 3B 80 00 00 */ li r28, 0
+/* 80284288 0027FEE8 C8 02 A1 90 */ lfd f0, lbl_80642790-_SDA2_BASE_(r2)
+/* 8028428C 0027FEEC 48 00 00 0C */ b lbl_80284298
+lbl_80284290:
+/* 80284290 0027FEF0 EC 84 00 72 */ fmuls f4, f4, f1
+/* 80284294 0027FEF4 3B 9C 00 01 */ addi r28, r28, 1
+lbl_80284298:
+/* 80284298 0027FEF8 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8028429C 0027FEFC 41 81 FF F4 */ bgt lbl_80284290
+/* 802842A0 0027FF00 C8 02 A1 A0 */ lfd f0, lbl_806427A0-_SDA2_BASE_(r2)
+/* 802842A4 0027FF04 C0 42 A1 98 */ lfs f2, lbl_80642798-_SDA2_BASE_(r2)
+/* 802842A8 0027FF08 C0 22 A1 80 */ lfs f1, lbl_80642780-_SDA2_BASE_(r2)
+/* 802842AC 0027FF0C 48 00 00 0C */ b lbl_802842B8
+lbl_802842B0:
+/* 802842B0 0027FF10 EC 84 00 B2 */ fmuls f4, f4, f2
+/* 802842B4 0027FF14 3B 9C FF FF */ addi r28, r28, -1
+lbl_802842B8:
+/* 802842B8 0027FF18 FC 04 08 40 */ fcmpo cr0, f4, f1
+/* 802842BC 0027FF1C 7C 00 00 26 */ mfcr r0
+/* 802842C0 0027FF20 54 00 17 FF */ rlwinm. r0, r0, 2, 0x1f, 0x1f
+/* 802842C4 0027FF24 41 82 00 0C */ beq lbl_802842D0
+/* 802842C8 0027FF28 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 802842CC 0027FF2C 41 80 FF E4 */ blt lbl_802842B0
+lbl_802842D0:
+/* 802842D0 0027FF30 38 1C 00 01 */ addi r0, r28, 1
+/* 802842D4 0027FF34 38 60 00 01 */ li r3, 1
+/* 802842D8 0027FF38 7C 63 00 30 */ slw r3, r3, r0
+/* 802842DC 0027FF3C C0 02 A1 A8 */ lfs f0, lbl_806427A8-_SDA2_BASE_(r2)
+/* 802842E0 0027FF40 3C 00 43 30 */ lis r0, 0x4330
+/* 802842E4 0027FF44 C8 42 A1 B0 */ lfd f2, lbl_806427B0-_SDA2_BASE_(r2)
+/* 802842E8 0027FF48 6C 63 80 00 */ xoris r3, r3, 0x8000
+/* 802842EC 0027FF4C 90 01 00 10 */ stw r0, 0x10(r1)
+/* 802842F0 0027FF50 EC 20 01 32 */ fmuls f1, f0, f4
+/* 802842F4 0027FF54 90 61 00 14 */ stw r3, 0x14(r1)
+/* 802842F8 0027FF58 C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 802842FC 0027FF5C EC 00 10 28 */ fsubs f0, f0, f2
+/* 80284300 0027FF60 EC 03 00 24 */ fdivs f0, f3, f0
+/* 80284304 0027FF64 D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 80284308 0027FF68 4B F4 2C F9 */ bl __cvt_fp2unsigned
+/* 8028430C 0027FF6C 38 1C 00 01 */ addi r0, r28, 1
+/* 80284310 0027FF70 39 00 00 00 */ li r8, 0
+/* 80284314 0027FF74 50 68 02 3E */ rlwimi r8, r3, 0, 8, 0x1f
+/* 80284318 0027FF78 39 20 00 00 */ li r9, 0
+/* 8028431C 0027FF7C 50 09 06 FE */ rlwimi r9, r0, 0, 0x1b, 0x1f
+/* 80284320 0027FF80 38 60 00 EF */ li r3, 0xef
+/* 80284324 0027FF84 38 00 00 F0 */ li r0, 0xf0
+/* 80284328 0027FF88 D3 E1 00 08 */ stfs f31, 8(r1)
+/* 8028432C 0027FF8C 50 68 C0 0E */ rlwimi r8, r3, 0x18, 0, 7
+/* 80284330 0027FF90 50 09 C0 0E */ rlwimi r9, r0, 0x18, 0, 7
+lbl_80284334:
+/* 80284334 0027FF94 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80284338 0027FF98 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 8028433C 0027FF9C 38 A0 00 61 */ li r5, 0x61
+/* 80284340 0027FFA0 38 00 00 EE */ li r0, 0xee
+/* 80284344 0027FFA4 38 C0 00 00 */ li r6, 0
+/* 80284348 0027FFA8 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 8028434C 0027FFAC 50 66 A5 7E */ rlwimi r6, r3, 0x14, 0x15, 0x1f
+/* 80284350 0027FFB0 81 41 00 08 */ lwz r10, 8(r1)
+/* 80284354 0027FFB4 50 66 A3 68 */ rlwimi r6, r3, 0x14, 0xd, 0x14
+/* 80284358 0027FFB8 38 E0 00 00 */ li r7, 0
+/* 8028435C 0027FFBC 50 66 A3 18 */ rlwimi r6, r3, 0x14, 0xc, 0xc
+/* 80284360 0027FFC0 38 60 00 F1 */ li r3, 0xf1
+/* 80284364 0027FFC4 50 06 C0 0E */ rlwimi r6, r0, 0x18, 0, 7
+/* 80284368 0027FFC8 51 47 A5 7E */ rlwimi r7, r10, 0x14, 0x15, 0x1f
+/* 8028436C 0027FFCC 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 80284370 0027FFD0 51 47 A3 68 */ rlwimi r7, r10, 0x14, 0xd, 0x14
+/* 80284374 0027FFD4 51 47 A3 18 */ rlwimi r7, r10, 0x14, 0xc, 0xc
+/* 80284378 0027FFD8 80 1D 00 00 */ lwz r0, 0(r29)
+/* 8028437C 0027FFDC 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 80284380 0027FFE0 53 C7 A2 D6 */ rlwimi r7, r30, 0x14, 0xb, 0xb
+/* 80284384 0027FFE4 53 E7 AA 14 */ rlwimi r7, r31, 0x15, 8, 0xa
+/* 80284388 0027FFE8 38 C0 00 00 */ li r6, 0
+/* 8028438C 0027FFEC 91 04 80 00 */ stw r8, -0x8000(r4)
+/* 80284390 0027FFF0 50 67 C0 0E */ rlwimi r7, r3, 0x18, 0, 7
+/* 80284394 0027FFF4 50 06 C2 3E */ rlwimi r6, r0, 0x18, 8, 0x1f
+/* 80284398 0027FFF8 38 00 00 F2 */ li r0, 0xf2
+/* 8028439C 0027FFFC 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 802843A0 00280000 50 06 C0 0E */ rlwimi r6, r0, 0x18, 0, 7
+/* 802843A4 00280004 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802843A8 00280008 38 00 00 00 */ li r0, 0
+/* 802843AC 0028000C 91 24 80 00 */ stw r9, -0x8000(r4)
+/* 802843B0 00280010 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 802843B4 00280014 90 E4 80 00 */ stw r7, -0x8000(r4)
+/* 802843B8 00280018 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 802843BC 0028001C 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 802843C0 00280020 B0 03 00 02 */ sth r0, 2(r3)
+/* 802843C4 00280024 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0
+/* 802843C8 00280028 CB E1 00 30 */ lfd f31, 0x30(r1)
+/* 802843CC 0028002C 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 802843D0 00280030 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 802843D4 00280034 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 802843D8 00280038 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 802843DC 0028003C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 802843E0 00280040 7C 08 03 A6 */ mtlr r0
+/* 802843E4 00280044 38 21 00 40 */ addi r1, r1, 0x40
+/* 802843E8 00280048 4E 80 00 20 */ blr
+
+.global GXSetFogColor
+GXSetFogColor:
+/* 802843EC 0028004C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 802843F0 00280050 38 00 00 61 */ li r0, 0x61
+/* 802843F4 00280054 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
+/* 802843F8 00280058 3C A0 F2 00 */ lis r5, 0xf200
+/* 802843FC 0028005C 80 63 00 00 */ lwz r3, 0(r3)
+/* 80284400 00280060 38 00 00 00 */ li r0, 0
+/* 80284404 00280064 50 65 C2 3E */ rlwimi r5, r3, 0x18, 8, 0x1f
+/* 80284408 00280068 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028440C 0028006C 90 A4 80 00 */ stw r5, -0x8000(r4)
+/* 80284410 00280070 B0 03 00 02 */ sth r0, 2(r3)
+/* 80284414 00280074 4E 80 00 20 */ blr
+
+.global GXInitFogAdjTable
+GXInitFogAdjTable:
+/* 80284418 00280078 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 8028441C 0028007C 7C 08 02 A6 */ mflr r0
+/* 80284420 00280080 90 01 00 84 */ stw r0, 0x84(r1)
+/* 80284424 00280084 DB E1 00 70 */ stfd f31, 0x70(r1)
+/* 80284428 00280088 F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0
+/* 8028442C 0028008C DB C1 00 60 */ stfd f30, 0x60(r1)
+/* 80284430 00280090 F3 C1 00 68 */ psq_st f30, 104(r1), 0, qr0
+/* 80284434 00280094 DB A1 00 50 */ stfd f29, 0x50(r1)
+/* 80284438 00280098 F3 A1 00 58 */ psq_st f29, 88(r1), 0, qr0
+/* 8028443C 0028009C DB 81 00 40 */ stfd f28, 0x40(r1)
+/* 80284440 002800A0 F3 81 00 48 */ psq_st f28, 72(r1), 0, qr0
+/* 80284444 002800A4 DB 61 00 30 */ stfd f27, 0x30(r1)
+/* 80284448 002800A8 F3 61 00 38 */ psq_st f27, 56(r1), 0, qr0
+/* 8028444C 002800AC DB 41 00 20 */ stfd f26, 0x20(r1)
+/* 80284450 002800B0 F3 41 00 28 */ psq_st f26, 40(r1), 0, qr0
+/* 80284454 002800B4 C8 22 A1 B8 */ lfd f1, lbl_806427B8-_SDA2_BASE_(r2)
+/* 80284458 002800B8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8028445C 002800BC C0 05 00 3C */ lfs f0, 0x3c(r5)
+/* 80284460 002800C0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80284464 002800C4 FC 01 00 00 */ fcmpu cr0, f1, f0
+/* 80284468 002800C8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8028446C 002800CC 40 82 00 24 */ bne lbl_80284490
+/* 80284470 002800D0 C0 45 00 28 */ lfs f2, 0x28(r5)
+/* 80284474 002800D4 C0 02 A1 84 */ lfs f0, lbl_80642784-_SDA2_BASE_(r2)
+/* 80284478 002800D8 C0 25 00 2C */ lfs f1, 0x2c(r5)
+/* 8028447C 002800DC EC 42 00 28 */ fsubs f2, f2, f0
+/* 80284480 002800E0 C0 05 00 00 */ lfs f0, 0(r5)
+/* 80284484 002800E4 EC 21 10 24 */ fdivs f1, f1, f2
+/* 80284488 002800E8 EF 41 00 24 */ fdivs f26, f1, f0
+/* 8028448C 002800EC 48 00 00 18 */ b lbl_802844A4
+lbl_80284490:
+/* 80284490 002800F0 C0 42 A1 84 */ lfs f2, lbl_80642784-_SDA2_BASE_(r2)
+/* 80284494 002800F4 C0 25 00 00 */ lfs f1, 0(r5)
+/* 80284498 002800F8 C0 02 A1 C0 */ lfs f0, lbl_806427C0-_SDA2_BASE_(r2)
+/* 8028449C 002800FC EF 42 08 24 */ fdivs f26, f2, f1
+/* 802844A0 00280100 EC 20 06 B2 */ fmuls f1, f0, f26
+lbl_802844A4:
+/* 802844A4 00280104 3F E0 43 30 */ lis r31, 0x4330
+/* 802844A8 00280108 90 81 00 0C */ stw r4, 0xc(r1)
+/* 802844AC 0028010C CB 82 A1 C8 */ lfd f28, lbl_806427C8-_SDA2_BASE_(r2)
+/* 802844B0 00280110 EF A1 00 72 */ fmuls f29, f1, f1
+/* 802844B4 00280114 93 E1 00 08 */ stw r31, 8(r1)
+/* 802844B8 00280118 7C 7E 1B 78 */ mr r30, r3
+/* 802844BC 0028011C C0 02 A1 98 */ lfs f0, lbl_80642798-_SDA2_BASE_(r2)
+/* 802844C0 00280120 3B A0 00 00 */ li r29, 0
+/* 802844C4 00280124 C8 21 00 08 */ lfd f1, 8(r1)
+/* 802844C8 00280128 C3 C2 A1 84 */ lfs f30, lbl_80642784-_SDA2_BASE_(r2)
+/* 802844CC 0028012C EC 21 E0 28 */ fsubs f1, f1, f28
+/* 802844D0 00280130 C3 E2 A1 C4 */ lfs f31, lbl_806427C4-_SDA2_BASE_(r2)
+/* 802844D4 00280134 EF 60 08 24 */ fdivs f27, f0, f1
+lbl_802844D8:
+/* 802844D8 00280138 38 1D 00 01 */ addi r0, r29, 1
+/* 802844DC 0028013C 93 E1 00 08 */ stw r31, 8(r1)
+/* 802844E0 00280140 54 00 28 34 */ slwi r0, r0, 5
+/* 802844E4 00280144 90 01 00 0C */ stw r0, 0xc(r1)
+/* 802844E8 00280148 C8 01 00 08 */ lfd f0, 8(r1)
+/* 802844EC 0028014C EC 00 E0 28 */ fsubs f0, f0, f28
+/* 802844F0 00280150 EC 00 06 F2 */ fmuls f0, f0, f27
+/* 802844F4 00280154 EC 00 06 B2 */ fmuls f0, f0, f26
+/* 802844F8 00280158 EC 00 00 32 */ fmuls f0, f0, f0
+/* 802844FC 0028015C EC 00 E8 24 */ fdivs f0, f0, f29
+/* 80284500 00280160 EC 3E 00 2A */ fadds f1, f30, f0
+/* 80284504 00280164 4B F5 03 31 */ bl sqrt
+/* 80284508 00280168 FC 00 08 18 */ frsp f0, f1
+/* 8028450C 0028016C EC 3F 00 32 */ fmuls f1, f31, f0
+/* 80284510 00280170 4B F4 2A F1 */ bl __cvt_fp2unsigned
+/* 80284514 00280174 3B BD 00 01 */ addi r29, r29, 1
+/* 80284518 00280178 54 60 05 3E */ clrlwi r0, r3, 0x14
+/* 8028451C 0028017C 28 1D 00 0A */ cmplwi r29, 0xa
+/* 80284520 00280180 B0 1E 00 00 */ sth r0, 0(r30)
+/* 80284524 00280184 3B DE 00 02 */ addi r30, r30, 2
+/* 80284528 00280188 41 80 FF B0 */ blt lbl_802844D8
+/* 8028452C 0028018C E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0
+/* 80284530 00280190 CB E1 00 70 */ lfd f31, 0x70(r1)
+/* 80284534 00280194 E3 C1 00 68 */ psq_l f30, 104(r1), 0, qr0
+/* 80284538 00280198 CB C1 00 60 */ lfd f30, 0x60(r1)
+/* 8028453C 0028019C E3 A1 00 58 */ psq_l f29, 88(r1), 0, qr0
+/* 80284540 002801A0 CB A1 00 50 */ lfd f29, 0x50(r1)
+/* 80284544 002801A4 E3 81 00 48 */ psq_l f28, 72(r1), 0, qr0
+/* 80284548 002801A8 CB 81 00 40 */ lfd f28, 0x40(r1)
+/* 8028454C 002801AC E3 61 00 38 */ psq_l f27, 56(r1), 0, qr0
+/* 80284550 002801B0 CB 61 00 30 */ lfd f27, 0x30(r1)
+/* 80284554 002801B4 E3 41 00 28 */ psq_l f26, 40(r1), 0, qr0
+/* 80284558 002801B8 CB 41 00 20 */ lfd f26, 0x20(r1)
+/* 8028455C 002801BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80284560 002801C0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80284564 002801C4 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 80284568 002801C8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8028456C 002801CC 7C 08 03 A6 */ mtlr r0
+/* 80284570 002801D0 38 21 00 80 */ addi r1, r1, 0x80
+/* 80284574 002801D4 4E 80 00 20 */ blr
+
+.global GXSetFogRangeAdj
+GXSetFogRangeAdj:
+/* 80284578 002801D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8028457C 002801DC 41 82 00 E8 */ beq lbl_80284664
+/* 80284580 002801E0 A1 85 00 00 */ lhz r12, 0(r5)
+/* 80284584 002801E4 39 60 00 00 */ li r11, 0
+/* 80284588 002801E8 A1 45 00 02 */ lhz r10, 2(r5)
+/* 8028458C 002801EC 3C C0 CC 01 */ lis r6, 0xCC008000@ha
+/* 80284590 002801F0 51 8B 05 3E */ rlwimi r11, r12, 0, 0x14, 0x1f
+/* 80284594 002801F4 38 00 00 61 */ li r0, 0x61
+/* 80284598 002801F8 7D 69 5B 78 */ mr r9, r11
+/* 8028459C 002801FC 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
+/* 802845A0 00280200 51 49 62 26 */ rlwimi r9, r10, 0xc, 8, 0x13
+/* 802845A4 00280204 38 E0 00 E9 */ li r7, 0xe9
+/* 802845A8 00280208 7D 28 4B 78 */ mr r8, r9
+/* 802845AC 0028020C A1 85 00 04 */ lhz r12, 4(r5)
+/* 802845B0 00280210 50 E8 C0 0E */ rlwimi r8, r7, 0x18, 0, 7
+/* 802845B4 00280214 39 60 00 00 */ li r11, 0
+/* 802845B8 00280218 51 8B 05 3E */ rlwimi r11, r12, 0, 0x14, 0x1f
+/* 802845BC 0028021C 91 06 80 00 */ stw r8, -0x8000(r6)
+/* 802845C0 00280220 7D 69 5B 78 */ mr r9, r11
+/* 802845C4 00280224 A1 45 00 06 */ lhz r10, 6(r5)
+/* 802845C8 00280228 38 E0 00 EA */ li r7, 0xea
+/* 802845CC 0028022C 98 06 80 00 */ stb r0, -0x8000(r6)
+/* 802845D0 00280230 51 49 62 26 */ rlwimi r9, r10, 0xc, 8, 0x13
+/* 802845D4 00280234 A1 85 00 08 */ lhz r12, 8(r5)
+/* 802845D8 00280238 7D 28 4B 78 */ mr r8, r9
+/* 802845DC 0028023C 39 60 00 00 */ li r11, 0
+/* 802845E0 00280240 50 E8 C0 0E */ rlwimi r8, r7, 0x18, 0, 7
+/* 802845E4 00280244 A1 45 00 0A */ lhz r10, 0xa(r5)
+/* 802845E8 00280248 51 8B 05 3E */ rlwimi r11, r12, 0, 0x14, 0x1f
+/* 802845EC 0028024C 91 06 80 00 */ stw r8, -0x8000(r6)
+/* 802845F0 00280250 7D 69 5B 78 */ mr r9, r11
+/* 802845F4 00280254 38 E0 00 EB */ li r7, 0xeb
+/* 802845F8 00280258 51 49 62 26 */ rlwimi r9, r10, 0xc, 8, 0x13
+/* 802845FC 0028025C 98 06 80 00 */ stb r0, -0x8000(r6)
+/* 80284600 00280260 7D 28 4B 78 */ mr r8, r9
+/* 80284604 00280264 A1 85 00 0C */ lhz r12, 0xc(r5)
+/* 80284608 00280268 50 E8 C0 0E */ rlwimi r8, r7, 0x18, 0, 7
+/* 8028460C 0028026C 39 60 00 00 */ li r11, 0
+/* 80284610 00280270 51 8B 05 3E */ rlwimi r11, r12, 0, 0x14, 0x1f
+/* 80284614 00280274 91 06 80 00 */ stw r8, -0x8000(r6)
+/* 80284618 00280278 7D 69 5B 78 */ mr r9, r11
+/* 8028461C 0028027C A1 45 00 0E */ lhz r10, 0xe(r5)
+/* 80284620 00280280 38 E0 00 EC */ li r7, 0xec
+/* 80284624 00280284 98 06 80 00 */ stb r0, -0x8000(r6)
+/* 80284628 00280288 51 49 62 26 */ rlwimi r9, r10, 0xc, 8, 0x13
+/* 8028462C 0028028C A1 85 00 10 */ lhz r12, 0x10(r5)
+/* 80284630 00280290 7D 28 4B 78 */ mr r8, r9
+/* 80284634 00280294 39 60 00 00 */ li r11, 0
+/* 80284638 00280298 50 E8 C0 0E */ rlwimi r8, r7, 0x18, 0, 7
+/* 8028463C 0028029C A1 45 00 12 */ lhz r10, 0x12(r5)
+/* 80284640 002802A0 91 06 80 00 */ stw r8, -0x8000(r6)
+/* 80284644 002802A4 51 8B 05 3E */ rlwimi r11, r12, 0, 0x14, 0x1f
+/* 80284648 002802A8 7D 69 5B 78 */ mr r9, r11
+/* 8028464C 002802AC 38 E0 00 ED */ li r7, 0xed
+/* 80284650 002802B0 51 49 62 26 */ rlwimi r9, r10, 0xc, 8, 0x13
+/* 80284654 002802B4 98 06 80 00 */ stb r0, -0x8000(r6)
+/* 80284658 002802B8 7D 28 4B 78 */ mr r8, r9
+/* 8028465C 002802BC 50 E8 C0 0E */ rlwimi r8, r7, 0x18, 0, 7
+/* 80284660 002802C0 91 06 80 00 */ stw r8, -0x8000(r6)
+lbl_80284664:
+/* 80284664 002802C4 38 04 01 56 */ addi r0, r4, 0x156
+/* 80284668 002802C8 38 C0 00 00 */ li r6, 0
+/* 8028466C 002802CC 50 06 05 BE */ rlwimi r6, r0, 0, 0x16, 0x1f
+/* 80284670 002802D0 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80284674 002802D4 38 00 00 61 */ li r0, 0x61
+/* 80284678 002802D8 38 A0 00 E8 */ li r5, 0xe8
+/* 8028467C 002802DC 50 66 55 6A */ rlwimi r6, r3, 0xa, 0x15, 0x15
+/* 80284680 002802E0 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
+/* 80284684 002802E4 50 A6 C0 0E */ rlwimi r6, r5, 0x18, 0, 7
+/* 80284688 002802E8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028468C 002802EC 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 80284690 002802F0 38 00 00 00 */ li r0, 0
+/* 80284694 002802F4 B0 03 00 02 */ sth r0, 2(r3)
+/* 80284698 002802F8 4E 80 00 20 */ blr
+
+.global GXSetBlendMode
+GXSetBlendMode:
+/* 8028469C 002802FC 81 42 A0 D0 */ lwz r10, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802846A0 00280300 38 03 FF FD */ addi r0, r3, -3
+/* 802846A4 00280304 39 03 FF FE */ addi r8, r3, -2
+/* 802846A8 00280308 3C E0 CC 01 */ lis r7, 0xCC008000@ha
+/* 802846AC 0028030C 7C 00 00 34 */ cntlzw r0, r0
+/* 802846B0 00280310 81 2A 02 20 */ lwz r9, 0x220(r10)
+/* 802846B4 00280314 50 09 35 28 */ rlwimi r9, r0, 6, 0x14, 0x14
+/* 802846B8 00280318 7D 08 00 34 */ cntlzw r8, r8
+/* 802846BC 0028031C 38 00 00 61 */ li r0, 0x61
+/* 802846C0 00280320 98 07 80 00 */ stb r0, 0xCC008000@l(r7)
+/* 802846C4 00280324 50 69 07 FE */ rlwimi r9, r3, 0, 0x1f, 0x1f
+/* 802846C8 00280328 51 09 E7 BC */ rlwimi r9, r8, 0x1c, 0x1e, 0x1e
+/* 802846CC 0028032C 38 00 00 00 */ li r0, 0
+/* 802846D0 00280330 50 C9 64 26 */ rlwimi r9, r6, 0xc, 0x10, 0x13
+/* 802846D4 00280334 50 89 45 6E */ rlwimi r9, r4, 8, 0x15, 0x17
+/* 802846D8 00280338 50 A9 2E 34 */ rlwimi r9, r5, 5, 0x18, 0x1a
+/* 802846DC 0028033C 91 27 80 00 */ stw r9, -0x8000(r7)
+/* 802846E0 00280340 91 2A 02 20 */ stw r9, 0x220(r10)
+/* 802846E4 00280344 B0 0A 00 02 */ sth r0, 2(r10)
+/* 802846E8 00280348 4E 80 00 20 */ blr
+
+.global GXSetColorUpdate
+GXSetColorUpdate:
+/* 802846EC 0028034C 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802846F0 00280350 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 802846F4 00280354 38 A0 00 61 */ li r5, 0x61
+/* 802846F8 00280358 38 00 00 00 */ li r0, 0
+/* 802846FC 0028035C 80 C7 02 20 */ lwz r6, 0x220(r7)
+/* 80284700 00280360 50 66 1F 38 */ rlwimi r6, r3, 3, 0x1c, 0x1c
+/* 80284704 00280364 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 80284708 00280368 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 8028470C 0028036C 90 C7 02 20 */ stw r6, 0x220(r7)
+/* 80284710 00280370 B0 07 00 02 */ sth r0, 2(r7)
+/* 80284714 00280374 4E 80 00 20 */ blr
+
+.global GXSetAlphaUpdate
+GXSetAlphaUpdate:
+/* 80284718 00280378 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028471C 0028037C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80284720 00280380 38 A0 00 61 */ li r5, 0x61
+/* 80284724 00280384 38 00 00 00 */ li r0, 0
+/* 80284728 00280388 80 C7 02 20 */ lwz r6, 0x220(r7)
+/* 8028472C 0028038C 50 66 26 F6 */ rlwimi r6, r3, 4, 0x1b, 0x1b
+/* 80284730 00280390 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 80284734 00280394 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 80284738 00280398 90 C7 02 20 */ stw r6, 0x220(r7)
+/* 8028473C 0028039C B0 07 00 02 */ sth r0, 2(r7)
+/* 80284740 002803A0 4E 80 00 20 */ blr
+
+.global GXSetZMode
+GXSetZMode:
+/* 80284744 002803A4 81 22 A0 D0 */ lwz r9, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80284748 002803A8 3C C0 CC 01 */ lis r6, 0xCC008000@ha
+/* 8028474C 002803AC 38 E0 00 61 */ li r7, 0x61
+/* 80284750 002803B0 38 00 00 00 */ li r0, 0
+/* 80284754 002803B4 81 09 02 28 */ lwz r8, 0x228(r9)
+/* 80284758 002803B8 50 68 07 FE */ rlwimi r8, r3, 0, 0x1f, 0x1f
+/* 8028475C 002803BC 50 88 0F 3C */ rlwimi r8, r4, 1, 0x1c, 0x1e
+/* 80284760 002803C0 98 E6 80 00 */ stb r7, 0xCC008000@l(r6)
+/* 80284764 002803C4 50 A8 26 F6 */ rlwimi r8, r5, 4, 0x1b, 0x1b
+/* 80284768 002803C8 91 06 80 00 */ stw r8, -0x8000(r6)
+/* 8028476C 002803CC 91 09 02 28 */ stw r8, 0x228(r9)
+/* 80284770 002803D0 B0 09 00 02 */ sth r0, 2(r9)
+/* 80284774 002803D4 4E 80 00 20 */ blr
+
+.global GXSetZCompLoc
+GXSetZCompLoc:
+/* 80284778 002803D8 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028477C 002803DC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80284780 002803E0 38 A0 00 61 */ li r5, 0x61
+/* 80284784 002803E4 38 00 00 00 */ li r0, 0
+/* 80284788 002803E8 80 C7 02 2C */ lwz r6, 0x22c(r7)
+/* 8028478C 002803EC 50 66 36 72 */ rlwimi r6, r3, 6, 0x19, 0x19
+/* 80284790 002803F0 90 C7 02 2C */ stw r6, 0x22c(r7)
+/* 80284794 002803F4 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 80284798 002803F8 80 67 02 2C */ lwz r3, 0x22c(r7)
+/* 8028479C 002803FC 90 64 80 00 */ stw r3, -0x8000(r4)
+/* 802847A0 00280400 B0 07 00 02 */ sth r0, 2(r7)
+/* 802847A4 00280404 4E 80 00 20 */ blr
+
+.global GXSetPixelFmt
+GXSetPixelFmt:
+/* 802847A8 00280408 81 22 A0 D0 */ lwz r9, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802847AC 0028040C 3C C0 80 43 */ lis r6, lbl_80435948@ha
+/* 802847B0 00280410 54 67 10 3A */ slwi r7, r3, 2
+/* 802847B4 00280414 38 C6 59 48 */ addi r6, r6, lbl_80435948@l
+/* 802847B8 00280418 81 09 02 2C */ lwz r8, 0x22c(r9)
+/* 802847BC 0028041C 7C 06 38 2E */ lwzx r0, r6, r7
+/* 802847C0 00280420 7D 05 43 78 */ mr r5, r8
+/* 802847C4 00280424 50 05 07 7E */ rlwimi r5, r0, 0, 0x1d, 0x1f
+/* 802847C8 00280428 50 85 1E B8 */ rlwimi r5, r4, 3, 0x1a, 0x1c
+/* 802847CC 0028042C 7C 08 28 40 */ cmplw r8, r5
+/* 802847D0 00280430 90 A9 02 2C */ stw r5, 0x22c(r9)
+/* 802847D4 00280434 41 82 00 38 */ beq lbl_8028480C
+/* 802847D8 00280438 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 802847DC 0028043C 38 00 00 61 */ li r0, 0x61
+/* 802847E0 00280440 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
+/* 802847E4 00280444 38 03 FF FE */ addi r0, r3, -2
+/* 802847E8 00280448 7C 04 00 34 */ cntlzw r4, r0
+/* 802847EC 0028044C 80 09 02 2C */ lwz r0, 0x22c(r9)
+/* 802847F0 00280450 90 05 80 00 */ stw r0, -0x8000(r5)
+/* 802847F4 00280454 80 09 02 54 */ lwz r0, 0x254(r9)
+/* 802847F8 00280458 50 80 25 AC */ rlwimi r0, r4, 4, 0x16, 0x16
+/* 802847FC 0028045C 90 09 02 54 */ stw r0, 0x254(r9)
+/* 80284800 00280460 80 09 05 FC */ lwz r0, 0x5fc(r9)
+/* 80284804 00280464 60 00 00 04 */ ori r0, r0, 4
+/* 80284808 00280468 90 09 05 FC */ stw r0, 0x5fc(r9)
+lbl_8028480C:
+/* 8028480C 0028046C 7C 06 38 2E */ lwzx r0, r6, r7
+/* 80284810 00280470 28 00 00 04 */ cmplwi r0, 4
+/* 80284814 00280474 40 82 00 30 */ bne lbl_80284844
+/* 80284818 00280478 38 03 FF FC */ addi r0, r3, -4
+/* 8028481C 0028047C 80 89 02 24 */ lwz r4, 0x224(r9)
+/* 80284820 00280480 50 04 4D 6C */ rlwimi r4, r0, 9, 0x15, 0x16
+/* 80284824 00280484 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80284828 00280488 38 00 00 42 */ li r0, 0x42
+/* 8028482C 0028048C 50 04 C0 0E */ rlwimi r4, r0, 0x18, 0, 7
+/* 80284830 00280490 90 89 02 24 */ stw r4, 0x224(r9)
+/* 80284834 00280494 38 00 00 61 */ li r0, 0x61
+/* 80284838 00280498 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 8028483C 0028049C 80 09 02 24 */ lwz r0, 0x224(r9)
+/* 80284840 002804A0 90 03 80 00 */ stw r0, -0x8000(r3)
+lbl_80284844:
+/* 80284844 002804A4 38 00 00 00 */ li r0, 0
+/* 80284848 002804A8 B0 09 00 02 */ sth r0, 2(r9)
+/* 8028484C 002804AC 4E 80 00 20 */ blr
+
+.global GXSetDither
+GXSetDither:
+/* 80284850 002804B0 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80284854 002804B4 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80284858 002804B8 38 A0 00 61 */ li r5, 0x61
+/* 8028485C 002804BC 38 00 00 00 */ li r0, 0
+/* 80284860 002804C0 80 C7 02 20 */ lwz r6, 0x220(r7)
+/* 80284864 002804C4 50 66 17 7A */ rlwimi r6, r3, 2, 0x1d, 0x1d
+/* 80284868 002804C8 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 8028486C 002804CC 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 80284870 002804D0 90 C7 02 20 */ stw r6, 0x220(r7)
+/* 80284874 002804D4 B0 07 00 02 */ sth r0, 2(r7)
+/* 80284878 002804D8 4E 80 00 20 */ blr
+
+.global GXSetDstAlpha
+GXSetDstAlpha:
+/* 8028487C 002804DC 81 02 A0 D0 */ lwz r8, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80284880 002804E0 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 80284884 002804E4 38 C0 00 61 */ li r6, 0x61
+/* 80284888 002804E8 38 00 00 00 */ li r0, 0
+/* 8028488C 002804EC 80 E8 02 24 */ lwz r7, 0x224(r8)
+/* 80284890 002804F0 50 87 06 3E */ rlwimi r7, r4, 0, 0x18, 0x1f
+/* 80284894 002804F4 50 67 45 EE */ rlwimi r7, r3, 8, 0x17, 0x17
+/* 80284898 002804F8 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
+/* 8028489C 002804FC 90 E5 80 00 */ stw r7, -0x8000(r5)
+/* 802848A0 00280500 90 E8 02 24 */ stw r7, 0x224(r8)
+/* 802848A4 00280504 B0 08 00 02 */ sth r0, 2(r8)
+/* 802848A8 00280508 4E 80 00 20 */ blr
+
+.global GXSetFieldMask
+GXSetFieldMask:
+/* 802848AC 0028050C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 802848B0 00280510 38 00 00 61 */ li r0, 0x61
+/* 802848B4 00280514 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
+/* 802848B8 00280518 38 00 00 44 */ li r0, 0x44
+/* 802848BC 0028051C 38 C0 00 00 */ li r6, 0
+/* 802848C0 00280520 50 86 07 FE */ rlwimi r6, r4, 0, 0x1f, 0x1f
+/* 802848C4 00280524 50 66 0F BC */ rlwimi r6, r3, 1, 0x1e, 0x1e
+/* 802848C8 00280528 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802848CC 0028052C 50 06 C0 0E */ rlwimi r6, r0, 0x18, 0, 7
+/* 802848D0 00280530 38 00 00 00 */ li r0, 0
+/* 802848D4 00280534 90 C5 80 00 */ stw r6, -0x8000(r5)
+/* 802848D8 00280538 B0 03 00 02 */ sth r0, 2(r3)
+/* 802848DC 0028053C 4E 80 00 20 */ blr
+
+.global GXSetFieldMode
+GXSetFieldMode:
+/* 802848E0 00280540 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802848E4 00280544 7C 08 02 A6 */ mflr r0
+/* 802848E8 00280548 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802848EC 0028054C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802848F0 00280550 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802848F4 00280554 3F E0 CC 01 */ lis r31, 0xCC008000@ha
+/* 802848F8 00280558 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802848FC 0028055C 3B C0 00 61 */ li r30, 0x61
+/* 80284900 00280560 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80284904 00280564 7C 7D 1B 78 */ mr r29, r3
+/* 80284908 00280568 80 05 00 7C */ lwz r0, 0x7c(r5)
+/* 8028490C 0028056C 50 80 B2 52 */ rlwimi r0, r4, 0x16, 9, 9
+/* 80284910 00280570 90 05 00 7C */ stw r0, 0x7c(r5)
+/* 80284914 00280574 9B DF 80 00 */ stb r30, 0xCC008000@l(r31)
+/* 80284918 00280578 80 05 00 7C */ lwz r0, 0x7c(r5)
+/* 8028491C 0028057C 90 1F 80 00 */ stw r0, -0x8000(r31)
+/* 80284920 00280580 4B FF F1 FD */ bl __GXFlushTextureState
+/* 80284924 00280584 9B DF 80 00 */ stb r30, -0x8000(r31)
+/* 80284928 00280588 67 A0 68 00 */ oris r0, r29, 0x6800
+/* 8028492C 0028058C 90 1F 80 00 */ stw r0, -0x8000(r31)
+/* 80284930 00280590 4B FF F1 ED */ bl __GXFlushTextureState
+/* 80284934 00280594 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80284938 00280598 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8028493C 0028059C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80284940 002805A0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80284944 002805A4 7C 08 03 A6 */ mtlr r0
+/* 80284948 002805A8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8028494C 002805AC 4E 80 00 20 */ blr
diff --git a/asm/SDK/GX/GXTev.s b/asm/SDK/GX/GXTev.s
new file mode 100644
index 0000000..26362b2
--- /dev/null
+++ b/asm/SDK/GX/GXTev.s
@@ -0,0 +1,493 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global GXSetTevOp
+GXSetTevOp:
+/* 80283B40 0027F7A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80283B44 0027F7A4 3C A0 80 43 */ lis r5, lbl_804358D0@ha
+/* 80283B48 0027F7A8 38 A5 58 D0 */ addi r5, r5, lbl_804358D0@l
+/* 80283B4C 0027F7AC 40 82 00 1C */ bne lbl_80283B68
+/* 80283B50 0027F7B0 54 86 10 3A */ slwi r6, r4, 2
+/* 80283B54 0027F7B4 38 85 00 00 */ addi r4, r5, 0
+/* 80283B58 0027F7B8 38 05 00 28 */ addi r0, r5, 0x28
+/* 80283B5C 0027F7BC 7D 04 32 14 */ add r8, r4, r6
+/* 80283B60 0027F7C0 7D 20 32 14 */ add r9, r0, r6
+/* 80283B64 0027F7C4 48 00 00 18 */ b lbl_80283B7C
+lbl_80283B68:
+/* 80283B68 0027F7C8 54 86 10 3A */ slwi r6, r4, 2
+/* 80283B6C 0027F7CC 38 85 00 14 */ addi r4, r5, 0x14
+/* 80283B70 0027F7D0 38 05 00 3C */ addi r0, r5, 0x3c
+/* 80283B74 0027F7D4 7D 04 32 14 */ add r8, r4, r6
+/* 80283B78 0027F7D8 7D 20 32 14 */ add r9, r0, r6
+lbl_80283B7C:
+/* 80283B7C 0027F7DC 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283B80 0027F7E0 54 60 10 3A */ slwi r0, r3, 2
+/* 80283B84 0027F7E4 80 68 00 00 */ lwz r3, 0(r8)
+/* 80283B88 0027F7E8 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80283B8C 0027F7EC 7C C7 02 14 */ add r6, r7, r0
+/* 80283B90 0027F7F0 38 A0 00 61 */ li r5, 0x61
+/* 80283B94 0027F7F4 81 06 01 80 */ lwz r8, 0x180(r6)
+/* 80283B98 0027F7F8 38 00 00 00 */ li r0, 0
+/* 80283B9C 0027F7FC 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 80283BA0 0027F800 55 08 00 0E */ rlwinm r8, r8, 0, 0, 7
+/* 80283BA4 0027F804 50 68 02 3E */ rlwimi r8, r3, 0, 8, 0x1f
+/* 80283BA8 0027F808 91 04 80 00 */ stw r8, -0x8000(r4)
+/* 80283BAC 0027F80C 91 06 01 80 */ stw r8, 0x180(r6)
+/* 80283BB0 0027F810 81 06 01 C0 */ lwz r8, 0x1c0(r6)
+/* 80283BB4 0027F814 80 69 00 00 */ lwz r3, 0(r9)
+/* 80283BB8 0027F818 55 08 07 0E */ rlwinm r8, r8, 0, 0x1c, 7
+/* 80283BBC 0027F81C 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 80283BC0 0027F820 50 68 02 36 */ rlwimi r8, r3, 0, 8, 0x1b
+/* 80283BC4 0027F824 91 04 80 00 */ stw r8, -0x8000(r4)
+/* 80283BC8 0027F828 91 06 01 C0 */ stw r8, 0x1c0(r6)
+/* 80283BCC 0027F82C B0 07 00 02 */ sth r0, 2(r7)
+/* 80283BD0 0027F830 4E 80 00 20 */ blr
+
+.global GXSetTevColorIn
+GXSetTevColorIn:
+/* 80283BD4 0027F834 81 62 A0 D0 */ lwz r11, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283BD8 0027F838 54 60 10 3A */ slwi r0, r3, 2
+/* 80283BDC 0027F83C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80283BE0 0027F840 39 00 00 61 */ li r8, 0x61
+/* 80283BE4 0027F844 7D 4B 02 14 */ add r10, r11, r0
+/* 80283BE8 0027F848 38 00 00 00 */ li r0, 0
+/* 80283BEC 0027F84C 81 2A 01 80 */ lwz r9, 0x180(r10)
+/* 80283BF0 0027F850 50 89 64 26 */ rlwimi r9, r4, 0xc, 0x10, 0x13
+/* 80283BF4 0027F854 50 A9 45 2E */ rlwimi r9, r5, 8, 0x14, 0x17
+/* 80283BF8 0027F858 99 03 80 00 */ stb r8, 0xCC008000@l(r3)
+/* 80283BFC 0027F85C 50 C9 26 36 */ rlwimi r9, r6, 4, 0x18, 0x1b
+/* 80283C00 0027F860 50 E9 07 3E */ rlwimi r9, r7, 0, 0x1c, 0x1f
+/* 80283C04 0027F864 91 23 80 00 */ stw r9, -0x8000(r3)
+/* 80283C08 0027F868 91 2A 01 80 */ stw r9, 0x180(r10)
+/* 80283C0C 0027F86C B0 0B 00 02 */ sth r0, 2(r11)
+/* 80283C10 0027F870 4E 80 00 20 */ blr
+
+.global GXSetTevAlphaIn
+GXSetTevAlphaIn:
+/* 80283C14 0027F874 81 62 A0 D0 */ lwz r11, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283C18 0027F878 54 60 10 3A */ slwi r0, r3, 2
+/* 80283C1C 0027F87C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80283C20 0027F880 39 00 00 61 */ li r8, 0x61
+/* 80283C24 0027F884 7D 4B 02 14 */ add r10, r11, r0
+/* 80283C28 0027F888 38 00 00 00 */ li r0, 0
+/* 80283C2C 0027F88C 81 2A 01 C0 */ lwz r9, 0x1c0(r10)
+/* 80283C30 0027F890 50 89 6C 24 */ rlwimi r9, r4, 0xd, 0x10, 0x12
+/* 80283C34 0027F894 50 A9 54 EA */ rlwimi r9, r5, 0xa, 0x13, 0x15
+/* 80283C38 0027F898 99 03 80 00 */ stb r8, 0xCC008000@l(r3)
+/* 80283C3C 0027F89C 50 C9 3D B0 */ rlwimi r9, r6, 7, 0x16, 0x18
+/* 80283C40 0027F8A0 50 E9 26 76 */ rlwimi r9, r7, 4, 0x19, 0x1b
+/* 80283C44 0027F8A4 91 23 80 00 */ stw r9, -0x8000(r3)
+/* 80283C48 0027F8A8 91 2A 01 C0 */ stw r9, 0x1c0(r10)
+/* 80283C4C 0027F8AC B0 0B 00 02 */ sth r0, 2(r11)
+/* 80283C50 0027F8B0 4E 80 00 20 */ blr
+
+.global GXSetTevColorOp
+GXSetTevColorOp:
+/* 80283C54 0027F8B4 81 42 A0 D0 */ lwz r10, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283C58 0027F8B8 54 60 10 3A */ slwi r0, r3, 2
+/* 80283C5C 0027F8BC 2C 04 00 01 */ cmpwi r4, 1
+/* 80283C60 0027F8C0 7D 2A 02 14 */ add r9, r10, r0
+/* 80283C64 0027F8C4 81 69 01 80 */ lwz r11, 0x180(r9)
+/* 80283C68 0027F8C8 50 8B 93 5A */ rlwimi r11, r4, 0x12, 0xd, 0xd
+/* 80283C6C 0027F8CC 41 81 00 10 */ bgt lbl_80283C7C
+/* 80283C70 0027F8D0 50 CB A2 96 */ rlwimi r11, r6, 0x14, 0xa, 0xb
+/* 80283C74 0027F8D4 50 AB 83 9E */ rlwimi r11, r5, 0x10, 0xe, 0xf
+/* 80283C78 0027F8D8 48 00 00 0C */ b lbl_80283C84
+lbl_80283C7C:
+/* 80283C7C 0027F8DC 50 8B 9A 96 */ rlwimi r11, r4, 0x13, 0xa, 0xb
+/* 80283C80 0027F8E0 65 6B 00 03 */ oris r11, r11, 3
+lbl_80283C84:
+/* 80283C84 0027F8E4 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80283C88 0027F8E8 38 00 00 61 */ li r0, 0x61
+/* 80283C8C 0027F8EC 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80283C90 0027F8F0 50 EB 9B 18 */ rlwimi r11, r7, 0x13, 0xc, 0xc
+/* 80283C94 0027F8F4 51 0B B2 12 */ rlwimi r11, r8, 0x16, 8, 9
+/* 80283C98 0027F8F8 38 00 00 00 */ li r0, 0
+/* 80283C9C 0027F8FC 91 63 80 00 */ stw r11, -0x8000(r3)
+/* 80283CA0 0027F900 91 69 01 80 */ stw r11, 0x180(r9)
+/* 80283CA4 0027F904 B0 0A 00 02 */ sth r0, 2(r10)
+/* 80283CA8 0027F908 4E 80 00 20 */ blr
+
+.global GXSetTevAlphaOp
+GXSetTevAlphaOp:
+/* 80283CAC 0027F90C 81 42 A0 D0 */ lwz r10, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283CB0 0027F910 54 60 10 3A */ slwi r0, r3, 2
+/* 80283CB4 0027F914 2C 04 00 01 */ cmpwi r4, 1
+/* 80283CB8 0027F918 7D 2A 02 14 */ add r9, r10, r0
+/* 80283CBC 0027F91C 81 69 01 C0 */ lwz r11, 0x1c0(r9)
+/* 80283CC0 0027F920 50 8B 93 5A */ rlwimi r11, r4, 0x12, 0xd, 0xd
+/* 80283CC4 0027F924 41 81 00 10 */ bgt lbl_80283CD4
+/* 80283CC8 0027F928 50 CB A2 96 */ rlwimi r11, r6, 0x14, 0xa, 0xb
+/* 80283CCC 0027F92C 50 AB 83 9E */ rlwimi r11, r5, 0x10, 0xe, 0xf
+/* 80283CD0 0027F930 48 00 00 0C */ b lbl_80283CDC
+lbl_80283CD4:
+/* 80283CD4 0027F934 50 8B 9A 96 */ rlwimi r11, r4, 0x13, 0xa, 0xb
+/* 80283CD8 0027F938 65 6B 00 03 */ oris r11, r11, 3
+lbl_80283CDC:
+/* 80283CDC 0027F93C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80283CE0 0027F940 38 00 00 61 */ li r0, 0x61
+/* 80283CE4 0027F944 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80283CE8 0027F948 50 EB 9B 18 */ rlwimi r11, r7, 0x13, 0xc, 0xc
+/* 80283CEC 0027F94C 51 0B B2 12 */ rlwimi r11, r8, 0x16, 8, 9
+/* 80283CF0 0027F950 38 00 00 00 */ li r0, 0
+/* 80283CF4 0027F954 91 63 80 00 */ stw r11, -0x8000(r3)
+/* 80283CF8 0027F958 91 69 01 C0 */ stw r11, 0x1c0(r9)
+/* 80283CFC 0027F95C B0 0A 00 02 */ sth r0, 2(r10)
+/* 80283D00 0027F960 4E 80 00 20 */ blr
+
+.global GXSetTevColor
+GXSetTevColor:
+/* 80283D04 0027F964 54 63 08 3C */ slwi r3, r3, 1
+/* 80283D08 0027F968 81 04 00 00 */ lwz r8, 0(r4)
+/* 80283D0C 0027F96C 38 03 00 E0 */ addi r0, r3, 0xe0
+/* 80283D10 0027F970 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80283D14 0027F974 54 07 C0 0E */ slwi r7, r0, 0x18
+/* 80283D18 0027F978 38 A0 00 61 */ li r5, 0x61
+/* 80283D1C 0027F97C 51 07 46 3E */ rlwimi r7, r8, 8, 0x18, 0x1f
+/* 80283D20 0027F980 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 80283D24 0027F984 51 07 63 26 */ rlwimi r7, r8, 0xc, 0xc, 0x13
+/* 80283D28 0027F988 38 03 00 E1 */ addi r0, r3, 0xe1
+/* 80283D2C 0027F98C 90 E4 80 00 */ stw r7, -0x8000(r4)
+/* 80283D30 0027F990 54 06 C0 0E */ slwi r6, r0, 0x18
+/* 80283D34 0027F994 51 06 C6 3E */ rlwimi r6, r8, 0x18, 0x18, 0x1f
+/* 80283D38 0027F998 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283D3C 0027F99C 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 80283D40 0027F9A0 51 06 E3 26 */ rlwimi r6, r8, 0x1c, 0xc, 0x13
+/* 80283D44 0027F9A4 38 00 00 00 */ li r0, 0
+/* 80283D48 0027F9A8 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 80283D4C 0027F9AC 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 80283D50 0027F9B0 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 80283D54 0027F9B4 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 80283D58 0027F9B8 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 80283D5C 0027F9BC B0 03 00 02 */ sth r0, 2(r3)
+/* 80283D60 0027F9C0 4E 80 00 20 */ blr
+
+.global GXSetTevColorS10
+GXSetTevColorS10:
+/* 80283D64 0027F9C4 54 63 08 3C */ slwi r3, r3, 1
+/* 80283D68 0027F9C8 81 04 00 00 */ lwz r8, 0(r4)
+/* 80283D6C 0027F9CC 38 03 00 E0 */ addi r0, r3, 0xe0
+/* 80283D70 0027F9D0 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 80283D74 0027F9D4 54 07 C0 0E */ slwi r7, r0, 0x18
+/* 80283D78 0027F9D8 38 C0 00 61 */ li r6, 0x61
+/* 80283D7C 0027F9DC 81 24 00 04 */ lwz r9, 4(r4)
+/* 80283D80 0027F9E0 51 07 85 7E */ rlwimi r7, r8, 0x10, 0x15, 0x1f
+/* 80283D84 0027F9E4 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
+/* 80283D88 0027F9E8 38 03 00 E1 */ addi r0, r3, 0xe1
+/* 80283D8C 0027F9EC 51 27 62 66 */ rlwimi r7, r9, 0xc, 9, 0x13
+/* 80283D90 0027F9F0 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283D94 0027F9F4 54 04 C0 0E */ slwi r4, r0, 0x18
+/* 80283D98 0027F9F8 90 E5 80 00 */ stw r7, -0x8000(r5)
+/* 80283D9C 0027F9FC 51 24 85 7E */ rlwimi r4, r9, 0x10, 0x15, 0x1f
+/* 80283DA0 0027FA00 38 00 00 00 */ li r0, 0
+/* 80283DA4 0027FA04 98 C5 80 00 */ stb r6, -0x8000(r5)
+/* 80283DA8 0027FA08 51 04 62 66 */ rlwimi r4, r8, 0xc, 9, 0x13
+/* 80283DAC 0027FA0C 90 85 80 00 */ stw r4, -0x8000(r5)
+/* 80283DB0 0027FA10 98 C5 80 00 */ stb r6, -0x8000(r5)
+/* 80283DB4 0027FA14 90 85 80 00 */ stw r4, -0x8000(r5)
+/* 80283DB8 0027FA18 98 C5 80 00 */ stb r6, -0x8000(r5)
+/* 80283DBC 0027FA1C 90 85 80 00 */ stw r4, -0x8000(r5)
+/* 80283DC0 0027FA20 B0 03 00 02 */ sth r0, 2(r3)
+/* 80283DC4 0027FA24 4E 80 00 20 */ blr
+
+.global GXSetTevKColor
+GXSetTevKColor:
+/* 80283DC8 0027FA28 54 66 08 3C */ slwi r6, r3, 1
+/* 80283DCC 0027FA2C 81 24 00 00 */ lwz r9, 0(r4)
+/* 80283DD0 0027FA30 38 66 00 E0 */ addi r3, r6, 0xe0
+/* 80283DD4 0027FA34 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80283DD8 0027FA38 54 68 C0 0E */ slwi r8, r3, 0x18
+/* 80283DDC 0027FA3C 38 A0 00 61 */ li r5, 0x61
+/* 80283DE0 0027FA40 51 28 46 3E */ rlwimi r8, r9, 8, 0x18, 0x1f
+/* 80283DE4 0027FA44 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 80283DE8 0027FA48 38 E0 00 08 */ li r7, 8
+/* 80283DEC 0027FA4C 38 06 00 E1 */ addi r0, r6, 0xe1
+/* 80283DF0 0027FA50 51 28 63 26 */ rlwimi r8, r9, 0xc, 0xc, 0x13
+/* 80283DF4 0027FA54 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283DF8 0027FA58 54 06 C0 0E */ slwi r6, r0, 0x18
+/* 80283DFC 0027FA5C 38 00 00 00 */ li r0, 0
+/* 80283E00 0027FA60 50 E8 A2 16 */ rlwimi r8, r7, 0x14, 8, 0xb
+/* 80283E04 0027FA64 91 04 80 00 */ stw r8, -0x8000(r4)
+/* 80283E08 0027FA68 51 26 C6 3E */ rlwimi r6, r9, 0x18, 0x18, 0x1f
+/* 80283E0C 0027FA6C 51 26 E3 26 */ rlwimi r6, r9, 0x1c, 0xc, 0x13
+/* 80283E10 0027FA70 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 80283E14 0027FA74 50 E6 A2 16 */ rlwimi r6, r7, 0x14, 8, 0xb
+/* 80283E18 0027FA78 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 80283E1C 0027FA7C B0 03 00 02 */ sth r0, 2(r3)
+/* 80283E20 0027FA80 4E 80 00 20 */ blr
+
+.global GXSetTevKColorSel
+GXSetTevKColorSel:
+/* 80283E24 0027FA84 54 60 07 FF */ clrlwi. r0, r3, 0x1f
+/* 80283E28 0027FA88 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283E2C 0027FA8C 54 60 08 3A */ rlwinm r0, r3, 1, 0, 0x1d
+/* 80283E30 0027FA90 7C 65 02 14 */ add r3, r5, r0
+/* 80283E34 0027FA94 41 82 00 14 */ beq lbl_80283E48
+/* 80283E38 0027FA98 80 03 02 00 */ lwz r0, 0x200(r3)
+/* 80283E3C 0027FA9C 50 80 73 62 */ rlwimi r0, r4, 0xe, 0xd, 0x11
+/* 80283E40 0027FAA0 90 03 02 00 */ stw r0, 0x200(r3)
+/* 80283E44 0027FAA4 48 00 00 10 */ b lbl_80283E54
+lbl_80283E48:
+/* 80283E48 0027FAA8 80 03 02 00 */ lwz r0, 0x200(r3)
+/* 80283E4C 0027FAAC 50 80 25 F6 */ rlwimi r0, r4, 4, 0x17, 0x1b
+/* 80283E50 0027FAB0 90 03 02 00 */ stw r0, 0x200(r3)
+lbl_80283E54:
+/* 80283E54 0027FAB4 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80283E58 0027FAB8 38 00 00 61 */ li r0, 0x61
+/* 80283E5C 0027FABC 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
+/* 80283E60 0027FAC0 38 00 00 00 */ li r0, 0
+/* 80283E64 0027FAC4 80 63 02 00 */ lwz r3, 0x200(r3)
+/* 80283E68 0027FAC8 90 64 80 00 */ stw r3, -0x8000(r4)
+/* 80283E6C 0027FACC B0 05 00 02 */ sth r0, 2(r5)
+/* 80283E70 0027FAD0 4E 80 00 20 */ blr
+
+.global GXSetTevKAlphaSel
+GXSetTevKAlphaSel:
+/* 80283E74 0027FAD4 54 60 07 FF */ clrlwi. r0, r3, 0x1f
+/* 80283E78 0027FAD8 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283E7C 0027FADC 54 60 08 3A */ rlwinm r0, r3, 1, 0, 0x1d
+/* 80283E80 0027FAE0 7C 65 02 14 */ add r3, r5, r0
+/* 80283E84 0027FAE4 41 82 00 14 */ beq lbl_80283E98
+/* 80283E88 0027FAE8 80 03 02 00 */ lwz r0, 0x200(r3)
+/* 80283E8C 0027FAEC 50 80 9A 18 */ rlwimi r0, r4, 0x13, 8, 0xc
+/* 80283E90 0027FAF0 90 03 02 00 */ stw r0, 0x200(r3)
+/* 80283E94 0027FAF4 48 00 00 10 */ b lbl_80283EA4
+lbl_80283E98:
+/* 80283E98 0027FAF8 80 03 02 00 */ lwz r0, 0x200(r3)
+/* 80283E9C 0027FAFC 50 80 4C AC */ rlwimi r0, r4, 9, 0x12, 0x16
+/* 80283EA0 0027FB00 90 03 02 00 */ stw r0, 0x200(r3)
+lbl_80283EA4:
+/* 80283EA4 0027FB04 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80283EA8 0027FB08 38 00 00 61 */ li r0, 0x61
+/* 80283EAC 0027FB0C 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
+/* 80283EB0 0027FB10 38 00 00 00 */ li r0, 0
+/* 80283EB4 0027FB14 80 63 02 00 */ lwz r3, 0x200(r3)
+/* 80283EB8 0027FB18 90 64 80 00 */ stw r3, -0x8000(r4)
+/* 80283EBC 0027FB1C B0 05 00 02 */ sth r0, 2(r5)
+/* 80283EC0 0027FB20 4E 80 00 20 */ blr
+
+.global GXSetTevSwapMode
+GXSetTevSwapMode:
+/* 80283EC4 0027FB24 81 22 A0 D0 */ lwz r9, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283EC8 0027FB28 54 60 10 3A */ slwi r0, r3, 2
+/* 80283ECC 0027FB2C 3C C0 CC 01 */ lis r6, 0xCC008000@ha
+/* 80283ED0 0027FB30 38 60 00 61 */ li r3, 0x61
+/* 80283ED4 0027FB34 7D 09 02 14 */ add r8, r9, r0
+/* 80283ED8 0027FB38 38 00 00 00 */ li r0, 0
+/* 80283EDC 0027FB3C 80 E8 01 C0 */ lwz r7, 0x1c0(r8)
+/* 80283EE0 0027FB40 50 87 07 BE */ rlwimi r7, r4, 0, 0x1e, 0x1f
+/* 80283EE4 0027FB44 50 A7 17 3A */ rlwimi r7, r5, 2, 0x1c, 0x1d
+/* 80283EE8 0027FB48 90 E8 01 C0 */ stw r7, 0x1c0(r8)
+/* 80283EEC 0027FB4C 98 66 80 00 */ stb r3, 0xCC008000@l(r6)
+/* 80283EF0 0027FB50 80 68 01 C0 */ lwz r3, 0x1c0(r8)
+/* 80283EF4 0027FB54 90 66 80 00 */ stw r3, -0x8000(r6)
+/* 80283EF8 0027FB58 B0 09 00 02 */ sth r0, 2(r9)
+/* 80283EFC 0027FB5C 4E 80 00 20 */ blr
+
+.global GXSetTevSwapModeTable
+GXSetTevSwapModeTable:
+/* 80283F00 0027FB60 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80283F04 0027FB64 54 6B 18 38 */ slwi r11, r3, 3
+/* 80283F08 0027FB68 54 6C 08 3C */ slwi r12, r3, 1
+/* 80283F0C 0027FB6C 3D 00 CC 01 */ lis r8, 0xCC008000@ha
+/* 80283F10 0027FB70 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80283F14 0027FB74 39 20 00 61 */ li r9, 0x61
+/* 80283F18 0027FB78 38 6C 00 01 */ addi r3, r12, 1
+/* 80283F1C 0027FB7C 38 00 00 00 */ li r0, 0
+/* 80283F20 0027FB80 93 C1 00 08 */ stw r30, 8(r1)
+/* 80283F24 0027FB84 83 C2 A0 D0 */ lwz r30, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283F28 0027FB88 3B FE 02 00 */ addi r31, r30, 0x200
+/* 80283F2C 0027FB8C 7D 5F 58 2E */ lwzx r10, r31, r11
+/* 80283F30 0027FB90 50 8A 07 BE */ rlwimi r10, r4, 0, 0x1e, 0x1f
+/* 80283F34 0027FB94 50 AA 17 3A */ rlwimi r10, r5, 2, 0x1c, 0x1d
+/* 80283F38 0027FB98 54 64 10 3A */ slwi r4, r3, 2
+/* 80283F3C 0027FB9C 7D 5F 59 2E */ stwx r10, r31, r11
+/* 80283F40 0027FBA0 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
+/* 80283F44 0027FBA4 7C 7F 58 2E */ lwzx r3, r31, r11
+/* 80283F48 0027FBA8 90 68 80 00 */ stw r3, -0x8000(r8)
+/* 80283F4C 0027FBAC 7C 7F 20 2E */ lwzx r3, r31, r4
+/* 80283F50 0027FBB0 50 C3 07 BE */ rlwimi r3, r6, 0, 0x1e, 0x1f
+/* 80283F54 0027FBB4 50 E3 17 3A */ rlwimi r3, r7, 2, 0x1c, 0x1d
+/* 80283F58 0027FBB8 7C 7F 21 2E */ stwx r3, r31, r4
+/* 80283F5C 0027FBBC 99 28 80 00 */ stb r9, -0x8000(r8)
+/* 80283F60 0027FBC0 7C 7F 20 2E */ lwzx r3, r31, r4
+/* 80283F64 0027FBC4 90 68 80 00 */ stw r3, -0x8000(r8)
+/* 80283F68 0027FBC8 B0 1E 00 02 */ sth r0, 2(r30)
+/* 80283F6C 0027FBCC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80283F70 0027FBD0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80283F74 0027FBD4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80283F78 0027FBD8 4E 80 00 20 */ blr
+
+.global GXSetAlphaCompare
+GXSetAlphaCompare:
+/* 80283F7C 0027FBDC 3D 00 CC 01 */ lis r8, 0xCC008000@ha
+/* 80283F80 0027FBE0 38 00 00 61 */ li r0, 0x61
+/* 80283F84 0027FBE4 98 08 80 00 */ stb r0, 0xCC008000@l(r8)
+/* 80283F88 0027FBE8 3D 20 F3 00 */ lis r9, 0xf300
+/* 80283F8C 0027FBEC 50 89 06 3E */ rlwimi r9, r4, 0, 0x18, 0x1f
+/* 80283F90 0027FBF0 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80283F94 0027FBF4 50 E9 44 2E */ rlwimi r9, r7, 8, 0x10, 0x17
+/* 80283F98 0027FBF8 38 00 00 00 */ li r0, 0
+/* 80283F9C 0027FBFC 50 69 83 5E */ rlwimi r9, r3, 0x10, 0xd, 0xf
+/* 80283FA0 0027FC00 50 C9 9A 98 */ rlwimi r9, r6, 0x13, 0xa, 0xc
+/* 80283FA4 0027FC04 50 A9 B2 12 */ rlwimi r9, r5, 0x16, 8, 9
+/* 80283FA8 0027FC08 91 28 80 00 */ stw r9, -0x8000(r8)
+/* 80283FAC 0027FC0C B0 04 00 02 */ sth r0, 2(r4)
+/* 80283FB0 0027FC10 4E 80 00 20 */ blr
+
+.global GXSetZTexture
+GXSetZTexture:
+/* 80283FB4 0027FC14 2C 04 00 13 */ cmpwi r4, 0x13
+/* 80283FB8 0027FC18 38 E0 00 00 */ li r7, 0
+/* 80283FBC 0027FC1C 38 00 00 F4 */ li r0, 0xf4
+/* 80283FC0 0027FC20 50 A7 02 3E */ rlwimi r7, r5, 0, 8, 0x1f
+/* 80283FC4 0027FC24 50 07 C0 0E */ rlwimi r7, r0, 0x18, 0, 7
+/* 80283FC8 0027FC28 41 82 00 28 */ beq lbl_80283FF0
+/* 80283FCC 0027FC2C 40 80 00 10 */ bge lbl_80283FDC
+/* 80283FD0 0027FC30 2C 04 00 11 */ cmpwi r4, 0x11
+/* 80283FD4 0027FC34 41 82 00 14 */ beq lbl_80283FE8
+/* 80283FD8 0027FC38 48 00 00 28 */ b lbl_80284000
+lbl_80283FDC:
+/* 80283FDC 0027FC3C 2C 04 00 16 */ cmpwi r4, 0x16
+/* 80283FE0 0027FC40 41 82 00 18 */ beq lbl_80283FF8
+/* 80283FE4 0027FC44 48 00 00 1C */ b lbl_80284000
+lbl_80283FE8:
+/* 80283FE8 0027FC48 38 A0 00 00 */ li r5, 0
+/* 80283FEC 0027FC4C 48 00 00 18 */ b lbl_80284004
+lbl_80283FF0:
+/* 80283FF0 0027FC50 38 A0 00 01 */ li r5, 1
+/* 80283FF4 0027FC54 48 00 00 10 */ b lbl_80284004
+lbl_80283FF8:
+/* 80283FF8 0027FC58 38 A0 00 02 */ li r5, 2
+/* 80283FFC 0027FC5C 48 00 00 08 */ b lbl_80284004
+lbl_80284000:
+/* 80284000 0027FC60 38 A0 00 02 */ li r5, 2
+lbl_80284004:
+/* 80284004 0027FC64 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80284008 0027FC68 38 00 00 61 */ li r0, 0x61
+/* 8028400C 0027FC6C 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
+/* 80284010 0027FC70 38 C0 00 00 */ li r6, 0
+/* 80284014 0027FC74 50 A6 07 BE */ rlwimi r6, r5, 0, 0x1e, 0x1f
+/* 80284018 0027FC78 38 A0 00 F5 */ li r5, 0xf5
+/* 8028401C 0027FC7C 90 E4 80 00 */ stw r7, -0x8000(r4)
+/* 80284020 0027FC80 50 66 17 3A */ rlwimi r6, r3, 2, 0x1c, 0x1d
+/* 80284024 0027FC84 50 A6 C0 0E */ rlwimi r6, r5, 0x18, 0, 7
+/* 80284028 0027FC88 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028402C 0027FC8C 98 04 80 00 */ stb r0, -0x8000(r4)
+/* 80284030 0027FC90 38 00 00 00 */ li r0, 0
+/* 80284034 0027FC94 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 80284038 0027FC98 B0 03 00 02 */ sth r0, 2(r3)
+/* 8028403C 0027FC9C 4E 80 00 20 */ blr
+
+.global GXSetTevOrder
+GXSetTevOrder:
+/* 80284040 0027FCA0 54 AB 06 2C */ rlwinm r11, r5, 0, 0x18, 0x16
+/* 80284044 0027FCA4 38 E0 00 08 */ li r7, 8
+/* 80284048 0027FCA8 54 69 0F FE */ srwi r9, r3, 0x1f
+/* 8028404C 0027FCAC 81 42 A0 D0 */ lwz r10, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80284050 0027FCB0 7C 07 58 10 */ subfc r0, r7, r11
+/* 80284054 0027FCB4 54 68 10 3A */ slwi r8, r3, 2
+/* 80284058 0027FCB8 7C 07 01 94 */ addze r0, r7
+/* 8028405C 0027FCBC 7D 29 1A 14 */ add r9, r9, r3
+/* 80284060 0027FCC0 7C EA 42 14 */ add r7, r10, r8
+/* 80284064 0027FCC4 2C 04 00 08 */ cmpwi r4, 8
+/* 80284068 0027FCC8 55 28 08 3A */ rlwinm r8, r9, 1, 0, 0x1d
+/* 8028406C 0027FCCC 20 00 00 08 */ subfic r0, r0, 8
+/* 80284070 0027FCD0 90 A7 05 A4 */ stw r5, 0x5a4(r7)
+/* 80284074 0027FCD4 7C EA 42 14 */ add r7, r10, r8
+/* 80284078 0027FCD8 7D 69 00 78 */ andc r9, r11, r0
+/* 8028407C 0027FCDC 41 80 00 20 */ blt lbl_8028409C
+/* 80284080 0027FCE0 38 00 00 01 */ li r0, 1
+/* 80284084 0027FCE4 81 0A 05 E8 */ lwz r8, 0x5e8(r10)
+/* 80284088 0027FCE8 7C 00 18 30 */ slw r0, r0, r3
+/* 8028408C 0027FCEC 38 80 00 00 */ li r4, 0
+/* 80284090 0027FCF0 7D 00 00 78 */ andc r0, r8, r0
+/* 80284094 0027FCF4 90 0A 05 E8 */ stw r0, 0x5e8(r10)
+/* 80284098 0027FCF8 48 00 00 18 */ b lbl_802840B0
+lbl_8028409C:
+/* 8028409C 0027FCFC 38 00 00 01 */ li r0, 1
+/* 802840A0 0027FD00 81 0A 05 E8 */ lwz r8, 0x5e8(r10)
+/* 802840A4 0027FD04 7C 00 18 30 */ slw r0, r0, r3
+/* 802840A8 0027FD08 7D 00 03 78 */ or r0, r8, r0
+/* 802840AC 0027FD0C 90 0A 05 E8 */ stw r0, 0x5e8(r10)
+lbl_802840B0:
+/* 802840B0 0027FD10 54 60 07 FF */ clrlwi. r0, r3, 0x1f
+/* 802840B4 0027FD14 41 82 00 60 */ beq lbl_80284114
+/* 802840B8 0027FD18 81 07 01 50 */ lwz r8, 0x150(r7)
+/* 802840BC 0027FD1C 51 28 64 66 */ rlwimi r8, r9, 0xc, 0x11, 0x13
+/* 802840C0 0027FD20 50 88 7B A0 */ rlwimi r8, r4, 0xf, 0xe, 0x10
+/* 802840C4 0027FD24 2C 06 00 FF */ cmpwi r6, 0xff
+/* 802840C8 0027FD28 91 07 01 50 */ stw r8, 0x150(r7)
+/* 802840CC 0027FD2C 40 82 00 0C */ bne lbl_802840D8
+/* 802840D0 0027FD30 38 00 00 07 */ li r0, 7
+/* 802840D4 0027FD34 48 00 00 14 */ b lbl_802840E8
+lbl_802840D8:
+/* 802840D8 0027FD38 3C 60 80 43 */ lis r3, lbl_80435920@ha
+/* 802840DC 0027FD3C 54 C0 10 3A */ slwi r0, r6, 2
+/* 802840E0 0027FD40 38 63 59 20 */ addi r3, r3, lbl_80435920@l
+/* 802840E4 0027FD44 7C 03 00 2E */ lwzx r0, r3, r0
+lbl_802840E8:
+/* 802840E8 0027FD48 50 08 9A 98 */ rlwimi r8, r0, 0x13, 0xa, 0xc
+/* 802840EC 0027FD4C 2C 05 00 FF */ cmpwi r5, 0xff
+/* 802840F0 0027FD50 91 07 01 50 */ stw r8, 0x150(r7)
+/* 802840F4 0027FD54 38 60 00 00 */ li r3, 0
+/* 802840F8 0027FD58 41 82 00 10 */ beq lbl_80284108
+/* 802840FC 0027FD5C 54 A0 05 EF */ rlwinm. r0, r5, 0, 0x17, 0x17
+/* 80284100 0027FD60 40 82 00 08 */ bne lbl_80284108
+/* 80284104 0027FD64 38 60 00 01 */ li r3, 1
+lbl_80284108:
+/* 80284108 0027FD68 50 68 93 5A */ rlwimi r8, r3, 0x12, 0xd, 0xd
+/* 8028410C 0027FD6C 91 07 01 50 */ stw r8, 0x150(r7)
+/* 80284110 0027FD70 48 00 00 5C */ b lbl_8028416C
+lbl_80284114:
+/* 80284114 0027FD74 81 07 01 50 */ lwz r8, 0x150(r7)
+/* 80284118 0027FD78 51 28 07 7E */ rlwimi r8, r9, 0, 0x1d, 0x1f
+/* 8028411C 0027FD7C 50 88 1E B8 */ rlwimi r8, r4, 3, 0x1a, 0x1c
+/* 80284120 0027FD80 2C 06 00 FF */ cmpwi r6, 0xff
+/* 80284124 0027FD84 91 07 01 50 */ stw r8, 0x150(r7)
+/* 80284128 0027FD88 40 82 00 0C */ bne lbl_80284134
+/* 8028412C 0027FD8C 38 00 00 07 */ li r0, 7
+/* 80284130 0027FD90 48 00 00 14 */ b lbl_80284144
+lbl_80284134:
+/* 80284134 0027FD94 3C 60 80 43 */ lis r3, lbl_80435920@ha
+/* 80284138 0027FD98 54 C0 10 3A */ slwi r0, r6, 2
+/* 8028413C 0027FD9C 38 63 59 20 */ addi r3, r3, lbl_80435920@l
+/* 80284140 0027FDA0 7C 03 00 2E */ lwzx r0, r3, r0
+lbl_80284144:
+/* 80284144 0027FDA4 50 08 3D B0 */ rlwimi r8, r0, 7, 0x16, 0x18
+/* 80284148 0027FDA8 2C 05 00 FF */ cmpwi r5, 0xff
+/* 8028414C 0027FDAC 91 07 01 50 */ stw r8, 0x150(r7)
+/* 80284150 0027FDB0 38 60 00 00 */ li r3, 0
+/* 80284154 0027FDB4 41 82 00 10 */ beq lbl_80284164
+/* 80284158 0027FDB8 54 A0 05 EF */ rlwinm. r0, r5, 0, 0x17, 0x17
+/* 8028415C 0027FDBC 40 82 00 08 */ bne lbl_80284164
+/* 80284160 0027FDC0 38 60 00 01 */ li r3, 1
+lbl_80284164:
+/* 80284164 0027FDC4 50 68 36 72 */ rlwimi r8, r3, 6, 0x19, 0x19
+/* 80284168 0027FDC8 91 07 01 50 */ stw r8, 0x150(r7)
+lbl_8028416C:
+/* 8028416C 0027FDCC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80284170 0027FDD0 38 00 00 61 */ li r0, 0x61
+/* 80284174 0027FDD4 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
+/* 80284178 0027FDD8 38 00 00 00 */ li r0, 0
+/* 8028417C 0027FDDC 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80284180 0027FDE0 80 67 01 50 */ lwz r3, 0x150(r7)
+/* 80284184 0027FDE4 90 64 80 00 */ stw r3, -0x8000(r4)
+/* 80284188 0027FDE8 B0 05 00 02 */ sth r0, 2(r5)
+/* 8028418C 0027FDEC 80 05 05 FC */ lwz r0, 0x5fc(r5)
+/* 80284190 0027FDF0 60 00 00 01 */ ori r0, r0, 1
+/* 80284194 0027FDF4 90 05 05 FC */ stw r0, 0x5fc(r5)
+/* 80284198 0027FDF8 4E 80 00 20 */ blr
+
+.global GXSetNumTevStages
+GXSetNumTevStages:
+/* 8028419C 0027FDFC 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802841A0 0027FE00 38 03 FF FF */ addi r0, r3, -1
+/* 802841A4 0027FE04 80 64 02 54 */ lwz r3, 0x254(r4)
+/* 802841A8 0027FE08 50 03 54 AA */ rlwimi r3, r0, 0xa, 0x12, 0x15
+/* 802841AC 0027FE0C 90 64 02 54 */ stw r3, 0x254(r4)
+/* 802841B0 0027FE10 80 04 05 FC */ lwz r0, 0x5fc(r4)
+/* 802841B4 0027FE14 60 00 00 04 */ ori r0, r0, 4
+/* 802841B8 0027FE18 90 04 05 FC */ stw r0, 0x5fc(r4)
+/* 802841BC 0027FE1C 4E 80 00 20 */ blr
diff --git a/asm/SDK/GX/GXTexture.s b/asm/SDK/GX/GXTexture.s
new file mode 100644
index 0000000..0aa481a
--- /dev/null
+++ b/asm/SDK/GX/GXTexture.s
@@ -0,0 +1,970 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __GetImageTileCount
+__GetImageTileCount:
+/* 80282610 0027E270 28 03 00 3C */ cmplwi r3, 0x3c
+/* 80282614 0027E274 41 81 00 40 */ bgt lbl_80282654
+/* 80282618 0027E278 3D 20 80 43 */ lis r9, lbl_804357A0@ha
+/* 8028261C 0027E27C 54 60 10 3A */ slwi r0, r3, 2
+/* 80282620 0027E280 39 29 57 A0 */ addi r9, r9, lbl_804357A0@l
+/* 80282624 0027E284 7D 29 00 2E */ lwzx r9, r9, r0
+/* 80282628 0027E288 7D 29 03 A6 */ mtctr r9
+/* 8028262C 0027E28C 4E 80 04 20 */ bctr
+/* 80282630 0027E290 39 60 00 03 */ li r11, 3
+/* 80282634 0027E294 39 80 00 03 */ li r12, 3
+/* 80282638 0027E298 48 00 00 24 */ b lbl_8028265C
+/* 8028263C 0027E29C 39 60 00 03 */ li r11, 3
+/* 80282640 0027E2A0 39 80 00 02 */ li r12, 2
+/* 80282644 0027E2A4 48 00 00 18 */ b lbl_8028265C
+/* 80282648 0027E2A8 39 60 00 02 */ li r11, 2
+/* 8028264C 0027E2AC 39 80 00 02 */ li r12, 2
+/* 80282650 0027E2B0 48 00 00 0C */ b lbl_8028265C
+lbl_80282654:
+/* 80282654 0027E2B4 39 80 00 00 */ li r12, 0
+/* 80282658 0027E2B8 39 60 00 00 */ li r11, 0
+lbl_8028265C:
+/* 8028265C 0027E2BC 2C 04 00 00 */ cmpwi r4, 0
+/* 80282660 0027E2C0 40 82 00 08 */ bne lbl_80282668
+/* 80282664 0027E2C4 38 80 00 01 */ li r4, 1
+lbl_80282668:
+/* 80282668 0027E2C8 2C 05 00 00 */ cmpwi r5, 0
+/* 8028266C 0027E2CC 40 82 00 08 */ bne lbl_80282674
+/* 80282670 0027E2D0 38 A0 00 01 */ li r5, 1
+lbl_80282674:
+/* 80282674 0027E2D4 39 40 00 01 */ li r10, 1
+/* 80282678 0027E2D8 2C 03 00 06 */ cmpwi r3, 6
+/* 8028267C 0027E2DC 7D 40 58 30 */ slw r0, r10, r11
+/* 80282680 0027E2E0 39 20 00 00 */ li r9, 0
+/* 80282684 0027E2E4 7C 84 02 14 */ add r4, r4, r0
+/* 80282688 0027E2E8 7D 40 60 30 */ slw r0, r10, r12
+/* 8028268C 0027E2EC 38 84 FF FF */ addi r4, r4, -1
+/* 80282690 0027E2F0 7C 8A 5E 30 */ sraw r10, r4, r11
+/* 80282694 0027E2F4 7C 85 02 14 */ add r4, r5, r0
+/* 80282698 0027E2F8 91 46 00 00 */ stw r10, 0(r6)
+/* 8028269C 0027E2FC 38 04 FF FF */ addi r0, r4, -1
+/* 802826A0 0027E300 7C 00 66 30 */ sraw r0, r0, r12
+/* 802826A4 0027E304 90 07 00 00 */ stw r0, 0(r7)
+/* 802826A8 0027E308 41 82 00 0C */ beq lbl_802826B4
+/* 802826AC 0027E30C 2C 03 00 16 */ cmpwi r3, 0x16
+/* 802826B0 0027E310 40 82 00 08 */ bne lbl_802826B8
+lbl_802826B4:
+/* 802826B4 0027E314 39 20 00 01 */ li r9, 1
+lbl_802826B8:
+/* 802826B8 0027E318 7C 09 00 D0 */ neg r0, r9
+/* 802826BC 0027E31C 7C 00 4B 78 */ or r0, r0, r9
+/* 802826C0 0027E320 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 802826C4 0027E324 38 03 00 01 */ addi r0, r3, 1
+/* 802826C8 0027E328 90 08 00 00 */ stw r0, 0(r8)
+/* 802826CC 0027E32C 4E 80 00 20 */ blr
+
+.global GXInitTexObj
+GXInitTexObj:
+/* 802826D0 0027E330 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 802826D4 0027E334 7C 08 02 A6 */ mflr r0
+/* 802826D8 0027E338 90 01 00 44 */ stw r0, 0x44(r1)
+/* 802826DC 0027E33C 39 61 00 40 */ addi r11, r1, 0x40
+/* 802826E0 0027E340 4B F4 4A 3D */ bl _savegpr_24
+/* 802826E4 0027E344 7C 9B 23 78 */ mr r27, r4
+/* 802826E8 0027E348 7C BC 2B 78 */ mr r28, r5
+/* 802826EC 0027E34C 7C 7F 1B 78 */ mr r31, r3
+/* 802826F0 0027E350 7C DD 33 78 */ mr r29, r6
+/* 802826F4 0027E354 7C FE 3B 78 */ mr r30, r7
+/* 802826F8 0027E358 7D 18 43 78 */ mr r24, r8
+/* 802826FC 0027E35C 7D 39 4B 78 */ mr r25, r9
+/* 80282700 0027E360 7D 5A 53 78 */ mr r26, r10
+/* 80282704 0027E364 38 80 00 00 */ li r4, 0
+/* 80282708 0027E368 38 A0 00 20 */ li r5, 0x20
+/* 8028270C 0027E36C 4B D8 19 F9 */ bl memset
+/* 80282710 0027E370 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80282714 0027E374 53 00 07 BE */ rlwimi r0, r24, 0, 0x1e, 0x1f
+/* 80282718 0027E378 53 20 17 3A */ rlwimi r0, r25, 2, 0x1c, 0x1d
+/* 8028271C 0027E37C 2C 1A 00 00 */ cmpwi r26, 0
+/* 80282720 0027E380 60 04 00 10 */ ori r4, r0, 0x10
+/* 80282724 0027E384 90 9F 00 00 */ stw r4, 0(r31)
+/* 80282728 0027E388 41 82 00 90 */ beq lbl_802827B8
+/* 8028272C 0027E38C 88 7F 00 1F */ lbz r3, 0x1f(r31)
+/* 80282730 0027E390 38 1E FF F8 */ addi r0, r30, -8
+/* 80282734 0027E394 28 00 00 02 */ cmplwi r0, 2
+/* 80282738 0027E398 60 60 00 01 */ ori r0, r3, 1
+/* 8028273C 0027E39C 98 1F 00 1F */ stb r0, 0x1f(r31)
+/* 80282740 0027E3A0 41 81 00 14 */ bgt lbl_80282754
+/* 80282744 0027E3A4 38 00 00 05 */ li r0, 5
+/* 80282748 0027E3A8 50 04 2E 34 */ rlwimi r4, r0, 5, 0x18, 0x1a
+/* 8028274C 0027E3AC 90 9F 00 00 */ stw r4, 0(r31)
+/* 80282750 0027E3B0 48 00 00 10 */ b lbl_80282760
+lbl_80282754:
+/* 80282754 0027E3B4 38 00 00 06 */ li r0, 6
+/* 80282758 0027E3B8 50 04 2E 34 */ rlwimi r4, r0, 5, 0x18, 0x1a
+/* 8028275C 0027E3BC 90 9F 00 00 */ stw r4, 0(r31)
+lbl_80282760:
+/* 80282760 0027E3C0 7C 1C E8 40 */ cmplw r28, r29
+/* 80282764 0027E3C4 40 81 00 10 */ ble lbl_80282774
+/* 80282768 0027E3C8 7F 80 00 34 */ cntlzw r0, r28
+/* 8028276C 0027E3CC 20 60 00 1F */ subfic r3, r0, 0x1f
+/* 80282770 0027E3D0 48 00 00 0C */ b lbl_8028277C
+lbl_80282774:
+/* 80282774 0027E3D4 7F A0 00 34 */ cntlzw r0, r29
+/* 80282778 0027E3D8 20 60 00 1F */ subfic r3, r0, 0x1f
+lbl_8028277C:
+/* 8028277C 0027E3DC 3C 00 43 30 */ lis r0, 0x4330
+/* 80282780 0027E3E0 90 61 00 0C */ stw r3, 0xc(r1)
+/* 80282784 0027E3E4 C8 42 A1 48 */ lfd f2, lbl_80642748-_SDA2_BASE_(r2)
+/* 80282788 0027E3E8 90 01 00 08 */ stw r0, 8(r1)
+/* 8028278C 0027E3EC C0 02 A1 40 */ lfs f0, lbl_80642740-_SDA2_BASE_(r2)
+/* 80282790 0027E3F0 C8 21 00 08 */ lfd f1, 8(r1)
+/* 80282794 0027E3F4 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80282798 0027E3F8 EC 21 10 28 */ fsubs f1, f1, f2
+/* 8028279C 0027E3FC EC 00 00 72 */ fmuls f0, f0, f1
+/* 802827A0 0027E400 FC 00 00 1E */ fctiwz f0, f0
+/* 802827A4 0027E404 D8 01 00 10 */ stfd f0, 0x10(r1)
+/* 802827A8 0027E408 80 61 00 14 */ lwz r3, 0x14(r1)
+/* 802827AC 0027E40C 50 60 44 2E */ rlwimi r0, r3, 8, 0x10, 0x17
+/* 802827B0 0027E410 90 1F 00 04 */ stw r0, 4(r31)
+/* 802827B4 0027E414 48 00 00 10 */ b lbl_802827C4
+lbl_802827B8:
+/* 802827B8 0027E418 38 00 00 04 */ li r0, 4
+/* 802827BC 0027E41C 50 04 2E 34 */ rlwimi r4, r0, 5, 0x18, 0x1a
+/* 802827C0 0027E420 90 9F 00 00 */ stw r4, 0(r31)
+lbl_802827C4:
+/* 802827C4 0027E424 38 1C FF FF */ addi r0, r28, -1
+/* 802827C8 0027E428 80 7F 00 08 */ lwz r3, 8(r31)
+/* 802827CC 0027E42C 50 03 05 BE */ rlwimi r3, r0, 0, 0x16, 0x1f
+/* 802827D0 0027E430 57 C4 07 3E */ clrlwi r4, r30, 0x1c
+/* 802827D4 0027E434 38 1D FF FF */ addi r0, r29, -1
+/* 802827D8 0027E438 93 DF 00 14 */ stw r30, 0x14(r31)
+/* 802827DC 0027E43C 50 03 53 2A */ rlwimi r3, r0, 0xa, 0xc, 0x15
+/* 802827E0 0027E440 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 802827E4 0027E444 53 60 DA 3E */ rlwimi r0, r27, 0x1b, 8, 0x1f
+/* 802827E8 0027E448 28 04 00 0E */ cmplwi r4, 0xe
+/* 802827EC 0027E44C 53 C3 A2 16 */ rlwimi r3, r30, 0x14, 8, 0xb
+/* 802827F0 0027E450 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 802827F4 0027E454 90 7F 00 08 */ stw r3, 8(r31)
+/* 802827F8 0027E458 41 81 00 80 */ bgt lbl_80282878
+/* 802827FC 0027E45C 3C 60 80 43 */ lis r3, lbl_80435894@ha
+/* 80282800 0027E460 54 80 10 3A */ slwi r0, r4, 2
+/* 80282804 0027E464 38 63 58 94 */ addi r3, r3, lbl_80435894@l
+/* 80282808 0027E468 7C 63 00 2E */ lwzx r3, r3, r0
+/* 8028280C 0027E46C 7C 69 03 A6 */ mtctr r3
+/* 80282810 0027E470 4E 80 04 20 */ bctr
+/* 80282814 0027E474 38 00 00 01 */ li r0, 1
+/* 80282818 0027E478 38 C0 00 03 */ li r6, 3
+/* 8028281C 0027E47C 98 1F 00 1E */ stb r0, 0x1e(r31)
+/* 80282820 0027E480 38 E0 00 03 */ li r7, 3
+/* 80282824 0027E484 48 00 00 64 */ b lbl_80282888
+/* 80282828 0027E488 38 00 00 02 */ li r0, 2
+/* 8028282C 0027E48C 38 C0 00 03 */ li r6, 3
+/* 80282830 0027E490 98 1F 00 1E */ stb r0, 0x1e(r31)
+/* 80282834 0027E494 38 E0 00 02 */ li r7, 2
+/* 80282838 0027E498 48 00 00 50 */ b lbl_80282888
+/* 8028283C 0027E49C 38 00 00 02 */ li r0, 2
+/* 80282840 0027E4A0 38 C0 00 02 */ li r6, 2
+/* 80282844 0027E4A4 98 1F 00 1E */ stb r0, 0x1e(r31)
+/* 80282848 0027E4A8 38 E0 00 02 */ li r7, 2
+/* 8028284C 0027E4AC 48 00 00 3C */ b lbl_80282888
+/* 80282850 0027E4B0 38 00 00 03 */ li r0, 3
+/* 80282854 0027E4B4 38 C0 00 02 */ li r6, 2
+/* 80282858 0027E4B8 98 1F 00 1E */ stb r0, 0x1e(r31)
+/* 8028285C 0027E4BC 38 E0 00 02 */ li r7, 2
+/* 80282860 0027E4C0 48 00 00 28 */ b lbl_80282888
+/* 80282864 0027E4C4 38 00 00 00 */ li r0, 0
+/* 80282868 0027E4C8 38 C0 00 03 */ li r6, 3
+/* 8028286C 0027E4CC 98 1F 00 1E */ stb r0, 0x1e(r31)
+/* 80282870 0027E4D0 38 E0 00 03 */ li r7, 3
+/* 80282874 0027E4D4 48 00 00 14 */ b lbl_80282888
+lbl_80282878:
+/* 80282878 0027E4D8 38 00 00 02 */ li r0, 2
+/* 8028287C 0027E4DC 38 C0 00 02 */ li r6, 2
+/* 80282880 0027E4E0 98 1F 00 1E */ stb r0, 0x1e(r31)
+/* 80282884 0027E4E4 38 E0 00 02 */ li r7, 2
+lbl_80282888:
+/* 80282888 0027E4E8 38 A0 00 01 */ li r5, 1
+/* 8028288C 0027E4EC 88 1F 00 1F */ lbz r0, 0x1f(r31)
+/* 80282890 0027E4F0 7C A3 30 30 */ slw r3, r5, r6
+/* 80282894 0027E4F4 39 61 00 40 */ addi r11, r1, 0x40
+/* 80282898 0027E4F8 7C 9C 1A 14 */ add r4, r28, r3
+/* 8028289C 0027E4FC 60 00 00 02 */ ori r0, r0, 2
+/* 802828A0 0027E500 7C A3 38 30 */ slw r3, r5, r7
+/* 802828A4 0027E504 98 1F 00 1F */ stb r0, 0x1f(r31)
+/* 802828A8 0027E508 38 84 FF FF */ addi r4, r4, -1
+/* 802828AC 0027E50C 7C 7D 1A 14 */ add r3, r29, r3
+/* 802828B0 0027E510 7C 84 36 30 */ sraw r4, r4, r6
+/* 802828B4 0027E514 38 03 FF FF */ addi r0, r3, -1
+/* 802828B8 0027E518 7C 00 3E 30 */ sraw r0, r0, r7
+/* 802828BC 0027E51C 7C 04 01 D6 */ mullw r0, r4, r0
+/* 802828C0 0027E520 54 00 04 7E */ clrlwi r0, r0, 0x11
+/* 802828C4 0027E524 B0 1F 00 1C */ sth r0, 0x1c(r31)
+/* 802828C8 0027E528 4B F4 48 A1 */ bl _restgpr_24
+/* 802828CC 0027E52C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 802828D0 0027E530 7C 08 03 A6 */ mtlr r0
+/* 802828D4 0027E534 38 21 00 40 */ addi r1, r1, 0x40
+/* 802828D8 0027E538 4E 80 00 20 */ blr
+
+.global GXInitTexObjCI
+GXInitTexObjCI:
+/* 802828DC 0027E53C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802828E0 0027E540 7C 08 02 A6 */ mflr r0
+/* 802828E4 0027E544 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802828E8 0027E548 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802828EC 0027E54C 83 E1 00 18 */ lwz r31, 0x18(r1)
+/* 802828F0 0027E550 93 C1 00 08 */ stw r30, 8(r1)
+/* 802828F4 0027E554 7C 7E 1B 78 */ mr r30, r3
+/* 802828F8 0027E558 4B FF FD D9 */ bl GXInitTexObj
+/* 802828FC 0027E55C 88 1E 00 1F */ lbz r0, 0x1f(r30)
+/* 80282900 0027E560 93 FE 00 18 */ stw r31, 0x18(r30)
+/* 80282904 0027E564 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
+/* 80282908 0027E568 98 1E 00 1F */ stb r0, 0x1f(r30)
+/* 8028290C 0027E56C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80282910 0027E570 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80282914 0027E574 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80282918 0027E578 7C 08 03 A6 */ mtlr r0
+/* 8028291C 0027E57C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80282920 0027E580 4E 80 00 20 */ blr
+
+.global GXInitTexObjLOD
+GXInitTexObjLOD:
+/* 80282924 0027E584 C0 02 A1 50 */ lfs f0, lbl_80642750-_SDA2_BASE_(r2)
+/* 80282928 0027E588 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8028292C 0027E58C FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 80282930 0027E590 40 80 00 0C */ bge lbl_8028293C
+/* 80282934 0027E594 FC 60 00 90 */ fmr f3, f0
+/* 80282938 0027E598 48 00 00 18 */ b lbl_80282950
+lbl_8028293C:
+/* 8028293C 0027E59C C0 02 A1 58 */ lfs f0, lbl_80642758-_SDA2_BASE_(r2)
+/* 80282940 0027E5A0 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 80282944 0027E5A4 4C 41 13 82 */ cror 2, 1, 2
+/* 80282948 0027E5A8 40 82 00 08 */ bne lbl_80282950
+/* 8028294C 0027E5AC C0 62 A1 54 */ lfs f3, lbl_80642754-_SDA2_BASE_(r2)
+lbl_80282950:
+/* 80282950 0027E5B0 C0 82 A1 5C */ lfs f4, lbl_8064275C-_SDA2_BASE_(r2)
+/* 80282954 0027E5B4 38 05 FF FF */ addi r0, r5, -1
+/* 80282958 0027E5B8 7C 09 00 34 */ cntlzw r9, r0
+/* 8028295C 0027E5BC C0 02 A1 60 */ lfs f0, lbl_80642760-_SDA2_BASE_(r2)
+/* 80282960 0027E5C0 EC 64 00 F2 */ fmuls f3, f4, f3
+/* 80282964 0027E5C4 7C E0 00 34 */ cntlzw r0, r7
+/* 80282968 0027E5C8 81 43 00 00 */ lwz r10, 0(r3)
+/* 8028296C 0027E5CC 38 AD 88 A0 */ addi r5, r13, lbl_8063DB60-_SDA_BASE_
+/* 80282970 0027E5D0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80282974 0027E5D4 FC 60 18 1E */ fctiwz f3, f3
+/* 80282978 0027E5D8 D8 61 00 08 */ stfd f3, 8(r1)
+/* 8028297C 0027E5DC 80 E1 00 0C */ lwz r7, 0xc(r1)
+/* 80282980 0027E5E0 50 EA 4B EC */ rlwimi r10, r7, 9, 0xf, 0x16
+/* 80282984 0027E5E4 51 2A FE F6 */ rlwimi r10, r9, 0x1f, 0x1b, 0x1b
+/* 80282988 0027E5E8 91 43 00 00 */ stw r10, 0(r3)
+/* 8028298C 0027E5EC 7C 85 20 AE */ lbzx r4, r5, r4
+/* 80282990 0027E5F0 50 8A 2E 34 */ rlwimi r10, r4, 5, 0x18, 0x1a
+/* 80282994 0027E5F4 50 0A 1D EE */ rlwimi r10, r0, 3, 0x17, 0x17
+/* 80282998 0027E5F8 55 40 03 D8 */ rlwinm r0, r10, 0, 0xf, 0xc
+/* 8028299C 0027E5FC 51 00 9A D8 */ rlwimi r0, r8, 0x13, 0xb, 0xc
+/* 802829A0 0027E600 50 C0 AA 94 */ rlwimi r0, r6, 0x15, 0xa, 0xa
+/* 802829A4 0027E604 90 03 00 00 */ stw r0, 0(r3)
+/* 802829A8 0027E608 40 80 00 0C */ bge lbl_802829B4
+/* 802829AC 0027E60C FC 20 00 90 */ fmr f1, f0
+/* 802829B0 0027E610 48 00 00 14 */ b lbl_802829C4
+lbl_802829B4:
+/* 802829B4 0027E614 C0 02 A1 64 */ lfs f0, lbl_80642764-_SDA2_BASE_(r2)
+/* 802829B8 0027E618 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802829BC 0027E61C 40 81 00 08 */ ble lbl_802829C4
+/* 802829C0 0027E620 FC 20 00 90 */ fmr f1, f0
+lbl_802829C4:
+/* 802829C4 0027E624 C0 62 A1 40 */ lfs f3, lbl_80642740-_SDA2_BASE_(r2)
+/* 802829C8 0027E628 C0 02 A1 60 */ lfs f0, lbl_80642760-_SDA2_BASE_(r2)
+/* 802829CC 0027E62C EC 23 00 72 */ fmuls f1, f3, f1
+/* 802829D0 0027E630 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 802829D4 0027E634 FC 20 08 1E */ fctiwz f1, f1
+/* 802829D8 0027E638 D8 21 00 08 */ stfd f1, 8(r1)
+/* 802829DC 0027E63C 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 802829E0 0027E640 40 80 00 0C */ bge lbl_802829EC
+/* 802829E4 0027E644 FC 40 00 90 */ fmr f2, f0
+/* 802829E8 0027E648 48 00 00 14 */ b lbl_802829FC
+lbl_802829EC:
+/* 802829EC 0027E64C C0 02 A1 64 */ lfs f0, lbl_80642764-_SDA2_BASE_(r2)
+/* 802829F0 0027E650 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 802829F4 0027E654 40 81 00 08 */ ble lbl_802829FC
+/* 802829F8 0027E658 FC 40 00 90 */ fmr f2, f0
+lbl_802829FC:
+/* 802829FC 0027E65C C0 02 A1 40 */ lfs f0, lbl_80642740-_SDA2_BASE_(r2)
+/* 80282A00 0027E660 80 03 00 04 */ lwz r0, 4(r3)
+/* 80282A04 0027E664 50 80 06 3E */ rlwimi r0, r4, 0, 0x18, 0x1f
+/* 80282A08 0027E668 EC 00 00 B2 */ fmuls f0, f0, f2
+/* 80282A0C 0027E66C FC 00 00 1E */ fctiwz f0, f0
+/* 80282A10 0027E670 D8 01 00 08 */ stfd f0, 8(r1)
+/* 80282A14 0027E674 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 80282A18 0027E678 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17
+/* 80282A1C 0027E67C 90 03 00 04 */ stw r0, 4(r3)
+/* 80282A20 0027E680 38 21 00 10 */ addi r1, r1, 0x10
+/* 80282A24 0027E684 4E 80 00 20 */ blr
+
+.global GXInitTexObjWrapMode
+GXInitTexObjWrapMode:
+/* 80282A28 0027E688 80 03 00 00 */ lwz r0, 0(r3)
+/* 80282A2C 0027E68C 50 80 07 BE */ rlwimi r0, r4, 0, 0x1e, 0x1f
+/* 80282A30 0027E690 50 A0 17 3A */ rlwimi r0, r5, 2, 0x1c, 0x1d
+/* 80282A34 0027E694 90 03 00 00 */ stw r0, 0(r3)
+/* 80282A38 0027E698 4E 80 00 20 */ blr
+
+.global GXInitTexObjTlut
+GXInitTexObjTlut:
+/* 80282A3C 0027E69C 90 83 00 18 */ stw r4, 0x18(r3)
+/* 80282A40 0027E6A0 4E 80 00 20 */ blr
+
+.global GXGetTexObjFmt
+GXGetTexObjFmt:
+/* 80282A44 0027E6A4 80 63 00 14 */ lwz r3, 0x14(r3)
+/* 80282A48 0027E6A8 4E 80 00 20 */ blr
+
+.global GXGetTexObjMipMap
+GXGetTexObjMipMap:
+/* 80282A4C 0027E6AC 88 03 00 1F */ lbz r0, 0x1f(r3)
+/* 80282A50 0027E6B0 54 03 07 FE */ clrlwi r3, r0, 0x1f
+/* 80282A54 0027E6B4 4E 80 00 20 */ blr
+
+.global GXGetTexObjTlut
+GXGetTexObjTlut:
+/* 80282A58 0027E6B8 80 63 00 18 */ lwz r3, 0x18(r3)
+/* 80282A5C 0027E6BC 4E 80 00 20 */ blr
+
+.global GXLoadTexObjPreLoaded
+GXLoadTexObjPreLoaded:
+/* 80282A60 0027E6C0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80282A64 0027E6C4 7C 08 02 A6 */ mflr r0
+/* 80282A68 0027E6C8 39 6D 88 68 */ addi r11, r13, lbl_8063DB28-_SDA_BASE_
+/* 80282A6C 0027E6CC 39 4D 88 70 */ addi r10, r13, lbl_8063DB30-_SDA_BASE_
+/* 80282A70 0027E6D0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80282A74 0027E6D4 39 2D 88 78 */ addi r9, r13, lbl_8063DB38-_SDA_BASE_
+/* 80282A78 0027E6D8 81 83 00 00 */ lwz r12, 0(r3)
+/* 80282A7C 0027E6DC 39 0D 88 80 */ addi r8, r13, lbl_8063DB40-_SDA_BASE_
+/* 80282A80 0027E6E0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80282A84 0027E6E4 38 ED 88 88 */ addi r7, r13, lbl_8063DB48-_SDA_BASE_
+/* 80282A88 0027E6E8 38 CD 88 90 */ addi r6, r13, lbl_8063DB50-_SDA_BASE_
+/* 80282A8C 0027E6EC 7C BF 2B 78 */ mr r31, r5
+/* 80282A90 0027E6F0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80282A94 0027E6F4 7C 7E 1B 78 */ mr r30, r3
+/* 80282A98 0027E6F8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80282A9C 0027E6FC 3F A0 CC 01 */ lis r29, 0xCC008000@ha
+/* 80282AA0 0027E700 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80282AA4 0027E704 3B 80 00 61 */ li r28, 0x61
+/* 80282AA8 0027E708 7C 0B 28 AE */ lbzx r0, r11, r5
+/* 80282AAC 0027E70C 81 63 00 04 */ lwz r11, 4(r3)
+/* 80282AB0 0027E710 50 0C C0 0E */ rlwimi r12, r0, 0x18, 0, 7
+/* 80282AB4 0027E714 7C 0A 28 AE */ lbzx r0, r10, r5
+/* 80282AB8 0027E718 7D 49 28 AE */ lbzx r10, r9, r5
+/* 80282ABC 0027E71C 50 0B C0 0E */ rlwimi r11, r0, 0x18, 0, 7
+/* 80282AC0 0027E720 7C 07 28 AE */ lbzx r0, r7, r5
+/* 80282AC4 0027E724 7D 08 28 AE */ lbzx r8, r8, r5
+/* 80282AC8 0027E728 7C A6 28 AE */ lbzx r5, r6, r5
+/* 80282ACC 0027E72C 81 23 00 08 */ lwz r9, 8(r3)
+/* 80282AD0 0027E730 51 49 C0 0E */ rlwimi r9, r10, 0x18, 0, 7
+/* 80282AD4 0027E734 9B 9D 80 00 */ stb r28, 0xCC008000@l(r29)
+/* 80282AD8 0027E738 80 E4 00 00 */ lwz r7, 0(r4)
+/* 80282ADC 0027E73C 51 07 C0 0E */ rlwimi r7, r8, 0x18, 0, 7
+/* 80282AE0 0027E740 91 9D 80 00 */ stw r12, -0x8000(r29)
+/* 80282AE4 0027E744 80 C4 00 04 */ lwz r6, 4(r4)
+/* 80282AE8 0027E748 50 06 C0 0E */ rlwimi r6, r0, 0x18, 0, 7
+/* 80282AEC 0027E74C 9B 9D 80 00 */ stb r28, -0x8000(r29)
+/* 80282AF0 0027E750 88 03 00 1F */ lbz r0, 0x1f(r3)
+/* 80282AF4 0027E754 91 7D 80 00 */ stw r11, -0x8000(r29)
+/* 80282AF8 0027E758 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80282AFC 0027E75C 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80282B00 0027E760 9B 9D 80 00 */ stb r28, -0x8000(r29)
+/* 80282B04 0027E764 50 A0 C0 0E */ rlwimi r0, r5, 0x18, 0, 7
+/* 80282B08 0027E768 91 3D 80 00 */ stw r9, -0x8000(r29)
+/* 80282B0C 0027E76C 9B 9D 80 00 */ stb r28, -0x8000(r29)
+/* 80282B10 0027E770 90 FD 80 00 */ stw r7, -0x8000(r29)
+/* 80282B14 0027E774 9B 9D 80 00 */ stb r28, -0x8000(r29)
+/* 80282B18 0027E778 90 DD 80 00 */ stw r6, -0x8000(r29)
+/* 80282B1C 0027E77C 9B 9D 80 00 */ stb r28, -0x8000(r29)
+/* 80282B20 0027E780 91 83 00 00 */ stw r12, 0(r3)
+/* 80282B24 0027E784 91 63 00 04 */ stw r11, 4(r3)
+/* 80282B28 0027E788 91 23 00 08 */ stw r9, 8(r3)
+/* 80282B2C 0027E78C 90 E4 00 00 */ stw r7, 0(r4)
+/* 80282B30 0027E790 90 C4 00 04 */ stw r6, 4(r4)
+/* 80282B34 0027E794 90 03 00 0C */ stw r0, 0xc(r3)
+/* 80282B38 0027E798 90 1D 80 00 */ stw r0, -0x8000(r29)
+/* 80282B3C 0027E79C 40 82 00 38 */ bne lbl_80282B74
+/* 80282B40 0027E7A0 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282B44 0027E7A4 80 63 00 18 */ lwz r3, 0x18(r3)
+/* 80282B48 0027E7A8 81 84 05 1C */ lwz r12, 0x51c(r4)
+/* 80282B4C 0027E7AC 7D 89 03 A6 */ mtctr r12
+/* 80282B50 0027E7B0 4E 80 04 21 */ bctrl
+/* 80282B54 0027E7B4 38 8D 88 98 */ addi r4, r13, lbl_8063DB58-_SDA_BASE_
+/* 80282B58 0027E7B8 80 03 00 04 */ lwz r0, 4(r3)
+/* 80282B5C 0027E7BC 7C 84 F8 AE */ lbzx r4, r4, r31
+/* 80282B60 0027E7C0 50 80 C0 0E */ rlwimi r0, r4, 0x18, 0, 7
+/* 80282B64 0027E7C4 90 03 00 04 */ stw r0, 4(r3)
+/* 80282B68 0027E7C8 9B 9D 80 00 */ stb r28, -0x8000(r29)
+/* 80282B6C 0027E7CC 80 03 00 04 */ lwz r0, 4(r3)
+/* 80282B70 0027E7D0 90 1D 80 00 */ stw r0, -0x8000(r29)
+lbl_80282B74:
+/* 80282B74 0027E7D4 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282B78 0027E7D8 57 E3 10 3A */ slwi r3, r31, 2
+/* 80282B7C 0027E7DC 80 BE 00 08 */ lwz r5, 8(r30)
+/* 80282B80 0027E7E0 38 00 00 00 */ li r0, 0
+/* 80282B84 0027E7E4 7C 86 1A 14 */ add r4, r6, r3
+/* 80282B88 0027E7E8 80 7E 00 00 */ lwz r3, 0(r30)
+/* 80282B8C 0027E7EC 90 A4 05 64 */ stw r5, 0x564(r4)
+/* 80282B90 0027E7F0 90 64 05 84 */ stw r3, 0x584(r4)
+/* 80282B94 0027E7F4 80 66 05 FC */ lwz r3, 0x5fc(r6)
+/* 80282B98 0027E7F8 60 63 00 01 */ ori r3, r3, 1
+/* 80282B9C 0027E7FC 90 66 05 FC */ stw r3, 0x5fc(r6)
+/* 80282BA0 0027E800 B0 06 00 02 */ sth r0, 2(r6)
+/* 80282BA4 0027E804 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80282BA8 0027E808 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80282BAC 0027E80C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80282BB0 0027E810 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80282BB4 0027E814 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80282BB8 0027E818 7C 08 03 A6 */ mtlr r0
+/* 80282BBC 0027E81C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80282BC0 0027E820 4E 80 00 20 */ blr
+
+.global GXLoadTexObj
+GXLoadTexObj:
+/* 80282BC4 0027E824 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80282BC8 0027E828 7C 08 02 A6 */ mflr r0
+/* 80282BCC 0027E82C 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282BD0 0027E830 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80282BD4 0027E834 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80282BD8 0027E838 7C 9F 23 78 */ mr r31, r4
+/* 80282BDC 0027E83C 93 C1 00 08 */ stw r30, 8(r1)
+/* 80282BE0 0027E840 7C 7E 1B 78 */ mr r30, r3
+/* 80282BE4 0027E844 81 85 05 18 */ lwz r12, 0x518(r5)
+/* 80282BE8 0027E848 7D 89 03 A6 */ mtctr r12
+/* 80282BEC 0027E84C 4E 80 04 21 */ bctrl
+/* 80282BF0 0027E850 7C 64 1B 78 */ mr r4, r3
+/* 80282BF4 0027E854 7F C3 F3 78 */ mr r3, r30
+/* 80282BF8 0027E858 7F E5 FB 78 */ mr r5, r31
+/* 80282BFC 0027E85C 4B FF FE 65 */ bl GXLoadTexObjPreLoaded
+/* 80282C00 0027E860 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80282C04 0027E864 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80282C08 0027E868 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80282C0C 0027E86C 7C 08 03 A6 */ mtlr r0
+/* 80282C10 0027E870 38 21 00 10 */ addi r1, r1, 0x10
+/* 80282C14 0027E874 4E 80 00 20 */ blr
+
+.global GXInitTlutObj
+GXInitTlutObj:
+/* 80282C18 0027E878 80 E3 00 04 */ lwz r7, 4(r3)
+/* 80282C1C 0027E87C 38 00 00 64 */ li r0, 0x64
+/* 80282C20 0027E880 50 87 DA 3E */ rlwimi r7, r4, 0x1b, 8, 0x1f
+/* 80282C24 0027E884 38 80 00 00 */ li r4, 0
+/* 80282C28 0027E888 50 A4 55 2A */ rlwimi r4, r5, 0xa, 0x14, 0x15
+/* 80282C2C 0027E88C B0 C3 00 08 */ sth r6, 8(r3)
+/* 80282C30 0027E890 50 07 C0 0E */ rlwimi r7, r0, 0x18, 0, 7
+/* 80282C34 0027E894 90 83 00 00 */ stw r4, 0(r3)
+/* 80282C38 0027E898 90 E3 00 04 */ stw r7, 4(r3)
+/* 80282C3C 0027E89C 4E 80 00 20 */ blr
+
+.global GXLoadTlut
+GXLoadTlut:
+/* 80282C40 0027E8A0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80282C44 0027E8A4 7C 08 02 A6 */ mflr r0
+/* 80282C48 0027E8A8 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282C4C 0027E8AC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80282C50 0027E8B0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80282C54 0027E8B4 93 C1 00 08 */ stw r30, 8(r1)
+/* 80282C58 0027E8B8 7C 7E 1B 78 */ mr r30, r3
+/* 80282C5C 0027E8BC 7C 83 23 78 */ mr r3, r4
+/* 80282C60 0027E8C0 81 85 05 1C */ lwz r12, 0x51c(r5)
+/* 80282C64 0027E8C4 7D 89 03 A6 */ mtctr r12
+/* 80282C68 0027E8C8 4E 80 04 21 */ bctrl
+/* 80282C6C 0027E8CC 7C 7F 1B 78 */ mr r31, r3
+/* 80282C70 0027E8D0 48 00 0E AD */ bl __GXFlushTextureState
+/* 80282C74 0027E8D4 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80282C78 0027E8D8 38 80 00 61 */ li r4, 0x61
+/* 80282C7C 0027E8DC 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
+/* 80282C80 0027E8E0 80 1E 00 04 */ lwz r0, 4(r30)
+/* 80282C84 0027E8E4 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80282C88 0027E8E8 98 83 80 00 */ stb r4, -0x8000(r3)
+/* 80282C8C 0027E8EC 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80282C90 0027E8F0 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80282C94 0027E8F4 48 00 0E 89 */ bl __GXFlushTextureState
+/* 80282C98 0027E8F8 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80282C9C 0027E8FC 80 9E 00 00 */ lwz r4, 0(r30)
+/* 80282CA0 0027E900 50 04 05 BE */ rlwimi r4, r0, 0, 0x16, 0x1f
+/* 80282CA4 0027E904 80 7E 00 04 */ lwz r3, 4(r30)
+/* 80282CA8 0027E908 90 9F 00 04 */ stw r4, 4(r31)
+/* 80282CAC 0027E90C 80 1E 00 08 */ lwz r0, 8(r30)
+/* 80282CB0 0027E910 90 7F 00 08 */ stw r3, 8(r31)
+/* 80282CB4 0027E914 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80282CB8 0027E918 90 9E 00 00 */ stw r4, 0(r30)
+/* 80282CBC 0027E91C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80282CC0 0027E920 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80282CC4 0027E924 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80282CC8 0027E928 7C 08 03 A6 */ mtlr r0
+/* 80282CCC 0027E92C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80282CD0 0027E930 4E 80 00 20 */ blr
+
+.global GXInitTexCacheRegion
+GXInitTexCacheRegion:
+/* 80282CD4 0027E934 2C 06 00 01 */ cmpwi r6, 1
+/* 80282CD8 0027E938 41 82 00 28 */ beq lbl_80282D00
+/* 80282CDC 0027E93C 40 80 00 10 */ bge lbl_80282CEC
+/* 80282CE0 0027E940 2C 06 00 00 */ cmpwi r6, 0
+/* 80282CE4 0027E944 40 80 00 14 */ bge lbl_80282CF8
+/* 80282CE8 0027E948 48 00 00 24 */ b lbl_80282D0C
+lbl_80282CEC:
+/* 80282CEC 0027E94C 2C 06 00 03 */ cmpwi r6, 3
+/* 80282CF0 0027E950 40 80 00 1C */ bge lbl_80282D0C
+/* 80282CF4 0027E954 48 00 00 14 */ b lbl_80282D08
+lbl_80282CF8:
+/* 80282CF8 0027E958 38 C0 00 03 */ li r6, 3
+/* 80282CFC 0027E95C 48 00 00 10 */ b lbl_80282D0C
+lbl_80282D00:
+/* 80282D00 0027E960 38 C0 00 04 */ li r6, 4
+/* 80282D04 0027E964 48 00 00 08 */ b lbl_80282D0C
+lbl_80282D08:
+/* 80282D08 0027E968 38 C0 00 05 */ li r6, 5
+lbl_80282D0C:
+/* 80282D0C 0027E96C 38 00 00 00 */ li r0, 0
+/* 80282D10 0027E970 2C 08 00 02 */ cmpwi r8, 2
+/* 80282D14 0027E974 50 A0 DC 7E */ rlwimi r0, r5, 0x1b, 0x11, 0x1f
+/* 80282D18 0027E978 50 C0 7B A0 */ rlwimi r0, r6, 0xf, 0xe, 0x10
+/* 80282D1C 0027E97C 50 C0 92 DA */ rlwimi r0, r6, 0x12, 0xb, 0xd
+/* 80282D20 0027E980 90 03 00 00 */ stw r0, 0(r3)
+/* 80282D24 0027E984 41 82 00 34 */ beq lbl_80282D58
+/* 80282D28 0027E988 40 80 00 14 */ bge lbl_80282D3C
+/* 80282D2C 0027E98C 2C 08 00 00 */ cmpwi r8, 0
+/* 80282D30 0027E990 41 82 00 18 */ beq lbl_80282D48
+/* 80282D34 0027E994 40 80 00 1C */ bge lbl_80282D50
+/* 80282D38 0027E998 48 00 00 2C */ b lbl_80282D64
+lbl_80282D3C:
+/* 80282D3C 0027E99C 2C 08 00 04 */ cmpwi r8, 4
+/* 80282D40 0027E9A0 40 80 00 24 */ bge lbl_80282D64
+/* 80282D44 0027E9A4 48 00 00 1C */ b lbl_80282D60
+lbl_80282D48:
+/* 80282D48 0027E9A8 38 C0 00 03 */ li r6, 3
+/* 80282D4C 0027E9AC 48 00 00 18 */ b lbl_80282D64
+lbl_80282D50:
+/* 80282D50 0027E9B0 38 C0 00 04 */ li r6, 4
+/* 80282D54 0027E9B4 48 00 00 10 */ b lbl_80282D64
+lbl_80282D58:
+/* 80282D58 0027E9B8 38 C0 00 05 */ li r6, 5
+/* 80282D5C 0027E9BC 48 00 00 08 */ b lbl_80282D64
+lbl_80282D60:
+/* 80282D60 0027E9C0 38 C0 00 00 */ li r6, 0
+lbl_80282D64:
+/* 80282D64 0027E9C4 38 A0 00 00 */ li r5, 0
+/* 80282D68 0027E9C8 38 00 00 01 */ li r0, 1
+/* 80282D6C 0027E9CC 50 E5 DC 7E */ rlwimi r5, r7, 0x1b, 0x11, 0x1f
+/* 80282D70 0027E9D0 98 83 00 0C */ stb r4, 0xc(r3)
+/* 80282D74 0027E9D4 50 C5 7B A0 */ rlwimi r5, r6, 0xf, 0xe, 0x10
+/* 80282D78 0027E9D8 50 C5 92 DA */ rlwimi r5, r6, 0x12, 0xb, 0xd
+/* 80282D7C 0027E9DC 98 03 00 0D */ stb r0, 0xd(r3)
+/* 80282D80 0027E9E0 90 A3 00 04 */ stw r5, 4(r3)
+/* 80282D84 0027E9E4 4E 80 00 20 */ blr
+
+.global GXInitTlutRegion
+GXInitTlutRegion:
+/* 80282D88 0027E9E8 3C 04 FF F8 */ addis r0, r4, 0xfff8
+/* 80282D8C 0027E9EC 38 80 00 00 */ li r4, 0
+/* 80282D90 0027E9F0 50 04 BD BE */ rlwimi r4, r0, 0x17, 0x16, 0x1f
+/* 80282D94 0027E9F4 38 00 00 65 */ li r0, 0x65
+/* 80282D98 0027E9F8 50 A4 52 EA */ rlwimi r4, r5, 0xa, 0xb, 0x15
+/* 80282D9C 0027E9FC 50 04 C0 0E */ rlwimi r4, r0, 0x18, 0, 7
+/* 80282DA0 0027EA00 90 83 00 00 */ stw r4, 0(r3)
+/* 80282DA4 0027EA04 4E 80 00 20 */ blr
+
+.global GXInvalidateTexAll
+GXInvalidateTexAll:
+/* 80282DA8 0027EA08 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80282DAC 0027EA0C 7C 08 02 A6 */ mflr r0
+/* 80282DB0 0027EA10 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80282DB4 0027EA14 48 00 0D 69 */ bl __GXFlushTextureState
+/* 80282DB8 0027EA18 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80282DBC 0027EA1C 38 A0 00 61 */ li r5, 0x61
+/* 80282DC0 0027EA20 3C 60 66 00 */ lis r3, 0x66001000@ha
+/* 80282DC4 0027EA24 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 80282DC8 0027EA28 38 03 10 00 */ addi r0, r3, 0x66001000@l
+/* 80282DCC 0027EA2C 90 04 80 00 */ stw r0, -0x8000(r4)
+/* 80282DD0 0027EA30 38 03 11 00 */ addi r0, r3, 0x1100
+/* 80282DD4 0027EA34 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 80282DD8 0027EA38 90 04 80 00 */ stw r0, -0x8000(r4)
+/* 80282DDC 0027EA3C 48 00 0D 41 */ bl __GXFlushTextureState
+/* 80282DE0 0027EA40 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80282DE4 0027EA44 7C 08 03 A6 */ mtlr r0
+/* 80282DE8 0027EA48 38 21 00 10 */ addi r1, r1, 0x10
+/* 80282DEC 0027EA4C 4E 80 00 20 */ blr
+
+.global GXSetTexRegionCallback
+GXSetTexRegionCallback:
+/* 80282DF0 0027EA50 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282DF4 0027EA54 7C 60 1B 78 */ mr r0, r3
+/* 80282DF8 0027EA58 80 64 05 18 */ lwz r3, 0x518(r4)
+/* 80282DFC 0027EA5C 90 04 05 18 */ stw r0, 0x518(r4)
+/* 80282E00 0027EA60 4E 80 00 20 */ blr
+
+.global GXSetTlutRegionCallback
+GXSetTlutRegionCallback:
+/* 80282E04 0027EA64 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282E08 0027EA68 7C 60 1B 78 */ mr r0, r3
+/* 80282E0C 0027EA6C 80 64 05 1C */ lwz r3, 0x51c(r4)
+/* 80282E10 0027EA70 90 04 05 1C */ stw r0, 0x51c(r4)
+/* 80282E14 0027EA74 4E 80 00 20 */ blr
+
+.global __SetSURegs
+__SetSURegs:
+/* 80282E18 0027EA78 81 62 A0 D0 */ lwz r11, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282E1C 0027EA7C 54 86 10 3A */ slwi r6, r4, 2
+/* 80282E20 0027EA80 54 60 10 3A */ slwi r0, r3, 2
+/* 80282E24 0027EA84 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 80282E28 0027EA88 7D 4B 02 14 */ add r10, r11, r0
+/* 80282E2C 0027EA8C 7D 2B 32 14 */ add r9, r11, r6
+/* 80282E30 0027EA90 80 6A 05 64 */ lwz r3, 0x564(r10)
+/* 80282E34 0027EA94 38 80 00 61 */ li r4, 0x61
+/* 80282E38 0027EA98 81 09 01 08 */ lwz r8, 0x108(r9)
+/* 80282E3C 0027EA9C 38 00 00 00 */ li r0, 0
+/* 80282E40 0027EAA0 54 66 05 BE */ clrlwi r6, r3, 0x16
+/* 80282E44 0027EAA4 54 63 B5 BE */ rlwinm r3, r3, 0x16, 0x16, 0x1f
+/* 80282E48 0027EAA8 50 C8 04 3E */ rlwimi r8, r6, 0, 0x10, 0x1f
+/* 80282E4C 0027EAAC 91 09 01 08 */ stw r8, 0x108(r9)
+/* 80282E50 0027EAB0 80 E9 01 28 */ lwz r7, 0x128(r9)
+/* 80282E54 0027EAB4 50 67 04 3E */ rlwimi r7, r3, 0, 0x10, 0x1f
+/* 80282E58 0027EAB8 90 E9 01 28 */ stw r7, 0x128(r9)
+/* 80282E5C 0027EABC 80 6A 05 84 */ lwz r3, 0x584(r10)
+/* 80282E60 0027EAC0 54 66 07 BE */ clrlwi r6, r3, 0x1e
+/* 80282E64 0027EAC4 54 63 F7 BE */ rlwinm r3, r3, 0x1e, 0x1e, 0x1f
+/* 80282E68 0027EAC8 38 C6 FF FF */ addi r6, r6, -1
+/* 80282E6C 0027EACC 7C C6 00 34 */ cntlzw r6, r6
+/* 80282E70 0027EAD0 38 63 FF FF */ addi r3, r3, -1
+/* 80282E74 0027EAD4 50 C8 5B DE */ rlwimi r8, r6, 0xb, 0xf, 0xf
+/* 80282E78 0027EAD8 7C 63 00 34 */ cntlzw r3, r3
+/* 80282E7C 0027EADC 91 09 01 08 */ stw r8, 0x108(r9)
+/* 80282E80 0027EAE0 50 67 5B DE */ rlwimi r7, r3, 0xb, 0xf, 0xf
+/* 80282E84 0027EAE4 90 E9 01 28 */ stw r7, 0x128(r9)
+/* 80282E88 0027EAE8 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
+/* 80282E8C 0027EAEC 80 69 01 08 */ lwz r3, 0x108(r9)
+/* 80282E90 0027EAF0 90 65 80 00 */ stw r3, -0x8000(r5)
+/* 80282E94 0027EAF4 98 85 80 00 */ stb r4, -0x8000(r5)
+/* 80282E98 0027EAF8 80 69 01 28 */ lwz r3, 0x128(r9)
+/* 80282E9C 0027EAFC 90 65 80 00 */ stw r3, -0x8000(r5)
+/* 80282EA0 0027EB00 B0 0B 00 02 */ sth r0, 2(r11)
+/* 80282EA4 0027EB04 4E 80 00 20 */ blr
+
+.global __GXSetSUTexRegs
+__GXSetSUTexRegs:
+/* 80282EA8 0027EB08 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80282EAC 0027EB0C 7C 08 02 A6 */ mflr r0
+/* 80282EB0 0027EB10 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80282EB4 0027EB14 39 61 00 30 */ addi r11, r1, 0x30
+/* 80282EB8 0027EB18 4B F4 42 61 */ bl _savegpr_23
+/* 80282EBC 0027EB1C 83 A2 A0 D0 */ lwz r29, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282EC0 0027EB20 80 1D 05 E4 */ lwz r0, 0x5e4(r29)
+/* 80282EC4 0027EB24 28 00 00 FF */ cmplwi r0, 0xff
+/* 80282EC8 0027EB28 41 82 01 30 */ beq lbl_80282FF8
+/* 80282ECC 0027EB2C 80 1D 02 54 */ lwz r0, 0x254(r29)
+/* 80282ED0 0027EB30 3B 80 00 00 */ li r28, 0
+/* 80282ED4 0027EB34 3A E0 00 01 */ li r23, 1
+/* 80282ED8 0027EB38 54 03 B7 3E */ rlwinm r3, r0, 0x16, 0x1c, 0x1f
+/* 80282EDC 0027EB3C 54 1B 87 7E */ rlwinm r27, r0, 0x10, 0x1d, 0x1f
+/* 80282EE0 0027EB40 3B 43 00 01 */ addi r26, r3, 1
+/* 80282EE4 0027EB44 48 00 00 88 */ b lbl_80282F6C
+lbl_80282EE8:
+/* 80282EE8 0027EB48 2C 1C 00 02 */ cmpwi r28, 2
+/* 80282EEC 0027EB4C 41 82 00 44 */ beq lbl_80282F30
+/* 80282EF0 0027EB50 40 80 00 14 */ bge lbl_80282F04
+/* 80282EF4 0027EB54 2C 1C 00 00 */ cmpwi r28, 0
+/* 80282EF8 0027EB58 41 82 00 18 */ beq lbl_80282F10
+/* 80282EFC 0027EB5C 40 80 00 24 */ bge lbl_80282F20
+/* 80282F00 0027EB60 48 00 00 4C */ b lbl_80282F4C
+lbl_80282F04:
+/* 80282F04 0027EB64 2C 1C 00 04 */ cmpwi r28, 4
+/* 80282F08 0027EB68 40 80 00 44 */ bge lbl_80282F4C
+/* 80282F0C 0027EB6C 48 00 00 34 */ b lbl_80282F40
+lbl_80282F10:
+/* 80282F10 0027EB70 80 1D 01 70 */ lwz r0, 0x170(r29)
+/* 80282F14 0027EB74 54 19 07 7E */ clrlwi r25, r0, 0x1d
+/* 80282F18 0027EB78 54 18 EF 7E */ rlwinm r24, r0, 0x1d, 0x1d, 0x1f
+/* 80282F1C 0027EB7C 48 00 00 30 */ b lbl_80282F4C
+lbl_80282F20:
+/* 80282F20 0027EB80 80 1D 01 70 */ lwz r0, 0x170(r29)
+/* 80282F24 0027EB84 54 19 D7 7E */ rlwinm r25, r0, 0x1a, 0x1d, 0x1f
+/* 80282F28 0027EB88 54 18 BF 7E */ rlwinm r24, r0, 0x17, 0x1d, 0x1f
+/* 80282F2C 0027EB8C 48 00 00 20 */ b lbl_80282F4C
+lbl_80282F30:
+/* 80282F30 0027EB90 80 1D 01 70 */ lwz r0, 0x170(r29)
+/* 80282F34 0027EB94 54 19 A7 7E */ rlwinm r25, r0, 0x14, 0x1d, 0x1f
+/* 80282F38 0027EB98 54 18 8F 7E */ rlwinm r24, r0, 0x11, 0x1d, 0x1f
+/* 80282F3C 0027EB9C 48 00 00 10 */ b lbl_80282F4C
+lbl_80282F40:
+/* 80282F40 0027EBA0 80 1D 01 70 */ lwz r0, 0x170(r29)
+/* 80282F44 0027EBA4 54 19 77 7E */ rlwinm r25, r0, 0xe, 0x1d, 0x1f
+/* 80282F48 0027EBA8 54 18 5F 7E */ rlwinm r24, r0, 0xb, 0x1d, 0x1f
+lbl_80282F4C:
+/* 80282F4C 0027EBAC 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
+/* 80282F50 0027EBB0 7E E0 C0 30 */ slw r0, r23, r24
+/* 80282F54 0027EBB4 7C 60 00 39 */ and. r0, r3, r0
+/* 80282F58 0027EBB8 40 82 00 10 */ bne lbl_80282F68
+/* 80282F5C 0027EBBC 7F 23 CB 78 */ mr r3, r25
+/* 80282F60 0027EBC0 7F 04 C3 78 */ mr r4, r24
+/* 80282F64 0027EBC4 4B FF FE B5 */ bl __SetSURegs
+lbl_80282F68:
+/* 80282F68 0027EBC8 3B 9C 00 01 */ addi r28, r28, 1
+lbl_80282F6C:
+/* 80282F6C 0027EBCC 7C 1C D8 40 */ cmplw r28, r27
+/* 80282F70 0027EBD0 41 80 FF 78 */ blt lbl_80282EE8
+/* 80282F74 0027EBD4 83 82 A0 D0 */ lwz r28, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282F78 0027EBD8 3B 60 00 00 */ li r27, 0
+/* 80282F7C 0027EBDC 3A E0 00 01 */ li r23, 1
+/* 80282F80 0027EBE0 7F 9F E3 78 */ mr r31, r28
+/* 80282F84 0027EBE4 3B DC 01 50 */ addi r30, r28, 0x150
+/* 80282F88 0027EBE8 48 00 00 68 */ b lbl_80282FF0
+lbl_80282F8C:
+/* 80282F8C 0027EBEC 57 60 07 FF */ clrlwi. r0, r27, 0x1f
+/* 80282F90 0027EBF0 80 1F 05 A4 */ lwz r0, 0x5a4(r31)
+/* 80282F94 0027EBF4 57 63 08 3A */ rlwinm r3, r27, 1, 0, 0x1d
+/* 80282F98 0027EBF8 54 19 06 2C */ rlwinm r25, r0, 0, 0x18, 0x16
+/* 80282F9C 0027EBFC 41 82 00 10 */ beq lbl_80282FAC
+/* 80282FA0 0027EC00 7C 1E 18 2E */ lwzx r0, r30, r3
+/* 80282FA4 0027EC04 54 18 8F 7E */ rlwinm r24, r0, 0x11, 0x1d, 0x1f
+/* 80282FA8 0027EC08 48 00 00 0C */ b lbl_80282FB4
+lbl_80282FAC:
+/* 80282FAC 0027EC0C 7C 1E 18 2E */ lwzx r0, r30, r3
+/* 80282FB0 0027EC10 54 18 EF 7E */ rlwinm r24, r0, 0x1d, 0x1d, 0x1f
+lbl_80282FB4:
+/* 80282FB4 0027EC14 28 19 00 FF */ cmplwi r25, 0xff
+/* 80282FB8 0027EC18 41 82 00 30 */ beq lbl_80282FE8
+/* 80282FBC 0027EC1C 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
+/* 80282FC0 0027EC20 7E E0 C0 30 */ slw r0, r23, r24
+/* 80282FC4 0027EC24 7C 60 00 39 */ and. r0, r3, r0
+/* 80282FC8 0027EC28 40 82 00 20 */ bne lbl_80282FE8
+/* 80282FCC 0027EC2C 80 7C 05 E8 */ lwz r3, 0x5e8(r28)
+/* 80282FD0 0027EC30 7E E0 D8 30 */ slw r0, r23, r27
+/* 80282FD4 0027EC34 7C 60 00 39 */ and. r0, r3, r0
+/* 80282FD8 0027EC38 41 82 00 10 */ beq lbl_80282FE8
+/* 80282FDC 0027EC3C 7F 23 CB 78 */ mr r3, r25
+/* 80282FE0 0027EC40 7F 04 C3 78 */ mr r4, r24
+/* 80282FE4 0027EC44 4B FF FE 35 */ bl __SetSURegs
+lbl_80282FE8:
+/* 80282FE8 0027EC48 3B FF 00 04 */ addi r31, r31, 4
+/* 80282FEC 0027EC4C 3B 7B 00 01 */ addi r27, r27, 1
+lbl_80282FF0:
+/* 80282FF0 0027EC50 7C 1B D0 40 */ cmplw r27, r26
+/* 80282FF4 0027EC54 41 80 FF 98 */ blt lbl_80282F8C
+lbl_80282FF8:
+/* 80282FF8 0027EC58 39 61 00 30 */ addi r11, r1, 0x30
+/* 80282FFC 0027EC5C 4B F4 41 69 */ bl _restgpr_23
+/* 80283000 0027EC60 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80283004 0027EC64 7C 08 03 A6 */ mtlr r0
+/* 80283008 0027EC68 38 21 00 30 */ addi r1, r1, 0x30
+/* 8028300C 0027EC6C 4E 80 00 20 */ blr
+
+.global __GXSetTmemConfig
+__GXSetTmemConfig:
+/* 80283010 0027EC70 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80283014 0027EC74 2C 03 00 01 */ cmpwi r3, 1
+/* 80283018 0027EC78 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8028301C 0027EC7C 93 C1 00 08 */ stw r30, 8(r1)
+/* 80283020 0027EC80 41 82 01 20 */ beq lbl_80283140
+/* 80283024 0027EC84 40 80 00 08 */ bge lbl_8028302C
+/* 80283028 0027EC88 48 00 02 24 */ b lbl_8028324C
+lbl_8028302C:
+/* 8028302C 0027EC8C 2C 03 00 03 */ cmpwi r3, 3
+/* 80283030 0027EC90 40 80 02 1C */ bge lbl_8028324C
+/* 80283034 0027EC94 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80283038 0027EC98 38 00 00 61 */ li r0, 0x61
+/* 8028303C 0027EC9C 3C 80 8C 0E */ lis r4, 0x8C0D8000@ha
+/* 80283040 0027ECA0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80283044 0027ECA4 38 84 80 00 */ addi r4, r4, 0x8C0D8000@l
+/* 80283048 0027ECA8 3C A0 90 0E */ lis r5, 0x900DC000@ha
+/* 8028304C 0027ECAC 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80283050 0027ECB0 3C 80 8D 0E */ lis r4, 0x8D0D8800@ha
+/* 80283054 0027ECB4 3F E0 91 0E */ lis r31, 0x910DC800@ha
+/* 80283058 0027ECB8 3F C0 8E 0E */ lis r30, 0x8E0D9000@ha
+/* 8028305C 0027ECBC 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283060 0027ECC0 38 A5 C0 00 */ addi r5, r5, 0x900DC000@l
+/* 80283064 0027ECC4 3D 80 92 0E */ lis r12, 0x920DD000@ha
+/* 80283068 0027ECC8 3D 60 8F 0E */ lis r11, 0x8F0D9800@ha
+/* 8028306C 0027ECCC 90 A3 80 00 */ stw r5, -0x8000(r3)
+/* 80283070 0027ECD0 3D 40 93 0E */ lis r10, 0x930DD800@ha
+/* 80283074 0027ECD4 3D 20 AC 0E */ lis r9, 0xAC0DA000@ha
+/* 80283078 0027ECD8 3D 00 B0 0E */ lis r8, 0xB00DC400@ha
+/* 8028307C 0027ECDC 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283080 0027ECE0 38 84 88 00 */ addi r4, r4, 0x8D0D8800@l
+/* 80283084 0027ECE4 3C E0 AD 0E */ lis r7, 0xAD0DA800@ha
+/* 80283088 0027ECE8 3C C0 B1 0E */ lis r6, 0xB10DCC00@ha
+/* 8028308C 0027ECEC 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80283090 0027ECF0 3C A0 AE 0E */ lis r5, 0xAE0DB000@ha
+/* 80283094 0027ECF4 3C 80 B2 0E */ lis r4, 0xB20DD400@ha
+/* 80283098 0027ECF8 3B FF C8 00 */ addi r31, r31, 0x910DC800@l
+/* 8028309C 0027ECFC 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802830A0 0027ED00 3B DE 90 00 */ addi r30, r30, 0x8E0D9000@l
+/* 802830A4 0027ED04 39 8C D0 00 */ addi r12, r12, 0x920DD000@l
+/* 802830A8 0027ED08 39 6B 98 00 */ addi r11, r11, 0x8F0D9800@l
+/* 802830AC 0027ED0C 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 802830B0 0027ED10 39 4A D8 00 */ addi r10, r10, 0x930DD800@l
+/* 802830B4 0027ED14 39 29 A0 00 */ addi r9, r9, 0xAC0DA000@l
+/* 802830B8 0027ED18 39 08 C4 00 */ addi r8, r8, 0xB00DC400@l
+/* 802830BC 0027ED1C 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802830C0 0027ED20 38 E7 A8 00 */ addi r7, r7, 0xAD0DA800@l
+/* 802830C4 0027ED24 38 C6 CC 00 */ addi r6, r6, 0xB10DCC00@l
+/* 802830C8 0027ED28 38 A5 B0 00 */ addi r5, r5, 0xAE0DB000@l
+/* 802830CC 0027ED2C 93 C3 80 00 */ stw r30, -0x8000(r3)
+/* 802830D0 0027ED30 38 84 D4 00 */ addi r4, r4, 0xB20DD400@l
+/* 802830D4 0027ED34 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802830D8 0027ED38 91 83 80 00 */ stw r12, -0x8000(r3)
+/* 802830DC 0027ED3C 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802830E0 0027ED40 91 63 80 00 */ stw r11, -0x8000(r3)
+/* 802830E4 0027ED44 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802830E8 0027ED48 91 43 80 00 */ stw r10, -0x8000(r3)
+/* 802830EC 0027ED4C 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802830F0 0027ED50 91 23 80 00 */ stw r9, -0x8000(r3)
+/* 802830F4 0027ED54 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802830F8 0027ED58 91 03 80 00 */ stw r8, -0x8000(r3)
+/* 802830FC 0027ED5C 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283100 0027ED60 90 E3 80 00 */ stw r7, -0x8000(r3)
+/* 80283104 0027ED64 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283108 0027ED68 90 C3 80 00 */ stw r6, -0x8000(r3)
+/* 8028310C 0027ED6C 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283110 0027ED70 90 A3 80 00 */ stw r5, -0x8000(r3)
+/* 80283114 0027ED74 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283118 0027ED78 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 8028311C 0027ED7C 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283120 0027ED80 3C A0 AF 0E */ lis r5, 0xAF0DB800@ha
+/* 80283124 0027ED84 3C 80 B3 0E */ lis r4, 0xB30DDC00@ha
+/* 80283128 0027ED88 38 A5 B8 00 */ addi r5, r5, 0xAF0DB800@l
+/* 8028312C 0027ED8C 90 A3 80 00 */ stw r5, -0x8000(r3)
+/* 80283130 0027ED90 38 84 DC 00 */ addi r4, r4, 0xB30DDC00@l
+/* 80283134 0027ED94 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283138 0027ED98 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 8028313C 0027ED9C 48 00 02 18 */ b lbl_80283354
+lbl_80283140:
+/* 80283140 0027EDA0 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80283144 0027EDA4 38 00 00 61 */ li r0, 0x61
+/* 80283148 0027EDA8 3C 80 8C 0E */ lis r4, 0x8C0D8000@ha
+/* 8028314C 0027EDAC 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80283150 0027EDB0 38 84 80 00 */ addi r4, r4, 0x8C0D8000@l
+/* 80283154 0027EDB4 3C A0 90 0E */ lis r5, 0x900DC000@ha
+/* 80283158 0027EDB8 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 8028315C 0027EDBC 3C 80 8D 0E */ lis r4, 0x8D0D8800@ha
+/* 80283160 0027EDC0 3F E0 91 0E */ lis r31, 0x910DC800@ha
+/* 80283164 0027EDC4 3F C0 8E 0E */ lis r30, 0x8E0D9000@ha
+/* 80283168 0027EDC8 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 8028316C 0027EDCC 38 A5 C0 00 */ addi r5, r5, 0x900DC000@l
+/* 80283170 0027EDD0 3D 80 92 0E */ lis r12, 0x920DD000@ha
+/* 80283174 0027EDD4 3D 60 8F 0E */ lis r11, 0x8F0D9800@ha
+/* 80283178 0027EDD8 90 A3 80 00 */ stw r5, -0x8000(r3)
+/* 8028317C 0027EDDC 3D 40 93 0E */ lis r10, 0x930DD800@ha
+/* 80283180 0027EDE0 3D 20 AC 0E */ lis r9, 0xAC0DA000@ha
+/* 80283184 0027EDE4 3D 00 B0 0E */ lis r8, 0xB00DE000@ha
+/* 80283188 0027EDE8 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 8028318C 0027EDEC 38 84 88 00 */ addi r4, r4, 0x8D0D8800@l
+/* 80283190 0027EDF0 3C E0 AD 0E */ lis r7, 0xAD0DA800@ha
+/* 80283194 0027EDF4 3C C0 B1 0E */ lis r6, 0xB10DE800@ha
+/* 80283198 0027EDF8 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 8028319C 0027EDFC 3C A0 AE 0E */ lis r5, 0xAE0DB000@ha
+/* 802831A0 0027EE00 3C 80 B2 0E */ lis r4, 0xB20DF000@ha
+/* 802831A4 0027EE04 3B FF C8 00 */ addi r31, r31, 0x910DC800@l
+/* 802831A8 0027EE08 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802831AC 0027EE0C 3B DE 90 00 */ addi r30, r30, 0x8E0D9000@l
+/* 802831B0 0027EE10 39 8C D0 00 */ addi r12, r12, 0x920DD000@l
+/* 802831B4 0027EE14 39 6B 98 00 */ addi r11, r11, 0x8F0D9800@l
+/* 802831B8 0027EE18 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 802831BC 0027EE1C 39 4A D8 00 */ addi r10, r10, 0x930DD800@l
+/* 802831C0 0027EE20 39 29 A0 00 */ addi r9, r9, 0xAC0DA000@l
+/* 802831C4 0027EE24 39 08 E0 00 */ addi r8, r8, 0xB00DE000@l
+/* 802831C8 0027EE28 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802831CC 0027EE2C 38 E7 A8 00 */ addi r7, r7, 0xAD0DA800@l
+/* 802831D0 0027EE30 38 C6 E8 00 */ addi r6, r6, 0xB10DE800@l
+/* 802831D4 0027EE34 38 A5 B0 00 */ addi r5, r5, 0xAE0DB000@l
+/* 802831D8 0027EE38 93 C3 80 00 */ stw r30, -0x8000(r3)
+/* 802831DC 0027EE3C 38 84 F0 00 */ addi r4, r4, 0xB20DF000@l
+/* 802831E0 0027EE40 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802831E4 0027EE44 91 83 80 00 */ stw r12, -0x8000(r3)
+/* 802831E8 0027EE48 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802831EC 0027EE4C 91 63 80 00 */ stw r11, -0x8000(r3)
+/* 802831F0 0027EE50 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802831F4 0027EE54 91 43 80 00 */ stw r10, -0x8000(r3)
+/* 802831F8 0027EE58 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802831FC 0027EE5C 91 23 80 00 */ stw r9, -0x8000(r3)
+/* 80283200 0027EE60 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283204 0027EE64 91 03 80 00 */ stw r8, -0x8000(r3)
+/* 80283208 0027EE68 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 8028320C 0027EE6C 90 E3 80 00 */ stw r7, -0x8000(r3)
+/* 80283210 0027EE70 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283214 0027EE74 90 C3 80 00 */ stw r6, -0x8000(r3)
+/* 80283218 0027EE78 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 8028321C 0027EE7C 90 A3 80 00 */ stw r5, -0x8000(r3)
+/* 80283220 0027EE80 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283224 0027EE84 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80283228 0027EE88 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 8028322C 0027EE8C 3C A0 AF 0E */ lis r5, 0xAF0DB800@ha
+/* 80283230 0027EE90 3C 80 B3 0E */ lis r4, 0xB30DF800@ha
+/* 80283234 0027EE94 38 A5 B8 00 */ addi r5, r5, 0xAF0DB800@l
+/* 80283238 0027EE98 90 A3 80 00 */ stw r5, -0x8000(r3)
+/* 8028323C 0027EE9C 38 84 F8 00 */ addi r4, r4, 0xB30DF800@l
+/* 80283240 0027EEA0 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283244 0027EEA4 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80283248 0027EEA8 48 00 01 0C */ b lbl_80283354
+lbl_8028324C:
+/* 8028324C 0027EEAC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80283250 0027EEB0 38 00 00 61 */ li r0, 0x61
+/* 80283254 0027EEB4 3C 80 8C 0E */ lis r4, 0x8C0D8000@ha
+/* 80283258 0027EEB8 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 8028325C 0027EEBC 38 84 80 00 */ addi r4, r4, 0x8C0D8000@l
+/* 80283260 0027EEC0 3C A0 90 0E */ lis r5, 0x900DC000@ha
+/* 80283264 0027EEC4 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80283268 0027EEC8 3C 80 8D 0E */ lis r4, 0x8D0D8400@ha
+/* 8028326C 0027EECC 3F C0 91 0E */ lis r30, 0x910DC400@ha
+/* 80283270 0027EED0 3F E0 8E 0E */ lis r31, 0x8E0D8800@ha
+/* 80283274 0027EED4 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283278 0027EED8 38 A5 C0 00 */ addi r5, r5, 0x900DC000@l
+/* 8028327C 0027EEDC 3D 80 92 0E */ lis r12, 0x920DC800@ha
+/* 80283280 0027EEE0 3D 60 8F 0E */ lis r11, 0x8F0D8C00@ha
+/* 80283284 0027EEE4 90 A3 80 00 */ stw r5, -0x8000(r3)
+/* 80283288 0027EEE8 3D 40 93 0E */ lis r10, 0x930DCC00@ha
+/* 8028328C 0027EEEC 3D 20 AC 0E */ lis r9, 0xAC0D9000@ha
+/* 80283290 0027EEF0 3D 00 B0 0E */ lis r8, 0xB00DD000@ha
+/* 80283294 0027EEF4 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283298 0027EEF8 38 84 84 00 */ addi r4, r4, 0x8D0D8400@l
+/* 8028329C 0027EEFC 3C E0 AD 0E */ lis r7, 0xAD0D9400@ha
+/* 802832A0 0027EF00 3C C0 B1 0E */ lis r6, 0xB10DD400@ha
+/* 802832A4 0027EF04 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 802832A8 0027EF08 3C A0 AE 0E */ lis r5, 0xAE0D9800@ha
+/* 802832AC 0027EF0C 3C 80 B2 0E */ lis r4, 0xB20DD800@ha
+/* 802832B0 0027EF10 3B DE C4 00 */ addi r30, r30, 0x910DC400@l
+/* 802832B4 0027EF14 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802832B8 0027EF18 3B FF 88 00 */ addi r31, r31, 0x8E0D8800@l
+/* 802832BC 0027EF1C 39 8C C8 00 */ addi r12, r12, 0x920DC800@l
+/* 802832C0 0027EF20 39 6B 8C 00 */ addi r11, r11, 0x8F0D8C00@l
+/* 802832C4 0027EF24 93 C3 80 00 */ stw r30, -0x8000(r3)
+/* 802832C8 0027EF28 39 4A CC 00 */ addi r10, r10, 0x930DCC00@l
+/* 802832CC 0027EF2C 39 29 90 00 */ addi r9, r9, 0xAC0D9000@l
+/* 802832D0 0027EF30 39 08 D0 00 */ addi r8, r8, 0xB00DD000@l
+/* 802832D4 0027EF34 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802832D8 0027EF38 38 E7 94 00 */ addi r7, r7, 0xAD0D9400@l
+/* 802832DC 0027EF3C 38 C6 D4 00 */ addi r6, r6, 0xB10DD400@l
+/* 802832E0 0027EF40 38 A5 98 00 */ addi r5, r5, 0xAE0D9800@l
+/* 802832E4 0027EF44 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 802832E8 0027EF48 38 84 D8 00 */ addi r4, r4, 0xB20DD800@l
+/* 802832EC 0027EF4C 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802832F0 0027EF50 91 83 80 00 */ stw r12, -0x8000(r3)
+/* 802832F4 0027EF54 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 802832F8 0027EF58 91 63 80 00 */ stw r11, -0x8000(r3)
+/* 802832FC 0027EF5C 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283300 0027EF60 91 43 80 00 */ stw r10, -0x8000(r3)
+/* 80283304 0027EF64 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283308 0027EF68 91 23 80 00 */ stw r9, -0x8000(r3)
+/* 8028330C 0027EF6C 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283310 0027EF70 91 03 80 00 */ stw r8, -0x8000(r3)
+/* 80283314 0027EF74 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283318 0027EF78 90 E3 80 00 */ stw r7, -0x8000(r3)
+/* 8028331C 0027EF7C 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283320 0027EF80 90 C3 80 00 */ stw r6, -0x8000(r3)
+/* 80283324 0027EF84 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283328 0027EF88 90 A3 80 00 */ stw r5, -0x8000(r3)
+/* 8028332C 0027EF8C 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283330 0027EF90 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80283334 0027EF94 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283338 0027EF98 3C A0 AF 0E */ lis r5, 0xAF0D9C00@ha
+/* 8028333C 0027EF9C 3C 80 B3 0E */ lis r4, 0xB30DDC00@ha
+/* 80283340 0027EFA0 38 A5 9C 00 */ addi r5, r5, 0xAF0D9C00@l
+/* 80283344 0027EFA4 90 A3 80 00 */ stw r5, -0x8000(r3)
+/* 80283348 0027EFA8 38 84 DC 00 */ addi r4, r4, 0xB30DDC00@l
+/* 8028334C 0027EFAC 98 03 80 00 */ stb r0, -0x8000(r3)
+/* 80283350 0027EFB0 90 83 80 00 */ stw r4, -0x8000(r3)
+lbl_80283354:
+/* 80283354 0027EFB4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80283358 0027EFB8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8028335C 0027EFBC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80283360 0027EFC0 4E 80 00 20 */ blr