1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
|
.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
|