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
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global GXSetDispCopySrc
GXSetDispCopySrc:
/* 8028146C 0027D0CC 38 E0 00 00 */ li r7, 0
/* 80281470 0027D0D0 38 05 FF FF */ addi r0, r5, -1
/* 80281474 0027D0D4 50 67 05 BE */ rlwimi r7, r3, 0, 0x16, 0x1f
/* 80281478 0027D0D8 38 60 00 00 */ li r3, 0
/* 8028147C 0027D0DC 50 87 53 2A */ rlwimi r7, r4, 0xa, 0xc, 0x15
/* 80281480 0027D0E0 38 80 00 49 */ li r4, 0x49
/* 80281484 0027D0E4 50 03 05 BE */ rlwimi r3, r0, 0, 0x16, 0x1f
/* 80281488 0027D0E8 38 06 FF FF */ addi r0, r6, -1
/* 8028148C 0027D0EC 50 03 53 2A */ rlwimi r3, r0, 0xa, 0xc, 0x15
/* 80281490 0027D0F0 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281494 0027D0F4 50 87 C0 0E */ rlwimi r7, r4, 0x18, 0, 7
/* 80281498 0027D0F8 38 00 00 4A */ li r0, 0x4a
/* 8028149C 0027D0FC 90 E5 02 30 */ stw r7, 0x230(r5)
/* 802814A0 0027D100 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
/* 802814A4 0027D104 90 65 02 34 */ stw r3, 0x234(r5)
/* 802814A8 0027D108 4E 80 00 20 */ blr
.global GXSetTexCopySrc
GXSetTexCopySrc:
/* 802814AC 0027D10C 38 E0 00 00 */ li r7, 0
/* 802814B0 0027D110 38 05 FF FF */ addi r0, r5, -1
/* 802814B4 0027D114 50 67 05 BE */ rlwimi r7, r3, 0, 0x16, 0x1f
/* 802814B8 0027D118 38 60 00 00 */ li r3, 0
/* 802814BC 0027D11C 50 87 53 2A */ rlwimi r7, r4, 0xa, 0xc, 0x15
/* 802814C0 0027D120 38 80 00 49 */ li r4, 0x49
/* 802814C4 0027D124 50 03 05 BE */ rlwimi r3, r0, 0, 0x16, 0x1f
/* 802814C8 0027D128 38 06 FF FF */ addi r0, r6, -1
/* 802814CC 0027D12C 50 03 53 2A */ rlwimi r3, r0, 0xa, 0xc, 0x15
/* 802814D0 0027D130 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
/* 802814D4 0027D134 50 87 C0 0E */ rlwimi r7, r4, 0x18, 0, 7
/* 802814D8 0027D138 38 00 00 4A */ li r0, 0x4a
/* 802814DC 0027D13C 90 E5 02 40 */ stw r7, 0x240(r5)
/* 802814E0 0027D140 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
/* 802814E4 0027D144 90 65 02 44 */ stw r3, 0x244(r5)
/* 802814E8 0027D148 4E 80 00 20 */ blr
.global GXSetDispCopyDst
GXSetDispCopyDst:
/* 802814EC 0027D14C 54 60 0C 3C */ rlwinm r0, r3, 1, 0x10, 0x1e
/* 802814F0 0027D150 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
/* 802814F4 0027D154 7C 00 2E 70 */ srawi r0, r0, 5
/* 802814F8 0027D158 38 60 00 00 */ li r3, 0
/* 802814FC 0027D15C 50 03 05 BE */ rlwimi r3, r0, 0, 0x16, 0x1f
/* 80281500 0027D160 38 00 00 4D */ li r0, 0x4d
/* 80281504 0027D164 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
/* 80281508 0027D168 90 64 02 38 */ stw r3, 0x238(r4)
/* 8028150C 0027D16C 4E 80 00 20 */ blr
.global GXSetTexCopyDst
GXSetTexCopyDst:
/* 80281510 0027D170 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80281514 0027D174 7C 08 02 A6 */ mflr r0
/* 80281518 0027D178 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
/* 8028151C 0027D17C 2C 05 00 13 */ cmpwi r5, 0x13
/* 80281520 0027D180 90 01 00 34 */ stw r0, 0x34(r1)
/* 80281524 0027D184 38 00 00 00 */ li r0, 0
/* 80281528 0027D188 7C 69 1B 78 */ mr r9, r3
/* 8028152C 0027D18C 7C 88 23 78 */ mr r8, r4
/* 80281530 0027D190 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80281534 0027D194 54 BF 07 3E */ clrlwi r31, r5, 0x1c
/* 80281538 0027D198 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8028153C 0027D19C 7C DE 33 78 */ mr r30, r6
/* 80281540 0027D1A0 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80281544 0027D1A4 93 81 00 20 */ stw r28, 0x20(r1)
/* 80281548 0027D1A8 98 07 02 50 */ stb r0, 0x250(r7)
/* 8028154C 0027D1AC 40 82 00 08 */ bne lbl_80281554
/* 80281550 0027D1B0 3B E0 00 0B */ li r31, 0xb
lbl_80281554:
/* 80281554 0027D1B4 2C 05 00 26 */ cmpwi r5, 0x26
/* 80281558 0027D1B8 41 82 00 1C */ beq lbl_80281574
/* 8028155C 0027D1BC 40 80 00 30 */ bge lbl_8028158C
/* 80281560 0027D1C0 2C 05 00 04 */ cmpwi r5, 4
/* 80281564 0027D1C4 40 80 00 28 */ bge lbl_8028158C
/* 80281568 0027D1C8 2C 05 00 00 */ cmpwi r5, 0
/* 8028156C 0027D1CC 40 80 00 08 */ bge lbl_80281574
/* 80281570 0027D1D0 48 00 00 1C */ b lbl_8028158C
lbl_80281574:
/* 80281574 0027D1D4 38 00 00 03 */ li r0, 3
/* 80281578 0027D1D8 80 67 02 4C */ lwz r3, 0x24c(r7)
/* 8028157C 0027D1DC 50 03 7B E0 */ rlwimi r3, r0, 0xf, 0xf, 0x10
/* 80281580 0027D1E0 3B A7 02 4C */ addi r29, r7, 0x24c
/* 80281584 0027D1E4 90 67 02 4C */ stw r3, 0x24c(r7)
/* 80281588 0027D1E8 48 00 00 18 */ b lbl_802815A0
lbl_8028158C:
/* 8028158C 0027D1EC 38 00 00 02 */ li r0, 2
/* 80281590 0027D1F0 80 67 02 4C */ lwz r3, 0x24c(r7)
/* 80281594 0027D1F4 50 03 7B E0 */ rlwimi r3, r0, 0xf, 0xf, 0x10
/* 80281598 0027D1F8 3B A7 02 4C */ addi r29, r7, 0x24c
/* 8028159C 0027D1FC 90 67 02 4C */ stw r3, 0x24c(r7)
lbl_802815A0:
/* 802815A0 0027D200 54 A0 E7 FE */ rlwinm r0, r5, 0x1c, 0x1f, 0x1f
/* 802815A4 0027D204 7C A3 2B 78 */ mr r3, r5
/* 802815A8 0027D208 98 07 02 50 */ stb r0, 0x250(r7)
/* 802815AC 0027D20C 7D 05 43 78 */ mr r5, r8
/* 802815B0 0027D210 83 82 A0 D0 */ lwz r28, lbl_806426D0-_SDA2_BASE_(r2)
/* 802815B4 0027D214 7D 24 4B 78 */ mr r4, r9
/* 802815B8 0027D218 80 1D 00 00 */ lwz r0, 0(r29)
/* 802815BC 0027D21C 53 E0 07 38 */ rlwimi r0, r31, 0, 0x1c, 0x1c
/* 802815C0 0027D220 38 C1 00 10 */ addi r6, r1, 0x10
/* 802815C4 0027D224 38 E1 00 0C */ addi r7, r1, 0xc
/* 802815C8 0027D228 90 1D 00 00 */ stw r0, 0(r29)
/* 802815CC 0027D22C 39 01 00 08 */ addi r8, r1, 8
/* 802815D0 0027D230 48 00 10 41 */ bl __GetImageTileCount
/* 802815D4 0027D234 38 00 00 00 */ li r0, 0
/* 802815D8 0027D238 38 60 00 00 */ li r3, 0
/* 802815DC 0027D23C 90 1C 02 48 */ stw r0, 0x248(r28)
/* 802815E0 0027D240 38 00 00 4D */ li r0, 0x4d
/* 802815E4 0027D244 80 A1 00 10 */ lwz r5, 0x10(r1)
/* 802815E8 0027D248 80 81 00 08 */ lwz r4, 8(r1)
/* 802815EC 0027D24C 7C 85 21 D6 */ mullw r4, r5, r4
/* 802815F0 0027D250 50 83 05 BE */ rlwimi r3, r4, 0, 0x16, 0x1f
/* 802815F4 0027D254 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
/* 802815F8 0027D258 90 7C 02 48 */ stw r3, 0x248(r28)
/* 802815FC 0027D25C 80 1D 00 00 */ lwz r0, 0(r29)
/* 80281600 0027D260 53 C0 4D AC */ rlwimi r0, r30, 9, 0x16, 0x16
/* 80281604 0027D264 53 E0 26 76 */ rlwimi r0, r31, 4, 0x19, 0x1b
/* 80281608 0027D268 90 1D 00 00 */ stw r0, 0(r29)
/* 8028160C 0027D26C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80281610 0027D270 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80281614 0027D274 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80281618 0027D278 83 81 00 20 */ lwz r28, 0x20(r1)
/* 8028161C 0027D27C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80281620 0027D280 7C 08 03 A6 */ mtlr r0
/* 80281624 0027D284 38 21 00 30 */ addi r1, r1, 0x30
/* 80281628 0027D288 4E 80 00 20 */ blr
.global GXSetDispCopyFrame2Field
GXSetDispCopyFrame2Field:
/* 8028162C 0027D28C 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281630 0027D290 80 04 02 3C */ lwz r0, 0x23c(r4)
/* 80281634 0027D294 50 60 64 A6 */ rlwimi r0, r3, 0xc, 0x12, 0x13
/* 80281638 0027D298 90 04 02 3C */ stw r0, 0x23c(r4)
/* 8028163C 0027D29C 80 04 02 4C */ lwz r0, 0x24c(r4)
/* 80281640 0027D2A0 54 00 05 22 */ rlwinm r0, r0, 0, 0x14, 0x11
/* 80281644 0027D2A4 90 04 02 4C */ stw r0, 0x24c(r4)
/* 80281648 0027D2A8 4E 80 00 20 */ blr
.global GXSetCopyClamp
GXSetCopyClamp:
/* 8028164C 0027D2AC 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281650 0027D2B0 80 04 02 3C */ lwz r0, 0x23c(r4)
/* 80281654 0027D2B4 50 60 07 FE */ rlwimi r0, r3, 0, 0x1f, 0x1f
/* 80281658 0027D2B8 50 60 07 BC */ rlwimi r0, r3, 0, 0x1e, 0x1e
/* 8028165C 0027D2BC 90 04 02 3C */ stw r0, 0x23c(r4)
/* 80281660 0027D2C0 80 04 02 4C */ lwz r0, 0x24c(r4)
/* 80281664 0027D2C4 50 60 07 FE */ rlwimi r0, r3, 0, 0x1f, 0x1f
/* 80281668 0027D2C8 50 60 07 BC */ rlwimi r0, r3, 0, 0x1e, 0x1e
/* 8028166C 0027D2CC 90 04 02 4C */ stw r0, 0x24c(r4)
/* 80281670 0027D2D0 4E 80 00 20 */ blr
.global GXGetNumXfbLines
GXGetNumXfbLines:
/* 80281674 0027D2D4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80281678 0027D2D8 7C 08 02 A6 */ mflr r0
/* 8028167C 0027D2DC C0 02 A0 F8 */ lfs f0, lbl_806426F8-_SDA2_BASE_(r2)
/* 80281680 0027D2E0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80281684 0027D2E4 EC 20 08 24 */ fdivs f1, f0, f1
/* 80281688 0027D2E8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8028168C 0027D2EC 7C 7F 1B 78 */ mr r31, r3
/* 80281690 0027D2F0 4B F4 59 71 */ bl __cvt_fp2unsigned
/* 80281694 0027D2F4 38 1F FF FF */ addi r0, r31, -1
/* 80281698 0027D2F8 54 64 05 FE */ clrlwi r4, r3, 0x17
/* 8028169C 0027D2FC 54 00 40 2E */ slwi r0, r0, 8
/* 802816A0 0027D300 7C 60 23 96 */ divwu r3, r0, r4
/* 802816A4 0027D304 28 04 00 80 */ cmplwi r4, 0x80
/* 802816A8 0027D308 38 63 00 01 */ addi r3, r3, 1
/* 802816AC 0027D30C 40 81 00 30 */ ble lbl_802816DC
/* 802816B0 0027D310 28 04 01 00 */ cmplwi r4, 0x100
/* 802816B4 0027D314 40 80 00 28 */ bge lbl_802816DC
/* 802816B8 0027D318 48 00 00 08 */ b lbl_802816C0
lbl_802816BC:
/* 802816BC 0027D31C 54 84 F8 7E */ srwi r4, r4, 1
lbl_802816C0:
/* 802816C0 0027D320 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 802816C4 0027D324 41 82 FF F8 */ beq lbl_802816BC
/* 802816C8 0027D328 7C 1F 23 96 */ divwu r0, r31, r4
/* 802816CC 0027D32C 7C 00 21 D6 */ mullw r0, r0, r4
/* 802816D0 0027D330 7C 00 F8 51 */ subf. r0, r0, r31
/* 802816D4 0027D334 40 82 00 08 */ bne lbl_802816DC
/* 802816D8 0027D338 38 63 00 01 */ addi r3, r3, 1
lbl_802816DC:
/* 802816DC 0027D33C 28 03 04 00 */ cmplwi r3, 0x400
/* 802816E0 0027D340 40 81 00 08 */ ble lbl_802816E8
/* 802816E4 0027D344 38 60 04 00 */ li r3, 0x400
lbl_802816E8:
/* 802816E8 0027D348 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802816EC 0027D34C 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 802816F0 0027D350 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802816F4 0027D354 7C 08 03 A6 */ mtlr r0
/* 802816F8 0027D358 38 21 00 10 */ addi r1, r1, 0x10
/* 802816FC 0027D35C 4E 80 00 20 */ blr
.global GXGetYScaleFactor
GXGetYScaleFactor:
/* 80281700 0027D360 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 80281704 0027D364 7C 08 02 A6 */ mflr r0
/* 80281708 0027D368 90 01 00 74 */ stw r0, 0x74(r1)
/* 8028170C 0027D36C DB E1 00 60 */ stfd f31, 0x60(r1)
/* 80281710 0027D370 F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0
/* 80281714 0027D374 DB C1 00 50 */ stfd f30, 0x50(r1)
/* 80281718 0027D378 F3 C1 00 58 */ psq_st f30, 88(r1), 0, qr0
/* 8028171C 0027D37C DB A1 00 40 */ stfd f29, 0x40(r1)
/* 80281720 0027D380 F3 A1 00 48 */ psq_st f29, 72(r1), 0, qr0
/* 80281724 0027D384 DB 81 00 30 */ stfd f28, 0x30(r1)
/* 80281728 0027D388 F3 81 00 38 */ psq_st f28, 56(r1), 0, qr0
/* 8028172C 0027D38C 3C 00 43 30 */ lis r0, 0x4330
/* 80281730 0027D390 C8 62 A1 00 */ lfd f3, lbl_80642700-_SDA2_BASE_(r2)
/* 80281734 0027D394 90 01 00 08 */ stw r0, 8(r1)
/* 80281738 0027D398 C0 02 A0 F8 */ lfs f0, lbl_806426F8-_SDA2_BASE_(r2)
/* 8028173C 0027D39C 90 81 00 0C */ stw r4, 0xc(r1)
/* 80281740 0027D3A0 C8 21 00 08 */ lfd f1, 8(r1)
/* 80281744 0027D3A4 90 01 00 10 */ stw r0, 0x10(r1)
/* 80281748 0027D3A8 EC 41 18 28 */ fsubs f2, f1, f3
/* 8028174C 0027D3AC 90 61 00 14 */ stw r3, 0x14(r1)
/* 80281750 0027D3B0 C8 21 00 10 */ lfd f1, 0x10(r1)
/* 80281754 0027D3B4 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80281758 0027D3B8 EC 21 18 28 */ fsubs f1, f1, f3
/* 8028175C 0027D3BC 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80281760 0027D3C0 EF 82 08 24 */ fdivs f28, f2, f1
/* 80281764 0027D3C4 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80281768 0027D3C8 7C 9D 23 78 */ mr r29, r4
/* 8028176C 0027D3CC 93 81 00 20 */ stw r28, 0x20(r1)
/* 80281770 0027D3D0 7C 7C 1B 78 */ mr r28, r3
/* 80281774 0027D3D4 7F BE EB 78 */ mr r30, r29
/* 80281778 0027D3D8 EC 20 E0 24 */ fdivs f1, f0, f28
/* 8028177C 0027D3DC 4B F4 58 85 */ bl __cvt_fp2unsigned
/* 80281780 0027D3E0 38 1C FF FF */ addi r0, r28, -1
/* 80281784 0027D3E4 54 64 05 FE */ clrlwi r4, r3, 0x17
/* 80281788 0027D3E8 54 1F 40 2E */ slwi r31, r0, 8
/* 8028178C 0027D3EC 7C 7F 23 96 */ divwu r3, r31, r4
/* 80281790 0027D3F0 28 04 00 80 */ cmplwi r4, 0x80
/* 80281794 0027D3F4 38 63 00 01 */ addi r3, r3, 1
/* 80281798 0027D3F8 40 81 00 30 */ ble lbl_802817C8
/* 8028179C 0027D3FC 28 04 01 00 */ cmplwi r4, 0x100
/* 802817A0 0027D400 40 80 00 28 */ bge lbl_802817C8
/* 802817A4 0027D404 48 00 00 08 */ b lbl_802817AC
lbl_802817A8:
/* 802817A8 0027D408 54 84 F8 7E */ srwi r4, r4, 1
lbl_802817AC:
/* 802817AC 0027D40C 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 802817B0 0027D410 41 82 FF F8 */ beq lbl_802817A8
/* 802817B4 0027D414 7C 1C 23 96 */ divwu r0, r28, r4
/* 802817B8 0027D418 7C 00 21 D6 */ mullw r0, r0, r4
/* 802817BC 0027D41C 7C 00 E0 51 */ subf. r0, r0, r28
/* 802817C0 0027D420 40 82 00 08 */ bne lbl_802817C8
/* 802817C4 0027D424 38 63 00 01 */ addi r3, r3, 1
lbl_802817C8:
/* 802817C8 0027D428 28 03 04 00 */ cmplwi r3, 0x400
/* 802817CC 0027D42C 40 81 00 08 */ ble lbl_802817D4
/* 802817D0 0027D430 38 60 04 00 */ li r3, 0x400
lbl_802817D4:
/* 802817D4 0027D434 CB E2 A1 00 */ lfd f31, lbl_80642700-_SDA2_BASE_(r2)
/* 802817D8 0027D438 C3 C2 A0 F8 */ lfs f30, lbl_806426F8-_SDA2_BASE_(r2)
/* 802817DC 0027D43C 48 00 00 78 */ b lbl_80281854
lbl_802817E0:
/* 802817E0 0027D440 3B DE FF FF */ addi r30, r30, -1
/* 802817E4 0027D444 93 81 00 14 */ stw r28, 0x14(r1)
/* 802817E8 0027D448 93 C1 00 0C */ stw r30, 0xc(r1)
/* 802817EC 0027D44C C8 01 00 10 */ lfd f0, 0x10(r1)
/* 802817F0 0027D450 C8 21 00 08 */ lfd f1, 8(r1)
/* 802817F4 0027D454 EC 00 F8 28 */ fsubs f0, f0, f31
/* 802817F8 0027D458 EC 21 F8 28 */ fsubs f1, f1, f31
/* 802817FC 0027D45C EF 81 00 24 */ fdivs f28, f1, f0
/* 80281800 0027D460 EC 3E E0 24 */ fdivs f1, f30, f28
/* 80281804 0027D464 4B F4 57 FD */ bl __cvt_fp2unsigned
/* 80281808 0027D468 54 64 05 FE */ clrlwi r4, r3, 0x17
/* 8028180C 0027D46C 7C 7F 23 96 */ divwu r3, r31, r4
/* 80281810 0027D470 28 04 00 80 */ cmplwi r4, 0x80
/* 80281814 0027D474 38 63 00 01 */ addi r3, r3, 1
/* 80281818 0027D478 40 81 00 30 */ ble lbl_80281848
/* 8028181C 0027D47C 28 04 01 00 */ cmplwi r4, 0x100
/* 80281820 0027D480 40 80 00 28 */ bge lbl_80281848
/* 80281824 0027D484 48 00 00 08 */ b lbl_8028182C
lbl_80281828:
/* 80281828 0027D488 54 84 F8 7E */ srwi r4, r4, 1
lbl_8028182C:
/* 8028182C 0027D48C 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 80281830 0027D490 41 82 FF F8 */ beq lbl_80281828
/* 80281834 0027D494 7C 1C 23 96 */ divwu r0, r28, r4
/* 80281838 0027D498 7C 00 21 D6 */ mullw r0, r0, r4
/* 8028183C 0027D49C 7C 00 E0 51 */ subf. r0, r0, r28
/* 80281840 0027D4A0 40 82 00 08 */ bne lbl_80281848
/* 80281844 0027D4A4 38 63 00 01 */ addi r3, r3, 1
lbl_80281848:
/* 80281848 0027D4A8 28 03 04 00 */ cmplwi r3, 0x400
/* 8028184C 0027D4AC 40 81 00 08 */ ble lbl_80281854
/* 80281850 0027D4B0 38 60 04 00 */ li r3, 0x400
lbl_80281854:
/* 80281854 0027D4B4 7C 03 E8 40 */ cmplw r3, r29
/* 80281858 0027D4B8 41 81 FF 88 */ bgt lbl_802817E0
/* 8028185C 0027D4BC FF A0 E0 90 */ fmr f29, f28
/* 80281860 0027D4C0 CB C2 A1 00 */ lfd f30, lbl_80642700-_SDA2_BASE_(r2)
/* 80281864 0027D4C4 C3 E2 A0 F8 */ lfs f31, lbl_806426F8-_SDA2_BASE_(r2)
/* 80281868 0027D4C8 48 00 00 7C */ b lbl_802818E4
lbl_8028186C:
/* 8028186C 0027D4CC 3B DE 00 01 */ addi r30, r30, 1
/* 80281870 0027D4D0 93 81 00 14 */ stw r28, 0x14(r1)
/* 80281874 0027D4D4 FF A0 E0 90 */ fmr f29, f28
/* 80281878 0027D4D8 93 C1 00 0C */ stw r30, 0xc(r1)
/* 8028187C 0027D4DC C8 01 00 10 */ lfd f0, 0x10(r1)
/* 80281880 0027D4E0 C8 21 00 08 */ lfd f1, 8(r1)
/* 80281884 0027D4E4 EC 00 F0 28 */ fsubs f0, f0, f30
/* 80281888 0027D4E8 EC 21 F0 28 */ fsubs f1, f1, f30
/* 8028188C 0027D4EC EF 81 00 24 */ fdivs f28, f1, f0
/* 80281890 0027D4F0 EC 3F E0 24 */ fdivs f1, f31, f28
/* 80281894 0027D4F4 4B F4 57 6D */ bl __cvt_fp2unsigned
/* 80281898 0027D4F8 54 64 05 FE */ clrlwi r4, r3, 0x17
/* 8028189C 0027D4FC 7C 7F 23 96 */ divwu r3, r31, r4
/* 802818A0 0027D500 28 04 00 80 */ cmplwi r4, 0x80
/* 802818A4 0027D504 38 63 00 01 */ addi r3, r3, 1
/* 802818A8 0027D508 40 81 00 30 */ ble lbl_802818D8
/* 802818AC 0027D50C 28 04 01 00 */ cmplwi r4, 0x100
/* 802818B0 0027D510 40 80 00 28 */ bge lbl_802818D8
/* 802818B4 0027D514 48 00 00 08 */ b lbl_802818BC
lbl_802818B8:
/* 802818B8 0027D518 54 84 F8 7E */ srwi r4, r4, 1
lbl_802818BC:
/* 802818BC 0027D51C 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 802818C0 0027D520 41 82 FF F8 */ beq lbl_802818B8
/* 802818C4 0027D524 7C 1C 23 96 */ divwu r0, r28, r4
/* 802818C8 0027D528 7C 00 21 D6 */ mullw r0, r0, r4
/* 802818CC 0027D52C 7C 00 E0 51 */ subf. r0, r0, r28
/* 802818D0 0027D530 40 82 00 08 */ bne lbl_802818D8
/* 802818D4 0027D534 38 63 00 01 */ addi r3, r3, 1
lbl_802818D8:
/* 802818D8 0027D538 28 03 04 00 */ cmplwi r3, 0x400
/* 802818DC 0027D53C 40 81 00 08 */ ble lbl_802818E4
/* 802818E0 0027D540 38 60 04 00 */ li r3, 0x400
lbl_802818E4:
/* 802818E4 0027D544 7C 03 E8 40 */ cmplw r3, r29
/* 802818E8 0027D548 41 80 FF 84 */ blt lbl_8028186C
/* 802818EC 0027D54C FC 20 E8 90 */ fmr f1, f29
/* 802818F0 0027D550 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0
/* 802818F4 0027D554 CB E1 00 60 */ lfd f31, 0x60(r1)
/* 802818F8 0027D558 E3 C1 00 58 */ psq_l f30, 88(r1), 0, qr0
/* 802818FC 0027D55C CB C1 00 50 */ lfd f30, 0x50(r1)
/* 80281900 0027D560 E3 A1 00 48 */ psq_l f29, 72(r1), 0, qr0
/* 80281904 0027D564 CB A1 00 40 */ lfd f29, 0x40(r1)
/* 80281908 0027D568 E3 81 00 38 */ psq_l f28, 56(r1), 0, qr0
/* 8028190C 0027D56C CB 81 00 30 */ lfd f28, 0x30(r1)
/* 80281910 0027D570 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80281914 0027D574 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80281918 0027D578 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8028191C 0027D57C 83 81 00 20 */ lwz r28, 0x20(r1)
/* 80281920 0027D580 80 01 00 74 */ lwz r0, 0x74(r1)
/* 80281924 0027D584 7C 08 03 A6 */ mtlr r0
/* 80281928 0027D588 38 21 00 70 */ addi r1, r1, 0x70
/* 8028192C 0027D58C 4E 80 00 20 */ blr
.global GXSetDispCopyYScale
GXSetDispCopyYScale:
/* 80281930 0027D590 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80281934 0027D594 7C 08 02 A6 */ mflr r0
/* 80281938 0027D598 C0 02 A0 F8 */ lfs f0, lbl_806426F8-_SDA2_BASE_(r2)
/* 8028193C 0027D59C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80281940 0027D5A0 EC 20 08 24 */ fdivs f1, f0, f1
/* 80281944 0027D5A4 4B F4 56 BD */ bl __cvt_fp2unsigned
/* 80281948 0027D5A8 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8028194C 0027D5AC 38 00 00 61 */ li r0, 0x61
/* 80281950 0027D5B0 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 80281954 0027D5B4 38 00 00 4E */ li r0, 0x4e
/* 80281958 0027D5B8 38 A0 00 00 */ li r5, 0
/* 8028195C 0027D5BC 54 67 05 FE */ clrlwi r7, r3, 0x17
/* 80281960 0027D5C0 50 65 05 FE */ rlwimi r5, r3, 0, 0x17, 0x1f
/* 80281964 0027D5C4 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281968 0027D5C8 50 05 C0 0E */ rlwimi r5, r0, 0x18, 0, 7
/* 8028196C 0027D5CC 38 00 00 00 */ li r0, 0
/* 80281970 0027D5D0 90 A4 80 00 */ stw r5, -0x8000(r4)
/* 80281974 0027D5D4 20 67 01 00 */ subfic r3, r7, 0x100
/* 80281978 0027D5D8 28 07 00 80 */ cmplwi r7, 0x80
/* 8028197C 0027D5DC B0 06 00 02 */ sth r0, 2(r6)
/* 80281980 0027D5E0 38 07 FF 00 */ addi r0, r7, -256
/* 80281984 0027D5E4 7C 63 03 78 */ or r3, r3, r0
/* 80281988 0027D5E8 80 06 02 3C */ lwz r0, 0x23c(r6)
/* 8028198C 0027D5EC 50 60 5D 6A */ rlwimi r0, r3, 0xb, 0x15, 0x15
/* 80281990 0027D5F0 90 06 02 3C */ stw r0, 0x23c(r6)
/* 80281994 0027D5F4 80 06 02 34 */ lwz r0, 0x234(r6)
/* 80281998 0027D5F8 54 03 B5 BE */ rlwinm r3, r0, 0x16, 0x16, 0x1f
/* 8028199C 0027D5FC 38 83 00 01 */ addi r4, r3, 1
/* 802819A0 0027D600 38 04 FF FF */ addi r0, r4, -1
/* 802819A4 0027D604 54 00 40 2E */ slwi r0, r0, 8
/* 802819A8 0027D608 7C 60 3B 96 */ divwu r3, r0, r7
/* 802819AC 0027D60C 38 63 00 01 */ addi r3, r3, 1
/* 802819B0 0027D610 40 81 00 30 */ ble lbl_802819E0
/* 802819B4 0027D614 28 07 01 00 */ cmplwi r7, 0x100
/* 802819B8 0027D618 40 80 00 28 */ bge lbl_802819E0
/* 802819BC 0027D61C 48 00 00 08 */ b lbl_802819C4
lbl_802819C0:
/* 802819C0 0027D620 54 E7 F8 7E */ srwi r7, r7, 1
lbl_802819C4:
/* 802819C4 0027D624 54 E0 07 FF */ clrlwi. r0, r7, 0x1f
/* 802819C8 0027D628 41 82 FF F8 */ beq lbl_802819C0
/* 802819CC 0027D62C 7C 04 3B 96 */ divwu r0, r4, r7
/* 802819D0 0027D630 7C 00 39 D6 */ mullw r0, r0, r7
/* 802819D4 0027D634 7C 00 20 51 */ subf. r0, r0, r4
/* 802819D8 0027D638 40 82 00 08 */ bne lbl_802819E0
/* 802819DC 0027D63C 38 63 00 01 */ addi r3, r3, 1
lbl_802819E0:
/* 802819E0 0027D640 28 03 04 00 */ cmplwi r3, 0x400
/* 802819E4 0027D644 40 81 00 08 */ ble lbl_802819EC
/* 802819E8 0027D648 38 60 04 00 */ li r3, 0x400
lbl_802819EC:
/* 802819EC 0027D64C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802819F0 0027D650 7C 08 03 A6 */ mtlr r0
/* 802819F4 0027D654 38 21 00 10 */ addi r1, r1, 0x10
/* 802819F8 0027D658 4E 80 00 20 */ blr
.global GXSetCopyClear
GXSetCopyClear:
/* 802819FC 0027D65C 88 C3 00 00 */ lbz r6, 0(r3)
/* 80281A00 0027D660 3C E0 CC 01 */ lis r7, 0xCC008000@ha
/* 80281A04 0027D664 39 00 00 61 */ li r8, 0x61
/* 80281A08 0027D668 88 03 00 03 */ lbz r0, 3(r3)
/* 80281A0C 0027D66C 39 40 00 00 */ li r10, 0
/* 80281A10 0027D670 99 07 80 00 */ stb r8, 0xCC008000@l(r7)
/* 80281A14 0027D674 50 CA 06 3E */ rlwimi r10, r6, 0, 0x18, 0x1f
/* 80281A18 0027D678 39 20 00 4F */ li r9, 0x4f
/* 80281A1C 0027D67C 50 0A 44 2E */ rlwimi r10, r0, 8, 0x10, 0x17
/* 80281A20 0027D680 88 03 00 02 */ lbz r0, 2(r3)
/* 80281A24 0027D684 51 2A C0 0E */ rlwimi r10, r9, 0x18, 0, 7
/* 80281A28 0027D688 38 C0 00 00 */ li r6, 0
/* 80281A2C 0027D68C 91 47 80 00 */ stw r10, -0x8000(r7)
/* 80281A30 0027D690 50 06 06 3E */ rlwimi r6, r0, 0, 0x18, 0x1f
/* 80281A34 0027D694 88 63 00 01 */ lbz r3, 1(r3)
/* 80281A38 0027D698 38 00 00 50 */ li r0, 0x50
/* 80281A3C 0027D69C 99 07 80 00 */ stb r8, -0x8000(r7)
/* 80281A40 0027D6A0 38 A0 00 00 */ li r5, 0
/* 80281A44 0027D6A4 50 66 44 2E */ rlwimi r6, r3, 8, 0x10, 0x17
/* 80281A48 0027D6A8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281A4C 0027D6AC 50 06 C0 0E */ rlwimi r6, r0, 0x18, 0, 7
/* 80281A50 0027D6B0 38 00 00 51 */ li r0, 0x51
/* 80281A54 0027D6B4 90 C7 80 00 */ stw r6, -0x8000(r7)
/* 80281A58 0027D6B8 50 85 02 3E */ rlwimi r5, r4, 0, 8, 0x1f
/* 80281A5C 0027D6BC 50 05 C0 0E */ rlwimi r5, r0, 0x18, 0, 7
/* 80281A60 0027D6C0 38 00 00 00 */ li r0, 0
/* 80281A64 0027D6C4 99 07 80 00 */ stb r8, -0x8000(r7)
/* 80281A68 0027D6C8 90 A7 80 00 */ stw r5, -0x8000(r7)
/* 80281A6C 0027D6CC B0 03 00 02 */ sth r0, 2(r3)
/* 80281A70 0027D6D0 4E 80 00 20 */ blr
.global GXSetCopyFilter
GXSetCopyFilter:
/* 80281A74 0027D6D4 2C 03 00 00 */ cmpwi r3, 0
/* 80281A78 0027D6D8 41 82 00 F8 */ beq lbl_80281B70
/* 80281A7C 0027D6DC 89 04 00 00 */ lbz r8, 0(r4)
/* 80281A80 0027D6E0 38 00 00 00 */ li r0, 0
/* 80281A84 0027D6E4 89 44 00 01 */ lbz r10, 1(r4)
/* 80281A88 0027D6E8 38 60 00 00 */ li r3, 0
/* 80281A8C 0027D6EC 51 00 07 3E */ rlwimi r0, r8, 0, 0x1c, 0x1f
/* 80281A90 0027D6F0 88 E4 00 06 */ lbz r7, 6(r4)
/* 80281A94 0027D6F4 51 40 26 36 */ rlwimi r0, r10, 4, 0x18, 0x1b
/* 80281A98 0027D6F8 89 04 00 0C */ lbz r8, 0xc(r4)
/* 80281A9C 0027D6FC 50 E3 07 3E */ rlwimi r3, r7, 0, 0x1c, 0x1f
/* 80281AA0 0027D700 38 E0 00 00 */ li r7, 0
/* 80281AA4 0027D704 51 07 07 3E */ rlwimi r7, r8, 0, 0x1c, 0x1f
/* 80281AA8 0027D708 89 44 00 0D */ lbz r10, 0xd(r4)
/* 80281AAC 0027D70C 89 64 00 07 */ lbz r11, 7(r4)
/* 80281AB0 0027D710 39 00 00 00 */ li r8, 0
/* 80281AB4 0027D714 51 47 26 36 */ rlwimi r7, r10, 4, 0x18, 0x1b
/* 80281AB8 0027D718 89 44 00 02 */ lbz r10, 2(r4)
/* 80281ABC 0027D71C 89 24 00 12 */ lbz r9, 0x12(r4)
/* 80281AC0 0027D720 51 63 26 36 */ rlwimi r3, r11, 4, 0x18, 0x1b
/* 80281AC4 0027D724 51 40 45 2E */ rlwimi r0, r10, 8, 0x14, 0x17
/* 80281AC8 0027D728 89 44 00 0E */ lbz r10, 0xe(r4)
/* 80281ACC 0027D72C 51 28 07 3E */ rlwimi r8, r9, 0, 0x1c, 0x1f
/* 80281AD0 0027D730 89 24 00 13 */ lbz r9, 0x13(r4)
/* 80281AD4 0027D734 51 47 45 2E */ rlwimi r7, r10, 8, 0x14, 0x17
/* 80281AD8 0027D738 89 44 00 03 */ lbz r10, 3(r4)
/* 80281ADC 0027D73C 51 28 26 36 */ rlwimi r8, r9, 4, 0x18, 0x1b
/* 80281AE0 0027D740 89 24 00 14 */ lbz r9, 0x14(r4)
/* 80281AE4 0027D744 51 40 64 26 */ rlwimi r0, r10, 0xc, 0x10, 0x13
/* 80281AE8 0027D748 89 44 00 0F */ lbz r10, 0xf(r4)
/* 80281AEC 0027D74C 51 28 45 2E */ rlwimi r8, r9, 8, 0x14, 0x17
/* 80281AF0 0027D750 89 24 00 15 */ lbz r9, 0x15(r4)
/* 80281AF4 0027D754 51 47 64 26 */ rlwimi r7, r10, 0xc, 0x10, 0x13
/* 80281AF8 0027D758 89 44 00 04 */ lbz r10, 4(r4)
/* 80281AFC 0027D75C 89 64 00 08 */ lbz r11, 8(r4)
/* 80281B00 0027D760 51 28 64 26 */ rlwimi r8, r9, 0xc, 0x10, 0x13
/* 80281B04 0027D764 51 40 83 1E */ rlwimi r0, r10, 0x10, 0xc, 0xf
/* 80281B08 0027D768 89 44 00 10 */ lbz r10, 0x10(r4)
/* 80281B0C 0027D76C 89 24 00 16 */ lbz r9, 0x16(r4)
/* 80281B10 0027D770 51 63 45 2E */ rlwimi r3, r11, 8, 0x14, 0x17
/* 80281B14 0027D774 89 64 00 09 */ lbz r11, 9(r4)
/* 80281B18 0027D778 51 47 83 1E */ rlwimi r7, r10, 0x10, 0xc, 0xf
/* 80281B1C 0027D77C 89 44 00 05 */ lbz r10, 5(r4)
/* 80281B20 0027D780 51 28 83 1E */ rlwimi r8, r9, 0x10, 0xc, 0xf
/* 80281B24 0027D784 89 24 00 11 */ lbz r9, 0x11(r4)
/* 80281B28 0027D788 51 63 64 26 */ rlwimi r3, r11, 0xc, 0x10, 0x13
/* 80281B2C 0027D78C 89 64 00 0A */ lbz r11, 0xa(r4)
/* 80281B30 0027D790 51 40 A2 16 */ rlwimi r0, r10, 0x14, 8, 0xb
/* 80281B34 0027D794 89 44 00 0B */ lbz r10, 0xb(r4)
/* 80281B38 0027D798 51 27 A2 16 */ rlwimi r7, r9, 0x14, 8, 0xb
/* 80281B3C 0027D79C 88 84 00 17 */ lbz r4, 0x17(r4)
/* 80281B40 0027D7A0 39 20 00 01 */ li r9, 1
/* 80281B44 0027D7A4 51 63 83 1E */ rlwimi r3, r11, 0x10, 0xc, 0xf
/* 80281B48 0027D7A8 51 43 A2 16 */ rlwimi r3, r10, 0x14, 8, 0xb
/* 80281B4C 0027D7AC 50 88 A2 16 */ rlwimi r8, r4, 0x14, 8, 0xb
/* 80281B50 0027D7B0 51 20 C0 0E */ rlwimi r0, r9, 0x18, 0, 7
/* 80281B54 0027D7B4 39 40 00 02 */ li r10, 2
/* 80281B58 0027D7B8 39 20 00 03 */ li r9, 3
/* 80281B5C 0027D7BC 38 80 00 04 */ li r4, 4
/* 80281B60 0027D7C0 51 43 C0 0E */ rlwimi r3, r10, 0x18, 0, 7
/* 80281B64 0027D7C4 51 27 C0 0E */ rlwimi r7, r9, 0x18, 0, 7
/* 80281B68 0027D7C8 50 88 C0 0E */ rlwimi r8, r4, 0x18, 0, 7
/* 80281B6C 0027D7CC 48 00 00 24 */ b lbl_80281B90
lbl_80281B70:
/* 80281B70 0027D7D0 3D 00 01 66 */ lis r8, 0x01666666@ha
/* 80281B74 0027D7D4 3C 60 02 66 */ lis r3, 0x02666666@ha
/* 80281B78 0027D7D8 3C E0 03 66 */ lis r7, 0x03666666@ha
/* 80281B7C 0027D7DC 3C 80 04 66 */ lis r4, 0x04666666@ha
/* 80281B80 0027D7E0 38 08 66 66 */ addi r0, r8, 0x01666666@l
/* 80281B84 0027D7E4 38 63 66 66 */ addi r3, r3, 0x02666666@l
/* 80281B88 0027D7E8 38 E7 66 66 */ addi r7, r7, 0x03666666@l
/* 80281B8C 0027D7EC 39 04 66 66 */ addi r8, r4, 0x04666666@l
lbl_80281B90:
/* 80281B90 0027D7F0 3D 20 CC 01 */ lis r9, 0xCC008000@ha
/* 80281B94 0027D7F4 39 40 00 61 */ li r10, 0x61
/* 80281B98 0027D7F8 99 49 80 00 */ stb r10, 0xCC008000@l(r9)
/* 80281B9C 0027D7FC 2C 05 00 00 */ cmpwi r5, 0
/* 80281BA0 0027D800 38 80 00 53 */ li r4, 0x53
/* 80281BA4 0027D804 39 60 00 00 */ li r11, 0
/* 80281BA8 0027D808 90 09 80 00 */ stw r0, -0x8000(r9)
/* 80281BAC 0027D80C 38 00 00 54 */ li r0, 0x54
/* 80281BB0 0027D810 39 80 00 00 */ li r12, 0
/* 80281BB4 0027D814 50 8B C0 0E */ rlwimi r11, r4, 0x18, 0, 7
/* 80281BB8 0027D818 99 49 80 00 */ stb r10, -0x8000(r9)
/* 80281BBC 0027D81C 50 0C C0 0E */ rlwimi r12, r0, 0x18, 0, 7
/* 80281BC0 0027D820 90 69 80 00 */ stw r3, -0x8000(r9)
/* 80281BC4 0027D824 99 49 80 00 */ stb r10, -0x8000(r9)
/* 80281BC8 0027D828 90 E9 80 00 */ stw r7, -0x8000(r9)
/* 80281BCC 0027D82C 99 49 80 00 */ stb r10, -0x8000(r9)
/* 80281BD0 0027D830 91 09 80 00 */ stw r8, -0x8000(r9)
/* 80281BD4 0027D834 41 82 00 40 */ beq lbl_80281C14
/* 80281BD8 0027D838 88 86 00 00 */ lbz r4, 0(r6)
/* 80281BDC 0027D83C 88 06 00 04 */ lbz r0, 4(r6)
/* 80281BE0 0027D840 50 8B 06 BE */ rlwimi r11, r4, 0, 0x1a, 0x1f
/* 80281BE4 0027D844 88 66 00 01 */ lbz r3, 1(r6)
/* 80281BE8 0027D848 50 0C 06 BE */ rlwimi r12, r0, 0, 0x1a, 0x1f
/* 80281BEC 0027D84C 88 A6 00 02 */ lbz r5, 2(r6)
/* 80281BF0 0027D850 50 6B 35 32 */ rlwimi r11, r3, 6, 0x14, 0x19
/* 80281BF4 0027D854 88 66 00 05 */ lbz r3, 5(r6)
/* 80281BF8 0027D858 88 86 00 03 */ lbz r4, 3(r6)
/* 80281BFC 0027D85C 50 AB 63 A6 */ rlwimi r11, r5, 0xc, 0xe, 0x13
/* 80281C00 0027D860 88 06 00 06 */ lbz r0, 6(r6)
/* 80281C04 0027D864 50 6C 35 32 */ rlwimi r12, r3, 6, 0x14, 0x19
/* 80281C08 0027D868 50 8B 92 1A */ rlwimi r11, r4, 0x12, 8, 0xd
/* 80281C0C 0027D86C 50 0C 63 A6 */ rlwimi r12, r0, 0xc, 0xe, 0x13
/* 80281C10 0027D870 48 00 00 20 */ b lbl_80281C30
lbl_80281C14:
/* 80281C14 0027D874 38 60 00 15 */ li r3, 0x15
/* 80281C18 0027D878 55 6B 00 26 */ rlwinm r11, r11, 0, 0, 0x13
/* 80281C1C 0027D87C 50 6C 06 BE */ rlwimi r12, r3, 0, 0x1a, 0x1f
/* 80281C20 0027D880 38 00 00 16 */ li r0, 0x16
/* 80281C24 0027D884 50 6B 63 A6 */ rlwimi r11, r3, 0xc, 0xe, 0x13
/* 80281C28 0027D888 50 0B 92 1A */ rlwimi r11, r0, 0x12, 8, 0xd
/* 80281C2C 0027D88C 55 8C 06 9A */ rlwinm r12, r12, 0, 0x1a, 0xd
lbl_80281C30:
/* 80281C30 0027D890 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80281C34 0027D894 38 A0 00 61 */ li r5, 0x61
/* 80281C38 0027D898 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 80281C3C 0027D89C 38 00 00 00 */ li r0, 0
/* 80281C40 0027D8A0 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281C44 0027D8A4 91 64 80 00 */ stw r11, -0x8000(r4)
/* 80281C48 0027D8A8 98 A4 80 00 */ stb r5, -0x8000(r4)
/* 80281C4C 0027D8AC 91 84 80 00 */ stw r12, -0x8000(r4)
/* 80281C50 0027D8B0 B0 03 00 02 */ sth r0, 2(r3)
/* 80281C54 0027D8B4 4E 80 00 20 */ blr
.global GXSetDispCopyGamma
GXSetDispCopyGamma:
/* 80281C58 0027D8B8 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281C5C 0027D8BC 80 04 02 3C */ lwz r0, 0x23c(r4)
/* 80281C60 0027D8C0 50 60 3D F0 */ rlwimi r0, r3, 7, 0x17, 0x18
/* 80281C64 0027D8C4 90 04 02 3C */ stw r0, 0x23c(r4)
/* 80281C68 0027D8C8 4E 80 00 20 */ blr
.global GXCopyDisp
GXCopyDisp:
/* 80281C6C 0027D8CC 2C 04 00 00 */ cmpwi r4, 0
/* 80281C70 0027D8D0 41 82 00 30 */ beq lbl_80281CA0
/* 80281C74 0027D8D4 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281C78 0027D8D8 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80281C7C 0027D8DC 38 00 00 61 */ li r0, 0x61
/* 80281C80 0027D8E0 80 C7 02 28 */ lwz r6, 0x228(r7)
/* 80281C84 0027D8E4 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80281C88 0027D8E8 60 C6 00 0F */ ori r6, r6, 0xf
/* 80281C8C 0027D8EC 90 C5 80 00 */ stw r6, -0x8000(r5)
/* 80281C90 0027D8F0 80 C7 02 20 */ lwz r6, 0x220(r7)
/* 80281C94 0027D8F4 98 05 80 00 */ stb r0, -0x8000(r5)
/* 80281C98 0027D8F8 54 C0 00 3A */ rlwinm r0, r6, 0, 0, 0x1d
/* 80281C9C 0027D8FC 90 05 80 00 */ stw r0, -0x8000(r5)
lbl_80281CA0:
/* 80281CA0 0027D900 2C 04 00 00 */ cmpwi r4, 0
/* 80281CA4 0027D904 39 80 00 00 */ li r12, 0
/* 80281CA8 0027D908 40 82 00 1C */ bne lbl_80281CC4
/* 80281CAC 0027D90C 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281CB0 0027D910 80 05 02 2C */ lwz r0, 0x22c(r5)
/* 80281CB4 0027D914 39 45 02 2C */ addi r10, r5, 0x22c
/* 80281CB8 0027D918 54 00 07 7E */ clrlwi r0, r0, 0x1d
/* 80281CBC 0027D91C 28 00 00 03 */ cmplwi r0, 3
/* 80281CC0 0027D920 40 82 00 34 */ bne lbl_80281CF4
lbl_80281CC4:
/* 80281CC4 0027D924 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281CC8 0027D928 80 E5 02 2C */ lwz r7, 0x22c(r5)
/* 80281CCC 0027D92C 39 45 02 2C */ addi r10, r5, 0x22c
/* 80281CD0 0027D930 54 E0 D7 FE */ rlwinm r0, r7, 0x1a, 0x1f, 0x1f
/* 80281CD4 0027D934 28 00 00 01 */ cmplwi r0, 1
/* 80281CD8 0027D938 40 82 00 1C */ bne lbl_80281CF4
/* 80281CDC 0027D93C 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 80281CE0 0027D940 38 00 00 61 */ li r0, 0x61
/* 80281CE4 0027D944 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 80281CE8 0027D948 54 E0 06 B0 */ rlwinm r0, r7, 0, 0x1a, 0x18
/* 80281CEC 0027D94C 39 80 00 01 */ li r12, 1
/* 80281CF0 0027D950 90 06 80 00 */ stw r0, -0x8000(r6)
lbl_80281CF4:
/* 80281CF4 0027D954 3D 00 CC 01 */ lis r8, 0xCC008000@ha
/* 80281CF8 0027D958 39 20 00 61 */ li r9, 0x61
/* 80281CFC 0027D95C 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 80281D00 0027D960 38 C0 00 00 */ li r6, 0
/* 80281D04 0027D964 81 62 A0 D0 */ lwz r11, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281D08 0027D968 50 66 DA 3E */ rlwimi r6, r3, 0x1b, 8, 0x1f
/* 80281D0C 0027D96C 38 60 00 4B */ li r3, 0x4b
/* 80281D10 0027D970 38 00 00 52 */ li r0, 0x52
/* 80281D14 0027D974 80 EB 02 30 */ lwz r7, 0x230(r11)
/* 80281D18 0027D978 50 66 C0 0E */ rlwimi r6, r3, 0x18, 0, 7
/* 80281D1C 0027D97C 2C 04 00 00 */ cmpwi r4, 0
/* 80281D20 0027D980 90 E8 80 00 */ stw r7, -0x8000(r8)
/* 80281D24 0027D984 99 28 80 00 */ stb r9, -0x8000(r8)
/* 80281D28 0027D988 80 6B 02 34 */ lwz r3, 0x234(r11)
/* 80281D2C 0027D98C 90 68 80 00 */ stw r3, -0x8000(r8)
/* 80281D30 0027D990 99 28 80 00 */ stb r9, -0x8000(r8)
/* 80281D34 0027D994 80 6B 02 38 */ lwz r3, 0x238(r11)
/* 80281D38 0027D998 90 68 80 00 */ stw r3, -0x8000(r8)
/* 80281D3C 0027D99C 99 28 80 00 */ stb r9, -0x8000(r8)
/* 80281D40 0027D9A0 90 C8 80 00 */ stw r6, -0x8000(r8)
/* 80281D44 0027D9A4 80 6B 02 3C */ lwz r3, 0x23c(r11)
/* 80281D48 0027D9A8 50 83 5D 28 */ rlwimi r3, r4, 0xb, 0x14, 0x14
/* 80281D4C 0027D9AC 60 63 40 00 */ ori r3, r3, 0x4000
/* 80281D50 0027D9B0 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
/* 80281D54 0027D9B4 90 6B 02 3C */ stw r3, 0x23c(r11)
/* 80281D58 0027D9B8 99 28 80 00 */ stb r9, -0x8000(r8)
/* 80281D5C 0027D9BC 80 0B 02 3C */ lwz r0, 0x23c(r11)
/* 80281D60 0027D9C0 90 08 80 00 */ stw r0, -0x8000(r8)
/* 80281D64 0027D9C4 41 82 00 1C */ beq lbl_80281D80
/* 80281D68 0027D9C8 99 28 80 00 */ stb r9, -0x8000(r8)
/* 80281D6C 0027D9CC 80 0B 02 28 */ lwz r0, 0x228(r11)
/* 80281D70 0027D9D0 90 08 80 00 */ stw r0, -0x8000(r8)
/* 80281D74 0027D9D4 99 28 80 00 */ stb r9, -0x8000(r8)
/* 80281D78 0027D9D8 80 0B 02 20 */ lwz r0, 0x220(r11)
/* 80281D7C 0027D9DC 90 08 80 00 */ stw r0, -0x8000(r8)
lbl_80281D80:
/* 80281D80 0027D9E0 2C 0C 00 00 */ cmpwi r12, 0
/* 80281D84 0027D9E4 41 82 00 18 */ beq lbl_80281D9C
/* 80281D88 0027D9E8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80281D8C 0027D9EC 38 00 00 61 */ li r0, 0x61
/* 80281D90 0027D9F0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 80281D94 0027D9F4 80 0A 00 00 */ lwz r0, 0(r10)
/* 80281D98 0027D9F8 90 03 80 00 */ stw r0, -0x8000(r3)
lbl_80281D9C:
/* 80281D9C 0027D9FC 38 00 00 00 */ li r0, 0
/* 80281DA0 0027DA00 B0 05 00 02 */ sth r0, 2(r5)
/* 80281DA4 0027DA04 4E 80 00 20 */ blr
.global GXCopyTex
GXCopyTex:
/* 80281DA8 0027DA08 2C 04 00 00 */ cmpwi r4, 0
/* 80281DAC 0027DA0C 41 82 00 30 */ beq lbl_80281DDC
/* 80281DB0 0027DA10 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281DB4 0027DA14 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80281DB8 0027DA18 38 00 00 61 */ li r0, 0x61
/* 80281DBC 0027DA1C 80 C7 02 28 */ lwz r6, 0x228(r7)
/* 80281DC0 0027DA20 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80281DC4 0027DA24 60 C6 00 0F */ ori r6, r6, 0xf
/* 80281DC8 0027DA28 90 C5 80 00 */ stw r6, -0x8000(r5)
/* 80281DCC 0027DA2C 80 C7 02 20 */ lwz r6, 0x220(r7)
/* 80281DD0 0027DA30 98 05 80 00 */ stb r0, -0x8000(r5)
/* 80281DD4 0027DA34 54 C0 00 3A */ rlwinm r0, r6, 0, 0, 0x1d
/* 80281DD8 0027DA38 90 05 80 00 */ stw r0, -0x8000(r5)
lbl_80281DDC:
/* 80281DDC 0027DA3C 81 22 A0 D0 */ lwz r9, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281DE0 0027DA40 39 60 00 00 */ li r11, 0
/* 80281DE4 0027DA44 88 09 02 50 */ lbz r0, 0x250(r9)
/* 80281DE8 0027DA48 80 C9 02 2C */ lwz r6, 0x22c(r9)
/* 80281DEC 0027DA4C 2C 00 00 00 */ cmpwi r0, 0
/* 80281DF0 0027DA50 41 82 00 1C */ beq lbl_80281E0C
/* 80281DF4 0027DA54 54 C0 07 7E */ clrlwi r0, r6, 0x1d
/* 80281DF8 0027DA58 28 00 00 03 */ cmplwi r0, 3
/* 80281DFC 0027DA5C 41 82 00 10 */ beq lbl_80281E0C
/* 80281E00 0027DA60 38 00 00 03 */ li r0, 3
/* 80281E04 0027DA64 39 60 00 01 */ li r11, 1
/* 80281E08 0027DA68 50 06 07 7E */ rlwimi r6, r0, 0, 0x1d, 0x1f
lbl_80281E0C:
/* 80281E0C 0027DA6C 2C 04 00 00 */ cmpwi r4, 0
/* 80281E10 0027DA70 40 82 00 10 */ bne lbl_80281E20
/* 80281E14 0027DA74 54 C0 07 7E */ clrlwi r0, r6, 0x1d
/* 80281E18 0027DA78 28 00 00 03 */ cmplwi r0, 3
/* 80281E1C 0027DA7C 40 82 00 18 */ bne lbl_80281E34
lbl_80281E20:
/* 80281E20 0027DA80 54 C0 D7 FE */ rlwinm r0, r6, 0x1a, 0x1f, 0x1f
/* 80281E24 0027DA84 28 00 00 01 */ cmplwi r0, 1
/* 80281E28 0027DA88 40 82 00 0C */ bne lbl_80281E34
/* 80281E2C 0027DA8C 39 60 00 01 */ li r11, 1
/* 80281E30 0027DA90 54 C6 06 B0 */ rlwinm r6, r6, 0, 0x1a, 0x18
lbl_80281E34:
/* 80281E34 0027DA94 2C 0B 00 00 */ cmpwi r11, 0
/* 80281E38 0027DA98 41 82 00 14 */ beq lbl_80281E4C
/* 80281E3C 0027DA9C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80281E40 0027DAA0 38 00 00 61 */ li r0, 0x61
/* 80281E44 0027DAA4 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80281E48 0027DAA8 90 C5 80 00 */ stw r6, -0x8000(r5)
lbl_80281E4C:
/* 80281E4C 0027DAAC 3C E0 CC 01 */ lis r7, 0xCC008000@ha
/* 80281E50 0027DAB0 39 00 00 61 */ li r8, 0x61
/* 80281E54 0027DAB4 99 07 80 00 */ stb r8, 0xCC008000@l(r7)
/* 80281E58 0027DAB8 38 A0 00 00 */ li r5, 0
/* 80281E5C 0027DABC 81 42 A0 D0 */ lwz r10, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281E60 0027DAC0 50 65 DA 3E */ rlwimi r5, r3, 0x1b, 8, 0x1f
/* 80281E64 0027DAC4 38 60 00 4B */ li r3, 0x4b
/* 80281E68 0027DAC8 38 00 00 52 */ li r0, 0x52
/* 80281E6C 0027DACC 80 CA 02 40 */ lwz r6, 0x240(r10)
/* 80281E70 0027DAD0 50 65 C0 0E */ rlwimi r5, r3, 0x18, 0, 7
/* 80281E74 0027DAD4 2C 04 00 00 */ cmpwi r4, 0
/* 80281E78 0027DAD8 90 C7 80 00 */ stw r6, -0x8000(r7)
/* 80281E7C 0027DADC 99 07 80 00 */ stb r8, -0x8000(r7)
/* 80281E80 0027DAE0 80 6A 02 44 */ lwz r3, 0x244(r10)
/* 80281E84 0027DAE4 90 67 80 00 */ stw r3, -0x8000(r7)
/* 80281E88 0027DAE8 99 07 80 00 */ stb r8, -0x8000(r7)
/* 80281E8C 0027DAEC 80 6A 02 48 */ lwz r3, 0x248(r10)
/* 80281E90 0027DAF0 90 67 80 00 */ stw r3, -0x8000(r7)
/* 80281E94 0027DAF4 99 07 80 00 */ stb r8, -0x8000(r7)
/* 80281E98 0027DAF8 90 A7 80 00 */ stw r5, -0x8000(r7)
/* 80281E9C 0027DAFC 80 6A 02 4C */ lwz r3, 0x24c(r10)
/* 80281EA0 0027DB00 50 83 5D 28 */ rlwimi r3, r4, 0xb, 0x14, 0x14
/* 80281EA4 0027DB04 54 63 04 A0 */ rlwinm r3, r3, 0, 0x12, 0x10
/* 80281EA8 0027DB08 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
/* 80281EAC 0027DB0C 90 6A 02 4C */ stw r3, 0x24c(r10)
/* 80281EB0 0027DB10 99 07 80 00 */ stb r8, -0x8000(r7)
/* 80281EB4 0027DB14 80 0A 02 4C */ lwz r0, 0x24c(r10)
/* 80281EB8 0027DB18 90 07 80 00 */ stw r0, -0x8000(r7)
/* 80281EBC 0027DB1C 41 82 00 1C */ beq lbl_80281ED8
/* 80281EC0 0027DB20 99 07 80 00 */ stb r8, -0x8000(r7)
/* 80281EC4 0027DB24 80 0A 02 28 */ lwz r0, 0x228(r10)
/* 80281EC8 0027DB28 90 07 80 00 */ stw r0, -0x8000(r7)
/* 80281ECC 0027DB2C 99 07 80 00 */ stb r8, -0x8000(r7)
/* 80281ED0 0027DB30 80 0A 02 20 */ lwz r0, 0x220(r10)
/* 80281ED4 0027DB34 90 07 80 00 */ stw r0, -0x8000(r7)
lbl_80281ED8:
/* 80281ED8 0027DB38 2C 0B 00 00 */ cmpwi r11, 0
/* 80281EDC 0027DB3C 41 82 00 18 */ beq lbl_80281EF4
/* 80281EE0 0027DB40 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80281EE4 0027DB44 38 00 00 61 */ li r0, 0x61
/* 80281EE8 0027DB48 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 80281EEC 0027DB4C 80 09 02 2C */ lwz r0, 0x22c(r9)
/* 80281EF0 0027DB50 90 03 80 00 */ stw r0, -0x8000(r3)
lbl_80281EF4:
/* 80281EF4 0027DB54 38 00 00 00 */ li r0, 0
/* 80281EF8 0027DB58 B0 09 00 02 */ sth r0, 2(r9)
/* 80281EFC 0027DB5C 4E 80 00 20 */ blr
.global GXClearBoundingBox
GXClearBoundingBox:
/* 80281F00 0027DB60 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80281F04 0027DB64 38 C0 00 61 */ li r6, 0x61
/* 80281F08 0027DB68 3C 60 55 00 */ lis r3, 0x550003FF@ha
/* 80281F0C 0027DB6C 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 80281F10 0027DB70 38 03 03 FF */ addi r0, r3, 0x550003FF@l
/* 80281F14 0027DB74 90 05 80 00 */ stw r0, -0x8000(r5)
/* 80281F18 0027DB78 3C 60 56 00 */ lis r3, 0x560003FF@ha
/* 80281F1C 0027DB7C 38 83 03 FF */ addi r4, r3, 0x560003FF@l
/* 80281F20 0027DB80 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281F24 0027DB84 98 C5 80 00 */ stb r6, -0x8000(r5)
/* 80281F28 0027DB88 38 00 00 00 */ li r0, 0
/* 80281F2C 0027DB8C 90 85 80 00 */ stw r4, -0x8000(r5)
/* 80281F30 0027DB90 B0 03 00 02 */ sth r0, 2(r3)
/* 80281F34 0027DB94 4E 80 00 20 */ blr
|