tp/asm/gx/GXPixel.s

457 lines
23 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 8035f8b8
.global GXSetFog
GXSetFog:
/* 8035F8B8 0035C7F8 7C 08 02 A6 */ mflr r0
/* 8035F8BC 0035C7FC 90 01 00 04 */ stw r0, 4(r1)
/* 8035F8C0 0035C800 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 8035F8C4 0035C804 DB E1 00 58 */ stfd f31, 0x58(r1)
/* 8035F8C8 0035C808 BE E1 00 34 */ stmw r23, 0x34(r1)
/* 8035F8CC 0035C80C 3B C0 00 00 */ li r30, 0
/* 8035F8D0 0035C810 54 7F EF FF */ rlwinm. r31, r3, 0x1d, 0x1f, 0x1f
/* 8035F8D4 0035C814 3B 04 00 00 */ addi r24, r4, 0
/* 8035F8D8 0035C818 3B BE 00 00 */ addi r29, r30, 0
/* 8035F8DC 0035C81C 54 79 07 7E */ clrlwi r25, r3, 0x1d
/* 8035F8E0 0035C820 3B 80 00 00 */ li r28, 0
/* 8035F8E4 0035C824 3B 60 00 00 */ li r27, 0
/* 8035F8E8 0035C828 3B 40 00 00 */ li r26, 0
/* 8035F8EC 0035C82C 41 82 00 4C */ beq lbl_8035F938
/* 8035F8F0 0035C830 FC 04 18 00 */ fcmpu cr0, f4, f3
/* 8035F8F4 0035C834 41 82 00 0C */ beq lbl_8035F900
/* 8035F8F8 0035C838 FC 02 08 00 */ fcmpu cr0, f2, f1
/* 8035F8FC 0035C83C 40 82 00 14 */ bne lbl_8035F910
lbl_8035F900:
/* 8035F900 0035C840 C0 02 CC 18 */ lfs f0, lbl_80456618-_SDA2_BASE_(r2)
/* 8035F904 0035C844 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8035F908 0035C848 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8035F90C 0035C84C 48 00 01 18 */ b lbl_8035FA24
lbl_8035F910:
/* 8035F910 0035C850 EC A2 08 28 */ fsubs f5, f2, f1
/* 8035F914 0035C854 C0 C2 CC 1C */ lfs f6, lbl_8045661C-_SDA2_BASE_(r2)
/* 8035F918 0035C858 EC 44 18 28 */ fsubs f2, f4, f3
/* 8035F91C 0035C85C EC 01 18 28 */ fsubs f0, f1, f3
/* 8035F920 0035C860 EC 66 28 24 */ fdivs f3, f6, f5
/* 8035F924 0035C864 EC 23 00 B2 */ fmuls f1, f3, f2
/* 8035F928 0035C868 EC 03 00 32 */ fmuls f0, f3, f0
/* 8035F92C 0035C86C D0 21 00 24 */ stfs f1, 0x24(r1)
/* 8035F930 0035C870 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8035F934 0035C874 48 00 00 F0 */ b lbl_8035FA24
lbl_8035F938:
/* 8035F938 0035C878 FC 04 18 00 */ fcmpu cr0, f4, f3
/* 8035F93C 0035C87C 41 82 00 0C */ beq lbl_8035F948
/* 8035F940 0035C880 FC 02 08 00 */ fcmpu cr0, f2, f1
/* 8035F944 0035C884 40 82 00 14 */ bne lbl_8035F958
lbl_8035F948:
/* 8035F948 0035C888 C0 62 CC 18 */ lfs f3, lbl_80456618-_SDA2_BASE_(r2)
/* 8035F94C 0035C88C C0 82 CC 20 */ lfs f4, lbl_80456620-_SDA2_BASE_(r2)
/* 8035F950 0035C890 FF E0 18 90 */ fmr f31, f3
/* 8035F954 0035C894 48 00 00 20 */ b lbl_8035F974
lbl_8035F958:
/* 8035F958 0035C898 EC 04 18 28 */ fsubs f0, f4, f3
/* 8035F95C 0035C89C EC A2 08 28 */ fsubs f5, f2, f1
/* 8035F960 0035C8A0 EC 44 00 F2 */ fmuls f2, f4, f3
/* 8035F964 0035C8A4 EC 84 00 24 */ fdivs f4, f4, f0
/* 8035F968 0035C8A8 EC 00 01 72 */ fmuls f0, f0, f5
/* 8035F96C 0035C8AC EF E1 28 24 */ fdivs f31, f1, f5
/* 8035F970 0035C8B0 EC 62 00 24 */ fdivs f3, f2, f0
lbl_8035F974:
/* 8035F974 0035C8B4 C0 22 CC 20 */ lfs f1, lbl_80456620-_SDA2_BASE_(r2)
/* 8035F978 0035C8B8 38 60 00 00 */ li r3, 0
/* 8035F97C 0035C8BC C8 02 CC 28 */ lfd f0, lbl_80456628-_SDA2_BASE_(r2)
/* 8035F980 0035C8C0 48 00 00 0C */ b lbl_8035F98C
lbl_8035F984:
/* 8035F984 0035C8C4 EC 84 00 72 */ fmuls f4, f4, f1
/* 8035F988 0035C8C8 38 63 00 01 */ addi r3, r3, 1
lbl_8035F98C:
/* 8035F98C 0035C8CC FC 04 00 40 */ fcmpo cr0, f4, f0
/* 8035F990 0035C8D0 41 81 FF F4 */ bgt lbl_8035F984
/* 8035F994 0035C8D4 C8 02 CC 38 */ lfd f0, lbl_80456638-_SDA2_BASE_(r2)
/* 8035F998 0035C8D8 C0 42 CC 30 */ lfs f2, lbl_80456630-_SDA2_BASE_(r2)
/* 8035F99C 0035C8DC C0 22 CC 18 */ lfs f1, lbl_80456618-_SDA2_BASE_(r2)
/* 8035F9A0 0035C8E0 48 00 00 0C */ b lbl_8035F9AC
lbl_8035F9A4:
/* 8035F9A4 0035C8E4 EC 84 00 B2 */ fmuls f4, f4, f2
/* 8035F9A8 0035C8E8 38 63 FF FF */ addi r3, r3, -1
lbl_8035F9AC:
/* 8035F9AC 0035C8EC FC 04 08 40 */ fcmpo cr0, f4, f1
/* 8035F9B0 0035C8F0 40 81 00 0C */ ble lbl_8035F9BC
/* 8035F9B4 0035C8F4 FC 04 00 40 */ fcmpo cr0, f4, f0
/* 8035F9B8 0035C8F8 41 80 FF EC */ blt lbl_8035F9A4
lbl_8035F9BC:
/* 8035F9BC 0035C8FC 3A E3 00 01 */ addi r23, r3, 1
/* 8035F9C0 0035C900 C0 02 CC 40 */ lfs f0, lbl_80456640-_SDA2_BASE_(r2)
/* 8035F9C4 0035C904 38 00 00 01 */ li r0, 1
/* 8035F9C8 0035C908 C8 42 CC 48 */ lfd f2, lbl_80456648-_SDA2_BASE_(r2)
/* 8035F9CC 0035C90C 7C 00 B8 30 */ slw r0, r0, r23
/* 8035F9D0 0035C910 EC 20 01 32 */ fmuls f1, f0, f4
/* 8035F9D4 0035C914 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8035F9D8 0035C918 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8035F9DC 0035C91C 3C 00 43 30 */ lis r0, 0x4330
/* 8035F9E0 0035C920 90 01 00 28 */ stw r0, 0x28(r1)
/* 8035F9E4 0035C924 C8 01 00 28 */ lfd f0, 0x28(r1)
/* 8035F9E8 0035C928 EC 00 10 28 */ fsubs f0, f0, f2
/* 8035F9EC 0035C92C EC 03 00 24 */ fdivs f0, f3, f0
/* 8035F9F0 0035C930 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8035F9F4 0035C934 48 00 26 B9 */ bl __cvt_fp2unsigned
/* 8035F9F8 0035C938 50 7E 02 3E */ rlwimi r30, r3, 0, 8, 0x1f
/* 8035F9FC 0035C93C D3 E1 00 20 */ stfs f31, 0x20(r1)
/* 8035FA00 0035C940 52 FD 06 FE */ rlwimi r29, r23, 0, 0x1b, 0x1f
/* 8035FA04 0035C944 38 00 00 EF */ li r0, 0xef
/* 8035FA08 0035C948 38 7E 00 00 */ addi r3, r30, 0
/* 8035FA0C 0035C94C 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
/* 8035FA10 0035C950 38 00 00 F0 */ li r0, 0xf0
/* 8035FA14 0035C954 38 9D 00 00 */ addi r4, r29, 0
/* 8035FA18 0035C958 50 04 C0 0E */ rlwimi r4, r0, 0x18, 0, 7
/* 8035FA1C 0035C95C 3B C3 00 00 */ addi r30, r3, 0
/* 8035FA20 0035C960 3B A4 00 00 */ addi r29, r4, 0
lbl_8035FA24:
/* 8035FA24 0035C964 80 E1 00 24 */ lwz r7, 0x24(r1)
/* 8035FA28 0035C968 38 00 00 61 */ li r0, 0x61
/* 8035FA2C 0035C96C 81 38 00 00 */ lwz r9, 0(r24)
/* 8035FA30 0035C970 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8035FA34 0035C974 50 FB A5 7E */ rlwimi r27, r7, 0x14, 0x15, 0x1f
/* 8035FA38 0035C978 38 DB 00 00 */ addi r6, r27, 0
/* 8035FA3C 0035C97C 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8035FA40 0035C980 50 E6 A3 68 */ rlwimi r6, r7, 0x14, 0xd, 0x14
/* 8035FA44 0035C984 81 01 00 20 */ lwz r8, 0x20(r1)
/* 8035FA48 0035C988 38 A0 00 EE */ li r5, 0xee
/* 8035FA4C 0035C98C 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FA50 0035C990 50 E6 A3 18 */ rlwimi r6, r7, 0x14, 0xc, 0xc
/* 8035FA54 0035C994 50 A6 C0 0E */ rlwimi r6, r5, 0x18, 0, 7
/* 8035FA58 0035C998 90 C4 80 00 */ stw r6, -0x8000(r4)
/* 8035FA5C 0035C99C 51 1A A5 7E */ rlwimi r26, r8, 0x14, 0x15, 0x1f
/* 8035FA60 0035C9A0 7F 46 D3 78 */ mr r6, r26
/* 8035FA64 0035C9A4 98 04 80 00 */ stb r0, -0x8000(r4)
/* 8035FA68 0035C9A8 51 06 A3 68 */ rlwimi r6, r8, 0x14, 0xd, 0x14
/* 8035FA6C 0035C9AC 51 06 A3 18 */ rlwimi r6, r8, 0x14, 0xc, 0xc
/* 8035FA70 0035C9B0 93 C4 80 00 */ stw r30, -0x8000(r4)
/* 8035FA74 0035C9B4 53 E6 A2 D6 */ rlwimi r6, r31, 0x14, 0xb, 0xb
/* 8035FA78 0035C9B8 38 A0 00 F1 */ li r5, 0xf1
/* 8035FA7C 0035C9BC 98 04 80 00 */ stb r0, -0x8000(r4)
/* 8035FA80 0035C9C0 53 26 AA 14 */ rlwimi r6, r25, 0x15, 8, 0xa
/* 8035FA84 0035C9C4 50 A6 C0 0E */ rlwimi r6, r5, 0x18, 0, 7
/* 8035FA88 0035C9C8 93 A4 80 00 */ stw r29, -0x8000(r4)
/* 8035FA8C 0035C9CC 51 3C C2 3E */ rlwimi r28, r9, 0x18, 8, 0x1f
/* 8035FA90 0035C9D0 38 A0 00 F2 */ li r5, 0xf2
/* 8035FA94 0035C9D4 98 04 80 00 */ stb r0, -0x8000(r4)
/* 8035FA98 0035C9D8 90 C4 80 00 */ stw r6, -0x8000(r4)
/* 8035FA9C 0035C9DC 38 DC 00 00 */ addi r6, r28, 0
/* 8035FAA0 0035C9E0 50 A6 C0 0E */ rlwimi r6, r5, 0x18, 0, 7
/* 8035FAA4 0035C9E4 98 04 80 00 */ stb r0, -0x8000(r4)
/* 8035FAA8 0035C9E8 38 00 00 00 */ li r0, 0
/* 8035FAAC 0035C9EC 90 C4 80 00 */ stw r6, -0x8000(r4)
/* 8035FAB0 0035C9F0 B0 03 00 02 */ sth r0, 2(r3)
/* 8035FAB4 0035C9F4 BA E1 00 34 */ lmw r23, 0x34(r1)
/* 8035FAB8 0035C9F8 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8035FABC 0035C9FC CB E1 00 58 */ lfd f31, 0x58(r1)
/* 8035FAC0 0035CA00 38 21 00 60 */ addi r1, r1, 0x60
/* 8035FAC4 0035CA04 7C 08 03 A6 */ mtlr r0
/* 8035FAC8 0035CA08 4E 80 00 20 */ blr
.global GXSetFogRangeAdj
GXSetFogRangeAdj:
/* 8035FACC 0035CA0C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8035FAD0 0035CA10 41 82 00 E4 */ beq lbl_8035FBB4
/* 8035FAD4 0035CA14 38 C0 00 00 */ li r6, 0
/* 8035FAD8 0035CA18 54 C0 08 3C */ slwi r0, r6, 1
/* 8035FADC 0035CA1C 7D 25 02 14 */ add r9, r5, r0
/* 8035FAE0 0035CA20 A1 09 00 00 */ lhz r8, 0(r9)
/* 8035FAE4 0035CA24 54 CA F8 7E */ srwi r10, r6, 1
/* 8035FAE8 0035CA28 A0 E9 00 02 */ lhz r7, 2(r9)
/* 8035FAEC 0035CA2C 38 00 00 61 */ li r0, 0x61
/* 8035FAF0 0035CA30 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8035FAF4 0035CA34 39 60 00 00 */ li r11, 0
/* 8035FAF8 0035CA38 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8035FAFC 0035CA3C 51 0B 05 3E */ rlwimi r11, r8, 0, 0x14, 0x1f
/* 8035FB00 0035CA40 39 0B 00 00 */ addi r8, r11, 0
/* 8035FB04 0035CA44 38 CA 00 E9 */ addi r6, r10, 0xe9
/* 8035FB08 0035CA48 50 E8 62 26 */ rlwimi r8, r7, 0xc, 8, 0x13
/* 8035FB0C 0035CA4C 50 C8 C0 0E */ rlwimi r8, r6, 0x18, 0, 7
/* 8035FB10 0035CA50 91 05 80 00 */ stw r8, -0x8000(r5)
/* 8035FB14 0035CA54 38 CA 00 EA */ addi r6, r10, 0xea
/* 8035FB18 0035CA58 39 60 00 00 */ li r11, 0
/* 8035FB1C 0035CA5C A1 09 00 04 */ lhz r8, 4(r9)
/* 8035FB20 0035CA60 A0 E9 00 06 */ lhz r7, 6(r9)
/* 8035FB24 0035CA64 51 0B 05 3E */ rlwimi r11, r8, 0, 0x14, 0x1f
/* 8035FB28 0035CA68 39 0B 00 00 */ addi r8, r11, 0
/* 8035FB2C 0035CA6C 98 05 80 00 */ stb r0, -0x8000(r5)
/* 8035FB30 0035CA70 50 E8 62 26 */ rlwimi r8, r7, 0xc, 8, 0x13
/* 8035FB34 0035CA74 50 C8 C0 0E */ rlwimi r8, r6, 0x18, 0, 7
/* 8035FB38 0035CA78 91 05 80 00 */ stw r8, -0x8000(r5)
/* 8035FB3C 0035CA7C 38 CA 00 EB */ addi r6, r10, 0xeb
/* 8035FB40 0035CA80 39 60 00 00 */ li r11, 0
/* 8035FB44 0035CA84 A1 09 00 08 */ lhz r8, 8(r9)
/* 8035FB48 0035CA88 A0 E9 00 0A */ lhz r7, 0xa(r9)
/* 8035FB4C 0035CA8C 51 0B 05 3E */ rlwimi r11, r8, 0, 0x14, 0x1f
/* 8035FB50 0035CA90 39 0B 00 00 */ addi r8, r11, 0
/* 8035FB54 0035CA94 98 05 80 00 */ stb r0, -0x8000(r5)
/* 8035FB58 0035CA98 50 E8 62 26 */ rlwimi r8, r7, 0xc, 8, 0x13
/* 8035FB5C 0035CA9C 50 C8 C0 0E */ rlwimi r8, r6, 0x18, 0, 7
/* 8035FB60 0035CAA0 91 05 80 00 */ stw r8, -0x8000(r5)
/* 8035FB64 0035CAA4 38 CA 00 EC */ addi r6, r10, 0xec
/* 8035FB68 0035CAA8 39 60 00 00 */ li r11, 0
/* 8035FB6C 0035CAAC A1 09 00 0C */ lhz r8, 0xc(r9)
/* 8035FB70 0035CAB0 A0 E9 00 0E */ lhz r7, 0xe(r9)
/* 8035FB74 0035CAB4 51 0B 05 3E */ rlwimi r11, r8, 0, 0x14, 0x1f
/* 8035FB78 0035CAB8 39 0B 00 00 */ addi r8, r11, 0
/* 8035FB7C 0035CABC 98 05 80 00 */ stb r0, -0x8000(r5)
/* 8035FB80 0035CAC0 50 E8 62 26 */ rlwimi r8, r7, 0xc, 8, 0x13
/* 8035FB84 0035CAC4 50 C8 C0 0E */ rlwimi r8, r6, 0x18, 0, 7
/* 8035FB88 0035CAC8 91 05 80 00 */ stw r8, -0x8000(r5)
/* 8035FB8C 0035CACC 38 CA 00 ED */ addi r6, r10, 0xed
/* 8035FB90 0035CAD0 39 60 00 00 */ li r11, 0
/* 8035FB94 0035CAD4 A1 09 00 10 */ lhz r8, 0x10(r9)
/* 8035FB98 0035CAD8 A0 E9 00 12 */ lhz r7, 0x12(r9)
/* 8035FB9C 0035CADC 51 0B 05 3E */ rlwimi r11, r8, 0, 0x14, 0x1f
/* 8035FBA0 0035CAE0 39 0B 00 00 */ addi r8, r11, 0
/* 8035FBA4 0035CAE4 98 05 80 00 */ stb r0, -0x8000(r5)
/* 8035FBA8 0035CAE8 50 E8 62 26 */ rlwimi r8, r7, 0xc, 8, 0x13
/* 8035FBAC 0035CAEC 50 C8 C0 0E */ rlwimi r8, r6, 0x18, 0, 7
/* 8035FBB0 0035CAF0 91 05 80 00 */ stw r8, -0x8000(r5)
lbl_8035FBB4:
/* 8035FBB4 0035CAF4 54 85 04 3E */ clrlwi r5, r4, 0x10
/* 8035FBB8 0035CAF8 80 82 CB 80 */ lwz r4, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FBBC 0035CAFC 38 05 01 56 */ addi r0, r5, 0x156
/* 8035FBC0 0035CB00 38 A0 00 00 */ li r5, 0
/* 8035FBC4 0035CB04 50 05 05 BE */ rlwimi r5, r0, 0, 0x16, 0x1f
/* 8035FBC8 0035CB08 50 65 55 6A */ rlwimi r5, r3, 0xa, 0x15, 0x15
/* 8035FBCC 0035CB0C 38 00 00 61 */ li r0, 0x61
/* 8035FBD0 0035CB10 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8035FBD4 0035CB14 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8035FBD8 0035CB18 38 00 00 E8 */ li r0, 0xe8
/* 8035FBDC 0035CB1C 50 05 C0 0E */ rlwimi r5, r0, 0x18, 0, 7
/* 8035FBE0 0035CB20 90 A3 80 00 */ stw r5, -0x8000(r3)
/* 8035FBE4 0035CB24 38 00 00 00 */ li r0, 0
/* 8035FBE8 0035CB28 B0 04 00 02 */ sth r0, 2(r4)
/* 8035FBEC 0035CB2C 4E 80 00 20 */ blr
.global GXSetBlendMode
GXSetBlendMode:
/* 8035FBF0 0035CB30 81 02 CB 80 */ lwz r8, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FBF4 0035CB34 20 03 00 03 */ subfic r0, r3, 3
/* 8035FBF8 0035CB38 7C 07 00 34 */ cntlzw r7, r0
/* 8035FBFC 0035CB3C 20 03 00 02 */ subfic r0, r3, 2
/* 8035FC00 0035CB40 81 28 01 D0 */ lwz r9, 0x1d0(r8)
/* 8035FC04 0035CB44 50 E9 35 28 */ rlwimi r9, r7, 6, 0x14, 0x14
/* 8035FC08 0035CB48 38 E9 00 00 */ addi r7, r9, 0
/* 8035FC0C 0035CB4C 50 67 07 FE */ rlwimi r7, r3, 0, 0x1f, 0x1f
/* 8035FC10 0035CB50 7C 00 00 34 */ cntlzw r0, r0
/* 8035FC14 0035CB54 50 07 E7 BC */ rlwimi r7, r0, 0x1c, 0x1e, 0x1e
/* 8035FC18 0035CB58 50 C7 64 26 */ rlwimi r7, r6, 0xc, 0x10, 0x13
/* 8035FC1C 0035CB5C 50 87 45 6E */ rlwimi r7, r4, 8, 0x15, 0x17
/* 8035FC20 0035CB60 38 00 00 61 */ li r0, 0x61
/* 8035FC24 0035CB64 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8035FC28 0035CB68 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8035FC2C 0035CB6C 50 A7 2E 34 */ rlwimi r7, r5, 5, 0x18, 0x1a
/* 8035FC30 0035CB70 38 00 00 00 */ li r0, 0
/* 8035FC34 0035CB74 90 E3 80 00 */ stw r7, -0x8000(r3)
/* 8035FC38 0035CB78 90 E8 01 D0 */ stw r7, 0x1d0(r8)
/* 8035FC3C 0035CB7C B0 08 00 02 */ sth r0, 2(r8)
/* 8035FC40 0035CB80 4E 80 00 20 */ blr
.global GXSetColorUpdate
GXSetColorUpdate:
/* 8035FC44 0035CB84 80 A2 CB 80 */ lwz r5, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FC48 0035CB88 38 00 00 61 */ li r0, 0x61
/* 8035FC4C 0035CB8C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8035FC50 0035CB90 80 C5 01 D0 */ lwz r6, 0x1d0(r5)
/* 8035FC54 0035CB94 50 66 1F 38 */ rlwimi r6, r3, 3, 0x1c, 0x1c
/* 8035FC58 0035CB98 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8035FC5C 0035CB9C 38 00 00 00 */ li r0, 0
/* 8035FC60 0035CBA0 90 C4 80 00 */ stw r6, -0x8000(r4)
/* 8035FC64 0035CBA4 90 C5 01 D0 */ stw r6, 0x1d0(r5)
/* 8035FC68 0035CBA8 B0 05 00 02 */ sth r0, 2(r5)
/* 8035FC6C 0035CBAC 4E 80 00 20 */ blr
.global GXSetAlphaUpdate
GXSetAlphaUpdate:
/* 8035FC70 0035CBB0 80 A2 CB 80 */ lwz r5, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FC74 0035CBB4 38 00 00 61 */ li r0, 0x61
/* 8035FC78 0035CBB8 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8035FC7C 0035CBBC 80 C5 01 D0 */ lwz r6, 0x1d0(r5)
/* 8035FC80 0035CBC0 50 66 26 F6 */ rlwimi r6, r3, 4, 0x1b, 0x1b
/* 8035FC84 0035CBC4 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8035FC88 0035CBC8 38 00 00 00 */ li r0, 0
/* 8035FC8C 0035CBCC 90 C4 80 00 */ stw r6, -0x8000(r4)
/* 8035FC90 0035CBD0 90 C5 01 D0 */ stw r6, 0x1d0(r5)
/* 8035FC94 0035CBD4 B0 05 00 02 */ sth r0, 2(r5)
/* 8035FC98 0035CBD8 4E 80 00 20 */ blr
.global GXSetZMode
GXSetZMode:
/* 8035FC9C 0035CBDC 80 C2 CB 80 */ lwz r6, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FCA0 0035CBE0 38 00 00 61 */ li r0, 0x61
/* 8035FCA4 0035CBE4 80 E6 01 D8 */ lwz r7, 0x1d8(r6)
/* 8035FCA8 0035CBE8 50 67 07 FE */ rlwimi r7, r3, 0, 0x1f, 0x1f
/* 8035FCAC 0035CBEC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8035FCB0 0035CBF0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8035FCB4 0035CBF4 50 87 0F 3C */ rlwimi r7, r4, 1, 0x1c, 0x1e
/* 8035FCB8 0035CBF8 50 A7 26 F6 */ rlwimi r7, r5, 4, 0x1b, 0x1b
/* 8035FCBC 0035CBFC 90 E3 80 00 */ stw r7, -0x8000(r3)
/* 8035FCC0 0035CC00 38 00 00 00 */ li r0, 0
/* 8035FCC4 0035CC04 90 E6 01 D8 */ stw r7, 0x1d8(r6)
/* 8035FCC8 0035CC08 B0 06 00 02 */ sth r0, 2(r6)
/* 8035FCCC 0035CC0C 4E 80 00 20 */ blr
.global GXSetZCompLoc
GXSetZCompLoc:
/* 8035FCD0 0035CC10 80 C2 CB 80 */ lwz r6, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FCD4 0035CC14 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8035FCD8 0035CC18 38 60 00 61 */ li r3, 0x61
/* 8035FCDC 0035CC1C 80 A6 01 DC */ lwz r5, 0x1dc(r6)
/* 8035FCE0 0035CC20 50 05 36 72 */ rlwimi r5, r0, 6, 0x19, 0x19
/* 8035FCE4 0035CC24 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8035FCE8 0035CC28 90 A6 01 DC */ stw r5, 0x1dc(r6)
/* 8035FCEC 0035CC2C 38 00 00 00 */ li r0, 0
/* 8035FCF0 0035CC30 98 64 80 00 */ stb r3, 0xCC008000@l(r4)
/* 8035FCF4 0035CC34 80 66 01 DC */ lwz r3, 0x1dc(r6)
/* 8035FCF8 0035CC38 90 64 80 00 */ stw r3, -0x8000(r4)
/* 8035FCFC 0035CC3C B0 06 00 02 */ sth r0, 2(r6)
/* 8035FD00 0035CC40 4E 80 00 20 */ blr
.global GXSetPixelFmt
GXSetPixelFmt:
/* 8035FD04 0035CC44 3C A0 80 3D */ lis r5, lbl_803D2838@ha
/* 8035FD08 0035CC48 80 E2 CB 80 */ lwz r7, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FD0C 0035CC4C 54 66 10 3A */ slwi r6, r3, 2
/* 8035FD10 0035CC50 38 05 28 38 */ addi r0, r5, lbl_803D2838@l
/* 8035FD14 0035CC54 80 A7 01 DC */ lwz r5, 0x1dc(r7)
/* 8035FD18 0035CC58 7C C0 32 14 */ add r6, r0, r6
/* 8035FD1C 0035CC5C 80 06 00 00 */ lwz r0, 0(r6)
/* 8035FD20 0035CC60 39 05 00 00 */ addi r8, r5, 0
/* 8035FD24 0035CC64 50 05 07 7E */ rlwimi r5, r0, 0, 0x1d, 0x1f
/* 8035FD28 0035CC68 90 A7 01 DC */ stw r5, 0x1dc(r7)
/* 8035FD2C 0035CC6C 80 07 01 DC */ lwz r0, 0x1dc(r7)
/* 8035FD30 0035CC70 50 80 1E B8 */ rlwimi r0, r4, 3, 0x1a, 0x1c
/* 8035FD34 0035CC74 90 07 01 DC */ stw r0, 0x1dc(r7)
/* 8035FD38 0035CC78 80 A7 01 DC */ lwz r5, 0x1dc(r7)
/* 8035FD3C 0035CC7C 7C 08 28 40 */ cmplw r8, r5
/* 8035FD40 0035CC80 41 82 00 44 */ beq lbl_8035FD84
/* 8035FD44 0035CC84 38 00 00 61 */ li r0, 0x61
/* 8035FD48 0035CC88 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8035FD4C 0035CC8C 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8035FD50 0035CC90 2C 03 00 02 */ cmpwi r3, 2
/* 8035FD54 0035CC94 90 A4 80 00 */ stw r5, -0x8000(r4)
/* 8035FD58 0035CC98 40 82 00 0C */ bne lbl_8035FD64
/* 8035FD5C 0035CC9C 38 00 00 01 */ li r0, 1
/* 8035FD60 0035CCA0 48 00 00 08 */ b lbl_8035FD68
lbl_8035FD64:
/* 8035FD64 0035CCA4 38 00 00 00 */ li r0, 0
lbl_8035FD68:
/* 8035FD68 0035CCA8 80 A2 CB 80 */ lwz r5, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FD6C 0035CCAC 80 85 02 04 */ lwz r4, 0x204(r5)
/* 8035FD70 0035CCB0 50 04 4D AC */ rlwimi r4, r0, 9, 0x16, 0x16
/* 8035FD74 0035CCB4 90 85 02 04 */ stw r4, 0x204(r5)
/* 8035FD78 0035CCB8 80 05 05 AC */ lwz r0, 0x5ac(r5)
/* 8035FD7C 0035CCBC 60 00 00 04 */ ori r0, r0, 4
/* 8035FD80 0035CCC0 90 05 05 AC */ stw r0, 0x5ac(r5)
lbl_8035FD84:
/* 8035FD84 0035CCC4 80 06 00 00 */ lwz r0, 0(r6)
/* 8035FD88 0035CCC8 28 00 00 04 */ cmplwi r0, 4
/* 8035FD8C 0035CCCC 40 82 00 3C */ bne lbl_8035FDC8
/* 8035FD90 0035CCD0 80 C2 CB 80 */ lwz r6, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FD94 0035CCD4 38 03 FF FC */ addi r0, r3, -4
/* 8035FD98 0035CCD8 38 80 00 42 */ li r4, 0x42
/* 8035FD9C 0035CCDC 80 66 01 D4 */ lwz r3, 0x1d4(r6)
/* 8035FDA0 0035CCE0 50 03 4D 6C */ rlwimi r3, r0, 9, 0x15, 0x16
/* 8035FDA4 0035CCE4 38 00 00 61 */ li r0, 0x61
/* 8035FDA8 0035CCE8 90 66 01 D4 */ stw r3, 0x1d4(r6)
/* 8035FDAC 0035CCEC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8035FDB0 0035CCF0 80 A6 01 D4 */ lwz r5, 0x1d4(r6)
/* 8035FDB4 0035CCF4 50 85 C0 0E */ rlwimi r5, r4, 0x18, 0, 7
/* 8035FDB8 0035CCF8 90 A6 01 D4 */ stw r5, 0x1d4(r6)
/* 8035FDBC 0035CCFC 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8035FDC0 0035CD00 80 06 01 D4 */ lwz r0, 0x1d4(r6)
/* 8035FDC4 0035CD04 90 03 80 00 */ stw r0, -0x8000(r3)
lbl_8035FDC8:
/* 8035FDC8 0035CD08 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FDCC 0035CD0C 38 00 00 00 */ li r0, 0
/* 8035FDD0 0035CD10 B0 03 00 02 */ sth r0, 2(r3)
/* 8035FDD4 0035CD14 4E 80 00 20 */ blr
.global GXSetDither
GXSetDither:
/* 8035FDD8 0035CD18 80 A2 CB 80 */ lwz r5, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FDDC 0035CD1C 38 00 00 61 */ li r0, 0x61
/* 8035FDE0 0035CD20 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8035FDE4 0035CD24 80 C5 01 D0 */ lwz r6, 0x1d0(r5)
/* 8035FDE8 0035CD28 50 66 17 7A */ rlwimi r6, r3, 2, 0x1d, 0x1d
/* 8035FDEC 0035CD2C 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8035FDF0 0035CD30 38 00 00 00 */ li r0, 0
/* 8035FDF4 0035CD34 90 C4 80 00 */ stw r6, -0x8000(r4)
/* 8035FDF8 0035CD38 90 C5 01 D0 */ stw r6, 0x1d0(r5)
/* 8035FDFC 0035CD3C B0 05 00 02 */ sth r0, 2(r5)
/* 8035FE00 0035CD40 4E 80 00 20 */ blr
.global GXSetDstAlpha
GXSetDstAlpha:
/* 8035FE04 0035CD44 80 C2 CB 80 */ lwz r6, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FE08 0035CD48 54 85 06 3E */ clrlwi r5, r4, 0x18
/* 8035FE0C 0035CD4C 38 00 00 61 */ li r0, 0x61
/* 8035FE10 0035CD50 80 E6 01 D4 */ lwz r7, 0x1d4(r6)
/* 8035FE14 0035CD54 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8035FE18 0035CD58 50 A7 06 3E */ rlwimi r7, r5, 0, 0x18, 0x1f
/* 8035FE1C 0035CD5C 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8035FE20 0035CD60 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8035FE24 0035CD64 38 67 00 00 */ addi r3, r7, 0
/* 8035FE28 0035CD68 50 03 45 EE */ rlwimi r3, r0, 8, 0x17, 0x17
/* 8035FE2C 0035CD6C 90 64 80 00 */ stw r3, -0x8000(r4)
/* 8035FE30 0035CD70 38 00 00 00 */ li r0, 0
/* 8035FE34 0035CD74 90 66 01 D4 */ stw r3, 0x1d4(r6)
/* 8035FE38 0035CD78 B0 06 00 02 */ sth r0, 2(r6)
/* 8035FE3C 0035CD7C 4E 80 00 20 */ blr
.global GXSetFieldMask
GXSetFieldMask:
/* 8035FE40 0035CD80 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 8035FE44 0035CD84 80 82 CB 80 */ lwz r4, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FE48 0035CD88 38 A0 00 00 */ li r5, 0
/* 8035FE4C 0035CD8C 50 05 07 FE */ rlwimi r5, r0, 0, 0x1f, 0x1f
/* 8035FE50 0035CD90 50 65 0F BC */ rlwimi r5, r3, 1, 0x1e, 0x1e
/* 8035FE54 0035CD94 38 00 00 61 */ li r0, 0x61
/* 8035FE58 0035CD98 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8035FE5C 0035CD9C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8035FE60 0035CDA0 38 00 00 44 */ li r0, 0x44
/* 8035FE64 0035CDA4 50 05 C0 0E */ rlwimi r5, r0, 0x18, 0, 7
/* 8035FE68 0035CDA8 90 A3 80 00 */ stw r5, -0x8000(r3)
/* 8035FE6C 0035CDAC 38 00 00 00 */ li r0, 0
/* 8035FE70 0035CDB0 B0 04 00 02 */ sth r0, 2(r4)
/* 8035FE74 0035CDB4 4E 80 00 20 */ blr
.global GXSetFieldMode
GXSetFieldMode:
/* 8035FE78 0035CDB8 7C 08 02 A6 */ mflr r0
/* 8035FE7C 0035CDBC 90 01 00 04 */ stw r0, 4(r1)
/* 8035FE80 0035CDC0 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 8035FE84 0035CDC4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8035FE88 0035CDC8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8035FE8C 0035CDCC 3F E0 CC 01 */ lis r31, 0xCC008000@ha
/* 8035FE90 0035CDD0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8035FE94 0035CDD4 3B C0 00 61 */ li r30, 0x61
/* 8035FE98 0035CDD8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8035FE9C 0035CDDC 7C 7D 1B 78 */ mr r29, r3
/* 8035FEA0 0035CDE0 80 A2 CB 80 */ lwz r5, lbl_80456580-_SDA2_BASE_(r2)
/* 8035FEA4 0035CDE4 80 85 00 7C */ lwz r4, 0x7c(r5)
/* 8035FEA8 0035CDE8 50 04 B2 52 */ rlwimi r4, r0, 0x16, 9, 9
/* 8035FEAC 0035CDEC 90 85 00 7C */ stw r4, 0x7c(r5)
/* 8035FEB0 0035CDF0 9B DF 80 00 */ stb r30, 0xCC008000@l(r31)
/* 8035FEB4 0035CDF4 80 05 00 7C */ lwz r0, 0x7c(r5)
/* 8035FEB8 0035CDF8 90 1F 80 00 */ stw r0, -0x8000(r31)
/* 8035FEBC 0035CDFC 4B FF F2 B9 */ bl __GXFlushTextureState
/* 8035FEC0 0035CE00 57 A0 06 3E */ clrlwi r0, r29, 0x18
/* 8035FEC4 0035CE04 9B DF 80 00 */ stb r30, -0x8000(r31)
/* 8035FEC8 0035CE08 64 00 68 00 */ oris r0, r0, 0x6800
/* 8035FECC 0035CE0C 90 1F 80 00 */ stw r0, -0x8000(r31)
/* 8035FED0 0035CE10 4B FF F2 A5 */ bl __GXFlushTextureState
/* 8035FED4 0035CE14 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8035FED8 0035CE18 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8035FEDC 0035CE1C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8035FEE0 0035CE20 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8035FEE4 0035CE24 38 21 00 20 */ addi r1, r1, 0x20
/* 8035FEE8 0035CE28 7C 08 03 A6 */ mtlr r0
/* 8035FEEC 0035CE2C 4E 80 00 20 */ blr