summaryrefslogtreecommitdiff
path: root/asm/nw4r/lyt/lyt_texMap.s
blob: 0ca69fcdf935be60d61a5de9ce191f9103b017a8 (plain)
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
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global Get__Q34nw4r3lyt6TexMapCFP9_GXTexObj
Get__Q34nw4r3lyt6TexMapCFP9_GXTexObj:
/* 8038D388 00388FE8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8038D38C 00388FEC  7C 08 02 A6 */	mflr r0
/* 8038D390 00388FF0  81 43 00 18 */	lwz r10, 0x18(r3)
/* 8038D394 00388FF4  90 01 00 24 */	stw r0, 0x24(r1)
/* 8038D398 00388FF8  55 47 27 3E */	srwi r7, r10, 0x1c
/* 8038D39C 00388FFC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8038D3A0 00389000  38 07 FF F8 */	addi r0, r7, -8
/* 8038D3A4 00389004  28 00 00 02 */	cmplwi r0, 2
/* 8038D3A8 00389008  7C 9F 23 78 */	mr r31, r4
/* 8038D3AC 0038900C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8038D3B0 00389010  7C 7E 1B 78 */	mr r30, r3
/* 8038D3B4 00389014  41 81 00 3C */	bgt lbl_8038D3F0
/* 8038D3B8 00389018  7F E3 FB 78 */	mr r3, r31
/* 8038D3BC 0038901C  4B EF 56 9D */	bl GXGetTexObjTlut
/* 8038D3C0 00389020  80 1E 00 18 */	lwz r0, 0x18(r30)
/* 8038D3C4 00389024  90 61 00 08 */	stw r3, 8(r1)
/* 8038D3C8 00389028  7F E3 FB 78 */	mr r3, r31
/* 8038D3CC 0038902C  80 9E 00 00 */	lwz r4, 0(r30)
/* 8038D3D0 00389030  54 07 27 3E */	srwi r7, r0, 0x1c
/* 8038D3D4 00389034  A0 BE 00 08 */	lhz r5, 8(r30)
/* 8038D3D8 00389038  54 08 3F BE */	rlwinm r8, r0, 7, 0x1e, 0x1f
/* 8038D3DC 0038903C  A0 DE 00 0A */	lhz r6, 0xa(r30)
/* 8038D3E0 00389040  54 09 4F BE */	rlwinm r9, r0, 9, 0x1e, 0x1f
/* 8038D3E4 00389044  54 0A 2F FE */	rlwinm r10, r0, 5, 0x1f, 0x1f
/* 8038D3E8 00389048  4B EF 54 F5 */	bl GXInitTexObjCI
/* 8038D3EC 0038904C  48 00 00 24 */	b lbl_8038D410
lbl_8038D3F0:
/* 8038D3F0 00389050  80 9E 00 00 */	lwz r4, 0(r30)
/* 8038D3F4 00389054  7F E3 FB 78 */	mr r3, r31
/* 8038D3F8 00389058  A0 BE 00 08 */	lhz r5, 8(r30)
/* 8038D3FC 0038905C  55 48 3F BE */	rlwinm r8, r10, 7, 0x1e, 0x1f
/* 8038D400 00389060  55 49 4F BE */	rlwinm r9, r10, 9, 0x1e, 0x1f
/* 8038D404 00389064  A0 DE 00 0A */	lhz r6, 0xa(r30)
/* 8038D408 00389068  55 4A 2F FE */	rlwinm r10, r10, 5, 0x1f, 0x1f
/* 8038D40C 0038906C  4B EF 52 C5 */	bl GXInitTexObj
lbl_8038D410:
/* 8038D410 00389070  A0 9E 00 14 */	lhz r4, 0x14(r30)
/* 8038D414 00389074  3C A0 43 30 */	lis r5, 0x4330
/* 8038D418 00389078  80 1E 00 18 */	lwz r0, 0x18(r30)
/* 8038D41C 0038907C  7F E3 FB 78 */	mr r3, r31
/* 8038D420 00389080  90 81 00 14 */	stw r4, 0x14(r1)
/* 8038D424 00389084  C8 62 A8 C8 */	lfd f3, lbl_80642EC8-_SDA2_BASE_(r2)
/* 8038D428 00389088  54 04 67 7E */	rlwinm r4, r0, 0xc, 0x1d, 0x1f
/* 8038D42C 0038908C  90 A1 00 10 */	stw r5, 0x10(r1)
/* 8038D430 00389090  54 05 7F 7E */	rlwinm r5, r0, 0xf, 0x1d, 0x1f
/* 8038D434 00389094  C0 02 A8 C0 */	lfs f0, lbl_80642EC0-_SDA2_BASE_(r2)
/* 8038D438 00389098  54 06 87 FE */	rlwinm r6, r0, 0x10, 0x1f, 0x1f
/* 8038D43C 0038909C  C8 21 00 10 */	lfd f1, 0x10(r1)
/* 8038D440 003890A0  54 07 8F FE */	rlwinm r7, r0, 0x11, 0x1f, 0x1f
/* 8038D444 003890A4  C0 5E 00 10 */	lfs f2, 0x10(r30)
/* 8038D448 003890A8  54 08 9F BE */	rlwinm r8, r0, 0x13, 0x1e, 0x1f
/* 8038D44C 003890AC  EC 61 18 28 */	fsubs f3, f1, f3
/* 8038D450 003890B0  C0 3E 00 0C */	lfs f1, 0xc(r30)
/* 8038D454 003890B4  EC 63 00 32 */	fmuls f3, f3, f0
/* 8038D458 003890B8  4B EF 54 CD */	bl GXInitTexObjLOD
/* 8038D45C 003890BC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8038D460 003890C0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8038D464 003890C4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8038D468 003890C8  7C 08 03 A6 */	mtlr r0
/* 8038D46C 003890CC  38 21 00 20 */	addi r1, r1, 0x20
/* 8038D470 003890D0  4E 80 00 20 */	blr 

