.include "macros.inc" .section .text, "ax" # 8035ff60 .global GXProject GXProject: /* 8035FF60 0035CEA0 C0 83 00 00 */ lfs f4, 0(r3) /* 8035FF64 0035CEA4 C0 03 00 04 */ lfs f0, 4(r3) /* 8035FF68 0035CEA8 C0 C3 00 10 */ lfs f6, 0x10(r3) /* 8035FF6C 0035CEAC ED 44 00 72 */ fmuls f10, f4, f1 /* 8035FF70 0035CEB0 C0 A3 00 14 */ lfs f5, 0x14(r3) /* 8035FF74 0035CEB4 ED 20 00 B2 */ fmuls f9, f0, f2 /* 8035FF78 0035CEB8 C0 83 00 20 */ lfs f4, 0x20(r3) /* 8035FF7C 0035CEBC C0 03 00 24 */ lfs f0, 0x24(r3) /* 8035FF80 0035CEC0 C1 63 00 08 */ lfs f11, 8(r3) /* 8035FF84 0035CEC4 EC E6 00 72 */ fmuls f7, f6, f1 /* 8035FF88 0035CEC8 EC C5 00 B2 */ fmuls f6, f5, f2 /* 8035FF8C 0035CECC C1 03 00 18 */ lfs f8, 0x18(r3) /* 8035FF90 0035CED0 C0 A3 00 28 */ lfs f5, 0x28(r3) /* 8035FF94 0035CED4 EC 84 00 72 */ fmuls f4, f4, f1 /* 8035FF98 0035CED8 EC 40 00 B2 */ fmuls f2, f0, f2 /* 8035FF9C 0035CEDC ED 6B 00 F2 */ fmuls f11, f11, f3 /* 8035FFA0 0035CEE0 C0 22 CC 50 */ lfs f1, lbl_80456650-_SDA2_BASE_(r2) /* 8035FFA4 0035CEE4 ED 2A 48 2A */ fadds f9, f10, f9 /* 8035FFA8 0035CEE8 C0 04 00 00 */ lfs f0, 0(r4) /* 8035FFAC 0035CEEC ED 08 00 F2 */ fmuls f8, f8, f3 /* 8035FFB0 0035CEF0 EC C7 30 2A */ fadds f6, f7, f6 /* 8035FFB4 0035CEF4 C1 43 00 0C */ lfs f10, 0xc(r3) /* 8035FFB8 0035CEF8 ED 2B 48 2A */ fadds f9, f11, f9 /* 8035FFBC 0035CEFC C0 E3 00 1C */ lfs f7, 0x1c(r3) /* 8035FFC0 0035CF00 EC C8 30 2A */ fadds f6, f8, f6 /* 8035FFC4 0035CF04 EC 65 00 F2 */ fmuls f3, f5, f3 /* 8035FFC8 0035CF08 C0 A3 00 2C */ lfs f5, 0x2c(r3) /* 8035FFCC 0035CF0C EC 44 10 2A */ fadds f2, f4, f2 /* 8035FFD0 0035CF10 FC 01 00 00 */ fcmpu cr0, f1, f0 /* 8035FFD4 0035CF14 ED 0A 48 2A */ fadds f8, f10, f9 /* 8035FFD8 0035CF18 EC 03 10 2A */ fadds f0, f3, f2 /* 8035FFDC 0035CF1C EC E7 30 2A */ fadds f7, f7, f6 /* 8035FFE0 0035CF20 ED 25 00 2A */ fadds f9, f5, f0 /* 8035FFE4 0035CF24 40 82 00 4C */ bne lbl_80360030 /* 8035FFE8 0035CF28 FC 00 48 50 */ fneg f0, f9 /* 8035FFEC 0035CF2C C0 22 CC 54 */ lfs f1, lbl_80456654-_SDA2_BASE_(r2) /* 8035FFF0 0035CF30 C0 C4 00 04 */ lfs f6, 4(r4) /* 8035FFF4 0035CF34 C0 A4 00 08 */ lfs f5, 8(r4) /* 8035FFF8 0035CF38 EC 01 00 24 */ fdivs f0, f1, f0 /* 8035FFFC 0035CF3C C0 84 00 0C */ lfs f4, 0xc(r4) /* 80360000 0035CF40 C0 64 00 10 */ lfs f3, 0x10(r4) /* 80360004 0035CF44 C0 24 00 14 */ lfs f1, 0x14(r4) /* 80360008 0035CF48 C0 44 00 18 */ lfs f2, 0x18(r4) /* 8036000C 0035CF4C EC 29 00 72 */ fmuls f1, f9, f1 /* 80360010 0035CF50 EC C8 01 B2 */ fmuls f6, f8, f6 /* 80360014 0035CF54 EC A9 01 72 */ fmuls f5, f9, f5 /* 80360018 0035CF58 EC 87 01 32 */ fmuls f4, f7, f4 /* 8036001C 0035CF5C EC 69 00 F2 */ fmuls f3, f9, f3 /* 80360020 0035CF60 EC C6 28 2A */ fadds f6, f6, f5 /* 80360024 0035CF64 EC E2 08 2A */ fadds f7, f2, f1 /* 80360028 0035CF68 EC 64 18 2A */ fadds f3, f4, f3 /* 8036002C 0035CF6C 48 00 00 38 */ b lbl_80360064 lbl_80360030: /* 80360030 0035CF70 C0 44 00 04 */ lfs f2, 4(r4) /* 80360034 0035CF74 C0 24 00 0C */ lfs f1, 0xc(r4) /* 80360038 0035CF78 C0 04 00 14 */ lfs f0, 0x14(r4) /* 8036003C 0035CF7C EC A8 00 B2 */ fmuls f5, f8, f2 /* 80360040 0035CF80 C0 C4 00 08 */ lfs f6, 8(r4) /* 80360044 0035CF84 EC 67 00 72 */ fmuls f3, f7, f1 /* 80360048 0035CF88 C0 84 00 10 */ lfs f4, 0x10(r4) /* 8036004C 0035CF8C EC 29 00 32 */ fmuls f1, f9, f0 /* 80360050 0035CF90 C0 44 00 18 */ lfs f2, 0x18(r4) /* 80360054 0035CF94 EC C6 28 2A */ fadds f6, f6, f5 /* 80360058 0035CF98 EC 64 18 2A */ fadds f3, f4, f3 /* 8036005C 0035CF9C C0 02 CC 54 */ lfs f0, lbl_80456654-_SDA2_BASE_(r2) /* 80360060 0035CFA0 EC E2 08 2A */ fadds f7, f2, f1 lbl_80360064: /* 80360064 0035CFA4 C0 85 00 08 */ lfs f4, 8(r5) /* 80360068 0035CFA8 FC 20 18 50 */ fneg f1, f3 /* 8036006C 0035CFAC C0 A2 CC 58 */ lfs f5, lbl_80456658-_SDA2_BASE_(r2) /* 80360070 0035CFB0 EC 46 01 32 */ fmuls f2, f6, f4 /* 80360074 0035CFB4 C0 65 00 00 */ lfs f3, 0(r5) /* 80360078 0035CFB8 EC 84 01 72 */ fmuls f4, f4, f5 /* 8036007C 0035CFBC EC 42 01 72 */ fmuls f2, f2, f5 /* 80360080 0035CFC0 EC 40 00 B2 */ fmuls f2, f0, f2 /* 80360084 0035CFC4 EC 43 10 2A */ fadds f2, f3, f2 /* 80360088 0035CFC8 EC 44 10 2A */ fadds f2, f4, f2 /* 8036008C 0035CFCC D0 46 00 00 */ stfs f2, 0(r6) /* 80360090 0035CFD0 C0 65 00 0C */ lfs f3, 0xc(r5) /* 80360094 0035CFD4 C0 45 00 04 */ lfs f2, 4(r5) /* 80360098 0035CFD8 EC 21 00 F2 */ fmuls f1, f1, f3 /* 8036009C 0035CFDC EC 63 01 72 */ fmuls f3, f3, f5 /* 803600A0 0035CFE0 EC 21 01 72 */ fmuls f1, f1, f5 /* 803600A4 0035CFE4 EC 20 00 72 */ fmuls f1, f0, f1 /* 803600A8 0035CFE8 EC 22 08 2A */ fadds f1, f2, f1 /* 803600AC 0035CFEC EC 23 08 2A */ fadds f1, f3, f1 /* 803600B0 0035CFF0 D0 27 00 00 */ stfs f1, 0(r7) /* 803600B4 0035CFF4 C0 45 00 14 */ lfs f2, 0x14(r5) /* 803600B8 0035CFF8 C0 25 00 10 */ lfs f1, 0x10(r5) /* 803600BC 0035CFFC EC 22 08 28 */ fsubs f1, f2, f1 /* 803600C0 0035D000 EC 27 00 72 */ fmuls f1, f7, f1 /* 803600C4 0035D004 EC 00 00 72 */ fmuls f0, f0, f1 /* 803600C8 0035D008 EC 02 00 2A */ fadds f0, f2, f0 /* 803600CC 0035D00C D0 08 00 00 */ stfs f0, 0(r8) /* 803600D0 0035D010 4E 80 00 20 */ blr .global GXSetProjection GXSetProjection: /* 803600D4 0035D014 80 A2 CB 80 */ lwz r5, lbl_80456580-_SDA2_BASE_(r2) /* 803600D8 0035D018 2C 04 00 01 */ cmpwi r4, 1 /* 803600DC 0035D01C 90 85 04 D8 */ stw r4, 0x4d8(r5) /* 803600E0 0035D020 C0 03 00 00 */ lfs f0, 0(r3) /* 803600E4 0035D024 D0 05 04 DC */ stfs f0, 0x4dc(r5) /* 803600E8 0035D028 C0 03 00 14 */ lfs f0, 0x14(r3) /* 803600EC 0035D02C D0 05 04 E4 */ stfs f0, 0x4e4(r5) /* 803600F0 0035D030 C0 03 00 28 */ lfs f0, 0x28(r3) /* 803600F4 0035D034 D0 05 04 EC */ stfs f0, 0x4ec(r5) /* 803600F8 0035D038 C0 03 00 2C */ lfs f0, 0x2c(r3) /* 803600FC 0035D03C D0 05 04 F0 */ stfs f0, 0x4f0(r5) /* 80360100 0035D040 40 82 00 18 */ bne lbl_80360118 /* 80360104 0035D044 C0 03 00 0C */ lfs f0, 0xc(r3) /* 80360108 0035D048 D0 05 04 E0 */ stfs f0, 0x4e0(r5) /* 8036010C 0035D04C C0 03 00 1C */ lfs f0, 0x1c(r3) /* 80360110 0035D050 D0 05 04 E8 */ stfs f0, 0x4e8(r5) /* 80360114 0035D054 48 00 00 14 */ b lbl_80360128 lbl_80360118: /* 80360118 0035D058 C0 03 00 08 */ lfs f0, 8(r3) /* 8036011C 0035D05C D0 05 04 E0 */ stfs f0, 0x4e0(r5) /* 80360120 0035D060 C0 03 00 18 */ lfs f0, 0x18(r3) /* 80360124 0035D064 D0 05 04 E8 */ stfs f0, 0x4e8(r5) lbl_80360128: /* 80360128 0035D068 3C A0 CC 01 */ lis r5, 0xCC008000@ha /* 8036012C 0035D06C 80 82 CB 80 */ lwz r4, lbl_80456580-_SDA2_BASE_(r2) /* 80360130 0035D070 38 00 00 10 */ li r0, 0x10 /* 80360134 0035D074 3C 60 00 06 */ lis r3, 0x00061020@ha /* 80360138 0035D078 98 05 80 00 */ stb r0, 0xCC008000@l(r5) /* 8036013C 0035D07C 38 03 10 20 */ addi r0, r3, 0x00061020@l /* 80360140 0035D080 90 05 80 00 */ stw r0, -0x8000(r5) /* 80360144 0035D084 38 C5 80 00 */ addi r6, r5, -32768 /* 80360148 0035D088 38 64 04 DC */ addi r3, r4, 0x4dc /* 8036014C 0035D08C E0 43 00 00 */ psq_l f2, 0(r3), 0, qr0 /* 80360150 0035D090 E0 23 00 08 */ psq_l f1, 8(r3), 0, qr0 /* 80360154 0035D094 E0 03 00 10 */ psq_l f0, 16(r3), 0, qr0 /* 80360158 0035D098 F0 46 00 00 */ psq_st f2, 0(r6), 0, qr0 /* 8036015C 0035D09C F0 26 00 00 */ psq_st f1, 0(r6), 0, qr0 /* 80360160 0035D0A0 F0 06 00 00 */ psq_st f0, 0(r6), 0, qr0 /* 80360164 0035D0A4 80 64 04 D8 */ lwz r3, 0x4d8(r4) /* 80360168 0035D0A8 38 00 00 01 */ li r0, 1 /* 8036016C 0035D0AC 90 65 80 00 */ stw r3, -0x8000(r5) /* 80360170 0035D0B0 B0 04 00 02 */ sth r0, 2(r4) /* 80360174 0035D0B4 4E 80 00 20 */ blr .global GXSetProjectionv GXSetProjectionv: /* 80360178 0035D0B8 C0 22 CC 50 */ lfs f1, lbl_80456650-_SDA2_BASE_(r2) /* 8036017C 0035D0BC C0 03 00 00 */ lfs f0, 0(r3) /* 80360180 0035D0C0 FC 01 00 00 */ fcmpu cr0, f1, f0 /* 80360184 0035D0C4 40 82 00 0C */ bne lbl_80360190 /* 80360188 0035D0C8 38 00 00 00 */ li r0, 0 /* 8036018C 0035D0CC 48 00 00 08 */ b lbl_80360194 lbl_80360190: /* 80360190 0035D0D0 38 00 00 01 */ li r0, 1 lbl_80360194: /* 80360194 0035D0D4 80 A2 CB 80 */ lwz r5, lbl_80456580-_SDA2_BASE_(r2) /* 80360198 0035D0D8 38 63 00 04 */ addi r3, r3, 4 /* 8036019C 0035D0DC 90 05 04 D8 */ stw r0, 0x4d8(r5) /* 803601A0 0035D0E0 38 C5 04 DC */ addi r6, r5, 0x4dc /* 803601A4 0035D0E4 E0 43 00 00 */ psq_l f2, 0(r3), 0, qr0 /* 803601A8 0035D0E8 E0 23 00 08 */ psq_l f1, 8(r3), 0, qr0 /* 803601AC 0035D0EC E0 03 00 10 */ psq_l f0, 16(r3), 0, qr0 /* 803601B0 0035D0F0 F0 46 00 00 */ psq_st f2, 0(r6), 0, qr0 /* 803601B4 0035D0F4 F0 26 00 08 */ psq_st f1, 8(r6), 0, qr0 /* 803601B8 0035D0F8 F0 06 00 10 */ psq_st f0, 16(r6), 0, qr0 /* 803601BC 0035D0FC 3C 80 CC 01 */ lis r4, 0xCC008000@ha /* 803601C0 0035D100 38 00 00 10 */ li r0, 0x10 /* 803601C4 0035D104 3C 60 00 06 */ lis r3, 0x00061020@ha /* 803601C8 0035D108 98 04 80 00 */ stb r0, 0xCC008000@l(r4) /* 803601CC 0035D10C 38 03 10 20 */ addi r0, r3, 0x00061020@l /* 803601D0 0035D110 90 04 80 00 */ stw r0, -0x8000(r4) /* 803601D4 0035D114 38 64 80 00 */ addi r3, r4, -32768 /* 803601D8 0035D118 E0 46 00 00 */ psq_l f2, 0(r6), 0, qr0 /* 803601DC 0035D11C E0 26 00 08 */ psq_l f1, 8(r6), 0, qr0 /* 803601E0 0035D120 E0 06 00 10 */ psq_l f0, 16(r6), 0, qr0 /* 803601E4 0035D124 F0 43 00 00 */ psq_st f2, 0(r3), 0, qr0 /* 803601E8 0035D128 F0 23 00 00 */ psq_st f1, 0(r3), 0, qr0 /* 803601EC 0035D12C F0 03 00 00 */ psq_st f0, 0(r3), 0, qr0 /* 803601F0 0035D130 80 65 04 D8 */ lwz r3, 0x4d8(r5) /* 803601F4 0035D134 38 00 00 01 */ li r0, 1 /* 803601F8 0035D138 90 64 80 00 */ stw r3, -0x8000(r4) /* 803601FC 0035D13C B0 05 00 02 */ sth r0, 2(r5) /* 80360200 0035D140 4E 80 00 20 */ blr .global GXGetProjectionv GXGetProjectionv: /* 80360204 0035D144 80 82 CB 80 */ lwz r4, lbl_80456580-_SDA2_BASE_(r2) /* 80360208 0035D148 80 04 04 D8 */ lwz r0, 0x4d8(r4) /* 8036020C 0035D14C 28 00 00 00 */ cmplwi r0, 0 /* 80360210 0035D150 41 82 00 0C */ beq lbl_8036021C /* 80360214 0035D154 C0 02 CC 54 */ lfs f0, lbl_80456654-_SDA2_BASE_(r2) /* 80360218 0035D158 48 00 00 08 */ b lbl_80360220 lbl_8036021C: /* 8036021C 0035D15C C0 02 CC 50 */ lfs f0, lbl_80456650-_SDA2_BASE_(r2) lbl_80360220: /* 80360220 0035D160 D0 03 00 00 */ stfs f0, 0(r3) /* 80360224 0035D164 38 83 00 04 */ addi r4, r3, 4 /* 80360228 0035D168 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2) /* 8036022C 0035D16C 38 63 04 DC */ addi r3, r3, 0x4dc /* 80360230 0035D170 E0 43 00 00 */ psq_l f2, 0(r3), 0, qr0 /* 80360234 0035D174 E0 23 00 08 */ psq_l f1, 8(r3), 0, qr0 /* 80360238 0035D178 E0 03 00 10 */ psq_l f0, 16(r3), 0, qr0 /* 8036023C 0035D17C F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0 /* 80360240 0035D180 F0 24 00 08 */ psq_st f1, 8(r4), 0, qr0 /* 80360244 0035D184 F0 04 00 10 */ psq_st f0, 16(r4), 0, qr0 /* 80360248 0035D188 4E 80 00 20 */ blr .global GXLoadPosMtxImm GXLoadPosMtxImm: /* 8036024C 0035D18C 3C A0 CC 01 */ lis r5, 0xCC008000@ha /* 80360250 0035D190 38 00 00 10 */ li r0, 0x10 /* 80360254 0035D194 54 84 10 3A */ slwi r4, r4, 2 /* 80360258 0035D198 98 05 80 00 */ stb r0, 0xCC008000@l(r5) /* 8036025C 0035D19C 64 80 00 0B */ oris r0, r4, 0xb /* 80360260 0035D1A0 90 05 80 00 */ stw r0, -0x8000(r5) /* 80360264 0035D1A4 38 85 80 00 */ addi r4, r5, -32768 /* 80360268 0035D1A8 E0 A3 00 00 */ psq_l f5, 0(r3), 0, qr0 /* 8036026C 0035D1AC E0 83 00 08 */ psq_l f4, 8(r3), 0, qr0 /* 80360270 0035D1B0 E0 63 00 10 */ psq_l f3, 16(r3), 0, qr0 /* 80360274 0035D1B4 E0 43 00 18 */ psq_l f2, 24(r3), 0, qr0 /* 80360278 0035D1B8 E0 23 00 20 */ psq_l f1, 32(r3), 0, qr0 /* 8036027C 0035D1BC E0 03 00 28 */ psq_l f0, 40(r3), 0, qr0 /* 80360280 0035D1C0 F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0 /* 80360284 0035D1C4 F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0 /* 80360288 0035D1C8 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0 /* 8036028C 0035D1CC F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0 /* 80360290 0035D1D0 F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0 /* 80360294 0035D1D4 F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0 /* 80360298 0035D1D8 4E 80 00 20 */ blr .global GXLoadNrmMtxImm GXLoadNrmMtxImm: /* 8036029C 0035D1DC 1C A4 00 03 */ mulli r5, r4, 3 /* 803602A0 0035D1E0 3C 80 CC 01 */ lis r4, 0xCC008000@ha /* 803602A4 0035D1E4 38 00 00 10 */ li r0, 0x10 /* 803602A8 0035D1E8 38 A5 04 00 */ addi r5, r5, 0x400 /* 803602AC 0035D1EC 98 04 80 00 */ stb r0, 0xCC008000@l(r4) /* 803602B0 0035D1F0 64 A0 00 08 */ oris r0, r5, 8 /* 803602B4 0035D1F4 94 04 80 00 */ stwu r0, -0x8000(r4) /* 803602B8 0035D1F8 E0 A3 00 00 */ psq_l f5, 0(r3), 0, qr0 /* 803602BC 0035D1FC C0 83 00 08 */ lfs f4, 8(r3) /* 803602C0 0035D200 E0 63 00 10 */ psq_l f3, 16(r3), 0, qr0 /* 803602C4 0035D204 C0 43 00 18 */ lfs f2, 0x18(r3) /* 803602C8 0035D208 E0 23 00 20 */ psq_l f1, 32(r3), 0, qr0 /* 803602CC 0035D20C C0 03 00 28 */ lfs f0, 0x28(r3) /* 803602D0 0035D210 F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0 /* 803602D4 0035D214 D0 84 00 00 */ stfs f4, 0(r4) /* 803602D8 0035D218 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0 /* 803602DC 0035D21C D0 44 00 00 */ stfs f2, 0(r4) /* 803602E0 0035D220 F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0 /* 803602E4 0035D224 D0 04 00 00 */ stfs f0, 0(r4) /* 803602E8 0035D228 4E 80 00 20 */ blr .global GXSetCurrentMtx GXSetCurrentMtx: /* 803602EC 0035D22C 7C 08 02 A6 */ mflr r0 /* 803602F0 0035D230 90 01 00 04 */ stw r0, 4(r1) /* 803602F4 0035D234 94 21 FF F8 */ stwu r1, -8(r1) /* 803602F8 0035D238 80 82 CB 80 */ lwz r4, lbl_80456580-_SDA2_BASE_(r2) /* 803602FC 0035D23C 80 04 00 80 */ lwz r0, 0x80(r4) /* 80360300 0035D240 50 60 06 BE */ rlwimi r0, r3, 0, 0x1a, 0x1f /* 80360304 0035D244 38 60 00 00 */ li r3, 0 /* 80360308 0035D248 90 04 00 80 */ stw r0, 0x80(r4) /* 8036030C 0035D24C 48 00 02 ED */ bl __GXSetMatrixIndex /* 80360310 0035D250 80 01 00 0C */ lwz r0, 0xc(r1) /* 80360314 0035D254 38 21 00 08 */ addi r1, r1, 8 /* 80360318 0035D258 7C 08 03 A6 */ mtlr r0 /* 8036031C 0035D25C 4E 80 00 20 */ blr .global GXLoadTexMtxImm GXLoadTexMtxImm: /* 80360320 0035D260 28 04 00 40 */ cmplwi r4, 0x40 /* 80360324 0035D264 41 80 00 14 */ blt lbl_80360338 /* 80360328 0035D268 38 04 FF C0 */ addi r0, r4, -64 /* 8036032C 0035D26C 54 04 10 3A */ slwi r4, r0, 2 /* 80360330 0035D270 38 E4 05 00 */ addi r7, r4, 0x500 /* 80360334 0035D274 48 00 00 08 */ b lbl_8036033C lbl_80360338: /* 80360338 0035D278 54 87 10 3A */ slwi r7, r4, 2 lbl_8036033C: /* 8036033C 0035D27C 2C 05 00 01 */ cmpwi r5, 1 /* 80360340 0035D280 40 82 00 0C */ bne lbl_8036034C /* 80360344 0035D284 38 80 00 08 */ li r4, 8 /* 80360348 0035D288 48 00 00 08 */ b lbl_80360350 lbl_8036034C: /* 8036034C 0035D28C 38 80 00 0C */ li r4, 0xc lbl_80360350: /* 80360350 0035D290 38 04 FF FF */ addi r0, r4, -1 /* 80360354 0035D294 54 06 80 1E */ slwi r6, r0, 0x10 /* 80360358 0035D298 38 00 00 10 */ li r0, 0x10 /* 8036035C 0035D29C 3C 80 CC 01 */ lis r4, 0xCC008000@ha /* 80360360 0035D2A0 98 04 80 00 */ stb r0, 0xCC008000@l(r4) /* 80360364 0035D2A4 7C E0 33 78 */ or r0, r7, r6 /* 80360368 0035D2A8 2C 05 00 00 */ cmpwi r5, 0 /* 8036036C 0035D2AC 90 04 80 00 */ stw r0, -0x8000(r4) /* 80360370 0035D2B0 40 82 00 3C */ bne lbl_803603AC /* 80360374 0035D2B4 38 84 80 00 */ addi r4, r4, -32768 /* 80360378 0035D2B8 E0 A3 00 00 */ psq_l f5, 0(r3), 0, qr0 /* 8036037C 0035D2BC E0 83 00 08 */ psq_l f4, 8(r3), 0, qr0 /* 80360380 0035D2C0 E0 63 00 10 */ psq_l f3, 16(r3), 0, qr0 /* 80360384 0035D2C4 E0 43 00 18 */ psq_l f2, 24(r3), 0, qr0 /* 80360388 0035D2C8 E0 23 00 20 */ psq_l f1, 32(r3), 0, qr0 /* 8036038C 0035D2CC E0 03 00 28 */ psq_l f0, 40(r3), 0, qr0 /* 80360390 0035D2D0 F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0 /* 80360394 0035D2D4 F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0 /* 80360398 0035D2D8 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0 /* 8036039C 0035D2DC F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0 /* 803603A0 0035D2E0 F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0 /* 803603A4 0035D2E4 F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0 /* 803603A8 0035D2E8 4E 80 00 20 */ blr lbl_803603AC: /* 803603AC 0035D2EC 38 84 80 00 */ addi r4, r4, -32768 /* 803603B0 0035D2F0 E0 63 00 00 */ psq_l f3, 0(r3), 0, qr0 /* 803603B4 0035D2F4 E0 43 00 08 */ psq_l f2, 8(r3), 0, qr0 /* 803603B8 0035D2F8 E0 23 00 10 */ psq_l f1, 16(r3), 0, qr0 /* 803603BC 0035D2FC E0 03 00 18 */ psq_l f0, 24(r3), 0, qr0 /* 803603C0 0035D300 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0 /* 803603C4 0035D304 F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0 /* 803603C8 0035D308 F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0 /* 803603CC 0035D30C F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0 /* 803603D0 0035D310 4E 80 00 20 */ blr .global __GXSetViewport __GXSetViewport: /* 803603D4 0035D314 80 C2 CB 80 */ lwz r6, lbl_80456580-_SDA2_BASE_(r2) /* 803603D8 0035D318 3C 60 00 05 */ lis r3, 0x0005101A@ha /* 803603DC 0035D31C C0 22 CC 58 */ lfs f1, lbl_80456658-_SDA2_BASE_(r2) /* 803603E0 0035D320 38 A0 00 10 */ li r5, 0x10 /* 803603E4 0035D324 C0 66 05 00 */ lfs f3, 0x500(r6) /* 803603E8 0035D328 C0 46 04 FC */ lfs f2, 0x4fc(r6) /* 803603EC 0035D32C 3C 80 CC 01 */ lis r4, 0xCC008000@ha /* 803603F0 0035D330 FC 00 18 50 */ fneg f0, f3 /* 803603F4 0035D334 C0 A6 04 F4 */ lfs f5, 0x4f4(r6) /* 803603F8 0035D338 EC E2 00 72 */ fmuls f7, f2, f1 /* 803603FC 0035D33C C0 86 04 F8 */ lfs f4, 0x4f8(r6) /* 80360400 0035D340 38 03 10 1A */ addi r0, r3, 0x0005101A@l /* 80360404 0035D344 EC 63 00 72 */ fmuls f3, f3, f1 /* 80360408 0035D348 C0 46 05 08 */ lfs f2, 0x508(r6) /* 8036040C 0035D34C C0 C6 05 10 */ lfs f6, 0x510(r6) /* 80360410 0035D350 ED 00 00 72 */ fmuls f8, f0, f1 /* 80360414 0035D354 C0 26 05 04 */ lfs f1, 0x504(r6) /* 80360418 0035D358 C0 06 05 0C */ lfs f0, 0x50c(r6) /* 8036041C 0035D35C ED 22 01 B2 */ fmuls f9, f2, f6 /* 80360420 0035D360 EC 21 01 B2 */ fmuls f1, f1, f6 /* 80360424 0035D364 C0 C2 CC 5C */ lfs f6, lbl_8045665C-_SDA2_BASE_(r2) /* 80360428 0035D368 98 A4 80 00 */ stb r5, 0xCC008000@l(r4) /* 8036042C 0035D36C EC A5 38 2A */ fadds f5, f5, f7 /* 80360430 0035D370 90 04 80 00 */ stw r0, -0x8000(r4) /* 80360434 0035D374 EC 44 18 2A */ fadds f2, f4, f3 /* 80360438 0035D378 D0 E4 80 00 */ stfs f7, -0x8000(r4) /* 8036043C 0035D37C EC 29 08 28 */ fsubs f1, f9, f1 /* 80360440 0035D380 EC 66 28 2A */ fadds f3, f6, f5 /* 80360444 0035D384 D1 04 80 00 */ stfs f8, -0x8000(r4) /* 80360448 0035D388 EC 46 10 2A */ fadds f2, f6, f2 /* 8036044C 0035D38C D0 24 80 00 */ stfs f1, -0x8000(r4) /* 80360450 0035D390 EC 09 00 2A */ fadds f0, f9, f0 /* 80360454 0035D394 D0 64 80 00 */ stfs f3, -0x8000(r4) /* 80360458 0035D398 D0 44 80 00 */ stfs f2, -0x8000(r4) /* 8036045C 0035D39C D0 04 80 00 */ stfs f0, -0x8000(r4) /* 80360460 0035D3A0 4E 80 00 20 */ blr .global GXSetViewport GXSetViewport: /* 80360464 0035D3A4 7C 08 02 A6 */ mflr r0 /* 80360468 0035D3A8 90 01 00 04 */ stw r0, 4(r1) /* 8036046C 0035D3AC 94 21 FF F8 */ stwu r1, -8(r1) /* 80360470 0035D3B0 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2) /* 80360474 0035D3B4 D0 23 04 F4 */ stfs f1, 0x4f4(r3) /* 80360478 0035D3B8 D0 43 04 F8 */ stfs f2, 0x4f8(r3) /* 8036047C 0035D3BC D0 63 04 FC */ stfs f3, 0x4fc(r3) /* 80360480 0035D3C0 D0 83 05 00 */ stfs f4, 0x500(r3) /* 80360484 0035D3C4 D0 A3 05 04 */ stfs f5, 0x504(r3) /* 80360488 0035D3C8 D0 C3 05 08 */ stfs f6, 0x508(r3) /* 8036048C 0035D3CC 4B FF FF 49 */ bl __GXSetViewport /* 80360490 0035D3D0 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2) /* 80360494 0035D3D4 38 00 00 01 */ li r0, 1 /* 80360498 0035D3D8 B0 03 00 02 */ sth r0, 2(r3) /* 8036049C 0035D3DC 80 01 00 0C */ lwz r0, 0xc(r1) /* 803604A0 0035D3E0 38 21 00 08 */ addi r1, r1, 8 /* 803604A4 0035D3E4 7C 08 03 A6 */ mtlr r0 /* 803604A8 0035D3E8 4E 80 00 20 */ blr .global GXGetViewportv GXGetViewportv: /* 803604AC 0035D3EC 80 82 CB 80 */ lwz r4, lbl_80456580-_SDA2_BASE_(r2) /* 803604B0 0035D3F0 38 84 04 F4 */ addi r4, r4, 0x4f4 /* 803604B4 0035D3F4 E0 44 00 00 */ psq_l f2, 0(r4), 0, qr0 /* 803604B8 0035D3F8 E0 24 00 08 */ psq_l f1, 8(r4), 0, qr0 /* 803604BC 0035D3FC E0 04 00 10 */ psq_l f0, 16(r4), 0, qr0 /* 803604C0 0035D400 F0 43 00 00 */ psq_st f2, 0(r3), 0, qr0 /* 803604C4 0035D404 F0 23 00 08 */ psq_st f1, 8(r3), 0, qr0 /* 803604C8 0035D408 F0 03 00 10 */ psq_st f0, 16(r3), 0, qr0 /* 803604CC 0035D40C 4E 80 00 20 */ blr .global GXSetScissor GXSetScissor: /* 803604D0 0035D410 80 E2 CB 80 */ lwz r7, lbl_80456580-_SDA2_BASE_(r2) /* 803604D4 0035D414 38 84 01 56 */ addi r4, r4, 0x156 /* 803604D8 0035D418 38 C6 FF FF */ addi r6, r6, -1 /* 803604DC 0035D41C 80 07 00 F8 */ lwz r0, 0xf8(r7) /* 803604E0 0035D420 50 80 05 7E */ rlwimi r0, r4, 0, 0x15, 0x1f /* 803604E4 0035D424 38 63 01 56 */ addi r3, r3, 0x156 /* 803604E8 0035D428 90 07 00 F8 */ stw r0, 0xf8(r7) /* 803604EC 0035D42C 39 05 FF FF */ addi r8, r5, -1 /* 803604F0 0035D430 7C C4 32 14 */ add r6, r4, r6 /* 803604F4 0035D434 80 07 00 F8 */ lwz r0, 0xf8(r7) /* 803604F8 0035D438 50 60 62 66 */ rlwimi r0, r3, 0xc, 9, 0x13 /* 803604FC 0035D43C 7D 03 42 14 */ add r8, r3, r8 /* 80360500 0035D440 90 07 00 F8 */ stw r0, 0xf8(r7) /* 80360504 0035D444 38 A0 00 61 */ li r5, 0x61 /* 80360508 0035D448 3C 80 CC 01 */ lis r4, 0xCC008000@ha /* 8036050C 0035D44C 80 67 00 FC */ lwz r3, 0xfc(r7) /* 80360510 0035D450 50 C3 05 7E */ rlwimi r3, r6, 0, 0x15, 0x1f /* 80360514 0035D454 38 00 00 00 */ li r0, 0 /* 80360518 0035D458 90 67 00 FC */ stw r3, 0xfc(r7) /* 8036051C 0035D45C 80 67 00 FC */ lwz r3, 0xfc(r7) /* 80360520 0035D460 51 03 62 66 */ rlwimi r3, r8, 0xc, 9, 0x13 /* 80360524 0035D464 90 67 00 FC */ stw r3, 0xfc(r7) /* 80360528 0035D468 98 A4 80 00 */ stb r5, 0xCC008000@l(r4) /* 8036052C 0035D46C 80 67 00 F8 */ lwz r3, 0xf8(r7) /* 80360530 0035D470 90 64 80 00 */ stw r3, -0x8000(r4) /* 80360534 0035D474 98 A4 80 00 */ stb r5, -0x8000(r4) /* 80360538 0035D478 80 67 00 FC */ lwz r3, 0xfc(r7) /* 8036053C 0035D47C 90 64 80 00 */ stw r3, -0x8000(r4) /* 80360540 0035D480 B0 07 00 02 */ sth r0, 2(r7) /* 80360544 0035D484 4E 80 00 20 */ blr .global GXGetScissor GXGetScissor: /* 80360548 0035D488 81 02 CB 80 */ lwz r8, lbl_80456580-_SDA2_BASE_(r2) /* 8036054C 0035D48C 80 E8 00 F8 */ lwz r7, 0xf8(r8) /* 80360550 0035D490 81 08 00 FC */ lwz r8, 0xfc(r8) /* 80360554 0035D494 54 E9 A5 7E */ rlwinm r9, r7, 0x14, 0x15, 0x1f /* 80360558 0035D498 38 09 FE AA */ addi r0, r9, -342 /* 8036055C 0035D49C 90 03 00 00 */ stw r0, 0(r3) /* 80360560 0035D4A0 54 E7 05 7E */ clrlwi r7, r7, 0x15 /* 80360564 0035D4A4 38 67 FE AA */ addi r3, r7, -342 /* 80360568 0035D4A8 90 64 00 00 */ stw r3, 0(r4) /* 8036056C 0035D4AC 55 00 A5 7E */ rlwinm r0, r8, 0x14, 0x15, 0x1f /* 80360570 0035D4B0 7C 69 00 50 */ subf r3, r9, r0 /* 80360574 0035D4B4 38 03 00 01 */ addi r0, r3, 1 /* 80360578 0035D4B8 55 04 05 7E */ clrlwi r4, r8, 0x15 /* 8036057C 0035D4BC 90 05 00 00 */ stw r0, 0(r5) /* 80360580 0035D4C0 7C 67 20 50 */ subf r3, r7, r4 /* 80360584 0035D4C4 38 03 00 01 */ addi r0, r3, 1 /* 80360588 0035D4C8 90 06 00 00 */ stw r0, 0(r6) /* 8036058C 0035D4CC 4E 80 00 20 */ blr .global GXSetScissorBoxOffset GXSetScissorBoxOffset: /* 80360590 0035D4D0 38 A3 01 56 */ addi r5, r3, 0x156 /* 80360594 0035D4D4 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2) /* 80360598 0035D4D8 38 04 01 56 */ addi r0, r4, 0x156 /* 8036059C 0035D4DC 38 80 00 00 */ li r4, 0 /* 803605A0 0035D4E0 50 A4 FD BE */ rlwimi r4, r5, 0x1f, 0x16, 0x1f /* 803605A4 0035D4E4 38 A4 00 00 */ addi r5, r4, 0 /* 803605A8 0035D4E8 50 05 4B 2A */ rlwimi r5, r0, 9, 0xc, 0x15 /* 803605AC 0035D4EC 38 00 00 61 */ li r0, 0x61 /* 803605B0 0035D4F0 3C 80 CC 01 */ lis r4, 0xCC008000@ha /* 803605B4 0035D4F4 98 04 80 00 */ stb r0, 0xCC008000@l(r4) /* 803605B8 0035D4F8 38 00 00 59 */ li r0, 0x59 /* 803605BC 0035D4FC 50 05 C0 0E */ rlwimi r5, r0, 0x18, 0, 7 /* 803605C0 0035D500 90 A4 80 00 */ stw r5, -0x8000(r4) /* 803605C4 0035D504 38 00 00 00 */ li r0, 0 /* 803605C8 0035D508 B0 03 00 02 */ sth r0, 2(r3) /* 803605CC 0035D50C 4E 80 00 20 */ blr .global GXSetClipMode GXSetClipMode: /* 803605D0 0035D510 38 00 00 10 */ li r0, 0x10 /* 803605D4 0035D514 80 82 CB 80 */ lwz r4, lbl_80456580-_SDA2_BASE_(r2) /* 803605D8 0035D518 3C C0 CC 01 */ lis r6, 0xCC008000@ha /* 803605DC 0035D51C 98 06 80 00 */ stb r0, 0xCC008000@l(r6) /* 803605E0 0035D520 38 A0 10 05 */ li r5, 0x1005 /* 803605E4 0035D524 38 00 00 01 */ li r0, 1 /* 803605E8 0035D528 90 A6 80 00 */ stw r5, -0x8000(r6) /* 803605EC 0035D52C 90 66 80 00 */ stw r3, -0x8000(r6) /* 803605F0 0035D530 B0 04 00 02 */ sth r0, 2(r4) /* 803605F4 0035D534 4E 80 00 20 */ blr .global __GXSetMatrixIndex __GXSetMatrixIndex: /* 803605F8 0035D538 2C 03 00 05 */ cmpwi r3, 5 /* 803605FC 0035D53C 40 80 00 3C */ bge lbl_80360638 /* 80360600 0035D540 38 00 00 08 */ li r0, 8 /* 80360604 0035D544 80 82 CB 80 */ lwz r4, lbl_80456580-_SDA2_BASE_(r2) /* 80360608 0035D548 3C A0 CC 01 */ lis r5, 0xCC008000@ha /* 8036060C 0035D54C 98 05 80 00 */ stb r0, 0xCC008000@l(r5) /* 80360610 0035D550 38 00 00 30 */ li r0, 0x30 /* 80360614 0035D554 38 60 00 10 */ li r3, 0x10 /* 80360618 0035D558 98 05 80 00 */ stb r0, -0x8000(r5) /* 8036061C 0035D55C 38 00 10 18 */ li r0, 0x1018 /* 80360620 0035D560 80 84 00 80 */ lwz r4, 0x80(r4) /* 80360624 0035D564 90 85 80 00 */ stw r4, -0x8000(r5) /* 80360628 0035D568 98 65 80 00 */ stb r3, -0x8000(r5) /* 8036062C 0035D56C 90 05 80 00 */ stw r0, -0x8000(r5) /* 80360630 0035D570 90 85 80 00 */ stw r4, -0x8000(r5) /* 80360634 0035D574 48 00 00 38 */ b lbl_8036066C lbl_80360638: /* 80360638 0035D578 38 00 00 08 */ li r0, 8 /* 8036063C 0035D57C 80 82 CB 80 */ lwz r4, lbl_80456580-_SDA2_BASE_(r2) /* 80360640 0035D580 3C A0 CC 01 */ lis r5, 0xCC008000@ha /* 80360644 0035D584 98 05 80 00 */ stb r0, 0xCC008000@l(r5) /* 80360648 0035D588 38 00 00 40 */ li r0, 0x40 /* 8036064C 0035D58C 38 60 00 10 */ li r3, 0x10 /* 80360650 0035D590 98 05 80 00 */ stb r0, -0x8000(r5) /* 80360654 0035D594 38 00 10 19 */ li r0, 0x1019 /* 80360658 0035D598 80 84 00 84 */ lwz r4, 0x84(r4) /* 8036065C 0035D59C 90 85 80 00 */ stw r4, -0x8000(r5) /* 80360660 0035D5A0 98 65 80 00 */ stb r3, -0x8000(r5) /* 80360664 0035D5A4 90 05 80 00 */ stw r0, -0x8000(r5) /* 80360668 0035D5A8 90 85 80 00 */ stw r4, -0x8000(r5) lbl_8036066C: /* 8036066C 0035D5AC 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2) /* 80360670 0035D5B0 38 00 00 01 */ li r0, 1 /* 80360674 0035D5B4 B0 03 00 02 */ sth r0, 2(r3) /* 80360678 0035D5B8 4E 80 00 20 */ blr