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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global GXProject
GXProject:
/* 8028680C 0028246C C0 A3 00 00 */ lfs f5, 0(r3)
/* 80286810 00282470 C0 83 00 04 */ lfs f4, 4(r3)
/* 80286814 00282474 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 80286818 00282478 ED 85 00 72 */ fmuls f12, f5, f1
/* 8028681C 0028247C C0 A3 00 14 */ lfs f5, 0x14(r3)
/* 80286820 00282480 EC E4 00 B2 */ fmuls f7, f4, f2
/* 80286824 00282484 ED 20 00 72 */ fmuls f9, f0, f1
/* 80286828 00282488 C0 83 00 20 */ lfs f4, 0x20(r3)
/* 8028682C 0028248C ED 05 00 B2 */ fmuls f8, f5, f2
/* 80286830 00282490 EC A4 00 72 */ fmuls f5, f4, f1
/* 80286834 00282494 C0 03 00 24 */ lfs f0, 0x24(r3)
/* 80286838 00282498 C1 63 00 08 */ lfs f11, 8(r3)
/* 8028683C 0028249C EC 80 00 B2 */ fmuls f4, f0, f2
/* 80286840 002824A0 C1 43 00 18 */ lfs f10, 0x18(r3)
/* 80286844 002824A4 C0 C3 00 28 */ lfs f6, 0x28(r3)
/* 80286848 002824A8 ED AB 00 F2 */ fmuls f13, f11, f3
/* 8028684C 002824AC C1 63 00 0C */ lfs f11, 0xc(r3)
/* 80286850 002824B0 EC 0C 38 2A */ fadds f0, f12, f7
/* 80286854 002824B4 ED 09 40 2A */ fadds f8, f9, f8
/* 80286858 002824B8 C0 E3 00 1C */ lfs f7, 0x1c(r3)
/* 8028685C 002824BC ED 4A 00 F2 */ fmuls f10, f10, f3
/* 80286860 002824C0 ED 2D 00 2A */ fadds f9, f13, f0
/* 80286864 002824C4 C0 43 00 2C */ lfs f2, 0x2c(r3)
/* 80286868 002824C8 EC C6 00 F2 */ fmuls f6, f6, f3
/* 8028686C 002824CC EC 65 20 2A */ fadds f3, f5, f4
/* 80286870 002824D0 C0 22 A2 00 */ lfs f1, lbl_80642800-_SDA2_BASE_(r2)
/* 80286874 002824D4 EC 8A 40 2A */ fadds f4, f10, f8
/* 80286878 002824D8 C0 04 00 00 */ lfs f0, 0(r4)
/* 8028687C 002824DC ED 2B 48 2A */ fadds f9, f11, f9
/* 80286880 002824E0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80286884 002824E4 ED 07 20 2A */ fadds f8, f7, f4
/* 80286888 002824E8 EC 66 18 2A */ fadds f3, f6, f3
/* 8028688C 002824EC D1 21 00 08 */ stfs f9, 8(r1)
/* 80286890 002824F0 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 80286894 002824F4 D1 01 00 0C */ stfs f8, 0xc(r1)
/* 80286898 002824F8 EC E2 18 2A */ fadds f7, f2, f3
/* 8028689C 002824FC D0 E1 00 10 */ stfs f7, 0x10(r1)
/* 802868A0 00282500 40 82 00 4C */ bne lbl_802868EC
/* 802868A4 00282504 FC 20 38 50 */ fneg f1, f7
/* 802868A8 00282508 C0 02 A2 04 */ lfs f0, lbl_80642804-_SDA2_BASE_(r2)
/* 802868AC 0028250C C0 C4 00 04 */ lfs f6, 4(r4)
/* 802868B0 00282510 C0 A4 00 08 */ lfs f5, 8(r4)
/* 802868B4 00282514 EC 00 08 24 */ fdivs f0, f0, f1
/* 802868B8 00282518 C0 84 00 0C */ lfs f4, 0xc(r4)
/* 802868BC 0028251C C0 64 00 10 */ lfs f3, 0x10(r4)
/* 802868C0 00282520 C0 44 00 14 */ lfs f2, 0x14(r4)
/* 802868C4 00282524 C0 24 00 18 */ lfs f1, 0x18(r4)
/* 802868C8 00282528 EC 47 00 B2 */ fmuls f2, f7, f2
/* 802868CC 0028252C EC C9 01 B2 */ fmuls f6, f9, f6
/* 802868D0 00282530 EC A7 01 72 */ fmuls f5, f7, f5
/* 802868D4 00282534 EC 67 00 F2 */ fmuls f3, f7, f3
/* 802868D8 00282538 EC 88 01 32 */ fmuls f4, f8, f4
/* 802868DC 0028253C EC E6 28 2A */ fadds f7, f6, f5
/* 802868E0 00282540 ED 41 10 2A */ fadds f10, f1, f2
/* 802868E4 00282544 EC 64 18 2A */ fadds f3, f4, f3
/* 802868E8 00282548 48 00 00 38 */ b lbl_80286920
lbl_802868EC:
/* 802868EC 0028254C C0 44 00 04 */ lfs f2, 4(r4)
/* 802868F0 00282550 C0 24 00 0C */ lfs f1, 0xc(r4)
/* 802868F4 00282554 C0 04 00 14 */ lfs f0, 0x14(r4)
/* 802868F8 00282558 EC C9 00 B2 */ fmuls f6, f9, f2
/* 802868FC 0028255C EC 88 00 72 */ fmuls f4, f8, f1
/* 80286900 00282560 C0 64 00 10 */ lfs f3, 0x10(r4)
/* 80286904 00282564 EC 47 00 32 */ fmuls f2, f7, f0
/* 80286908 00282568 C0 A4 00 08 */ lfs f5, 8(r4)
/* 8028690C 0028256C C0 24 00 18 */ lfs f1, 0x18(r4)
/* 80286910 00282570 EC E5 30 2A */ fadds f7, f5, f6
/* 80286914 00282574 EC 63 20 2A */ fadds f3, f3, f4
/* 80286918 00282578 C0 02 A2 04 */ lfs f0, lbl_80642804-_SDA2_BASE_(r2)
/* 8028691C 0028257C ED 41 10 2A */ fadds f10, f1, f2
lbl_80286920:
/* 80286920 00282580 C0 C5 00 08 */ lfs f6, 8(r5)
/* 80286924 00282584 FC 20 18 50 */ fneg f1, f3
/* 80286928 00282588 C0 A5 00 0C */ lfs f5, 0xc(r5)
/* 8028692C 0028258C EC 87 01 B2 */ fmuls f4, f7, f6
/* 80286930 00282590 C1 22 A2 08 */ lfs f9, lbl_80642808-_SDA2_BASE_(r2)
/* 80286934 00282594 EC 61 01 72 */ fmuls f3, f1, f5
/* 80286938 00282598 C0 45 00 14 */ lfs f2, 0x14(r5)
/* 8028693C 0028259C C0 25 00 10 */ lfs f1, 0x10(r5)
/* 80286940 002825A0 ED 06 02 72 */ fmuls f8, f6, f9
/* 80286944 002825A4 EC E4 02 72 */ fmuls f7, f4, f9
/* 80286948 002825A8 C0 C5 00 00 */ lfs f6, 0(r5)
/* 8028694C 002825AC EC 83 02 72 */ fmuls f4, f3, f9
/* 80286950 002825B0 C0 65 00 04 */ lfs f3, 4(r5)
/* 80286954 002825B4 EC 22 08 28 */ fsubs f1, f2, f1
/* 80286958 002825B8 EC E0 01 F2 */ fmuls f7, f0, f7
/* 8028695C 002825BC EC 80 01 32 */ fmuls f4, f0, f4
/* 80286960 002825C0 EC 2A 00 72 */ fmuls f1, f10, f1
/* 80286964 002825C4 EC C6 38 2A */ fadds f6, f6, f7
/* 80286968 002825C8 EC 63 20 2A */ fadds f3, f3, f4
/* 8028696C 002825CC EC A5 02 72 */ fmuls f5, f5, f9
/* 80286970 002825D0 EC 00 00 72 */ fmuls f0, f0, f1
/* 80286974 002825D4 EC 88 30 2A */ fadds f4, f8, f6
/* 80286978 002825D8 EC 25 18 2A */ fadds f1, f5, f3
/* 8028697C 002825DC EC 02 00 2A */ fadds f0, f2, f0
/* 80286980 002825E0 D0 86 00 00 */ stfs f4, 0(r6)
/* 80286984 002825E4 D0 27 00 00 */ stfs f1, 0(r7)
/* 80286988 002825E8 D0 08 00 00 */ stfs f0, 0(r8)
/* 8028698C 002825EC 38 21 00 20 */ addi r1, r1, 0x20
/* 80286990 002825F0 4E 80 00 20 */ blr
.global __GXSetProjection
__GXSetProjection:
/* 80286994 002825F4 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80286998 002825F8 38 00 00 10 */ li r0, 0x10
/* 8028699C 002825FC 3C 60 00 06 */ lis r3, 0x00061020@ha
/* 802869A0 00282600 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 802869A4 00282604 38 03 10 20 */ addi r0, r3, 0x00061020@l
/* 802869A8 00282608 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
/* 802869AC 0028260C 90 04 80 00 */ stw r0, -0x8000(r4)
/* 802869B0 00282610 38 A4 80 00 */ addi r5, r4, -32768
/* 802869B4 00282614 E0 43 05 2C */ psq_l f2, 1324(r3), 0, qr0
/* 802869B8 00282618 E0 23 05 34 */ psq_l f1, 1332(r3), 0, qr0
/* 802869BC 0028261C E0 03 05 3C */ psq_l f0, 1340(r3), 0, qr0
/* 802869C0 00282620 F0 45 00 00 */ psq_st f2, 0(r5), 0, qr0
/* 802869C4 00282624 F0 25 00 00 */ psq_st f1, 0(r5), 0, qr0
/* 802869C8 00282628 F0 05 00 00 */ psq_st f0, 0(r5), 0, qr0
/* 802869CC 0028262C 80 03 05 28 */ lwz r0, 0x528(r3)
/* 802869D0 00282630 90 04 80 00 */ stw r0, -0x8000(r4)
/* 802869D4 00282634 4E 80 00 20 */ blr
.global GXSetProjection
GXSetProjection:
/* 802869D8 00282638 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
/* 802869DC 0028263C 2C 04 00 01 */ cmpwi r4, 1
/* 802869E0 00282640 C0 23 00 00 */ lfs f1, 0(r3)
/* 802869E4 00282644 90 85 05 28 */ stw r4, 0x528(r5)
/* 802869E8 00282648 C0 03 00 14 */ lfs f0, 0x14(r3)
/* 802869EC 0028264C D0 25 05 2C */ stfs f1, 0x52c(r5)
/* 802869F0 00282650 C0 23 00 28 */ lfs f1, 0x28(r3)
/* 802869F4 00282654 D0 05 05 34 */ stfs f0, 0x534(r5)
/* 802869F8 00282658 C0 03 00 2C */ lfs f0, 0x2c(r3)
/* 802869FC 0028265C D0 25 05 3C */ stfs f1, 0x53c(r5)
/* 80286A00 00282660 D0 05 05 40 */ stfs f0, 0x540(r5)
/* 80286A04 00282664 40 82 00 18 */ bne lbl_80286A1C
/* 80286A08 00282668 C0 23 00 0C */ lfs f1, 0xc(r3)
/* 80286A0C 0028266C C0 03 00 1C */ lfs f0, 0x1c(r3)
/* 80286A10 00282670 D0 25 05 30 */ stfs f1, 0x530(r5)
/* 80286A14 00282674 D0 05 05 38 */ stfs f0, 0x538(r5)
/* 80286A18 00282678 48 00 00 14 */ b lbl_80286A2C
lbl_80286A1C:
/* 80286A1C 0028267C C0 23 00 08 */ lfs f1, 8(r3)
/* 80286A20 00282680 C0 03 00 18 */ lfs f0, 0x18(r3)
/* 80286A24 00282684 D0 25 05 30 */ stfs f1, 0x530(r5)
/* 80286A28 00282688 D0 05 05 38 */ stfs f0, 0x538(r5)
lbl_80286A2C:
/* 80286A2C 0028268C 80 05 05 FC */ lwz r0, 0x5fc(r5)
/* 80286A30 00282690 64 00 08 00 */ oris r0, r0, 0x800
/* 80286A34 00282694 90 05 05 FC */ stw r0, 0x5fc(r5)
/* 80286A38 00282698 4E 80 00 20 */ blr
.global GXSetProjectionv
GXSetProjectionv:
/* 80286A3C 0028269C C0 22 A2 00 */ lfs f1, lbl_80642800-_SDA2_BASE_(r2)
/* 80286A40 002826A0 C0 03 00 00 */ lfs f0, 0(r3)
/* 80286A44 002826A4 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 80286A48 002826A8 40 82 00 0C */ bne lbl_80286A54
/* 80286A4C 002826AC 38 00 00 00 */ li r0, 0
/* 80286A50 002826B0 48 00 00 08 */ b lbl_80286A58
lbl_80286A54:
/* 80286A54 002826B4 38 00 00 01 */ li r0, 1
lbl_80286A58:
/* 80286A58 002826B8 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
/* 80286A5C 002826BC 90 04 05 28 */ stw r0, 0x528(r4)
/* 80286A60 002826C0 E0 43 00 04 */ psq_l f2, 4(r3), 0, qr0
/* 80286A64 002826C4 E0 23 00 0C */ psq_l f1, 12(r3), 0, qr0
/* 80286A68 002826C8 E0 03 00 14 */ psq_l f0, 20(r3), 0, qr0
/* 80286A6C 002826CC F0 44 05 2C */ psq_st f2, 1324(r4), 0, qr0
/* 80286A70 002826D0 F0 24 05 34 */ psq_st f1, 1332(r4), 0, qr0
/* 80286A74 002826D4 F0 04 05 3C */ psq_st f0, 1340(r4), 0, qr0
/* 80286A78 002826D8 80 04 05 FC */ lwz r0, 0x5fc(r4)
/* 80286A7C 002826DC 64 00 08 00 */ oris r0, r0, 0x800
/* 80286A80 002826E0 90 04 05 FC */ stw r0, 0x5fc(r4)
/* 80286A84 002826E4 4E 80 00 20 */ blr
.global GXLoadPosMtxImm
GXLoadPosMtxImm:
/* 80286A88 002826E8 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80286A8C 002826EC 38 00 00 10 */ li r0, 0x10
/* 80286A90 002826F0 54 84 10 3A */ slwi r4, r4, 2
/* 80286A94 002826F4 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80286A98 002826F8 64 80 00 0B */ oris r0, r4, 0xb
/* 80286A9C 002826FC 90 05 80 00 */ stw r0, -0x8000(r5)
/* 80286AA0 00282700 38 85 80 00 */ addi r4, r5, -32768
/* 80286AA4 00282704 E0 A3 00 00 */ psq_l f5, 0(r3), 0, qr0
/* 80286AA8 00282708 E0 83 00 08 */ psq_l f4, 8(r3), 0, qr0
/* 80286AAC 0028270C E0 63 00 10 */ psq_l f3, 16(r3), 0, qr0
/* 80286AB0 00282710 E0 43 00 18 */ psq_l f2, 24(r3), 0, qr0
/* 80286AB4 00282714 E0 23 00 20 */ psq_l f1, 32(r3), 0, qr0
/* 80286AB8 00282718 E0 03 00 28 */ psq_l f0, 40(r3), 0, qr0
/* 80286ABC 0028271C F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0
/* 80286AC0 00282720 F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0
/* 80286AC4 00282724 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0
/* 80286AC8 00282728 F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0
/* 80286ACC 0028272C F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0
/* 80286AD0 00282730 F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0
/* 80286AD4 00282734 4E 80 00 20 */ blr
.global GXLoadNrmMtxImm
GXLoadNrmMtxImm:
/* 80286AD8 00282738 54 80 10 3A */ slwi r0, r4, 2
/* 80286ADC 0028273C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80286AE0 00282740 7C 84 00 50 */ subf r4, r4, r0
/* 80286AE4 00282744 38 00 00 10 */ li r0, 0x10
/* 80286AE8 00282748 38 84 04 00 */ addi r4, r4, 0x400
/* 80286AEC 0028274C 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80286AF0 00282750 64 80 00 08 */ oris r0, r4, 8
/* 80286AF4 00282754 90 05 80 00 */ stw r0, -0x8000(r5)
/* 80286AF8 00282758 38 85 80 00 */ addi r4, r5, -32768
/* 80286AFC 0028275C E0 A3 00 00 */ psq_l f5, 0(r3), 0, qr0
/* 80286B00 00282760 C0 83 00 08 */ lfs f4, 8(r3)
/* 80286B04 00282764 E0 63 00 10 */ psq_l f3, 16(r3), 0, qr0
/* 80286B08 00282768 C0 43 00 18 */ lfs f2, 0x18(r3)
/* 80286B0C 0028276C E0 23 00 20 */ psq_l f1, 32(r3), 0, qr0
/* 80286B10 00282770 C0 03 00 28 */ lfs f0, 0x28(r3)
/* 80286B14 00282774 F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0
/* 80286B18 00282778 D0 85 80 00 */ stfs f4, -0x8000(r5)
/* 80286B1C 0028277C F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0
/* 80286B20 00282780 D0 45 80 00 */ stfs f2, -0x8000(r5)
/* 80286B24 00282784 F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0
/* 80286B28 00282788 D0 05 80 00 */ stfs f0, -0x8000(r5)
/* 80286B2C 0028278C 4E 80 00 20 */ blr
.global GXSetCurrentMtx
GXSetCurrentMtx:
/* 80286B30 00282790 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
/* 80286B34 00282794 80 04 00 80 */ lwz r0, 0x80(r4)
/* 80286B38 00282798 50 60 06 BE */ rlwimi r0, r3, 0, 0x1a, 0x1f
/* 80286B3C 0028279C 90 04 00 80 */ stw r0, 0x80(r4)
/* 80286B40 002827A0 80 04 05 FC */ lwz r0, 0x5fc(r4)
/* 80286B44 002827A4 64 00 04 00 */ oris r0, r0, 0x400
/* 80286B48 002827A8 90 04 05 FC */ stw r0, 0x5fc(r4)
/* 80286B4C 002827AC 4E 80 00 20 */ blr
.global GXLoadTexMtxImm
GXLoadTexMtxImm:
/* 80286B50 002827B0 28 04 00 40 */ cmplwi r4, 0x40
/* 80286B54 002827B4 41 80 00 14 */ blt lbl_80286B68
/* 80286B58 002827B8 38 04 FF C0 */ addi r0, r4, -64
/* 80286B5C 002827BC 54 04 10 3A */ slwi r4, r0, 2
/* 80286B60 002827C0 38 E4 05 00 */ addi r7, r4, 0x500
/* 80286B64 002827C4 48 00 00 08 */ b lbl_80286B6C
lbl_80286B68:
/* 80286B68 002827C8 54 87 10 3A */ slwi r7, r4, 2
lbl_80286B6C:
/* 80286B6C 002827CC 2C 05 00 01 */ cmpwi r5, 1
/* 80286B70 002827D0 40 82 00 0C */ bne lbl_80286B7C
/* 80286B74 002827D4 38 80 00 08 */ li r4, 8
/* 80286B78 002827D8 48 00 00 08 */ b lbl_80286B80
lbl_80286B7C:
/* 80286B7C 002827DC 38 80 00 0C */ li r4, 0xc
lbl_80286B80:
/* 80286B80 002827E0 38 C4 FF FF */ addi r6, r4, -1
/* 80286B84 002827E4 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80286B88 002827E8 38 00 00 10 */ li r0, 0x10
/* 80286B8C 002827EC 2C 05 00 00 */ cmpwi r5, 0
/* 80286B90 002827F0 54 C5 80 1E */ slwi r5, r6, 0x10
/* 80286B94 002827F4 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 80286B98 002827F8 7C E0 2B 78 */ or r0, r7, r5
/* 80286B9C 002827FC 90 04 80 00 */ stw r0, -0x8000(r4)
/* 80286BA0 00282800 40 82 00 3C */ bne lbl_80286BDC
/* 80286BA4 00282804 38 84 80 00 */ addi r4, r4, -32768
/* 80286BA8 00282808 E0 A3 00 00 */ psq_l f5, 0(r3), 0, qr0
/* 80286BAC 0028280C E0 83 00 08 */ psq_l f4, 8(r3), 0, qr0
/* 80286BB0 00282810 E0 63 00 10 */ psq_l f3, 16(r3), 0, qr0
/* 80286BB4 00282814 E0 43 00 18 */ psq_l f2, 24(r3), 0, qr0
/* 80286BB8 00282818 E0 23 00 20 */ psq_l f1, 32(r3), 0, qr0
/* 80286BBC 0028281C E0 03 00 28 */ psq_l f0, 40(r3), 0, qr0
/* 80286BC0 00282820 F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0
/* 80286BC4 00282824 F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0
/* 80286BC8 00282828 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0
/* 80286BCC 0028282C F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0
/* 80286BD0 00282830 F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0
/* 80286BD4 00282834 F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0
/* 80286BD8 00282838 4E 80 00 20 */ blr
lbl_80286BDC:
/* 80286BDC 0028283C 38 84 80 00 */ addi r4, r4, -32768
/* 80286BE0 00282840 E0 63 00 00 */ psq_l f3, 0(r3), 0, qr0
/* 80286BE4 00282844 E0 43 00 08 */ psq_l f2, 8(r3), 0, qr0
/* 80286BE8 00282848 E0 23 00 10 */ psq_l f1, 16(r3), 0, qr0
/* 80286BEC 0028284C E0 03 00 18 */ psq_l f0, 24(r3), 0, qr0
/* 80286BF0 00282850 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0
/* 80286BF4 00282854 F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0
/* 80286BF8 00282858 F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0
/* 80286BFC 0028285C F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0
/* 80286C00 00282860 4E 80 00 20 */ blr
.global __GXSetViewport
__GXSetViewport:
/* 80286C04 00282864 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
/* 80286C08 00282868 3C 60 00 05 */ lis r3, 0x0005101A@ha
/* 80286C0C 0028286C C0 C2 A2 08 */ lfs f6, lbl_80642808-_SDA2_BASE_(r2)
/* 80286C10 00282870 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80286C14 00282874 C0 46 05 50 */ lfs f2, 0x550(r6)
/* 80286C18 00282878 38 A0 00 10 */ li r5, 0x10
/* 80286C1C 0028287C C0 66 05 4C */ lfs f3, 0x54c(r6)
/* 80286C20 00282880 38 03 10 1A */ addi r0, r3, 0x0005101A@l
/* 80286C24 00282884 FC 20 10 50 */ fneg f1, f2
/* 80286C28 00282888 C0 06 05 44 */ lfs f0, 0x544(r6)
/* 80286C2C 0028288C EC E3 01 B2 */ fmuls f7, f3, f6
/* 80286C30 00282890 C0 86 05 48 */ lfs f4, 0x548(r6)
/* 80286C34 00282894 EC A2 01 B2 */ fmuls f5, f2, f6
/* 80286C38 00282898 C0 66 05 54 */ lfs f3, 0x554(r6)
/* 80286C3C 0028289C ED 01 01 B2 */ fmuls f8, f1, f6
/* 80286C40 002828A0 C0 46 05 60 */ lfs f2, 0x560(r6)
/* 80286C44 002828A4 C0 26 05 58 */ lfs f1, 0x558(r6)
/* 80286C48 002828A8 EC C0 38 2A */ fadds f6, f0, f7
/* 80286C4C 002828AC C0 06 05 5C */ lfs f0, 0x55c(r6)
/* 80286C50 002828B0 EC 63 00 B2 */ fmuls f3, f3, f2
/* 80286C54 002828B4 ED 21 00 B2 */ fmuls f9, f1, f2
/* 80286C58 002828B8 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 80286C5C 002828BC C0 42 A2 0C */ lfs f2, lbl_8064280C-_SDA2_BASE_(r2)
/* 80286C60 002828C0 EC 24 28 2A */ fadds f1, f4, f5
/* 80286C64 002828C4 90 04 80 00 */ stw r0, -0x8000(r4)
/* 80286C68 002828C8 EC 69 18 28 */ fsubs f3, f9, f3
/* 80286C6C 002828CC D0 E4 80 00 */ stfs f7, -0x8000(r4)
/* 80286C70 002828D0 EC 82 30 2A */ fadds f4, f2, f6
/* 80286C74 002828D4 EC 22 08 2A */ fadds f1, f2, f1
/* 80286C78 002828D8 D1 04 80 00 */ stfs f8, -0x8000(r4)
/* 80286C7C 002828DC EC 09 00 2A */ fadds f0, f9, f0
/* 80286C80 002828E0 D0 64 80 00 */ stfs f3, -0x8000(r4)
/* 80286C84 002828E4 D0 84 80 00 */ stfs f4, -0x8000(r4)
/* 80286C88 002828E8 D0 24 80 00 */ stfs f1, -0x8000(r4)
/* 80286C8C 002828EC D0 04 80 00 */ stfs f0, -0x8000(r4)
/* 80286C90 002828F0 4E 80 00 20 */ blr
.global GXSetViewportJitter
GXSetViewportJitter:
/* 80286C94 002828F4 2C 03 00 00 */ cmpwi r3, 0
/* 80286C98 002828F8 40 82 00 0C */ bne lbl_80286CA4
/* 80286C9C 002828FC C0 02 A2 08 */ lfs f0, lbl_80642808-_SDA2_BASE_(r2)
/* 80286CA0 00282900 EC 42 00 28 */ fsubs f2, f2, f0
lbl_80286CA4:
/* 80286CA4 00282904 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
/* 80286CA8 00282908 D0 23 05 44 */ stfs f1, 0x544(r3)
/* 80286CAC 0028290C D0 43 05 48 */ stfs f2, 0x548(r3)
/* 80286CB0 00282910 D0 63 05 4C */ stfs f3, 0x54c(r3)
/* 80286CB4 00282914 D0 83 05 50 */ stfs f4, 0x550(r3)
/* 80286CB8 00282918 D0 A3 05 54 */ stfs f5, 0x554(r3)
/* 80286CBC 0028291C D0 C3 05 58 */ stfs f6, 0x558(r3)
/* 80286CC0 00282920 80 03 05 FC */ lwz r0, 0x5fc(r3)
/* 80286CC4 00282924 64 00 10 00 */ oris r0, r0, 0x1000
/* 80286CC8 00282928 90 03 05 FC */ stw r0, 0x5fc(r3)
/* 80286CCC 0028292C 4E 80 00 20 */ blr
.global GXSetViewport
GXSetViewport:
/* 80286CD0 00282930 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
/* 80286CD4 00282934 D0 23 05 44 */ stfs f1, 0x544(r3)
/* 80286CD8 00282938 D0 43 05 48 */ stfs f2, 0x548(r3)
/* 80286CDC 0028293C D0 63 05 4C */ stfs f3, 0x54c(r3)
/* 80286CE0 00282940 D0 83 05 50 */ stfs f4, 0x550(r3)
/* 80286CE4 00282944 D0 A3 05 54 */ stfs f5, 0x554(r3)
/* 80286CE8 00282948 D0 C3 05 58 */ stfs f6, 0x558(r3)
/* 80286CEC 0028294C 80 03 05 FC */ lwz r0, 0x5fc(r3)
/* 80286CF0 00282950 64 00 10 00 */ oris r0, r0, 0x1000
/* 80286CF4 00282954 90 03 05 FC */ stw r0, 0x5fc(r3)
/* 80286CF8 00282958 4E 80 00 20 */ blr
.global GXSetScissor
GXSetScissor:
/* 80286CFC 0028295C 81 02 A0 D0 */ lwz r8, lbl_806426D0-_SDA2_BASE_(r2)
/* 80286D00 00282960 38 84 01 56 */ addi r4, r4, 0x156
/* 80286D04 00282964 39 23 01 56 */ addi r9, r3, 0x156
/* 80286D08 00282968 3C E0 CC 01 */ lis r7, 0xCC008000@ha
/* 80286D0C 0028296C 80 08 01 48 */ lwz r0, 0x148(r8)
/* 80286D10 00282970 50 80 05 7E */ rlwimi r0, r4, 0, 0x15, 0x1f
/* 80286D14 00282974 51 20 62 66 */ rlwimi r0, r9, 0xc, 9, 0x13
/* 80286D18 00282978 7C C4 32 14 */ add r6, r4, r6
/* 80286D1C 0028297C 90 08 01 48 */ stw r0, 0x148(r8)
/* 80286D20 00282980 7C 69 2A 14 */ add r3, r9, r5
/* 80286D24 00282984 38 A6 FF FF */ addi r5, r6, -1
/* 80286D28 00282988 38 80 00 61 */ li r4, 0x61
/* 80286D2C 0028298C 80 C8 01 4C */ lwz r6, 0x14c(r8)
/* 80286D30 00282990 38 63 FF FF */ addi r3, r3, -1
/* 80286D34 00282994 50 A6 05 7E */ rlwimi r6, r5, 0, 0x15, 0x1f
/* 80286D38 00282998 38 00 00 00 */ li r0, 0
/* 80286D3C 0028299C 50 66 62 66 */ rlwimi r6, r3, 0xc, 9, 0x13
/* 80286D40 002829A0 90 C8 01 4C */ stw r6, 0x14c(r8)
/* 80286D44 002829A4 98 87 80 00 */ stb r4, 0xCC008000@l(r7)
/* 80286D48 002829A8 80 68 01 48 */ lwz r3, 0x148(r8)
/* 80286D4C 002829AC 90 67 80 00 */ stw r3, -0x8000(r7)
/* 80286D50 002829B0 98 87 80 00 */ stb r4, -0x8000(r7)
/* 80286D54 002829B4 80 68 01 4C */ lwz r3, 0x14c(r8)
/* 80286D58 002829B8 90 67 80 00 */ stw r3, -0x8000(r7)
/* 80286D5C 002829BC B0 08 00 02 */ sth r0, 2(r8)
/* 80286D60 002829C0 4E 80 00 20 */ blr
.global GXSetScissorBoxOffset
GXSetScissorBoxOffset:
/* 80286D64 002829C4 38 03 01 56 */ addi r0, r3, 0x156
/* 80286D68 002829C8 38 C0 00 00 */ li r6, 0
/* 80286D6C 002829CC 50 06 FD BE */ rlwimi r6, r0, 0x1f, 0x16, 0x1f
/* 80286D70 002829D0 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80286D74 002829D4 38 00 00 61 */ li r0, 0x61
/* 80286D78 002829D8 38 64 01 56 */ addi r3, r4, 0x156
/* 80286D7C 002829DC 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80286D80 002829E0 50 66 4B 2A */ rlwimi r6, r3, 9, 0xc, 0x15
/* 80286D84 002829E4 38 00 00 59 */ li r0, 0x59
/* 80286D88 002829E8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
/* 80286D8C 002829EC 50 06 C0 0E */ rlwimi r6, r0, 0x18, 0, 7
/* 80286D90 002829F0 90 C5 80 00 */ stw r6, -0x8000(r5)
/* 80286D94 002829F4 38 00 00 00 */ li r0, 0
/* 80286D98 002829F8 B0 03 00 02 */ sth r0, 2(r3)
/* 80286D9C 002829FC 4E 80 00 20 */ blr
.global GXSetClipMode
GXSetClipMode:
/* 80286DA0 00282A00 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 80286DA4 00282A04 38 00 00 10 */ li r0, 0x10
/* 80286DA8 00282A08 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 80286DAC 00282A0C 38 A0 10 05 */ li r5, 0x1005
/* 80286DB0 00282A10 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
/* 80286DB4 00282A14 38 00 00 01 */ li r0, 1
/* 80286DB8 00282A18 90 A6 80 00 */ stw r5, -0x8000(r6)
/* 80286DBC 00282A1C 90 66 80 00 */ stw r3, -0x8000(r6)
/* 80286DC0 00282A20 B0 04 00 02 */ sth r0, 2(r4)
/* 80286DC4 00282A24 4E 80 00 20 */ blr
.global __GXSetMatrixIndex
__GXSetMatrixIndex:
/* 80286DC8 00282A28 2C 03 00 05 */ cmpwi r3, 5
/* 80286DCC 00282A2C 40 80 00 40 */ bge lbl_80286E0C
/* 80286DD0 00282A30 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80286DD4 00282A34 38 00 00 08 */ li r0, 8
/* 80286DD8 00282A38 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80286DDC 00282A3C 38 00 00 30 */ li r0, 0x30
/* 80286DE0 00282A40 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
/* 80286DE4 00282A44 38 60 00 10 */ li r3, 0x10
/* 80286DE8 00282A48 98 05 80 00 */ stb r0, -0x8000(r5)
/* 80286DEC 00282A4C 38 00 10 18 */ li r0, 0x1018
/* 80286DF0 00282A50 80 86 00 80 */ lwz r4, 0x80(r6)
/* 80286DF4 00282A54 90 85 80 00 */ stw r4, -0x8000(r5)
/* 80286DF8 00282A58 98 65 80 00 */ stb r3, -0x8000(r5)
/* 80286DFC 00282A5C 90 05 80 00 */ stw r0, -0x8000(r5)
/* 80286E00 00282A60 80 06 00 80 */ lwz r0, 0x80(r6)
/* 80286E04 00282A64 90 05 80 00 */ stw r0, -0x8000(r5)
/* 80286E08 00282A68 48 00 00 3C */ b lbl_80286E44
lbl_80286E0C:
/* 80286E0C 00282A6C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80286E10 00282A70 38 00 00 08 */ li r0, 8
/* 80286E14 00282A74 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80286E18 00282A78 38 00 00 40 */ li r0, 0x40
/* 80286E1C 00282A7C 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
/* 80286E20 00282A80 38 60 00 10 */ li r3, 0x10
/* 80286E24 00282A84 98 05 80 00 */ stb r0, -0x8000(r5)
/* 80286E28 00282A88 38 00 10 19 */ li r0, 0x1019
/* 80286E2C 00282A8C 80 86 00 84 */ lwz r4, 0x84(r6)
/* 80286E30 00282A90 90 85 80 00 */ stw r4, -0x8000(r5)
/* 80286E34 00282A94 98 65 80 00 */ stb r3, -0x8000(r5)
/* 80286E38 00282A98 90 05 80 00 */ stw r0, -0x8000(r5)
/* 80286E3C 00282A9C 80 06 00 84 */ lwz r0, 0x84(r6)
/* 80286E40 00282AA0 90 05 80 00 */ stw r0, -0x8000(r5)
lbl_80286E44:
/* 80286E44 00282AA4 38 00 00 01 */ li r0, 1
/* 80286E48 00282AA8 B0 06 00 02 */ sth r0, 2(r6)
/* 80286E4C 00282AAC 4E 80 00 20 */ blr
|