.global Get__Q34nw4r3lyt6TexMapCFP10_GXTlutObj
Get__Q34nw4r3lyt6TexMapCFP10_GXTlutObj:
/* 8038D474 003890D4  7C 65 1B 78 */	mr r5, r3
/* 8038D478 003890D8  7C 83 23 78 */	mr r3, r4
/* 8038D47C 003890DC  80 05 00 18 */	lwz r0, 0x18(r5)
/* 8038D480 003890E0  80 85 00 04 */	lwz r4, 4(r5)
/* 8038D484 003890E4  A0 C5 00 16 */	lhz r6, 0x16(r5)
/* 8038D488 003890E8  54 05 AF BE */	rlwinm r5, r0, 0x15, 0x1e, 0x1f
/* 8038D48C 003890EC  4B EF 57 8C */	b GXInitTlutObj

.global Set__Q34nw4r3lyt6TexMapFP10TPLPaletteUl
Set__Q34nw4r3lyt6TexMapFP10TPLPaletteUl:
/* 8038D490 003890F0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8038D494 003890F4  7C 08 02 A6 */	mflr r0
/* 8038D498 003890F8  90 01 00 24 */	stw r0, 0x24(r1)
/* 8038D49C 003890FC  3C 00 80 00 */	lis r0, 0x8000
/* 8038D4A0 00389100  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8038D4A4 00389104  7C BF 2B 78 */	mr r31, r5
/* 8038D4A8 00389108  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8038D4AC 0038910C  7C 9E 23 78 */	mr r30, r4
/* 8038D4B0 00389110  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8038D4B4 00389114  7C 7D 1B 78 */	mr r29, r3
/* 8038D4B8 00389118  80 C4 00 08 */	lwz r6, 8(r4)
/* 8038D4BC 0038911C  7C 06 00 40 */	cmplw r6, r0
/* 8038D4C0 00389120  40 80 00 0C */	bge lbl_8038D4CC
/* 8038D4C4 00389124  7F C3 F3 78 */	mr r3, r30
/* 8038D4C8 00389128  4B F0 E4 51 */	bl TPLBind
lbl_8038D4CC:
/* 8038D4CC 0038912C  7F C3 F3 78 */	mr r3, r30
/* 8038D4D0 00389130  7F E4 FB 78 */	mr r4, r31
/* 8038D4D4 00389134  4B F0 E5 59 */	bl TPLGet
/* 8038D4D8 00389138  7C 7F 1B 78 */	mr r31, r3
/* 8038D4DC 0038913C  7F A3 EB 78 */	mr r3, r29
/* 8038D4E0 00389140  7F E4 FB 78 */	mr r4, r31
/* 8038D4E4 00389144  48 00 00 95 */	bl SetNoWrap__Q34nw4r3lyt6TexMapFPC13TPLDescriptor
/* 8038D4E8 00389148  80 7F 00 00 */	lwz r3, 0(r31)
/* 8038D4EC 0038914C  80 1D 00 18 */	lwz r0, 0x18(r29)
/* 8038D4F0 00389150  80 83 00 0C */	lwz r4, 0xc(r3)
/* 8038D4F4 00389154  80 63 00 10 */	lwz r3, 0x10(r3)
/* 8038D4F8 00389158  50 80 C9 4C */	rlwimi r0, r4, 0x19, 5, 6
/* 8038D4FC 0038915C  50 60 B9 D0 */	rlwimi r0, r3, 0x17, 7, 8
/* 8038D500 00389160  90 1D 00 18 */	stw r0, 0x18(r29)
/* 8038D504 00389164  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8038D508 00389168  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8038D50C 0038916C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8038D510 00389170  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8038D514 00389174  7C 08 03 A6 */	mtlr r0
/* 8038D518 00389178  38 21 00 20 */	addi r1, r1, 0x20
/* 8038D51C 0038917C  4E 80 00 20 */	blr 

