summaryrefslogtreecommitdiff
path: root/asm/nw4r/snd/snd_SoundSystem.s
blob: fcd34129801e54b23904f6d448d23eac2a983e31 (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
.include "macros.inc"

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

.global InitSoundSystem__Q34nw4r3snd11SoundSystemFll
InitSoundSystem__Q34nw4r3snd11SoundSystemFll:
/* 8037C1A0 00377E00  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037C1A4 00377E04  7C 08 02 A6 */	mflr r0
/* 8037C1A8 00377E08  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037C1AC 00377E0C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037C1B0 00377E10  7C 9F 23 78 */	mr r31, r4
/* 8037C1B4 00377E14  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037C1B8 00377E18  7C 7E 1B 78 */	mr r30, r3
/* 8037C1BC 00377E1C  80 6D 95 30 */	lwz r3, lbl_8063E7F0-_SDA_BASE_(r13)
/* 8037C1C0 00377E20  4B EE D4 91 */	bl OSRegisterVersion
/* 8037C1C4 00377E24  38 00 40 00 */	li r0, 0x4000
/* 8037C1C8 00377E28  3C 80 80 62 */	lis r4, lbl_80622040@ha
/* 8037C1CC 00377E2C  3C A0 00 01 */	lis r5, 0x0001696C@ha
/* 8037C1D0 00377E30  90 01 00 0C */	stw r0, 0xc(r1)
/* 8037C1D4 00377E34  38 61 00 08 */	addi r3, r1, 8
/* 8037C1D8 00377E38  38 84 20 40 */	addi r4, r4, lbl_80622040@l
/* 8037C1DC 00377E3C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8037C1E0 00377E40  38 A5 69 6C */	addi r5, r5, 0x0001696C@l
/* 8037C1E4 00377E44  93 C1 00 08 */	stw r30, 8(r1)
/* 8037C1E8 00377E48  93 E1 00 10 */	stw r31, 0x10(r1)
/* 8037C1EC 00377E4C  48 00 00 1D */	bl InitSoundSystem__Q34nw4r3snd11SoundSystemFRCQ44nw4r3snd11SoundSystem16SoundSystemParamPvUl
/* 8037C1F0 00377E50  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037C1F4 00377E54  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037C1F8 00377E58  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037C1FC 00377E5C  7C 08 03 A6 */	mtlr r0
/* 8037C200 00377E60  38 21 00 20 */	addi r1, r1, 0x20
/* 8037C204 00377E64  4E 80 00 20 */	blr

.global InitSoundSystem__Q34nw4r3snd11SoundSystemFRCQ44nw4r3snd11SoundSystem16SoundSystemParamPvUl
InitSoundSystem__Q34nw4r3snd11SoundSystemFRCQ44nw4r3snd11SoundSystem16SoundSystemParamPvUl:
/* 8037C208 00377E68  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037C20C 00377E6C  7C 08 02 A6 */	mflr r0
/* 8037C210 00377E70  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037C214 00377E74  39 61 00 20 */	addi r11, r1, 0x20
/* 8037C218 00377E78  4B E4 AF 0D */	bl _savegpr_26
/* 8037C21C 00377E7C  88 0D B2 70 */	lbz r0, lbl_80640530-_SDA_BASE_(r13)
/* 8037C220 00377E80  7C 7A 1B 78 */	mr r26, r3
/* 8037C224 00377E84  7C 9B 23 78 */	mr r27, r4
/* 8037C228 00377E88  2C 00 00 00 */	cmpwi r0, 0
/* 8037C22C 00377E8C  40 82 01 50 */	bne lbl_8037C37C
/* 8037C230 00377E90  38 00 00 01 */	li r0, 1
/* 8037C234 00377E94  98 0D B2 70 */	stb r0, lbl_80640530-_SDA_BASE_(r13)
/* 8037C238 00377E98  4B FE C2 8D */	bl GetInstance__Q44nw4r3snd6detail9AxManagerFv
/* 8037C23C 00377E9C  4B FE C3 65 */	bl Init__Q44nw4r3snd6detail9AxManagerFv
/* 8037C240 00377EA0  4B F6 E7 0D */	bl SCInit
lbl_8037C244:
/* 8037C244 00377EA4  4B F6 E7 A9 */	bl SCCheckStatus
/* 8037C248 00377EA8  28 03 00 01 */	cmplwi r3, 1
/* 8037C24C 00377EAC  41 82 FF F8 */	beq lbl_8037C244
/* 8037C250 00377EB0  4B F7 03 0D */	bl SCGetSoundMode
/* 8037C254 00377EB4  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8037C258 00377EB8  2C 00 00 01 */	cmpwi r0, 1
/* 8037C25C 00377EBC  41 82 00 30 */	beq lbl_8037C28C
/* 8037C260 00377EC0  40 80 00 10 */	bge lbl_8037C270
/* 8037C264 00377EC4  2C 00 00 00 */	cmpwi r0, 0
/* 8037C268 00377EC8  40 80 00 14 */	bge lbl_8037C27C
/* 8037C26C 00377ECC  48 00 00 40 */	b lbl_8037C2AC
lbl_8037C270:
/* 8037C270 00377ED0  2C 00 00 03 */	cmpwi r0, 3
/* 8037C274 00377ED4  40 80 00 38 */	bge lbl_8037C2AC
/* 8037C278 00377ED8  48 00 00 24 */	b lbl_8037C29C
lbl_8037C27C:
/* 8037C27C 00377EDC  4B FE C2 49 */	bl GetInstance__Q44nw4r3snd6detail9AxManagerFv
/* 8037C280 00377EE0  38 80 00 03 */	li r4, 3
/* 8037C284 00377EE4  4B FE C9 55 */	bl SetOutputMode__Q44nw4r3snd6detail9AxManagerFQ34nw4r3snd10OutputMode
/* 8037C288 00377EE8  48 00 00 30 */	b lbl_8037C2B8
lbl_8037C28C:
/* 8037C28C 00377EEC  4B FE C2 39 */	bl GetInstance__Q44nw4r3snd6detail9AxManagerFv
/* 8037C290 00377EF0  38 80 00 00 */	li r4, 0
/* 8037C294 00377EF4  4B FE C9 45 */	bl SetOutputMode__Q44nw4r3snd6detail9AxManagerFQ34nw4r3snd10OutputMode
/* 8037C298 00377EF8  48 00 00 20 */	b lbl_8037C2B8
lbl_8037C29C:
/* 8037C29C 00377EFC  4B FE C2 29 */	bl GetInstance__Q44nw4r3snd6detail9AxManagerFv
/* 8037C2A0 00377F00  38 80 00 02 */	li r4, 2
/* 8037C2A4 00377F04  4B FE C9 35 */	bl SetOutputMode__Q44nw4r3snd6detail9AxManagerFQ34nw4r3snd10OutputMode
/* 8037C2A8 00377F08  48 00 00 10 */	b lbl_8037C2B8
lbl_8037C2AC:
/* 8037C2AC 00377F0C  4B FE C2 19 */	bl GetInstance__Q44nw4r3snd6detail9AxManagerFv
/* 8037C2B0 00377F10  38 80 00 00 */	li r4, 0
/* 8037C2B4 00377F14  4B FE C9 25 */	bl SetOutputMode__Q44nw4r3snd6detail9AxManagerFQ34nw4r3snd10OutputMode
lbl_8037C2B8:
/* 8037C2B8 00377F18  4B FF 74 F1 */	bl GetInstance__Q44nw4r3snd6detail20RemoteSpeakerManagerFv
/* 8037C2BC 00377F1C  4B FF 75 95 */	bl Setup__Q44nw4r3snd6detail20RemoteSpeakerManagerFv
/* 8037C2C0 00377F20  80 7A 00 0C */	lwz r3, 0xc(r26)
/* 8037C2C4 00377F24  80 1A 00 04 */	lwz r0, 4(r26)
/* 8037C2C8 00377F28  7F DB 1A 14 */	add r30, r27, r3
/* 8037C2CC 00377F2C  7F DD F3 78 */	mr r29, r30
/* 8037C2D0 00377F30  7F DE 02 14 */	add r30, r30, r0
/* 8037C2D4 00377F34  7F DC F3 78 */	mr r28, r30
/* 8037C2D8 00377F38  4B FE FC CD */	bl GetInstance__Q44nw4r3snd6detail14AxVoiceManagerFv
/* 8037C2DC 00377F3C  4B FE FD F1 */	bl GetRequiredMemSize__Q44nw4r3snd6detail14AxVoiceManagerFv
/* 8037C2E0 00377F40  7F DE 1A 14 */	add r30, r30, r3
/* 8037C2E4 00377F44  4B FE FC C1 */	bl GetInstance__Q44nw4r3snd6detail14AxVoiceManagerFv
/* 8037C2E8 00377F48  4B FE FD E5 */	bl GetRequiredMemSize__Q44nw4r3snd6detail14AxVoiceManagerFv
/* 8037C2EC 00377F4C  7C 7F 1B 78 */	mr r31, r3
/* 8037C2F0 00377F50  4B FE FC B5 */	bl GetInstance__Q44nw4r3snd6detail14AxVoiceManagerFv
/* 8037C2F4 00377F54  7F 84 E3 78 */	mr r4, r28
/* 8037C2F8 00377F58  7F E5 FB 78 */	mr r5, r31
/* 8037C2FC 00377F5C  4B FE FD F9 */	bl Setup__Q44nw4r3snd6detail14AxVoiceManagerFPvUl
/* 8037C300 00377F60  7F DC F3 78 */	mr r28, r30
/* 8037C304 00377F64  48 00 65 FD */	bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C308 00377F68  48 00 66 F5 */	bl GetRequiredMemSize__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C30C 00377F6C  7F DE 1A 14 */	add r30, r30, r3
/* 8037C310 00377F70  48 00 65 F1 */	bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C314 00377F74  48 00 66 E9 */	bl GetRequiredMemSize__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C318 00377F78  7C 7F 1B 78 */	mr r31, r3
/* 8037C31C 00377F7C  48 00 65 E5 */	bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C320 00377F80  7F 84 E3 78 */	mr r4, r28
/* 8037C324 00377F84  7F E5 FB 78 */	mr r5, r31
/* 8037C328 00377F88  48 00 66 F9 */	bl Setup__Q44nw4r3snd6detail12VoiceManagerFPvUl
/* 8037C32C 00377F8C  4B FF 1E 6D */	bl GetInstance__Q44nw4r3snd6detail14ChannelManagerFv
/* 8037C330 00377F90  4B FF 1F 59 */	bl GetRequiredMemSize__Q44nw4r3snd6detail14ChannelManagerFv
/* 8037C334 00377F94  4B FF 1E 65 */	bl GetInstance__Q44nw4r3snd6detail14ChannelManagerFv
/* 8037C338 00377F98  4B FF 1F 51 */	bl GetRequiredMemSize__Q44nw4r3snd6detail14ChannelManagerFv
/* 8037C33C 00377F9C  7C 7F 1B 78 */	mr r31, r3
/* 8037C340 00377FA0  4B FF 1E 59 */	bl GetInstance__Q44nw4r3snd6detail14ChannelManagerFv
/* 8037C344 00377FA4  7F C4 F3 78 */	mr r4, r30
/* 8037C348 00377FA8  7F E5 FB 78 */	mr r5, r31
/* 8037C34C 00377FAC  4B FF 1F 65 */	bl Setup__Q44nw4r3snd6detail14ChannelManagerFPvUl
/* 8037C350 00377FB0  3C 60 80 62 */	lis r3, lbl_80621D10@ha
/* 8037C354 00377FB4  80 9A 00 08 */	lwz r4, 8(r26)
/* 8037C358 00377FB8  80 DA 00 0C */	lwz r6, 0xc(r26)
/* 8037C35C 00377FBC  7F 65 DB 78 */	mr r5, r27
/* 8037C360 00377FC0  38 63 1D 10 */	addi r3, r3, lbl_80621D10@l
/* 8037C364 00377FC4  48 00 3D 3D */	bl Create__Q44nw4r3snd6detail10TaskThreadFlPvUl
/* 8037C368 00377FC8  48 00 00 E9 */	bl GetInstance__Q44nw4r3snd6detail11SoundThreadFv
/* 8037C36C 00377FCC  80 9A 00 00 */	lwz r4, 0(r26)
/* 8037C370 00377FD0  7F A5 EB 78 */	mr r5, r29
/* 8037C374 00377FD4  80 DA 00 04 */	lwz r6, 4(r26)
/* 8037C378 00377FD8  48 00 02 0D */	bl Create__Q44nw4r3snd6detail11SoundThreadFlPvUl
lbl_8037C37C:
/* 8037C37C 00377FDC  39 61 00 20 */	addi r11, r1, 0x20
/* 8037C380 00377FE0  4B E4 AD F1 */	bl _restgpr_26
/* 8037C384 00377FE4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037C388 00377FE8  7C 08 03 A6 */	mtlr r0
/* 8037C38C 00377FEC  38 21 00 20 */	addi r1, r1, 0x20
/* 8037C390 00377FF0  4E 80 00 20 */	blr

.global WaitForResetReady__Q34nw4r3snd11SoundSystemFv
WaitForResetReady__Q34nw4r3snd11SoundSystemFv:
/* 8037C394 00377FF4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8037C398 00377FF8  7C 08 02 A6 */	mflr r0
/* 8037C39C 00377FFC  90 01 00 14 */	stw r0, 0x14(r1)
/* 8037C3A0 00378000  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8037C3A4 00378004  93 C1 00 08 */	stw r30, 8(r1)
/* 8037C3A8 00378008  88 0D B2 70 */	lbz r0, lbl_80640530-_SDA_BASE_(r13)
/* 8037C3AC 0037800C  2C 00 00 00 */	cmpwi r0, 0
/* 8037C3B0 00378010  41 82 00 40 */	beq lbl_8037C3F0
/* 8037C3B4 00378014  4B EF 64 1D */	bl OSGetTick
/* 8037C3B8 00378018  7C 7E 1B 78 */	mr r30, r3
/* 8037C3BC 0037801C  3F E0 80 00 */	lis r31, 0x8000
/* 8037C3C0 00378020  48 00 00 1C */	b lbl_8037C3DC
lbl_8037C3C4:
/* 8037C3C4 00378024  4B EF 64 0D */	bl OSGetTick
/* 8037C3C8 00378028  80 1F 00 F8 */	lwz r0, 0xf8(r31)
/* 8037C3CC 0037802C  7C 7E 18 50 */	subf r3, r30, r3
/* 8037C3D0 00378030  54 00 F0 BE */	srwi r0, r0, 2
/* 8037C3D4 00378034  7C 03 03 97 */	divwu. r0, r3, r0
/* 8037C3D8 00378038  40 82 00 18 */	bne lbl_8037C3F0
lbl_8037C3DC:
/* 8037C3DC 0037803C  4B FE C0 E9 */	bl GetInstance__Q44nw4r3snd6detail9AxManagerFv
/* 8037C3E0 00378040  80 03 00 50 */	lwz r0, 0x50(r3)
/* 8037C3E4 00378044  7C 00 00 34 */	cntlzw r0, r0
/* 8037C3E8 00378048  54 00 D9 7F */	rlwinm. r0, r0, 0x1b, 5, 0x1f
/* 8037C3EC 0037804C  41 82 FF D8 */	beq lbl_8037C3C4
lbl_8037C3F0:
/* 8037C3F0 00378050  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8037C3F4 00378054  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8037C3F8 00378058  83 C1 00 08 */	lwz r30, 8(r1)
/* 8037C3FC 0037805C  7C 08 03 A6 */	mtlr r0
/* 8037C400 00378060  38 21 00 10 */	addi r1, r1, 0x10
/* 8037C404 00378064  4E 80 00 20 */	blr

.global __sinit_$3snd_SoundSystem_cpp
__sinit_$3snd_SoundSystem_cpp:
/* 8037C408 00378068  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8037C40C 0037806C  7C 08 02 A6 */	mflr r0
/* 8037C410 00378070  90 01 00 14 */	stw r0, 0x14(r1)
/* 8037C414 00378074  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8037C418 00378078  3F E0 80 62 */	lis r31, lbl_80621D10@ha
/* 8037C41C 0037807C  38 7F 1D 10 */	addi r3, r31, lbl_80621D10@l
/* 8037C420 00378080  48 00 3B E9 */	bl __ct__Q44nw4r3snd6detail10TaskThreadFv
/* 8037C424 00378084  3C 80 80 38 */	lis r4, __dt__Q44nw4r3snd6detail10TaskThreadFv@ha
/* 8037C428 00378088  3C A0 80 62 */	lis r5, lbl_80621D00@ha
/* 8037C42C 0037808C  38 7F 1D 10 */	addi r3, r31, 0x1d10
/* 8037C430 00378090  38 84 00 1C */	addi r4, r4, __dt__Q44nw4r3snd6detail10TaskThreadFv@l
/* 8037C434 00378094  38 A5 1D 00 */	addi r5, r5, lbl_80621D00@l
/* 8037C438 00378098  4B E4 A8 11 */	bl __register_global_object_tmp
/* 8037C43C 0037809C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8037C440 003780A0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8037C444 003780A4  7C 08 03 A6 */	mtlr r0
/* 8037C448 003780A8  38 21 00 10 */	addi r1, r1, 0x10
/* 8037C44C 003780AC  4E 80 00 20 */	blr