summaryrefslogtreecommitdiff
path: root/asm/code_802078B8.s
blob: 194cc3d0a6e5cb9ae4cc1d62601d1de340ea1b45 (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
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
.include "macros.inc"

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

.global func_802078B8
func_802078B8:
/* 802078B8 00203518  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802078BC 0020351C  7C 08 02 A6 */	mflr r0
/* 802078C0 00203520  90 01 00 24 */	stw r0, 0x24(r1)
/* 802078C4 00203524  39 61 00 20 */	addi r11, r1, 0x20
/* 802078C8 00203528  4B FB F8 61 */	bl _savegpr_27
/* 802078CC 0020352C  3C E0 80 42 */	lis r7, lbl_80423868@ha
/* 802078D0 00203530  38 00 00 00 */	li r0, 0
/* 802078D4 00203534  38 E7 38 68 */	addi r7, r7, lbl_80423868@l
/* 802078D8 00203538  90 83 00 00 */	stw r4, 0(r3)
/* 802078DC 0020353C  7C 7B 1B 78 */	mr r27, r3
/* 802078E0 00203540  7C 9C 23 78 */	mr r28, r4
/* 802078E4 00203544  90 E3 00 1C */	stw r7, 0x1c(r3)
/* 802078E8 00203548  7D 06 29 D6 */	mullw r8, r6, r5
/* 802078EC 0020354C  7C BD 2B 78 */	mr r29, r5
/* 802078F0 00203550  90 03 00 04 */	stw r0, 4(r3)
/* 802078F4 00203554  7C DE 33 78 */	mr r30, r6
/* 802078F8 00203558  90 03 00 08 */	stw r0, 8(r3)
/* 802078FC 0020355C  90 03 00 0C */	stw r0, 0xc(r3)
/* 80207900 00203560  90 03 00 10 */	stw r0, 0x10(r3)
/* 80207904 00203564  B0 03 00 14 */	sth r0, 0x14(r3)
/* 80207908 00203568  B0 C3 00 16 */	sth r6, 0x16(r3)
/* 8020790C 0020356C  98 03 00 18 */	stb r0, 0x18(r3)
/* 80207910 00203570  80 64 00 FC */	lwz r3, 0xfc(r4)
/* 80207914 00203574  80 03 00 00 */	lwz r0, 0(r3)
/* 80207918 00203578  54 1F D7 FF */	rlwinm. r31, r0, 0x1a, 0x1f, 0x1f
/* 8020791C 0020357C  41 82 00 0C */	beq lbl_80207928
/* 80207920 00203580  1C 06 00 28 */	mulli r0, r6, 0x28
/* 80207924 00203584  7D 08 02 14 */	add r8, r8, r0
lbl_80207928:
/* 80207928 00203588  80 6D 96 2C */	lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 8020792C 0020358C  7D 04 43 78 */	mr r4, r8
/* 80207930 00203590  4B FD 33 D1 */	bl func_801DAD00
/* 80207934 00203594  2C 03 00 00 */	cmpwi r3, 0
/* 80207938 00203598  90 7B 00 08 */	stw r3, 8(r27)
/* 8020793C 0020359C  40 82 00 0C */	bne lbl_80207948
/* 80207940 002035A0  7F 63 DB 78 */	mr r3, r27
/* 80207944 002035A4  48 00 00 58 */	b lbl_8020799C
lbl_80207948:
/* 80207948 002035A8  90 7B 00 0C */	stw r3, 0xc(r27)
/* 8020794C 002035AC  38 1C 00 AC */	addi r0, r28, 0xac
/* 80207950 002035B0  38 A0 00 00 */	li r5, 0
/* 80207954 002035B4  7F C9 03 A6 */	mtctr r30
/* 80207958 002035B8  28 1E 00 00 */	cmplwi r30, 0
/* 8020795C 002035BC  40 81 00 3C */	ble lbl_80207998
lbl_80207960:
/* 80207960 002035C0  2C 1F 00 00 */	cmpwi r31, 0
/* 80207964 002035C4  7C 64 1B 78 */	mr r4, r3
/* 80207968 002035C8  7C 63 EA 14 */	add r3, r3, r29
/* 8020796C 002035CC  41 82 00 10 */	beq lbl_8020797C
/* 80207970 002035D0  90 64 00 20 */	stw r3, 0x20(r4)
/* 80207974 002035D4  38 63 00 28 */	addi r3, r3, 0x28
/* 80207978 002035D8  48 00 00 08 */	b lbl_80207980
lbl_8020797C:
/* 8020797C 002035DC  90 04 00 20 */	stw r0, 0x20(r4)
lbl_80207980:
/* 80207980 002035E0  2C 05 00 00 */	cmpwi r5, 0
/* 80207984 002035E4  90 A4 00 2C */	stw r5, 0x2c(r4)
/* 80207988 002035E8  41 82 00 08 */	beq lbl_80207990
/* 8020798C 002035EC  90 85 00 28 */	stw r4, 0x28(r5)
lbl_80207990:
/* 80207990 002035F0  7C 85 23 78 */	mr r5, r4
/* 80207994 002035F4  42 00 FF CC */	bdnz lbl_80207960
lbl_80207998:
/* 80207998 002035F8  7F 63 DB 78 */	mr r3, r27
lbl_8020799C:
/* 8020799C 002035FC  39 61 00 20 */	addi r11, r1, 0x20
/* 802079A0 00203600  4B FB F7 D5 */	bl _restgpr_27
/* 802079A4 00203604  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802079A8 00203608  7C 08 03 A6 */	mtlr r0
/* 802079AC 0020360C  38 21 00 20 */	addi r1, r1, 0x20
/* 802079B0 00203610  4E 80 00 20 */	blr

.global func_802079B4
func_802079B4:
/* 802079B4 00203614  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802079B8 00203618  7C 08 02 A6 */	mflr r0
/* 802079BC 0020361C  2C 03 00 00 */	cmpwi r3, 0
/* 802079C0 00203620  90 01 00 14 */	stw r0, 0x14(r1)
/* 802079C4 00203624  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802079C8 00203628  7C 9F 23 78 */	mr r31, r4
/* 802079CC 0020362C  93 C1 00 08 */	stw r30, 8(r1)
/* 802079D0 00203630  7C 7E 1B 78 */	mr r30, r3
/* 802079D4 00203634  41 82 00 40 */	beq lbl_80207A14
/* 802079D8 00203638  80 83 00 08 */	lwz r4, 8(r3)
/* 802079DC 0020363C  3C A0 80 42 */	lis r5, lbl_80423868@ha
/* 802079E0 00203640  38 A5 38 68 */	addi r5, r5, lbl_80423868@l
/* 802079E4 00203644  2C 04 00 00 */	cmpwi r4, 0
/* 802079E8 00203648  90 A3 00 1C */	stw r5, 0x1c(r3)
/* 802079EC 0020364C  41 82 00 14 */	beq lbl_80207A00
/* 802079F0 00203650  80 6D 96 2C */	lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 802079F4 00203654  4B FD 33 55 */	bl func_801DAD48
/* 802079F8 00203658  38 00 00 00 */	li r0, 0
/* 802079FC 0020365C  90 1E 00 08 */	stw r0, 8(r30)
lbl_80207A00:
/* 80207A00 00203660  2C 1F 00 00 */	cmpwi r31, 0
/* 80207A04 00203664  40 81 00 10 */	ble lbl_80207A14
/* 80207A08 00203668  80 6D 96 2C */	lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 80207A0C 0020366C  7F C4 F3 78 */	mr r4, r30
/* 80207A10 00203670  4B FD 33 39 */	bl func_801DAD48
lbl_80207A14:
/* 80207A14 00203674  7F C3 F3 78 */	mr r3, r30
/* 80207A18 00203678  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80207A1C 0020367C  83 C1 00 08 */	lwz r30, 8(r1)
/* 80207A20 00203680  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80207A24 00203684  7C 08 03 A6 */	mtlr r0
/* 80207A28 00203688  38 21 00 10 */	addi r1, r1, 0x10
/* 80207A2C 0020368C  4E 80 00 20 */	blr

.global GoalOverlay_SceneCreated
GoalOverlay_SceneCreated:
/* 80207A30 00203690  38 00 00 01 */	li r0, 1
/* 80207A34 00203694  98 03 00 18 */	stb r0, 0x18(r3)
/* 80207A38 00203698  4E 80 00 20 */	blr
/* 80207A3C 0020369C  88 03 00 18 */	lbz r0, 0x18(r3)
/* 80207A40 002036A0  2C 00 00 00 */	cmpwi r0, 0
/* 80207A44 002036A4  4D 82 00 20 */	beqlr
/* 80207A48 002036A8  38 00 00 00 */	li r0, 0
/* 80207A4C 002036AC  98 03 00 18 */	stb r0, 0x18(r3)
/* 80207A50 002036B0  48 00 01 3C */	b func_80207B8C
/* 80207A54 002036B4  4E 80 00 20 */	blr

.global func_80207A58
func_80207A58:
/* 80207A58 002036B8  80 A3 00 0C */	lwz r5, 0xc(r3)
/* 80207A5C 002036BC  2C 05 00 00 */	cmpwi r5, 0
/* 80207A60 002036C0  40 82 00 0C */	bne lbl_80207A6C
/* 80207A64 002036C4  38 60 00 00 */	li r3, 0
/* 80207A68 002036C8  4E 80 00 20 */	blr
lbl_80207A6C:
/* 80207A6C 002036CC  80 05 00 28 */	lwz r0, 0x28(r5)
/* 80207A70 002036D0  80 83 00 10 */	lwz r4, 0x10(r3)
/* 80207A74 002036D4  90 03 00 0C */	stw r0, 0xc(r3)
/* 80207A78 002036D8  2C 04 00 00 */	cmpwi r4, 0
/* 80207A7C 002036DC  90 85 00 28 */	stw r4, 0x28(r5)
/* 80207A80 002036E0  41 82 00 08 */	beq lbl_80207A88
/* 80207A84 002036E4  90 A4 00 2C */	stw r5, 0x2c(r4)
lbl_80207A88:
/* 80207A88 002036E8  38 00 00 00 */	li r0, 0
/* 80207A8C 002036EC  90 05 00 2C */	stw r0, 0x2c(r5)
/* 80207A90 002036F0  A0 83 00 14 */	lhz r4, 0x14(r3)
/* 80207A94 002036F4  90 A3 00 10 */	stw r5, 0x10(r3)
/* 80207A98 002036F8  38 04 00 01 */	addi r0, r4, 1
/* 80207A9C 002036FC  B0 03 00 14 */	sth r0, 0x14(r3)
/* 80207AA0 00203700  7C A3 2B 78 */	mr r3, r5
/* 80207AA4 00203704  4E 80 00 20 */	blr

.global func_80207AA8
func_80207AA8:
/* 80207AA8 00203708  80 C3 00 0C */	lwz r6, 0xc(r3)
/* 80207AAC 0020370C  2C 06 00 00 */	cmpwi r6, 0
/* 80207AB0 00203710  40 82 00 0C */	bne lbl_80207ABC
/* 80207AB4 00203714  38 60 00 00 */	li r3, 0
/* 80207AB8 00203718  4E 80 00 20 */	blr
lbl_80207ABC:
/* 80207ABC 0020371C  7C C7 33 78 */	mr r7, r6
/* 80207AC0 00203720  39 00 00 01 */	li r8, 1
/* 80207AC4 00203724  48 00 00 0C */	b lbl_80207AD0
lbl_80207AC8:
/* 80207AC8 00203728  7C A7 2B 78 */	mr r7, r5
/* 80207ACC 0020372C  39 08 00 01 */	addi r8, r8, 1
lbl_80207AD0:
/* 80207AD0 00203730  80 A7 00 28 */	lwz r5, 0x28(r7)
/* 80207AD4 00203734  2C 05 00 00 */	cmpwi r5, 0
/* 80207AD8 00203738  41 82 00 10 */	beq lbl_80207AE8
/* 80207ADC 0020373C  55 00 04 3E */	clrlwi r0, r8, 0x10
/* 80207AE0 00203740  7C 00 20 40 */	cmplw r0, r4
/* 80207AE4 00203744  41 80 FF E4 */	blt lbl_80207AC8
lbl_80207AE8:
/* 80207AE8 00203748  2C 05 00 00 */	cmpwi r5, 0
/* 80207AEC 0020374C  41 82 00 0C */	beq lbl_80207AF8
/* 80207AF0 00203750  38 00 00 00 */	li r0, 0
/* 80207AF4 00203754  90 05 00 2C */	stw r0, 0x2c(r5)
lbl_80207AF8:
/* 80207AF8 00203758  80 07 00 28 */	lwz r0, 0x28(r7)
/* 80207AFC 0020375C  80 83 00 10 */	lwz r4, 0x10(r3)
/* 80207B00 00203760  90 03 00 0C */	stw r0, 0xc(r3)
/* 80207B04 00203764  2C 04 00 00 */	cmpwi r4, 0
/* 80207B08 00203768  90 87 00 28 */	stw r4, 0x28(r7)
/* 80207B0C 0020376C  41 82 00 08 */	beq lbl_80207B14
/* 80207B10 00203770  90 E4 00 2C */	stw r7, 0x2c(r4)
lbl_80207B14:
/* 80207B14 00203774  38 00 00 00 */	li r0, 0
/* 80207B18 00203778  90 06 00 2C */	stw r0, 0x2c(r6)
/* 80207B1C 0020377C  A0 03 00 14 */	lhz r0, 0x14(r3)
/* 80207B20 00203780  90 C3 00 10 */	stw r6, 0x10(r3)
/* 80207B24 00203784  7C 00 42 14 */	add r0, r0, r8
/* 80207B28 00203788  B0 03 00 14 */	sth r0, 0x14(r3)
/* 80207B2C 0020378C  7D 03 43 78 */	mr r3, r8
/* 80207B30 00203790  4E 80 00 20 */	blr

.global func_80207B34
func_80207B34:
/* 80207B34 00203794  80 A4 00 28 */	lwz r5, 0x28(r4)
/* 80207B38 00203798  80 C4 00 2C */	lwz r6, 0x2c(r4)
/* 80207B3C 0020379C  2C 05 00 00 */	cmpwi r5, 0
/* 80207B40 002037A0  41 82 00 08 */	beq lbl_80207B48
/* 80207B44 002037A4  90 C5 00 2C */	stw r6, 0x2c(r5)
lbl_80207B48:
/* 80207B48 002037A8  2C 06 00 00 */	cmpwi r6, 0
/* 80207B4C 002037AC  41 82 00 0C */	beq lbl_80207B58
/* 80207B50 002037B0  90 A6 00 28 */	stw r5, 0x28(r6)
/* 80207B54 002037B4  48 00 00 08 */	b lbl_80207B5C
lbl_80207B58:
/* 80207B58 002037B8  90 A3 00 10 */	stw r5, 0x10(r3)
lbl_80207B5C:
/* 80207B5C 002037BC  38 00 00 00 */	li r0, 0
/* 80207B60 002037C0  90 04 00 2C */	stw r0, 0x2c(r4)
/* 80207B64 002037C4  80 A3 00 0C */	lwz r5, 0xc(r3)
/* 80207B68 002037C8  2C 05 00 00 */	cmpwi r5, 0
/* 80207B6C 002037CC  90 A4 00 28 */	stw r5, 0x28(r4)
/* 80207B70 002037D0  41 82 00 08 */	beq lbl_80207B78
/* 80207B74 002037D4  90 85 00 2C */	stw r4, 0x2c(r5)
lbl_80207B78:
/* 80207B78 002037D8  A0 A3 00 14 */	lhz r5, 0x14(r3)
/* 80207B7C 002037DC  90 83 00 0C */	stw r4, 0xc(r3)
/* 80207B80 002037E0  38 05 FF FF */	addi r0, r5, -1
/* 80207B84 002037E4  B0 03 00 14 */	sth r0, 0x14(r3)
/* 80207B88 002037E8  4E 80 00 20 */	blr

.global func_80207B8C
func_80207B8C:
/* 80207B8C 002037EC  80 83 00 10 */	lwz r4, 0x10(r3)
/* 80207B90 002037F0  2C 04 00 00 */	cmpwi r4, 0
/* 80207B94 002037F4  40 82 00 10 */	bne lbl_80207BA4
/* 80207B98 002037F8  4E 80 00 20 */	blr
/* 80207B9C 002037FC  48 00 00 08 */	b lbl_80207BA4
lbl_80207BA0:
/* 80207BA0 00203800  7C 04 03 78 */	mr r4, r0
lbl_80207BA4:
/* 80207BA4 00203804  80 04 00 28 */	lwz r0, 0x28(r4)
/* 80207BA8 00203808  2C 00 00 00 */	cmpwi r0, 0
/* 80207BAC 0020380C  40 82 FF F4 */	bne lbl_80207BA0
/* 80207BB0 00203810  80 A3 00 0C */	lwz r5, 0xc(r3)
/* 80207BB4 00203814  2C 05 00 00 */	cmpwi r5, 0
/* 80207BB8 00203818  90 A4 00 28 */	stw r5, 0x28(r4)
/* 80207BBC 0020381C  41 82 00 08 */	beq lbl_80207BC4
/* 80207BC0 00203820  90 85 00 2C */	stw r4, 0x2c(r5)
lbl_80207BC4:
/* 80207BC4 00203824  80 83 00 10 */	lwz r4, 0x10(r3)
/* 80207BC8 00203828  38 00 00 00 */	li r0, 0
/* 80207BCC 0020382C  B0 03 00 14 */	sth r0, 0x14(r3)
/* 80207BD0 00203830  90 83 00 0C */	stw r4, 0xc(r3)
/* 80207BD4 00203834  90 03 00 10 */	stw r0, 0x10(r3)
/* 80207BD8 00203838  4E 80 00 20 */	blr

.global func_80207BDC
func_80207BDC:
/* 80207BDC 0020383C  80 C4 00 28 */	lwz r6, 0x28(r4)
/* 80207BE0 00203840  80 E4 00 2C */	lwz r7, 0x2c(r4)
/* 80207BE4 00203844  2C 06 00 00 */	cmpwi r6, 0
/* 80207BE8 00203848  41 82 00 08 */	beq lbl_80207BF0
/* 80207BEC 0020384C  90 E6 00 2C */	stw r7, 0x2c(r6)
lbl_80207BF0:
/* 80207BF0 00203850  2C 07 00 00 */	cmpwi r7, 0
/* 80207BF4 00203854  41 82 00 0C */	beq lbl_80207C00
/* 80207BF8 00203858  90 C7 00 28 */	stw r6, 0x28(r7)
/* 80207BFC 0020385C  48 00 00 08 */	b lbl_80207C04
lbl_80207C00:
/* 80207C00 00203860  90 C3 00 10 */	stw r6, 0x10(r3)
lbl_80207C04:
/* 80207C04 00203864  80 C5 00 2C */	lwz r6, 0x2c(r5)
/* 80207C08 00203868  90 85 00 2C */	stw r4, 0x2c(r5)
/* 80207C0C 0020386C  2C 06 00 00 */	cmpwi r6, 0
/* 80207C10 00203870  90 A4 00 28 */	stw r5, 0x28(r4)
/* 80207C14 00203874  90 C4 00 2C */	stw r6, 0x2c(r4)
/* 80207C18 00203878  41 82 00 0C */	beq lbl_80207C24
/* 80207C1C 0020387C  90 86 00 28 */	stw r4, 0x28(r6)
/* 80207C20 00203880  4E 80 00 20 */	blr
lbl_80207C24:
/* 80207C24 00203884  90 83 00 10 */	stw r4, 0x10(r3)
/* 80207C28 00203888  4E 80 00 20 */	blr

.global func_80207C2C
func_80207C2C:
/* 80207C2C 0020388C  38 A0 00 01 */	li r5, 1
/* 80207C30 00203890  38 6D A2 08 */	addi r3, r13, lbl_8063F4C8-_SDA_BASE_
/* 80207C34 00203894  38 80 00 04 */	li r4, 4
/* 80207C38 00203898  38 00 00 00 */	li r0, 0
/* 80207C3C 0020389C  98 AD A2 08 */	stb r5, lbl_8063F4C8-_SDA_BASE_(r13)
/* 80207C40 002038A0  B0 83 00 02 */	sth r4, 2(r3)
/* 80207C44 002038A4  98 03 00 04 */	stb r0, 4(r3)
/* 80207C48 002038A8  4E 80 00 20 */	blr