.global SetNoWrap__Q34nw4r3lyt6TexMapFRCQ34nw4r3lyt6TexMap
SetNoWrap__Q34nw4r3lyt6TexMapFRCQ34nw4r3lyt6TexMap:
/* 8038D520 00389180  80 A3 00 18 */	lwz r5, 0x18(r3)
/* 8038D524 00389184  80 04 00 18 */	lwz r0, 0x18(r4)
/* 8038D528 00389188  50 A0 01 4C */	rlwimi r0, r5, 0, 5, 6
/* 8038D52C 0038918C  81 24 00 00 */	lwz r9, 0(r4)
/* 8038D530 00389190  50 A0 01 D0 */	rlwimi r0, r5, 0, 7, 8
/* 8038D534 00389194  81 04 00 04 */	lwz r8, 4(r4)
/* 8038D538 00389198  A0 E4 00 08 */	lhz r7, 8(r4)
/* 8038D53C 0038919C  A0 C4 00 0A */	lhz r6, 0xa(r4)
/* 8038D540 003891A0  C0 24 00 0C */	lfs f1, 0xc(r4)
/* 8038D544 003891A4  C0 04 00 10 */	lfs f0, 0x10(r4)
/* 8038D548 003891A8  A0 A4 00 14 */	lhz r5, 0x14(r4)
/* 8038D54C 003891AC  A0 84 00 16 */	lhz r4, 0x16(r4)
/* 8038D550 003891B0  91 23 00 00 */	stw r9, 0(r3)
/* 8038D554 003891B4  91 03 00 04 */	stw r8, 4(r3)
/* 8038D558 003891B8  B0 E3 00 08 */	sth r7, 8(r3)
/* 8038D55C 003891BC  B0 C3 00 0A */	sth r6, 0xa(r3)
/* 8038D560 003891C0  D0 23 00 0C */	stfs f1, 0xc(r3)
/* 8038D564 003891C4  D0 03 00 10 */	stfs f0, 0x10(r3)
/* 8038D568 003891C8  B0 A3 00 14 */	sth r5, 0x14(r3)
/* 8038D56C 003891CC  B0 83 00 16 */	sth r4, 0x16(r3)
/* 8038D570 003891D0  90 03 00 18 */	stw r0, 0x18(r3)
/* 8038D574 003891D4  4E 80 00 20 */	blr 

