.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global GXInitLightAttn GXInitLightAttn: /* 80281F38 0027DB98 D0 23 00 10 */ stfs f1, 0x10(r3) /* 80281F3C 0027DB9C D0 43 00 14 */ stfs f2, 0x14(r3) /* 80281F40 0027DBA0 D0 63 00 18 */ stfs f3, 0x18(r3) /* 80281F44 0027DBA4 D0 83 00 1C */ stfs f4, 0x1c(r3) /* 80281F48 0027DBA8 D0 A3 00 20 */ stfs f5, 0x20(r3) /* 80281F4C 0027DBAC D0 C3 00 24 */ stfs f6, 0x24(r3) /* 80281F50 0027DBB0 4E 80 00 20 */ blr .global GXInitLightSpot GXInitLightSpot: /* 80281F54 0027DBB4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80281F58 0027DBB8 7C 08 02 A6 */ mflr r0 /* 80281F5C 0027DBBC C0 02 A1 08 */ lfs f0, lbl_80642708-_SDA2_BASE_(r2) /* 80281F60 0027DBC0 90 01 00 14 */ stw r0, 0x14(r1) /* 80281F64 0027DBC4 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 80281F68 0027DBC8 93 E1 00 0C */ stw r31, 0xc(r1) /* 80281F6C 0027DBCC 7C 9F 23 78 */ mr r31, r4 /* 80281F70 0027DBD0 93 C1 00 08 */ stw r30, 8(r1) /* 80281F74 0027DBD4 7C 7E 1B 78 */ mr r30, r3 /* 80281F78 0027DBD8 4C 40 13 82 */ cror 2, 0, 2 /* 80281F7C 0027DBDC 41 82 00 10 */ beq lbl_80281F8C /* 80281F80 0027DBE0 C0 02 A1 0C */ lfs f0, lbl_8064270C-_SDA2_BASE_(r2) /* 80281F84 0027DBE4 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 80281F88 0027DBE8 40 81 00 08 */ ble lbl_80281F90 lbl_80281F8C: /* 80281F8C 0027DBEC 3B E0 00 00 */ li r31, 0 lbl_80281F90: /* 80281F90 0027DBF0 C0 42 A1 10 */ lfs f2, lbl_80642710-_SDA2_BASE_(r2) /* 80281F94 0027DBF4 C0 02 A1 14 */ lfs f0, lbl_80642714-_SDA2_BASE_(r2) /* 80281F98 0027DBF8 EC 22 00 72 */ fmuls f1, f2, f1 /* 80281F9C 0027DBFC EC 21 00 24 */ fdivs f1, f1, f0 /* 80281FA0 0027DC00 4B F5 20 D9 */ bl cos /* 80281FA4 0027DC04 28 1F 00 06 */ cmplwi r31, 6 /* 80281FA8 0027DC08 FC A0 08 18 */ frsp f5, f1 /* 80281FAC 0027DC0C 41 81 01 00 */ bgt lbl_802820AC /* 80281FB0 0027DC10 3C 60 80 43 */ lis r3, lbl_80435780@ha /* 80281FB4 0027DC14 57 E0 10 3A */ slwi r0, r31, 2 /* 80281FB8 0027DC18 38 63 57 80 */ addi r3, r3, lbl_80435780@l /* 80281FBC 0027DC1C 7C 63 00 2E */ lwzx r3, r3, r0 /* 80281FC0 0027DC20 7C 69 03 A6 */ mtctr r3 /* 80281FC4 0027DC24 4E 80 04 20 */ bctr /* 80281FC8 0027DC28 C0 02 A1 18 */ lfs f0, lbl_80642718-_SDA2_BASE_(r2) /* 80281FCC 0027DC2C C0 22 A1 1C */ lfs f1, lbl_8064271C-_SDA2_BASE_(r2) /* 80281FD0 0027DC30 EC 60 01 72 */ fmuls f3, f0, f5 /* 80281FD4 0027DC34 C0 C2 A1 08 */ lfs f6, lbl_80642708-_SDA2_BASE_(r2) /* 80281FD8 0027DC38 48 00 00 E0 */ b lbl_802820B8 /* 80281FDC 0027DC3C C0 42 A1 20 */ lfs f2, lbl_80642720-_SDA2_BASE_(r2) /* 80281FE0 0027DC40 FC 00 28 50 */ fneg f0, f5 /* 80281FE4 0027DC44 C0 C2 A1 08 */ lfs f6, lbl_80642708-_SDA2_BASE_(r2) /* 80281FE8 0027DC48 EC 22 28 28 */ fsubs f1, f2, f5 /* 80281FEC 0027DC4C EC 22 08 24 */ fdivs f1, f2, f1 /* 80281FF0 0027DC50 EC 60 00 72 */ fmuls f3, f0, f1 /* 80281FF4 0027DC54 48 00 00 C4 */ b lbl_802820B8 /* 80281FF8 0027DC58 C0 42 A1 20 */ lfs f2, lbl_80642720-_SDA2_BASE_(r2) /* 80281FFC 0027DC5C FC 00 28 50 */ fneg f0, f5 /* 80282000 0027DC60 C0 62 A1 08 */ lfs f3, lbl_80642708-_SDA2_BASE_(r2) /* 80282004 0027DC64 EC 22 28 28 */ fsubs f1, f2, f5 /* 80282008 0027DC68 EC C2 08 24 */ fdivs f6, f2, f1 /* 8028200C 0027DC6C EC 20 01 B2 */ fmuls f1, f0, f6 /* 80282010 0027DC70 48 00 00 A8 */ b lbl_802820B8 /* 80282014 0027DC74 C0 62 A1 20 */ lfs f3, lbl_80642720-_SDA2_BASE_(r2) /* 80282018 0027DC78 C0 22 A1 24 */ lfs f1, lbl_80642724-_SDA2_BASE_(r2) /* 8028201C 0027DC7C EC 43 28 28 */ fsubs f2, f3, f5 /* 80282020 0027DC80 EC 05 08 28 */ fsubs f0, f5, f1 /* 80282024 0027DC84 EC 42 00 B2 */ fmuls f2, f2, f2 /* 80282028 0027DC88 EC 05 00 32 */ fmuls f0, f5, f0 /* 8028202C 0027DC8C EC 43 10 24 */ fdivs f2, f3, f2 /* 80282030 0027DC90 EC 62 00 32 */ fmuls f3, f2, f0 /* 80282034 0027DC94 EC 21 00 B2 */ fmuls f1, f1, f2 /* 80282038 0027DC98 FC C0 10 50 */ fneg f6, f2 /* 8028203C 0027DC9C 48 00 00 7C */ b lbl_802820B8 /* 80282040 0027DCA0 C0 82 A1 20 */ lfs f4, lbl_80642720-_SDA2_BASE_(r2) /* 80282044 0027DCA4 C0 02 A1 2C */ lfs f0, lbl_8064272C-_SDA2_BASE_(r2) /* 80282048 0027DCA8 EC 64 28 28 */ fsubs f3, f4, f5 /* 8028204C 0027DCAC C0 42 A1 28 */ lfs f2, lbl_80642728-_SDA2_BASE_(r2) /* 80282050 0027DCB0 EC 24 28 2A */ fadds f1, f4, f5 /* 80282054 0027DCB4 EC 63 00 F2 */ fmuls f3, f3, f3 /* 80282058 0027DCB8 EC 00 00 72 */ fmuls f0, f0, f1 /* 8028205C 0027DCBC EC 24 18 24 */ fdivs f1, f4, f3 /* 80282060 0027DCC0 EC C2 00 72 */ fmuls f6, f2, f1 /* 80282064 0027DCC4 EC 20 00 72 */ fmuls f1, f0, f1 /* 80282068 0027DCC8 EC 66 01 72 */ fmuls f3, f6, f5 /* 8028206C 0027DCCC 48 00 00 4C */ b lbl_802820B8 /* 80282070 0027DCD0 C0 82 A1 20 */ lfs f4, lbl_80642720-_SDA2_BASE_(r2) /* 80282074 0027DCD4 C0 02 A1 24 */ lfs f0, lbl_80642724-_SDA2_BASE_(r2) /* 80282078 0027DCD8 EC 64 28 28 */ fsubs f3, f4, f5 /* 8028207C 0027DCDC C0 22 A1 2C */ lfs f1, lbl_8064272C-_SDA2_BASE_(r2) /* 80282080 0027DCE0 EC 40 01 72 */ fmuls f2, f0, f5 /* 80282084 0027DCE4 C0 02 A1 30 */ lfs f0, lbl_80642730-_SDA2_BASE_(r2) /* 80282088 0027DCE8 EC 21 01 72 */ fmuls f1, f1, f5 /* 8028208C 0027DCEC EC 63 00 F2 */ fmuls f3, f3, f3 /* 80282090 0027DCF0 EC 42 01 72 */ fmuls f2, f2, f5 /* 80282094 0027DCF4 EC 64 18 24 */ fdivs f3, f4, f3 /* 80282098 0027DCF8 EC 43 00 B2 */ fmuls f2, f3, f2 /* 8028209C 0027DCFC EC 21 00 F2 */ fmuls f1, f1, f3 /* 802820A0 0027DD00 EC C0 00 F2 */ fmuls f6, f0, f3 /* 802820A4 0027DD04 EC 64 10 28 */ fsubs f3, f4, f2 /* 802820A8 0027DD08 48 00 00 10 */ b lbl_802820B8 lbl_802820AC: /* 802820AC 0027DD0C C0 22 A1 08 */ lfs f1, lbl_80642708-_SDA2_BASE_(r2) /* 802820B0 0027DD10 C0 62 A1 20 */ lfs f3, lbl_80642720-_SDA2_BASE_(r2) /* 802820B4 0027DD14 FC C0 08 90 */ fmr f6, f1 lbl_802820B8: /* 802820B8 0027DD18 D0 7E 00 10 */ stfs f3, 0x10(r30) /* 802820BC 0027DD1C D0 3E 00 14 */ stfs f1, 0x14(r30) /* 802820C0 0027DD20 D0 DE 00 18 */ stfs f6, 0x18(r30) /* 802820C4 0027DD24 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802820C8 0027DD28 83 C1 00 08 */ lwz r30, 8(r1) /* 802820CC 0027DD2C 80 01 00 14 */ lwz r0, 0x14(r1) /* 802820D0 0027DD30 7C 08 03 A6 */ mtlr r0 /* 802820D4 0027DD34 38 21 00 10 */ addi r1, r1, 0x10 /* 802820D8 0027DD38 4E 80 00 20 */ blr .global GXInitLightDistAttn GXInitLightDistAttn: /* 802820DC 0027DD3C C0 02 A1 08 */ lfs f0, lbl_80642708-_SDA2_BASE_(r2) /* 802820E0 0027DD40 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 802820E4 0027DD44 40 80 00 08 */ bge lbl_802820EC /* 802820E8 0027DD48 38 80 00 00 */ li r4, 0 lbl_802820EC: /* 802820EC 0027DD4C C0 02 A1 08 */ lfs f0, lbl_80642708-_SDA2_BASE_(r2) /* 802820F0 0027DD50 FC 02 00 40 */ fcmpo cr0, f2, f0 /* 802820F4 0027DD54 4C 40 13 82 */ cror 2, 0, 2 /* 802820F8 0027DD58 41 82 00 14 */ beq lbl_8028210C /* 802820FC 0027DD5C C0 02 A1 20 */ lfs f0, lbl_80642720-_SDA2_BASE_(r2) /* 80282100 0027DD60 FC 02 00 40 */ fcmpo cr0, f2, f0 /* 80282104 0027DD64 4C 41 13 82 */ cror 2, 1, 2 /* 80282108 0027DD68 40 82 00 08 */ bne lbl_80282110 lbl_8028210C: /* 8028210C 0027DD6C 38 80 00 00 */ li r4, 0 lbl_80282110: /* 80282110 0027DD70 2C 04 00 02 */ cmpwi r4, 2 /* 80282114 0027DD74 41 82 00 3C */ beq lbl_80282150 /* 80282118 0027DD78 40 80 00 14 */ bge lbl_8028212C /* 8028211C 0027DD7C 2C 04 00 00 */ cmpwi r4, 0 /* 80282120 0027DD80 41 82 00 70 */ beq lbl_80282190 /* 80282124 0027DD84 40 80 00 14 */ bge lbl_80282138 /* 80282128 0027DD88 48 00 00 68 */ b lbl_80282190 lbl_8028212C: /* 8028212C 0027DD8C 2C 04 00 04 */ cmpwi r4, 4 /* 80282130 0027DD90 40 80 00 60 */ bge lbl_80282190 /* 80282134 0027DD94 48 00 00 40 */ b lbl_80282174 lbl_80282138: /* 80282138 0027DD98 C0 A2 A1 20 */ lfs f5, lbl_80642720-_SDA2_BASE_(r2) /* 8028213C 0027DD9C EC 02 00 72 */ fmuls f0, f2, f1 /* 80282140 0027DDA0 C0 82 A1 08 */ lfs f4, lbl_80642708-_SDA2_BASE_(r2) /* 80282144 0027DDA4 EC 25 10 28 */ fsubs f1, f5, f2 /* 80282148 0027DDA8 EC 61 00 24 */ fdivs f3, f1, f0 /* 8028214C 0027DDAC 48 00 00 50 */ b lbl_8028219C lbl_80282150: /* 80282150 0027DDB0 C0 A2 A1 20 */ lfs f5, lbl_80642720-_SDA2_BASE_(r2) /* 80282154 0027DDB4 EC 62 00 72 */ fmuls f3, f2, f1 /* 80282158 0027DDB8 C0 82 A1 34 */ lfs f4, lbl_80642734-_SDA2_BASE_(r2) /* 8028215C 0027DDBC EC 45 10 28 */ fsubs f2, f5, f2 /* 80282160 0027DDC0 EC 01 00 F2 */ fmuls f0, f1, f3 /* 80282164 0027DDC4 EC 24 00 B2 */ fmuls f1, f4, f2 /* 80282168 0027DDC8 EC 61 18 24 */ fdivs f3, f1, f3 /* 8028216C 0027DDCC EC 81 00 24 */ fdivs f4, f1, f0 /* 80282170 0027DDD0 48 00 00 2C */ b lbl_8028219C lbl_80282174: /* 80282174 0027DDD4 EC 02 00 72 */ fmuls f0, f2, f1 /* 80282178 0027DDD8 C0 A2 A1 20 */ lfs f5, lbl_80642720-_SDA2_BASE_(r2) /* 8028217C 0027DDDC C0 62 A1 08 */ lfs f3, lbl_80642708-_SDA2_BASE_(r2) /* 80282180 0027DDE0 EC 45 10 28 */ fsubs f2, f5, f2 /* 80282184 0027DDE4 EC 01 00 32 */ fmuls f0, f1, f0 /* 80282188 0027DDE8 EC 82 00 24 */ fdivs f4, f2, f0 /* 8028218C 0027DDEC 48 00 00 10 */ b lbl_8028219C lbl_80282190: /* 80282190 0027DDF0 C0 62 A1 08 */ lfs f3, lbl_80642708-_SDA2_BASE_(r2) /* 80282194 0027DDF4 C0 A2 A1 20 */ lfs f5, lbl_80642720-_SDA2_BASE_(r2) /* 80282198 0027DDF8 FC 80 18 90 */ fmr f4, f3 lbl_8028219C: /* 8028219C 0027DDFC D0 A3 00 1C */ stfs f5, 0x1c(r3) /* 802821A0 0027DE00 D0 63 00 20 */ stfs f3, 0x20(r3) /* 802821A4 0027DE04 D0 83 00 24 */ stfs f4, 0x24(r3) /* 802821A8 0027DE08 4E 80 00 20 */ blr .global GXInitLightPos GXInitLightPos: /* 802821AC 0027DE0C D0 23 00 28 */ stfs f1, 0x28(r3) /* 802821B0 0027DE10 D0 43 00 2C */ stfs f2, 0x2c(r3) /* 802821B4 0027DE14 D0 63 00 30 */ stfs f3, 0x30(r3) /* 802821B8 0027DE18 4E 80 00 20 */ blr .global GXInitLightDir GXInitLightDir: /* 802821BC 0027DE1C FC 80 08 50 */ fneg f4, f1 /* 802821C0 0027DE20 FC 20 10 50 */ fneg f1, f2 /* 802821C4 0027DE24 FC 00 18 50 */ fneg f0, f3 /* 802821C8 0027DE28 D0 83 00 34 */ stfs f4, 0x34(r3) /* 802821CC 0027DE2C D0 23 00 38 */ stfs f1, 0x38(r3) /* 802821D0 0027DE30 D0 03 00 3C */ stfs f0, 0x3c(r3) /* 802821D4 0027DE34 4E 80 00 20 */ blr .global GXInitSpecularDir GXInitSpecularDir: /* 802821D8 0027DE38 94 21 FF 90 */ stwu r1, -0x70(r1) /* 802821DC 0027DE3C 7C 08 02 A6 */ mflr r0 /* 802821E0 0027DE40 90 01 00 74 */ stw r0, 0x74(r1) /* 802821E4 0027DE44 DB E1 00 60 */ stfd f31, 0x60(r1) /* 802821E8 0027DE48 F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0 /* 802821EC 0027DE4C DB C1 00 50 */ stfd f30, 0x50(r1) /* 802821F0 0027DE50 F3 C1 00 58 */ psq_st f30, 88(r1), 0, qr0 /* 802821F4 0027DE54 DB A1 00 40 */ stfd f29, 0x40(r1) /* 802821F8 0027DE58 F3 A1 00 48 */ psq_st f29, 72(r1), 0, qr0 /* 802821FC 0027DE5C DB 81 00 30 */ stfd f28, 0x30(r1) /* 80282200 0027DE60 F3 81 00 38 */ psq_st f28, 56(r1), 0, qr0 /* 80282204 0027DE64 DB 61 00 20 */ stfd f27, 0x20(r1) /* 80282208 0027DE68 F3 61 00 28 */ psq_st f27, 40(r1), 0, qr0 /* 8028220C 0027DE6C DB 41 00 10 */ stfd f26, 0x10(r1) /* 80282210 0027DE70 F3 41 00 18 */ psq_st f26, 24(r1), 0, qr0 /* 80282214 0027DE74 FF E0 08 50 */ fneg f31, f1 /* 80282218 0027DE78 FF C0 10 50 */ fneg f30, f2 /* 8028221C 0027DE7C C0 82 A1 20 */ lfs f4, lbl_80642720-_SDA2_BASE_(r2) /* 80282220 0027DE80 FC C0 18 50 */ fneg f6, f3 /* 80282224 0027DE84 93 E1 00 0C */ stw r31, 0xc(r1) /* 80282228 0027DE88 EC BF 07 F2 */ fmuls f5, f31, f31 /* 8028222C 0027DE8C FF 40 08 90 */ fmr f26, f1 /* 80282230 0027DE90 EF A4 30 2A */ fadds f29, f4, f6 /* 80282234 0027DE94 C0 02 A1 08 */ lfs f0, lbl_80642708-_SDA2_BASE_(r2) /* 80282238 0027DE98 EC 9E 07 B2 */ fmuls f4, f30, f30 /* 8028223C 0027DE9C 7C 7F 1B 78 */ mr r31, r3 /* 80282240 0027DEA0 FF 60 10 90 */ fmr f27, f2 /* 80282244 0027DEA4 EC DD 07 72 */ fmuls f6, f29, f29 /* 80282248 0027DEA8 EC 25 20 2A */ fadds f1, f5, f4 /* 8028224C 0027DEAC FF 80 18 90 */ fmr f28, f3 /* 80282250 0027DEB0 EC 26 08 2A */ fadds f1, f6, f1 /* 80282254 0027DEB4 FC 00 08 00 */ fcmpu cr0, f0, f1 /* 80282258 0027DEB8 41 82 00 14 */ beq lbl_8028226C /* 8028225C 0027DEBC 4B F5 25 D9 */ bl sqrt /* 80282260 0027DEC0 FC 20 08 18 */ frsp f1, f1 /* 80282264 0027DEC4 C0 02 A1 20 */ lfs f0, lbl_80642720-_SDA2_BASE_(r2) /* 80282268 0027DEC8 EC 20 08 24 */ fdivs f1, f0, f1 lbl_8028226C: /* 8028226C 0027DECC C0 02 A1 38 */ lfs f0, lbl_80642738-_SDA2_BASE_(r2) /* 80282270 0027DED0 EC BF 00 72 */ fmuls f5, f31, f1 /* 80282274 0027DED4 EC 9E 00 72 */ fmuls f4, f30, f1 /* 80282278 0027DED8 EC 7D 00 72 */ fmuls f3, f29, f1 /* 8028227C 0027DEDC EC 40 06 B2 */ fmuls f2, f0, f26 /* 80282280 0027DEE0 D0 BF 00 34 */ stfs f5, 0x34(r31) /* 80282284 0027DEE4 EC 20 06 F2 */ fmuls f1, f0, f27 /* 80282288 0027DEE8 EC 00 07 32 */ fmuls f0, f0, f28 /* 8028228C 0027DEEC D0 9F 00 38 */ stfs f4, 0x38(r31) /* 80282290 0027DEF0 D0 7F 00 3C */ stfs f3, 0x3c(r31) /* 80282294 0027DEF4 D0 5F 00 28 */ stfs f2, 0x28(r31) /* 80282298 0027DEF8 D0 3F 00 2C */ stfs f1, 0x2c(r31) /* 8028229C 0027DEFC D0 1F 00 30 */ stfs f0, 0x30(r31) /* 802822A0 0027DF00 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0 /* 802822A4 0027DF04 CB E1 00 60 */ lfd f31, 0x60(r1) /* 802822A8 0027DF08 E3 C1 00 58 */ psq_l f30, 88(r1), 0, qr0 /* 802822AC 0027DF0C CB C1 00 50 */ lfd f30, 0x50(r1) /* 802822B0 0027DF10 E3 A1 00 48 */ psq_l f29, 72(r1), 0, qr0 /* 802822B4 0027DF14 CB A1 00 40 */ lfd f29, 0x40(r1) /* 802822B8 0027DF18 E3 81 00 38 */ psq_l f28, 56(r1), 0, qr0 /* 802822BC 0027DF1C CB 81 00 30 */ lfd f28, 0x30(r1) /* 802822C0 0027DF20 E3 61 00 28 */ psq_l f27, 40(r1), 0, qr0 /* 802822C4 0027DF24 CB 61 00 20 */ lfd f27, 0x20(r1) /* 802822C8 0027DF28 E3 41 00 18 */ psq_l f26, 24(r1), 0, qr0 /* 802822CC 0027DF2C CB 41 00 10 */ lfd f26, 0x10(r1) /* 802822D0 0027DF30 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802822D4 0027DF34 80 01 00 74 */ lwz r0, 0x74(r1) /* 802822D8 0027DF38 7C 08 03 A6 */ mtlr r0 /* 802822DC 0027DF3C 38 21 00 70 */ addi r1, r1, 0x70 /* 802822E0 0027DF40 4E 80 00 20 */ blr .global GXInitSpecularDirHA GXInitSpecularDirHA: /* 802822E4 0027DF44 C0 02 A1 38 */ lfs f0, lbl_80642738-_SDA2_BASE_(r2) /* 802822E8 0027DF48 D0 83 00 34 */ stfs f4, 0x34(r3) /* 802822EC 0027DF4C EC 80 00 72 */ fmuls f4, f0, f1 /* 802822F0 0027DF50 EC 20 00 B2 */ fmuls f1, f0, f2 /* 802822F4 0027DF54 D0 A3 00 38 */ stfs f5, 0x38(r3) /* 802822F8 0027DF58 EC 00 00 F2 */ fmuls f0, f0, f3 /* 802822FC 0027DF5C D0 C3 00 3C */ stfs f6, 0x3c(r3) /* 80282300 0027DF60 D0 83 00 28 */ stfs f4, 0x28(r3) /* 80282304 0027DF64 D0 23 00 2C */ stfs f1, 0x2c(r3) /* 80282308 0027DF68 D0 03 00 30 */ stfs f0, 0x30(r3) /* 8028230C 0027DF6C 4E 80 00 20 */ blr .global GXInitLightColor GXInitLightColor: /* 80282310 0027DF70 80 04 00 00 */ lwz r0, 0(r4) /* 80282314 0027DF74 90 03 00 0C */ stw r0, 0xc(r3) /* 80282318 0027DF78 4E 80 00 20 */ blr .global GXLoadLightObjImm GXLoadLightObjImm: /* 8028231C 0027DF7C 7C 80 00 34 */ cntlzw r0, r4 /* 80282320 0027DF80 3C 80 CC 01 */ lis r4, 0xCC008000@ha /* 80282324 0027DF84 20 A0 00 1F */ subfic r5, r0, 0x1f /* 80282328 0027DF88 38 00 00 10 */ li r0, 0x10 /* 8028232C 0027DF8C 54 A5 26 76 */ rlwinm r5, r5, 4, 0x19, 0x1b /* 80282330 0027DF90 98 04 80 00 */ stb r0, 0xCC008000@l(r4) /* 80282334 0027DF94 38 05 06 00 */ addi r0, r5, 0x600 /* 80282338 0027DF98 64 00 00 0F */ oris r0, r0, 0xf /* 8028233C 0027DF9C 90 04 80 00 */ stw r0, -0x8000(r4) /* 80282340 0027DFA0 80 03 00 0C */ lwz r0, 0xc(r3) /* 80282344 0027DFA4 7C C6 32 78 */ xor r6, r6, r6 /* 80282348 0027DFA8 E0 A3 00 10 */ psq_l f5, 16(r3), 0, qr0 /* 8028234C 0027DFAC E0 83 00 18 */ psq_l f4, 24(r3), 0, qr0 /* 80282350 0027DFB0 E0 63 00 20 */ psq_l f3, 32(r3), 0, qr0 /* 80282354 0027DFB4 E0 43 00 28 */ psq_l f2, 40(r3), 0, qr0 /* 80282358 0027DFB8 E0 23 00 30 */ psq_l f1, 48(r3), 0, qr0 /* 8028235C 0027DFBC E0 03 00 38 */ psq_l f0, 56(r3), 0, qr0 /* 80282360 0027DFC0 94 C4 80 00 */ stwu r6, -0x8000(r4) /* 80282364 0027DFC4 90 C4 00 00 */ stw r6, 0(r4) /* 80282368 0027DFC8 90 C4 00 00 */ stw r6, 0(r4) /* 8028236C 0027DFCC 90 04 00 00 */ stw r0, 0(r4) /* 80282370 0027DFD0 F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0 /* 80282374 0027DFD4 F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0 /* 80282378 0027DFD8 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0 /* 8028237C 0027DFDC F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0 /* 80282380 0027DFE0 F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0 /* 80282384 0027DFE4 F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0 /* 80282388 0027DFE8 38 00 00 01 */ li r0, 1 /* 8028238C 0027DFEC 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2) /* 80282390 0027DFF0 B0 03 00 02 */ sth r0, 2(r3) /* 80282394 0027DFF4 4E 80 00 20 */ blr .global GXSetChanAmbColor GXSetChanAmbColor: /* 80282398 0027DFF8 2C 03 00 03 */ cmpwi r3, 3 /* 8028239C 0027DFFC 41 82 00 78 */ beq lbl_80282414 /* 802823A0 0027E000 40 80 00 1C */ bge lbl_802823BC /* 802823A4 0027E004 2C 03 00 01 */ cmpwi r3, 1 /* 802823A8 0027E008 41 82 00 3C */ beq lbl_802823E4 /* 802823AC 0027E00C 40 80 00 50 */ bge lbl_802823FC /* 802823B0 0027E010 2C 03 00 00 */ cmpwi r3, 0 /* 802823B4 0027E014 40 80 00 18 */ bge lbl_802823CC /* 802823B8 0027E018 4E 80 00 20 */ blr lbl_802823BC: /* 802823BC 0027E01C 2C 03 00 05 */ cmpwi r3, 5 /* 802823C0 0027E020 41 82 00 78 */ beq lbl_80282438 /* 802823C4 0027E024 4C 80 00 20 */ bgelr /* 802823C8 0027E028 48 00 00 64 */ b lbl_8028242C lbl_802823CC: /* 802823CC 0027E02C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2) /* 802823D0 0027E030 39 00 00 00 */ li r8, 0 /* 802823D4 0027E034 80 04 00 00 */ lwz r0, 0(r4) /* 802823D8 0027E038 80 E3 00 A8 */ lwz r7, 0xa8(r3) /* 802823DC 0027E03C 50 07 00 2E */ rlwimi r7, r0, 0, 0, 0x17 /* 802823E0 0027E040 48 00 00 68 */ b lbl_80282448 lbl_802823E4: /* 802823E4 0027E044 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2) /* 802823E8 0027E048 39 00 00 01 */ li r8, 1 /* 802823EC 0027E04C 80 04 00 00 */ lwz r0, 0(r4) /* 802823F0 0027E050 80 E3 00 AC */ lwz r7, 0xac(r3) /* 802823F4 0027E054 50 07 00 2E */ rlwimi r7, r0, 0, 0, 0x17 /* 802823F8 0027E058 48 00 00 50 */ b lbl_80282448 lbl_802823FC: /* 802823FC 0027E05C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2) /* 80282400 0027E060 39 00 00 00 */ li r8, 0 /* 80282404 0027E064 88 04 00 03 */ lbz r0, 3(r4) /* 80282408 0027E068 80 E3 00 A8 */ lwz r7, 0xa8(r3) /* 8028240C 0027E06C 50 07 06 3E */ rlwimi r7, r0, 0, 0x18, 0x1f /* 80282410 0027E070 48 00 00 38 */ b lbl_80282448 lbl_80282414: /* 80282414 0027E074 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2) /* 80282418 0027E078 39 00 00 01 */ li r8, 1 /* 8028241C 0027E07C 88 04 00 03 */ lbz r0, 3(r4) /* 80282420 0027E080 80 E3 00 AC */ lwz r7, 0xac(r3) /* 80282424 0027E084 50 07 06 3E */ rlwimi r7, r0, 0, 0x18, 0x1f /* 80282428 0027E088 48 00 00 20 */ b lbl_80282448 lbl_8028242C: /* 8028242C 0027E08C 80 E4 00 00 */ lwz r7, 0(r4) /* 80282430 0027E090 39 00 00 00 */ li r8, 0 /* 80282434 0027E094 48 00 00 14 */ b lbl_80282448 lbl_80282438: /* 80282438 0027E098 80 E4 00 00 */ lwz r7, 0(r4) /* 8028243C 0027E09C 39 00 00 01 */ li r8, 1 /* 80282440 0027E0A0 48 00 00 08 */ b lbl_80282448 /* 80282444 0027E0A4 4E 80 00 20 */ blr lbl_80282448: /* 80282448 0027E0A8 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2) /* 8028244C 0027E0AC 38 60 01 00 */ li r3, 0x100 /* 80282450 0027E0B0 55 00 10 3A */ slwi r0, r8, 2 /* 80282454 0027E0B4 80 A6 05 FC */ lwz r5, 0x5fc(r6) /* 80282458 0027E0B8 7C 64 40 30 */ slw r4, r3, r8 /* 8028245C 0027E0BC 7C 66 02 14 */ add r3, r6, r0 /* 80282460 0027E0C0 7C A0 23 78 */ or r0, r5, r4 /* 80282464 0027E0C4 90 06 05 FC */ stw r0, 0x5fc(r6) /* 80282468 0027E0C8 90 E3 00 A8 */ stw r7, 0xa8(r3) /* 8028246C 0027E0CC 4E 80 00 20 */ blr .global GXSetChanMatColor GXSetChanMatColor: /* 80282470 0027E0D0 2C 03 00 03 */ cmpwi r3, 3 /* 80282474 0027E0D4 41 82 00 78 */ beq lbl_802824EC /* 80282478 0027E0D8 40 80 00 1C */ bge lbl_80282494 /* 8028247C 0027E0DC 2C 03 00 01 */ cmpwi r3, 1 /* 80282480 0027E0E0 41 82 00 3C */ beq lbl_802824BC /* 80282484 0027E0E4 40 80 00 50 */ bge lbl_802824D4 /* 80282488 0027E0E8 2C 03 00 00 */ cmpwi r3, 0 /* 8028248C 0027E0EC 40 80 00 18 */ bge lbl_802824A4 /* 80282490 0027E0F0 4E 80 00 20 */ blr lbl_80282494: /* 80282494 0027E0F4 2C 03 00 05 */ cmpwi r3, 5 /* 80282498 0027E0F8 41 82 00 78 */ beq lbl_80282510 /* 8028249C 0027E0FC 4C 80 00 20 */ bgelr /* 802824A0 0027E100 48 00 00 64 */ b lbl_80282504 lbl_802824A4: /* 802824A4 0027E104 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2) /* 802824A8 0027E108 39 00 00 00 */ li r8, 0 /* 802824AC 0027E10C 80 04 00 00 */ lwz r0, 0(r4) /* 802824B0 0027E110 80 E3 00 B0 */ lwz r7, 0xb0(r3) /* 802824B4 0027E114 50 07 00 2E */ rlwimi r7, r0, 0, 0, 0x17 /* 802824B8 0027E118 48 00 00 68 */ b lbl_80282520 lbl_802824BC: /* 802824BC 0027E11C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2) /* 802824C0 0027E120 39 00 00 01 */ li r8, 1 /* 802824C4 0027E124 80 04 00 00 */ lwz r0, 0(r4) /* 802824C8 0027E128 80 E3 00 B4 */ lwz r7, 0xb4(r3) /* 802824CC 0027E12C 50 07 00 2E */ rlwimi r7, r0, 0, 0, 0x17 /* 802824D0 0027E130 48 00 00 50 */ b lbl_80282520 lbl_802824D4: /* 802824D4 0027E134 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2) /* 802824D8 0027E138 39 00 00 00 */ li r8, 0 /* 802824DC 0027E13C 88 04 00 03 */ lbz r0, 3(r4) /* 802824E0 0027E140 80 E3 00 B0 */ lwz r7, 0xb0(r3) /* 802824E4 0027E144 50 07 06 3E */ rlwimi r7, r0, 0, 0x18, 0x1f /* 802824E8 0027E148 48 00 00 38 */ b lbl_80282520 lbl_802824EC: /* 802824EC 0027E14C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2) /* 802824F0 0027E150 39 00 00 01 */ li r8, 1 /* 802824F4 0027E154 88 04 00 03 */ lbz r0, 3(r4) /* 802824F8 0027E158 80 E3 00 B4 */ lwz r7, 0xb4(r3) /* 802824FC 0027E15C 50 07 06 3E */ rlwimi r7, r0, 0, 0x18, 0x1f /* 80282500 0027E160 48 00 00 20 */ b lbl_80282520 lbl_80282504: /* 80282504 0027E164 80 E4 00 00 */ lwz r7, 0(r4) /* 80282508 0027E168 39 00 00 00 */ li r8, 0 /* 8028250C 0027E16C 48 00 00 14 */ b lbl_80282520 lbl_80282510: /* 80282510 0027E170 80 E4 00 00 */ lwz r7, 0(r4) /* 80282514 0027E174 39 00 00 01 */ li r8, 1 /* 80282518 0027E178 48 00 00 08 */ b lbl_80282520 /* 8028251C 0027E17C 4E 80 00 20 */ blr lbl_80282520: /* 80282520 0027E180 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2) /* 80282524 0027E184 38 60 04 00 */ li r3, 0x400 /* 80282528 0027E188 55 00 10 3A */ slwi r0, r8, 2 /* 8028252C 0027E18C 80 A6 05 FC */ lwz r5, 0x5fc(r6) /* 80282530 0027E190 7C 64 40 30 */ slw r4, r3, r8 /* 80282534 0027E194 7C 66 02 14 */ add r3, r6, r0 /* 80282538 0027E198 7C A0 23 78 */ or r0, r5, r4 /* 8028253C 0027E19C 90 06 05 FC */ stw r0, 0x5fc(r6) /* 80282540 0027E1A0 90 E3 00 B0 */ stw r7, 0xb0(r3) /* 80282544 0027E1A4 4E 80 00 20 */ blr .global GXSetNumChans GXSetNumChans: /* 80282548 0027E1A8 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2) /* 8028254C 0027E1AC 80 04 02 54 */ lwz r0, 0x254(r4) /* 80282550 0027E1B0 50 60 26 76 */ rlwimi r0, r3, 4, 0x19, 0x1b /* 80282554 0027E1B4 90 04 02 54 */ stw r0, 0x254(r4) /* 80282558 0027E1B8 80 04 05 FC */ lwz r0, 0x5fc(r4) /* 8028255C 0027E1BC 64 00 01 00 */ oris r0, r0, 0x100 /* 80282560 0027E1C0 60 00 00 04 */ ori r0, r0, 4 /* 80282564 0027E1C4 90 04 05 FC */ stw r0, 0x5fc(r4) /* 80282568 0027E1C8 4E 80 00 20 */ blr .global GXSetChanCtrl GXSetChanCtrl: /* 8028256C 0027E1CC 2C 09 00 00 */ cmpwi r9, 0 /* 80282570 0027E1D0 39 40 00 00 */ li r10, 0 /* 80282574 0027E1D4 50 8A 0F BC */ rlwimi r10, r4, 1, 0x1e, 0x1e /* 80282578 0027E1D8 54 6B 07 BE */ clrlwi r11, r3, 0x1e /* 8028257C 0027E1DC 50 CA 07 FE */ rlwimi r10, r6, 0, 0x1f, 0x1f /* 80282580 0027E1E0 50 AA 36 72 */ rlwimi r10, r5, 6, 0x19, 0x19 /* 80282584 0027E1E4 40 82 00 08 */ bne lbl_8028258C /* 80282588 0027E1E8 39 00 00 00 */ li r8, 0 lbl_8028258C: /* 8028258C 0027E1EC 20 A9 00 02 */ subfic r5, r9, 2 /* 80282590 0027E1F0 38 89 FF FE */ addi r4, r9, -2 /* 80282594 0027E1F4 7C 09 00 D0 */ neg r0, r9 /* 80282598 0027E1F8 51 0A 3D F0 */ rlwimi r10, r8, 7, 0x17, 0x18 /* 8028259C 0027E1FC 7C A4 23 78 */ or r4, r5, r4 /* 802825A0 0027E200 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2) /* 802825A4 0027E204 50 8A 55 AC */ rlwimi r10, r4, 0xa, 0x16, 0x16 /* 802825A8 0027E208 7C 00 4B 78 */ or r0, r0, r9 /* 802825AC 0027E20C 50 0A 5D 6A */ rlwimi r10, r0, 0xb, 0x15, 0x15 /* 802825B0 0027E210 55 64 10 3A */ slwi r4, r11, 2 /* 802825B4 0027E214 50 EA 16 BA */ rlwimi r10, r7, 2, 0x1a, 0x1d /* 802825B8 0027E218 38 00 10 00 */ li r0, 0x1000 /* 802825BC 0027E21C 7C 85 22 14 */ add r4, r5, r4 /* 802825C0 0027E220 2C 03 00 04 */ cmpwi r3, 4 /* 802825C4 0027E224 50 EA 3C 68 */ rlwimi r10, r7, 7, 0x11, 0x14 /* 802825C8 0027E228 7C 00 58 30 */ slw r0, r0, r11 /* 802825CC 0027E22C 91 44 00 B8 */ stw r10, 0xb8(r4) /* 802825D0 0027E230 80 85 05 FC */ lwz r4, 0x5fc(r5) /* 802825D4 0027E234 7C 80 03 78 */ or r0, r4, r0 /* 802825D8 0027E238 90 05 05 FC */ stw r0, 0x5fc(r5) /* 802825DC 0027E23C 40 82 00 18 */ bne lbl_802825F4 /* 802825E0 0027E240 91 45 00 C0 */ stw r10, 0xc0(r5) /* 802825E4 0027E244 80 05 05 FC */ lwz r0, 0x5fc(r5) /* 802825E8 0027E248 60 00 50 00 */ ori r0, r0, 0x5000 /* 802825EC 0027E24C 90 05 05 FC */ stw r0, 0x5fc(r5) /* 802825F0 0027E250 4E 80 00 20 */ blr lbl_802825F4: /* 802825F4 0027E254 2C 03 00 05 */ cmpwi r3, 5 /* 802825F8 0027E258 4C 82 00 20 */ bnelr /* 802825FC 0027E25C 91 45 00 C4 */ stw r10, 0xc4(r5) /* 80282600 0027E260 80 05 05 FC */ lwz r0, 0x5fc(r5) /* 80282604 0027E264 60 00 A0 00 */ ori r0, r0, 0xa000 /* 80282608 0027E268 90 05 05 FC */ stw r0, 0x5fc(r5) /* 8028260C 0027E26C 4E 80 00 20 */ blr