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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global __GXSetDirtyState
__GXSetDirtyState:
/* 80280ED0 0027CB30 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80280ED4 0027CB34 7C 08 02 A6 */ mflr r0
/* 80280ED8 0027CB38 90 01 00 14 */ stw r0, 0x14(r1)
/* 80280EDC 0027CB3C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80280EE0 0027CB40 83 E2 A0 D0 */ lwz r31, lbl_806426D0-_SDA2_BASE_(r2)
/* 80280EE4 0027CB44 93 C1 00 08 */ stw r30, 8(r1)
/* 80280EE8 0027CB48 83 DF 05 FC */ lwz r30, 0x5fc(r31)
/* 80280EEC 0027CB4C 57 C0 07 FF */ clrlwi. r0, r30, 0x1f
/* 80280EF0 0027CB50 41 82 00 08 */ beq lbl_80280EF8
/* 80280EF4 0027CB54 48 00 1F B5 */ bl __GXSetSUTexRegs
lbl_80280EF8:
/* 80280EF8 0027CB58 57 C0 07 BD */ rlwinm. r0, r30, 0, 0x1e, 0x1e
/* 80280EFC 0027CB5C 41 82 00 08 */ beq lbl_80280F04
/* 80280F00 0027CB60 48 00 2B E9 */ bl __GXUpdateBPMask
lbl_80280F04:
/* 80280F04 0027CB64 57 C0 07 7B */ rlwinm. r0, r30, 0, 0x1d, 0x1d
/* 80280F08 0027CB68 41 82 00 24 */ beq lbl_80280F2C
/* 80280F0C 0027CB6C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80280F10 0027CB70 38 00 00 61 */ li r0, 0x61
/* 80280F14 0027CB74 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 80280F18 0027CB78 38 00 00 00 */ li r0, 0
/* 80280F1C 0027CB7C 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
/* 80280F20 0027CB80 80 65 02 54 */ lwz r3, 0x254(r5)
/* 80280F24 0027CB84 90 64 80 00 */ stw r3, -0x8000(r4)
/* 80280F28 0027CB88 B0 05 00 02 */ sth r0, 2(r5)
lbl_80280F2C:
/* 80280F2C 0027CB8C 57 C0 07 39 */ rlwinm. r0, r30, 0, 0x1c, 0x1c
/* 80280F30 0027CB90 41 82 00 08 */ beq lbl_80280F38
/* 80280F34 0027CB94 4B FF E9 31 */ bl __GXSetVCD
lbl_80280F38:
/* 80280F38 0027CB98 57 C0 06 F7 */ rlwinm. r0, r30, 0, 0x1b, 0x1b
/* 80280F3C 0027CB9C 41 82 00 08 */ beq lbl_80280F44
/* 80280F40 0027CBA0 4B FF F0 DD */ bl __GXSetVAT
lbl_80280F44:
/* 80280F44 0027CBA4 57 C0 06 F9 */ rlwinm. r0, r30, 0, 0x1b, 0x1c
/* 80280F48 0027CBA8 41 82 00 08 */ beq lbl_80280F50
/* 80280F4C 0027CBAC 4B FF E9 C9 */ bl __GXCalculateVLim
lbl_80280F50:
/* 80280F50 0027CBB0 57 DE 00 2F */ rlwinm. r30, r30, 0, 0, 0x17
/* 80280F54 0027CBB4 41 82 01 D4 */ beq lbl_80281128
/* 80280F58 0027CBB8 57 C4 05 2F */ rlwinm. r4, r30, 0, 0x14, 0x17
/* 80280F5C 0027CBBC 41 82 00 94 */ beq lbl_80280FF0
/* 80280F60 0027CBC0 54 80 05 EF */ rlwinm. r0, r4, 0, 0x17, 0x17
/* 80280F64 0027CBC4 41 82 00 20 */ beq lbl_80280F84
/* 80280F68 0027CBC8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80280F6C 0027CBCC 38 00 00 10 */ li r0, 0x10
/* 80280F70 0027CBD0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 80280F74 0027CBD4 38 00 10 0A */ li r0, 0x100a
/* 80280F78 0027CBD8 90 03 80 00 */ stw r0, -0x8000(r3)
/* 80280F7C 0027CBDC 80 1F 00 A8 */ lwz r0, 0xa8(r31)
/* 80280F80 0027CBE0 90 03 80 00 */ stw r0, -0x8000(r3)
lbl_80280F84:
/* 80280F84 0027CBE4 54 80 05 AD */ rlwinm. r0, r4, 0, 0x16, 0x16
/* 80280F88 0027CBE8 41 82 00 20 */ beq lbl_80280FA8
/* 80280F8C 0027CBEC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80280F90 0027CBF0 38 00 00 10 */ li r0, 0x10
/* 80280F94 0027CBF4 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 80280F98 0027CBF8 38 00 10 0B */ li r0, 0x100b
/* 80280F9C 0027CBFC 90 03 80 00 */ stw r0, -0x8000(r3)
/* 80280FA0 0027CC00 80 1F 00 AC */ lwz r0, 0xac(r31)
/* 80280FA4 0027CC04 90 03 80 00 */ stw r0, -0x8000(r3)
lbl_80280FA8:
/* 80280FA8 0027CC08 54 80 05 6B */ rlwinm. r0, r4, 0, 0x15, 0x15
/* 80280FAC 0027CC0C 41 82 00 20 */ beq lbl_80280FCC
/* 80280FB0 0027CC10 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80280FB4 0027CC14 38 00 00 10 */ li r0, 0x10
/* 80280FB8 0027CC18 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 80280FBC 0027CC1C 38 00 10 0C */ li r0, 0x100c
/* 80280FC0 0027CC20 90 03 80 00 */ stw r0, -0x8000(r3)
/* 80280FC4 0027CC24 80 1F 00 B0 */ lwz r0, 0xb0(r31)
/* 80280FC8 0027CC28 90 03 80 00 */ stw r0, -0x8000(r3)
lbl_80280FCC:
/* 80280FCC 0027CC2C 54 80 05 29 */ rlwinm. r0, r4, 0, 0x14, 0x14
/* 80280FD0 0027CC30 41 82 00 20 */ beq lbl_80280FF0
/* 80280FD4 0027CC34 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80280FD8 0027CC38 38 00 00 10 */ li r0, 0x10
/* 80280FDC 0027CC3C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 80280FE0 0027CC40 38 00 10 0D */ li r0, 0x100d
/* 80280FE4 0027CC44 90 03 80 00 */ stw r0, -0x8000(r3)
/* 80280FE8 0027CC48 80 1F 00 B4 */ lwz r0, 0xb4(r31)
/* 80280FEC 0027CC4C 90 03 80 00 */ stw r0, -0x8000(r3)
lbl_80280FF0:
/* 80280FF0 0027CC50 57 C7 01 CE */ rlwinm r7, r30, 0, 7, 7
/* 80280FF4 0027CC54 53 C7 04 27 */ rlwimi. r7, r30, 0, 0x10, 0x13
/* 80280FF8 0027CC58 41 82 00 70 */ beq lbl_80281068
/* 80280FFC 0027CC5C 54 E0 01 CF */ rlwinm. r0, r7, 0, 7, 7
/* 80281000 0027CC60 38 C0 10 0E */ li r6, 0x100e
/* 80281004 0027CC64 41 82 00 24 */ beq lbl_80281028
/* 80281008 0027CC68 80 BF 02 54 */ lwz r5, 0x254(r31)
/* 8028100C 0027CC6C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80281010 0027CC70 38 80 00 10 */ li r4, 0x10
/* 80281014 0027CC74 38 00 10 09 */ li r0, 0x1009
/* 80281018 0027CC78 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
/* 8028101C 0027CC7C 54 A4 E7 7E */ rlwinm r4, r5, 0x1c, 0x1d, 0x1f
/* 80281020 0027CC80 90 03 80 00 */ stw r0, -0x8000(r3)
/* 80281024 0027CC84 90 83 80 00 */ stw r4, -0x8000(r3)
lbl_80281028:
/* 80281028 0027CC88 7F E5 FB 78 */ mr r5, r31
/* 8028102C 0027CC8C 54 E7 A7 3E */ rlwinm r7, r7, 0x14, 0x1c, 0x1f
/* 80281030 0027CC90 38 80 00 10 */ li r4, 0x10
/* 80281034 0027CC94 3C 60 CC 01 */ lis r3, 0xcc01
/* 80281038 0027CC98 48 00 00 28 */ b lbl_80281060
lbl_8028103C:
/* 8028103C 0027CC9C 54 E0 07 FF */ clrlwi. r0, r7, 0x1f
/* 80281040 0027CCA0 41 82 00 14 */ beq lbl_80281054
/* 80281044 0027CCA4 98 83 80 00 */ stb r4, -0x8000(r3)
/* 80281048 0027CCA8 90 C3 80 00 */ stw r6, -0x8000(r3)
/* 8028104C 0027CCAC 80 05 00 B8 */ lwz r0, 0xb8(r5)
/* 80281050 0027CCB0 90 03 80 00 */ stw r0, -0x8000(r3)
lbl_80281054:
/* 80281054 0027CCB4 54 E7 F8 7E */ srwi r7, r7, 1
/* 80281058 0027CCB8 38 A5 00 04 */ addi r5, r5, 4
/* 8028105C 0027CCBC 38 C6 00 01 */ addi r6, r6, 1
lbl_80281060:
/* 80281060 0027CCC0 2C 07 00 00 */ cmpwi r7, 0
/* 80281064 0027CCC4 40 82 FF D8 */ bne lbl_8028103C
lbl_80281068:
/* 80281068 0027CCC8 77 C8 02 FF */ andis. r8, r30, 0x2ff
/* 8028106C 0027CCCC 41 82 00 84 */ beq lbl_802810F0
/* 80281070 0027CCD0 55 00 01 8D */ rlwinm. r0, r8, 0, 6, 6
/* 80281074 0027CCD4 38 C0 10 40 */ li r6, 0x1040
/* 80281078 0027CCD8 41 82 00 24 */ beq lbl_8028109C
/* 8028107C 0027CCDC 80 BF 02 54 */ lwz r5, 0x254(r31)
/* 80281080 0027CCE0 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80281084 0027CCE4 38 80 00 10 */ li r4, 0x10
/* 80281088 0027CCE8 38 00 10 3F */ li r0, 0x103f
/* 8028108C 0027CCEC 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
/* 80281090 0027CCF0 54 A4 07 3E */ clrlwi r4, r5, 0x1c
/* 80281094 0027CCF4 90 03 80 00 */ stw r0, -0x8000(r3)
/* 80281098 0027CCF8 90 83 80 00 */ stw r4, -0x8000(r3)
lbl_8028109C:
/* 8028109C 0027CCFC 7F E7 FB 78 */ mr r7, r31
/* 802810A0 0027CD00 55 08 86 3E */ rlwinm r8, r8, 0x10, 0x18, 0x1f
/* 802810A4 0027CD04 38 80 00 10 */ li r4, 0x10
/* 802810A8 0027CD08 3C 60 CC 01 */ lis r3, 0xcc01
/* 802810AC 0027CD0C 48 00 00 3C */ b lbl_802810E8
lbl_802810B0:
/* 802810B0 0027CD10 55 00 07 FF */ clrlwi. r0, r8, 0x1f
/* 802810B4 0027CD14 38 A6 00 10 */ addi r5, r6, 0x10
/* 802810B8 0027CD18 41 82 00 24 */ beq lbl_802810DC
/* 802810BC 0027CD1C 98 83 80 00 */ stb r4, -0x8000(r3)
/* 802810C0 0027CD20 90 C3 80 00 */ stw r6, -0x8000(r3)
/* 802810C4 0027CD24 80 07 00 C8 */ lwz r0, 0xc8(r7)
/* 802810C8 0027CD28 90 03 80 00 */ stw r0, -0x8000(r3)
/* 802810CC 0027CD2C 98 83 80 00 */ stb r4, -0x8000(r3)
/* 802810D0 0027CD30 90 A3 80 00 */ stw r5, -0x8000(r3)
/* 802810D4 0027CD34 80 07 00 E8 */ lwz r0, 0xe8(r7)
/* 802810D8 0027CD38 90 03 80 00 */ stw r0, -0x8000(r3)
lbl_802810DC:
/* 802810DC 0027CD3C 55 08 F8 7E */ srwi r8, r8, 1
/* 802810E0 0027CD40 38 C6 00 01 */ addi r6, r6, 1
/* 802810E4 0027CD44 38 E7 00 04 */ addi r7, r7, 4
lbl_802810E8:
/* 802810E8 0027CD48 2C 08 00 00 */ cmpwi r8, 0
/* 802810EC 0027CD4C 40 82 FF C4 */ bne lbl_802810B0
lbl_802810F0:
/* 802810F0 0027CD50 57 C0 01 4B */ rlwinm. r0, r30, 0, 5, 5
/* 802810F4 0027CD54 41 82 00 14 */ beq lbl_80281108
/* 802810F8 0027CD58 38 60 00 00 */ li r3, 0
/* 802810FC 0027CD5C 48 00 5C CD */ bl __GXSetMatrixIndex
/* 80281100 0027CD60 38 60 00 05 */ li r3, 5
/* 80281104 0027CD64 48 00 5C C5 */ bl __GXSetMatrixIndex
lbl_80281108:
/* 80281108 0027CD68 57 C0 00 C7 */ rlwinm. r0, r30, 0, 3, 3
/* 8028110C 0027CD6C 41 82 00 08 */ beq lbl_80281114
/* 80281110 0027CD70 48 00 5A F5 */ bl __GXSetViewport
lbl_80281114:
/* 80281114 0027CD74 57 C0 01 09 */ rlwinm. r0, r30, 0, 4, 4
/* 80281118 0027CD78 41 82 00 08 */ beq lbl_80281120
/* 8028111C 0027CD7C 48 00 58 79 */ bl __GXSetProjection
lbl_80281120:
/* 80281120 0027CD80 38 00 00 01 */ li r0, 1
/* 80281124 0027CD84 B0 1F 00 02 */ sth r0, 2(r31)
lbl_80281128:
/* 80281128 0027CD88 38 00 00 00 */ li r0, 0
/* 8028112C 0027CD8C 90 1F 05 FC */ stw r0, 0x5fc(r31)
/* 80281130 0027CD90 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80281134 0027CD94 83 C1 00 08 */ lwz r30, 8(r1)
/* 80281138 0027CD98 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028113C 0027CD9C 7C 08 03 A6 */ mtlr r0
/* 80281140 0027CDA0 38 21 00 10 */ addi r1, r1, 0x10
/* 80281144 0027CDA4 4E 80 00 20 */ blr
.global GXBegin
GXBegin:
/* 80281148 0027CDA8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8028114C 0027CDAC 7C 08 02 A6 */ mflr r0
/* 80281150 0027CDB0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80281154 0027CDB4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80281158 0027CDB8 83 E2 A0 D0 */ lwz r31, lbl_806426D0-_SDA2_BASE_(r2)
/* 8028115C 0027CDBC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80281160 0027CDC0 7C BE 2B 78 */ mr r30, r5
/* 80281164 0027CDC4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80281168 0027CDC8 7C 9D 23 78 */ mr r29, r4
/* 8028116C 0027CDCC 93 81 00 10 */ stw r28, 0x10(r1)
/* 80281170 0027CDD0 7C 7C 1B 78 */ mr r28, r3
/* 80281174 0027CDD4 80 1F 05 FC */ lwz r0, 0x5fc(r31)
/* 80281178 0027CDD8 2C 00 00 00 */ cmpwi r0, 0
/* 8028117C 0027CDDC 41 82 00 08 */ beq lbl_80281184
/* 80281180 0027CDE0 4B FF FD 51 */ bl __GXSetDirtyState
lbl_80281184:
/* 80281184 0027CDE4 80 1F 00 00 */ lwz r0, 0(r31)
/* 80281188 0027CDE8 2C 00 00 00 */ cmpwi r0, 0
/* 8028118C 0027CDEC 40 82 00 D8 */ bne lbl_80281264
/* 80281190 0027CDF0 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281194 0027CDF4 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80281198 0027CDF8 38 00 00 98 */ li r0, 0x98
/* 8028119C 0027CDFC 38 C0 00 00 */ li r6, 0
/* 802811A0 0027CE00 A0 A7 00 04 */ lhz r5, 4(r7)
/* 802811A4 0027CE04 A0 87 00 06 */ lhz r4, 6(r7)
/* 802811A8 0027CE08 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 802811AC 0027CE0C 7C A5 21 D7 */ mullw. r5, r5, r4
/* 802811B0 0027CE10 A0 07 00 04 */ lhz r0, 4(r7)
/* 802811B4 0027CE14 B0 03 80 00 */ sth r0, -0x8000(r3)
/* 802811B8 0027CE18 41 82 00 A4 */ beq lbl_8028125C
/* 802811BC 0027CE1C 38 65 00 03 */ addi r3, r5, 3
/* 802811C0 0027CE20 38 E5 FF E0 */ addi r7, r5, -32
/* 802811C4 0027CE24 54 60 F0 BE */ srwi r0, r3, 2
/* 802811C8 0027CE28 28 00 00 08 */ cmplwi r0, 8
/* 802811CC 0027CE2C 40 81 00 68 */ ble lbl_80281234
/* 802811D0 0027CE30 28 03 00 03 */ cmplwi r3, 3
/* 802811D4 0027CE34 38 00 00 00 */ li r0, 0
/* 802811D8 0027CE38 41 80 00 10 */ blt lbl_802811E8
/* 802811DC 0027CE3C 7C 05 18 40 */ cmplw r5, r3
/* 802811E0 0027CE40 41 81 00 08 */ bgt lbl_802811E8
/* 802811E4 0027CE44 38 00 00 01 */ li r0, 1
lbl_802811E8:
/* 802811E8 0027CE48 2C 00 00 00 */ cmpwi r0, 0
/* 802811EC 0027CE4C 41 82 00 48 */ beq lbl_80281234
/* 802811F0 0027CE50 38 07 00 1F */ addi r0, r7, 0x1f
/* 802811F4 0027CE54 38 80 00 00 */ li r4, 0
/* 802811F8 0027CE58 54 00 D9 7E */ srwi r0, r0, 5
/* 802811FC 0027CE5C 3C 60 CC 01 */ lis r3, 0xcc01
/* 80281200 0027CE60 7C 09 03 A6 */ mtctr r0
/* 80281204 0027CE64 28 07 00 00 */ cmplwi r7, 0
/* 80281208 0027CE68 40 81 00 2C */ ble lbl_80281234
lbl_8028120C:
/* 8028120C 0027CE6C 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281210 0027CE70 38 C6 00 20 */ addi r6, r6, 0x20
/* 80281214 0027CE74 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281218 0027CE78 90 83 80 00 */ stw r4, -0x8000(r3)
/* 8028121C 0027CE7C 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281220 0027CE80 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281224 0027CE84 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281228 0027CE88 90 83 80 00 */ stw r4, -0x8000(r3)
/* 8028122C 0027CE8C 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281230 0027CE90 42 00 FF DC */ bdnz lbl_8028120C
lbl_80281234:
/* 80281234 0027CE94 38 05 00 03 */ addi r0, r5, 3
/* 80281238 0027CE98 38 80 00 00 */ li r4, 0
/* 8028123C 0027CE9C 7C 06 00 50 */ subf r0, r6, r0
/* 80281240 0027CEA0 3C 60 CC 01 */ lis r3, 0xcc01
/* 80281244 0027CEA4 54 00 F0 BE */ srwi r0, r0, 2
/* 80281248 0027CEA8 7C 09 03 A6 */ mtctr r0
/* 8028124C 0027CEAC 7C 06 28 40 */ cmplw r6, r5
/* 80281250 0027CEB0 40 80 00 0C */ bge lbl_8028125C
lbl_80281254:
/* 80281254 0027CEB4 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281258 0027CEB8 42 00 FF FC */ bdnz lbl_80281254
lbl_8028125C:
/* 8028125C 0027CEBC 38 00 00 01 */ li r0, 1
/* 80281260 0027CEC0 B0 1F 00 02 */ sth r0, 2(r31)
lbl_80281264:
/* 80281264 0027CEC4 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80281268 0027CEC8 7F A0 E3 78 */ or r0, r29, r28
/* 8028126C 0027CECC 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 80281270 0027CED0 B3 C3 80 00 */ sth r30, -0x8000(r3)
/* 80281274 0027CED4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80281278 0027CED8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8028127C 0027CEDC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80281280 0027CEE0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80281284 0027CEE4 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80281288 0027CEE8 7C 08 03 A6 */ mtlr r0
/* 8028128C 0027CEEC 38 21 00 20 */ addi r1, r1, 0x20
/* 80281290 0027CEF0 4E 80 00 20 */ blr
.global __GXSendFlushPrim
__GXSendFlushPrim:
/* 80281294 0027CEF4 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281298 0027CEF8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8028129C 0027CEFC 38 00 00 98 */ li r0, 0x98
/* 802812A0 0027CF00 38 E0 00 00 */ li r7, 0
/* 802812A4 0027CF04 A0 A6 00 04 */ lhz r5, 4(r6)
/* 802812A8 0027CF08 A0 86 00 06 */ lhz r4, 6(r6)
/* 802812AC 0027CF0C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 802812B0 0027CF10 7D 05 21 D7 */ mullw. r8, r5, r4
/* 802812B4 0027CF14 A0 06 00 04 */ lhz r0, 4(r6)
/* 802812B8 0027CF18 B0 03 80 00 */ sth r0, -0x8000(r3)
/* 802812BC 0027CF1C 41 82 00 A4 */ beq lbl_80281360
/* 802812C0 0027CF20 38 68 00 03 */ addi r3, r8, 3
/* 802812C4 0027CF24 38 A8 FF E0 */ addi r5, r8, -32
/* 802812C8 0027CF28 54 60 F0 BE */ srwi r0, r3, 2
/* 802812CC 0027CF2C 28 00 00 08 */ cmplwi r0, 8
/* 802812D0 0027CF30 40 81 00 68 */ ble lbl_80281338
/* 802812D4 0027CF34 28 03 00 03 */ cmplwi r3, 3
/* 802812D8 0027CF38 38 00 00 00 */ li r0, 0
/* 802812DC 0027CF3C 41 80 00 10 */ blt lbl_802812EC
/* 802812E0 0027CF40 7C 08 18 40 */ cmplw r8, r3
/* 802812E4 0027CF44 41 81 00 08 */ bgt lbl_802812EC
/* 802812E8 0027CF48 38 00 00 01 */ li r0, 1
lbl_802812EC:
/* 802812EC 0027CF4C 2C 00 00 00 */ cmpwi r0, 0
/* 802812F0 0027CF50 41 82 00 48 */ beq lbl_80281338
/* 802812F4 0027CF54 38 05 00 1F */ addi r0, r5, 0x1f
/* 802812F8 0027CF58 38 80 00 00 */ li r4, 0
/* 802812FC 0027CF5C 54 00 D9 7E */ srwi r0, r0, 5
/* 80281300 0027CF60 3C 60 CC 01 */ lis r3, 0xcc01
/* 80281304 0027CF64 7C 09 03 A6 */ mtctr r0
/* 80281308 0027CF68 28 05 00 00 */ cmplwi r5, 0
/* 8028130C 0027CF6C 40 81 00 2C */ ble lbl_80281338
lbl_80281310:
/* 80281310 0027CF70 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281314 0027CF74 38 E7 00 20 */ addi r7, r7, 0x20
/* 80281318 0027CF78 90 83 80 00 */ stw r4, -0x8000(r3)
/* 8028131C 0027CF7C 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281320 0027CF80 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281324 0027CF84 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281328 0027CF88 90 83 80 00 */ stw r4, -0x8000(r3)
/* 8028132C 0027CF8C 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281330 0027CF90 90 83 80 00 */ stw r4, -0x8000(r3)
/* 80281334 0027CF94 42 00 FF DC */ bdnz lbl_80281310
lbl_80281338:
/* 80281338 0027CF98 38 08 00 03 */ addi r0, r8, 3
/* 8028133C 0027CF9C 38 80 00 00 */ li r4, 0
/* 80281340 0027CFA0 7C 07 00 50 */ subf r0, r7, r0
/* 80281344 0027CFA4 3C 60 CC 01 */ lis r3, 0xcc01
/* 80281348 0027CFA8 54 00 F0 BE */ srwi r0, r0, 2
/* 8028134C 0027CFAC 7C 09 03 A6 */ mtctr r0
/* 80281350 0027CFB0 7C 07 40 40 */ cmplw r7, r8
/* 80281354 0027CFB4 40 80 00 0C */ bge lbl_80281360
lbl_80281358:
/* 80281358 0027CFB8 90 83 80 00 */ stw r4, -0x8000(r3)
/* 8028135C 0027CFBC 42 00 FF FC */ bdnz lbl_80281358
lbl_80281360:
/* 80281360 0027CFC0 38 00 00 01 */ li r0, 1
/* 80281364 0027CFC4 B0 06 00 02 */ sth r0, 2(r6)
/* 80281368 0027CFC8 4E 80 00 20 */ blr
.global GXSetLineWidth
GXSetLineWidth:
/* 8028136C 0027CFCC 81 02 A0 D0 */ lwz r8, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281370 0027CFD0 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80281374 0027CFD4 38 C0 00 61 */ li r6, 0x61
/* 80281378 0027CFD8 38 00 00 00 */ li r0, 0
/* 8028137C 0027CFDC 80 E8 00 7C */ lwz r7, 0x7c(r8)
/* 80281380 0027CFE0 50 67 06 3E */ rlwimi r7, r3, 0, 0x18, 0x1f
/* 80281384 0027CFE4 50 87 83 5E */ rlwimi r7, r4, 0x10, 0xd, 0xf
/* 80281388 0027CFE8 90 E8 00 7C */ stw r7, 0x7c(r8)
/* 8028138C 0027CFEC 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 80281390 0027CFF0 80 68 00 7C */ lwz r3, 0x7c(r8)
/* 80281394 0027CFF4 90 65 80 00 */ stw r3, -0x8000(r5)
/* 80281398 0027CFF8 B0 08 00 02 */ sth r0, 2(r8)
/* 8028139C 0027CFFC 4E 80 00 20 */ blr
.global GXSetPointSize
GXSetPointSize:
/* 802813A0 0027D000 81 02 A0 D0 */ lwz r8, lbl_806426D0-_SDA2_BASE_(r2)
/* 802813A4 0027D004 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 802813A8 0027D008 38 C0 00 61 */ li r6, 0x61
/* 802813AC 0027D00C 38 00 00 00 */ li r0, 0
/* 802813B0 0027D010 80 E8 00 7C */ lwz r7, 0x7c(r8)
/* 802813B4 0027D014 50 67 44 2E */ rlwimi r7, r3, 8, 0x10, 0x17
/* 802813B8 0027D018 50 87 9A 98 */ rlwimi r7, r4, 0x13, 0xa, 0xc
/* 802813BC 0027D01C 90 E8 00 7C */ stw r7, 0x7c(r8)
/* 802813C0 0027D020 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 802813C4 0027D024 80 68 00 7C */ lwz r3, 0x7c(r8)
/* 802813C8 0027D028 90 65 80 00 */ stw r3, -0x8000(r5)
/* 802813CC 0027D02C B0 08 00 02 */ sth r0, 2(r8)
/* 802813D0 0027D030 4E 80 00 20 */ blr
.global GXEnableTexOffsets
GXEnableTexOffsets:
/* 802813D4 0027D034 81 22 A0 D0 */ lwz r9, lbl_806426D0-_SDA2_BASE_(r2)
/* 802813D8 0027D038 54 60 10 3A */ slwi r0, r3, 2
/* 802813DC 0027D03C 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 802813E0 0027D040 38 60 00 61 */ li r3, 0x61
/* 802813E4 0027D044 7D 09 02 14 */ add r8, r9, r0
/* 802813E8 0027D048 38 00 00 00 */ li r0, 0
/* 802813EC 0027D04C 80 E8 01 08 */ lwz r7, 0x108(r8)
/* 802813F0 0027D050 50 87 93 5A */ rlwimi r7, r4, 0x12, 0xd, 0xd
/* 802813F4 0027D054 50 A7 9B 18 */ rlwimi r7, r5, 0x13, 0xc, 0xc
/* 802813F8 0027D058 90 E8 01 08 */ stw r7, 0x108(r8)
/* 802813FC 0027D05C 98 66 80 00 */ stb r3, 0xCC008000@l(r6)
/* 80281400 0027D060 80 68 01 08 */ lwz r3, 0x108(r8)
/* 80281404 0027D064 90 66 80 00 */ stw r3, -0x8000(r6)
/* 80281408 0027D068 B0 09 00 02 */ sth r0, 2(r9)
/* 8028140C 0027D06C 4E 80 00 20 */ blr
.global GXSetCullMode
GXSetCullMode:
/* 80281410 0027D070 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
/* 80281414 0027D074 54 65 FF FE */ rlwinm r5, r3, 0x1f, 0x1f, 0x1f
/* 80281418 0027D078 50 65 0F BC */ rlwimi r5, r3, 1, 0x1e, 0x1e
/* 8028141C 0027D07C 80 04 02 54 */ lwz r0, 0x254(r4)
/* 80281420 0027D080 50 A0 74 22 */ rlwimi r0, r5, 0xe, 0x10, 0x11
/* 80281424 0027D084 90 04 02 54 */ stw r0, 0x254(r4)
/* 80281428 0027D088 80 04 05 FC */ lwz r0, 0x5fc(r4)
/* 8028142C 0027D08C 60 00 00 04 */ ori r0, r0, 4
/* 80281430 0027D090 90 04 05 FC */ stw r0, 0x5fc(r4)
/* 80281434 0027D094 4E 80 00 20 */ blr
.global GXSetCoPlanar
GXSetCoPlanar:
/* 80281438 0027D098 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
/* 8028143C 0027D09C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80281440 0027D0A0 38 A0 00 61 */ li r5, 0x61
/* 80281444 0027D0A4 3C 00 FE 08 */ lis r0, 0xfe08
/* 80281448 0027D0A8 80 C7 02 54 */ lwz r6, 0x254(r7)
/* 8028144C 0027D0AC 50 66 9B 18 */ rlwimi r6, r3, 0x13, 0xc, 0xc
/* 80281450 0027D0B0 90 C7 02 54 */ stw r6, 0x254(r7)
/* 80281454 0027D0B4 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 80281458 0027D0B8 90 04 80 00 */ stw r0, -0x8000(r4)
/* 8028145C 0027D0BC 98 A4 80 00 */ stb r5, -0x8000(r4)
/* 80281460 0027D0C0 80 07 02 54 */ lwz r0, 0x254(r7)
/* 80281464 0027D0C4 90 04 80 00 */ stw r0, -0x8000(r4)
/* 80281468 0027D0C8 4E 80 00 20 */ blr
|