.global SetNoWrap__Q34nw4r3lyt6TexMapFPC13TPLDescriptor
SetNoWrap__Q34nw4r3lyt6TexMapFPC13TPLDescriptor:
/* 8038D578 003891D8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8038D57C 003891DC  3C 00 43 30 */	lis r0, 0x4330
/* 8038D580 003891E0  80 E4 00 00 */	lwz r7, 0(r4)
/* 8038D584 003891E4  81 04 00 04 */	lwz r8, 4(r4)
/* 8038D588 003891E8  80 87 00 08 */	lwz r4, 8(r7)
/* 8038D58C 003891EC  80 C3 00 18 */	lwz r6, 0x18(r3)
/* 8038D590 003891F0  2C 08 00 00 */	cmpwi r8, 0
/* 8038D594 003891F4  90 83 00 00 */	stw r4, 0(r3)
/* 8038D598 003891F8  C8 62 A8 C8 */	lfd f3, lbl_80642EC8-_SDA2_BASE_(r2)
/* 8038D59C 003891FC  A0 A7 00 00 */	lhz r5, 0(r7)
/* 8038D5A0 00389200  A0 87 00 02 */	lhz r4, 2(r7)
/* 8038D5A4 00389204  90 01 00 08 */	stw r0, 8(r1)
/* 8038D5A8 00389208  C0 02 A8 D0 */	lfs f0, lbl_80642ED0-_SDA2_BASE_(r2)
/* 8038D5AC 0038920C  B0 83 00 08 */	sth r4, 8(r3)
/* 8038D5B0 00389210  B0 A3 00 0A */	sth r5, 0xa(r3)
/* 8038D5B4 00389214  80 87 00 04 */	lwz r4, 4(r7)
/* 8038D5B8 00389218  90 01 00 10 */	stw r0, 0x10(r1)
/* 8038D5BC 0038921C  50 86 E0 06 */	rlwimi r6, r4, 0x1c, 0, 3
/* 8038D5C0 00389220  90 C3 00 18 */	stw r6, 0x18(r3)
/* 8038D5C4 00389224  88 A7 00 21 */	lbz r5, 0x21(r7)
/* 8038D5C8 00389228  88 07 00 22 */	lbz r0, 0x22(r7)
/* 8038D5CC 0038922C  7C 85 00 50 */	subf r4, r5, r0
/* 8038D5D0 00389230  7C 00 28 50 */	subf r0, r0, r5
/* 8038D5D4 00389234  7C 80 03 78 */	or r0, r4, r0
/* 8038D5D8 00389238  50 06 E1 08 */	rlwimi r6, r0, 0x1c, 4, 4
/* 8038D5DC 0038923C  90 C3 00 18 */	stw r6, 0x18(r3)
/* 8038D5E0 00389240  80 07 00 14 */	lwz r0, 0x14(r7)
/* 8038D5E4 00389244  80 87 00 18 */	lwz r4, 0x18(r7)
/* 8038D5E8 00389248  50 06 A2 56 */	rlwimi r6, r0, 0x14, 9, 0xb
/* 8038D5EC 0038924C  50 86 8B 1C */	rlwimi r6, r4, 0x11, 0xc, 0xe
/* 8038D5F0 00389250  90 C3 00 18 */	stw r6, 0x18(r3)
/* 8038D5F4 00389254  88 87 00 22 */	lbz r4, 0x22(r7)
/* 8038D5F8 00389258  88 07 00 21 */	lbz r0, 0x21(r7)
/* 8038D5FC 0038925C  90 81 00 0C */	stw r4, 0xc(r1)
/* 8038D600 00389260  90 01 00 14 */	stw r0, 0x14(r1)
/* 8038D604 00389264  C8 41 00 08 */	lfd f2, 8(r1)
/* 8038D608 00389268  C8 21 00 10 */	lfd f1, 0x10(r1)
/* 8038D60C 0038926C  EC 42 18 28 */	fsubs f2, f2, f3
/* 8038D610 00389270  EC 21 18 28 */	fsubs f1, f1, f3
/* 8038D614 00389274  D0 43 00 10 */	stfs f2, 0x10(r3)
/* 8038D618 00389278  D0 23 00 0C */	stfs f1, 0xc(r3)
/* 8038D61C 0038927C  C0 27 00 1C */	lfs f1, 0x1c(r7)
/* 8038D620 00389280  EC 00 00 72 */	fmuls f0, f0, f1
/* 8038D624 00389284  FC 00 00 1E */	fctiwz f0, f0
/* 8038D628 00389288  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 8038D62C 0038928C  80 01 00 1C */	lwz r0, 0x1c(r1)
/* 8038D630 00389290  B0 03 00 14 */	sth r0, 0x14(r3)
/* 8038D634 00389294  88 87 00 20 */	lbz r4, 0x20(r7)
/* 8038D638 00389298  7C 04 00 D0 */	neg r0, r4
/* 8038D63C 0038929C  7C 00 23 78 */	or r0, r0, r4
/* 8038D640 003892A0  50 06 84 20 */	rlwimi r6, r0, 0x10, 0x10, 0x10
/* 8038D644 003892A4  90 C3 00 18 */	stw r6, 0x18(r3)
/* 8038D648 003892A8  41 82 00 24 */	beq lbl_8038D66C
/* 8038D64C 003892AC  80 08 00 08 */	lwz r0, 8(r8)
/* 8038D650 003892B0  90 03 00 04 */	stw r0, 4(r3)
/* 8038D654 003892B4  80 08 00 04 */	lwz r0, 4(r8)
/* 8038D658 003892B8  50 06 5C E8 */	rlwimi r6, r0, 0xb, 0x13, 0x14
/* 8038D65C 003892BC  90 C3 00 18 */	stw r6, 0x18(r3)
/* 8038D660 003892C0  A0 08 00 00 */	lhz r0, 0(r8)
/* 8038D664 003892C4  B0 03 00 16 */	sth r0, 0x16(r3)
/* 8038D668 003892C8  48 00 00 18 */	b lbl_8038D680
lbl_8038D66C:
/* 8038D66C 003892CC  38 80 00 00 */	li r4, 0
/* 8038D670 003892D0  54 C0 05 64 */	rlwinm r0, r6, 0, 0x15, 0x12
/* 8038D674 003892D4  90 83 00 04 */	stw r4, 4(r3)
/* 8038D678 003892D8  90 03 00 18 */	stw r0, 0x18(r3)
/* 8038D67C 003892DC  B0 83 00 16 */	sth r4, 0x16(r3)
lbl_8038D680:
/* 8038D680 003892E0  38 21 00 20 */	addi r1, r1, 0x20
/* 8038D684 003892E4  4E 80 00 20 */	blr