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

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

.global __ct__Q44nw4r3snd6detail13WsdFileReaderFPCv
__ct__Q44nw4r3snd6detail13WsdFileReaderFPCv:
/* 803839DC 0037F63C  80 A4 00 00 */	lwz r5, 0(r4)
/* 803839E0 0037F640  38 C0 00 00 */	li r6, 0
/* 803839E4 0037F644  90 C3 00 00 */	stw r6, 0(r3)
/* 803839E8 0037F648  3C 05 AD A9 */	addis r0, r5, 0xada9
/* 803839EC 0037F64C  28 00 53 44 */	cmplwi r0, 0x5344
/* 803839F0 0037F650  90 C3 00 04 */	stw r6, 4(r3)
/* 803839F4 0037F654  90 C3 00 08 */	stw r6, 8(r3)
/* 803839F8 0037F658  41 82 00 0C */	beq lbl_80383A04
/* 803839FC 0037F65C  38 00 00 00 */	li r0, 0
/* 80383A00 0037F660  48 00 00 30 */	b lbl_80383A30
lbl_80383A04:
/* 80383A04 0037F664  A0 C4 00 06 */	lhz r6, 6(r4)
/* 80383A08 0037F668  28 06 01 00 */	cmplwi r6, 0x100
/* 80383A0C 0037F66C  40 80 00 0C */	bge lbl_80383A18
/* 80383A10 0037F670  38 00 00 00 */	li r0, 0
/* 80383A14 0037F674  48 00 00 1C */	b lbl_80383A30
lbl_80383A18:
/* 80383A18 0037F678  20 06 01 02 */	subfic r0, r6, 0x102
/* 80383A1C 0037F67C  38 A0 01 02 */	li r5, 0x102
/* 80383A20 0037F680  7C A5 33 38 */	orc r5, r5, r6
/* 80383A24 0037F684  54 00 F8 7E */	srwi r0, r0, 1
/* 80383A28 0037F688  7C 00 28 50 */	subf r0, r0, r5
/* 80383A2C 0037F68C  54 00 0F FE */	srwi r0, r0, 0x1f
lbl_80383A30:
/* 80383A30 0037F690  2C 00 00 00 */	cmpwi r0, 0
/* 80383A34 0037F694  4D 82 00 20 */	beqlr 
/* 80383A38 0037F698  80 A4 00 10 */	lwz r5, 0x10(r4)
/* 80383A3C 0037F69C  80 04 00 18 */	lwz r0, 0x18(r4)
/* 80383A40 0037F6A0  7C A5 22 14 */	add r5, r5, r4
/* 80383A44 0037F6A4  90 83 00 00 */	stw r4, 0(r3)
/* 80383A48 0037F6A8  7C 00 22 14 */	add r0, r0, r4
/* 80383A4C 0037F6AC  90 A3 00 04 */	stw r5, 4(r3)
/* 80383A50 0037F6B0  90 03 00 08 */	stw r0, 8(r3)
/* 80383A54 0037F6B4  4E 80 00 20 */	blr 

.global ReadWaveSoundInfo__Q44nw4r3snd6detail13WsdFileReaderCFPQ44nw4r3snd6detail13WaveSoundInfoi
ReadWaveSoundInfo__Q44nw4r3snd6detail13WsdFileReaderCFPQ44nw4r3snd6detail13WaveSoundInfoi:
/* 80383A58 0037F6B8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80383A5C 0037F6BC  7C 08 02 A6 */	mflr r0
/* 80383A60 0037F6C0  80 C3 00 04 */	lwz r6, 4(r3)
/* 80383A64 0037F6C4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80383A68 0037F6C8  54 A0 18 38 */	slwi r0, r5, 3
/* 80383A6C 0037F6CC  38 A6 00 08 */	addi r5, r6, 8
/* 80383A70 0037F6D0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80383A74 0037F6D4  7C 9F 23 78 */	mr r31, r4
/* 80383A78 0037F6D8  7C 86 02 14 */	add r4, r6, r0
/* 80383A7C 0037F6DC  93 C1 00 08 */	stw r30, 8(r1)
/* 80383A80 0037F6E0  7C 7E 1B 78 */	mr r30, r3
/* 80383A84 0037F6E4  88 64 00 0C */	lbz r3, 0xc(r4)
/* 80383A88 0037F6E8  80 84 00 10 */	lwz r4, 0x10(r4)
/* 80383A8C 0037F6EC  4B FF F9 5D */	bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80383A90 0037F6F0  7C 64 1B 78 */	mr r4, r3
/* 80383A94 0037F6F4  80 BE 00 04 */	lwz r5, 4(r30)
/* 80383A98 0037F6F8  88 63 00 00 */	lbz r3, 0(r3)
/* 80383A9C 0037F6FC  80 84 00 04 */	lwz r4, 4(r4)
/* 80383AA0 0037F700  38 A5 00 08 */	addi r5, r5, 8
/* 80383AA4 0037F704  4B FF F9 45 */	bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80383AA8 0037F708  80 9E 00 00 */	lwz r4, 0(r30)
/* 80383AAC 0037F70C  A0 04 00 06 */	lhz r0, 6(r4)
/* 80383AB0 0037F710  28 00 01 02 */	cmplwi r0, 0x102
/* 80383AB4 0037F714  40 82 00 40 */	bne lbl_80383AF4
/* 80383AB8 0037F718  C0 03 00 00 */	lfs f0, 0(r3)
/* 80383ABC 0037F71C  D0 1F 00 00 */	stfs f0, 0(r31)
/* 80383AC0 0037F720  88 03 00 04 */	lbz r0, 4(r3)
/* 80383AC4 0037F724  98 1F 00 04 */	stb r0, 4(r31)
/* 80383AC8 0037F728  88 03 00 05 */	lbz r0, 5(r3)
/* 80383ACC 0037F72C  98 1F 00 05 */	stb r0, 5(r31)
/* 80383AD0 0037F730  88 03 00 06 */	lbz r0, 6(r3)
/* 80383AD4 0037F734  98 1F 00 06 */	stb r0, 6(r31)
/* 80383AD8 0037F738  88 03 00 07 */	lbz r0, 7(r3)
/* 80383ADC 0037F73C  98 1F 00 07 */	stb r0, 7(r31)
/* 80383AE0 0037F740  88 03 00 08 */	lbz r0, 8(r3)
/* 80383AE4 0037F744  98 1F 00 08 */	stb r0, 8(r31)
/* 80383AE8 0037F748  88 03 00 09 */	lbz r0, 9(r3)
/* 80383AEC 0037F74C  98 1F 00 09 */	stb r0, 9(r31)
/* 80383AF0 0037F750  48 00 00 6C */	b lbl_80383B5C
lbl_80383AF4:
/* 80383AF4 0037F754  28 00 01 01 */	cmplwi r0, 0x101
/* 80383AF8 0037F758  40 82 00 38 */	bne lbl_80383B30
/* 80383AFC 0037F75C  C0 03 00 00 */	lfs f0, 0(r3)
/* 80383B00 0037F760  38 80 00 00 */	li r4, 0
/* 80383B04 0037F764  38 00 00 7F */	li r0, 0x7f
/* 80383B08 0037F768  D0 1F 00 00 */	stfs f0, 0(r31)
/* 80383B0C 0037F76C  88 A3 00 04 */	lbz r5, 4(r3)
/* 80383B10 0037F770  98 BF 00 04 */	stb r5, 4(r31)
/* 80383B14 0037F774  88 63 00 05 */	lbz r3, 5(r3)
/* 80383B18 0037F778  98 7F 00 05 */	stb r3, 5(r31)
/* 80383B1C 0037F77C  98 9F 00 06 */	stb r4, 6(r31)
/* 80383B20 0037F780  98 9F 00 07 */	stb r4, 7(r31)
/* 80383B24 0037F784  98 9F 00 08 */	stb r4, 8(r31)
/* 80383B28 0037F788  98 1F 00 09 */	stb r0, 9(r31)
/* 80383B2C 0037F78C  48 00 00 30 */	b lbl_80383B5C
lbl_80383B30:
/* 80383B30 0037F790  C0 02 A7 F0 */	lfs f0, lbl_80642DF0-_SDA2_BASE_(r2)
/* 80383B34 0037F794  38 60 00 00 */	li r3, 0
/* 80383B38 0037F798  38 80 00 40 */	li r4, 0x40
/* 80383B3C 0037F79C  38 00 00 7F */	li r0, 0x7f
/* 80383B40 0037F7A0  D0 1F 00 00 */	stfs f0, 0(r31)
/* 80383B44 0037F7A4  98 9F 00 04 */	stb r4, 4(r31)
/* 80383B48 0037F7A8  98 7F 00 05 */	stb r3, 5(r31)
/* 80383B4C 0037F7AC  98 7F 00 06 */	stb r3, 6(r31)
/* 80383B50 0037F7B0  98 7F 00 07 */	stb r3, 7(r31)
/* 80383B54 0037F7B4  98 7F 00 08 */	stb r3, 8(r31)
/* 80383B58 0037F7B8  98 1F 00 09 */	stb r0, 9(r31)
lbl_80383B5C:
/* 80383B5C 0037F7BC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80383B60 0037F7C0  38 60 00 01 */	li r3, 1
/* 80383B64 0037F7C4  83 C1 00 08 */	lwz r30, 8(r1)
/* 80383B68 0037F7C8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80383B6C 0037F7CC  7C 08 03 A6 */	mtlr r0
/* 80383B70 0037F7D0  38 21 00 10 */	addi r1, r1, 0x10
/* 80383B74 0037F7D4  4E 80 00 20 */	blr 

.global ReadWaveSoundNoteInfo__Q44nw4r3snd6detail13WsdFileReaderCFPQ44nw4r3snd6detail17WaveSoundNoteInfoii
ReadWaveSoundNoteInfo__Q44nw4r3snd6detail13WsdFileReaderCFPQ44nw4r3snd6detail17WaveSoundNoteInfoii:
/* 80383B78 0037F7D8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80383B7C 0037F7DC  7C 08 02 A6 */	mflr r0
/* 80383B80 0037F7E0  80 E3 00 04 */	lwz r7, 4(r3)
/* 80383B84 0037F7E4  90 01 00 24 */	stw r0, 0x24(r1)
/* 80383B88 0037F7E8  54 A0 18 38 */	slwi r0, r5, 3
/* 80383B8C 0037F7EC  38 A7 00 08 */	addi r5, r7, 8
/* 80383B90 0037F7F0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80383B94 0037F7F4  7C 9F 23 78 */	mr r31, r4
/* 80383B98 0037F7F8  7C 87 02 14 */	add r4, r7, r0
/* 80383B9C 0037F7FC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80383BA0 0037F800  7C DE 33 78 */	mr r30, r6
/* 80383BA4 0037F804  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80383BA8 0037F808  7C 7D 1B 78 */	mr r29, r3
/* 80383BAC 0037F80C  88 64 00 0C */	lbz r3, 0xc(r4)
/* 80383BB0 0037F810  80 84 00 10 */	lwz r4, 0x10(r4)
/* 80383BB4 0037F814  4B FF F8 35 */	bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80383BB8 0037F818  7C 64 1B 78 */	mr r4, r3
/* 80383BBC 0037F81C  80 BD 00 04 */	lwz r5, 4(r29)
/* 80383BC0 0037F820  88 63 00 10 */	lbz r3, 0x10(r3)
/* 80383BC4 0037F824  80 84 00 14 */	lwz r4, 0x14(r4)
/* 80383BC8 0037F828  38 A5 00 08 */	addi r5, r5, 8
/* 80383BCC 0037F82C  4B FF F8 1D */	bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80383BD0 0037F830  57 C0 18 38 */	slwi r0, r30, 3
/* 80383BD4 0037F834  80 9D 00 04 */	lwz r4, 4(r29)
/* 80383BD8 0037F838  7C C3 02 14 */	add r6, r3, r0
/* 80383BDC 0037F83C  38 A4 00 08 */	addi r5, r4, 8
/* 80383BE0 0037F840  88 66 00 04 */	lbz r3, 4(r6)
/* 80383BE4 0037F844  80 86 00 08 */	lwz r4, 8(r6)
/* 80383BE8 0037F848  4B FF F8 01 */	bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80383BEC 0037F84C  80 03 00 00 */	lwz r0, 0(r3)
/* 80383BF0 0037F850  80 9D 00 00 */	lwz r4, 0(r29)
/* 80383BF4 0037F854  90 1F 00 00 */	stw r0, 0(r31)
/* 80383BF8 0037F858  88 03 00 04 */	lbz r0, 4(r3)
/* 80383BFC 0037F85C  98 1F 00 04 */	stb r0, 4(r31)
/* 80383C00 0037F860  88 03 00 05 */	lbz r0, 5(r3)
/* 80383C04 0037F864  98 1F 00 05 */	stb r0, 5(r31)
/* 80383C08 0037F868  88 03 00 06 */	lbz r0, 6(r3)
/* 80383C0C 0037F86C  98 1F 00 06 */	stb r0, 6(r31)
/* 80383C10 0037F870  88 03 00 07 */	lbz r0, 7(r3)
/* 80383C14 0037F874  98 1F 00 07 */	stb r0, 7(r31)
/* 80383C18 0037F878  88 03 00 0C */	lbz r0, 0xc(r3)
/* 80383C1C 0037F87C  98 1F 00 08 */	stb r0, 8(r31)
/* 80383C20 0037F880  88 03 00 0D */	lbz r0, 0xd(r3)
/* 80383C24 0037F884  98 1F 00 0B */	stb r0, 0xb(r31)
/* 80383C28 0037F888  A0 04 00 06 */	lhz r0, 6(r4)
/* 80383C2C 0037F88C  28 00 01 01 */	cmplwi r0, 0x101
/* 80383C30 0037F890  41 80 00 20 */	blt lbl_80383C50
/* 80383C34 0037F894  88 03 00 0E */	lbz r0, 0xe(r3)
/* 80383C38 0037F898  98 1F 00 09 */	stb r0, 9(r31)
/* 80383C3C 0037F89C  88 03 00 0F */	lbz r0, 0xf(r3)
/* 80383C40 0037F8A0  98 1F 00 0A */	stb r0, 0xa(r31)
/* 80383C44 0037F8A4  C0 03 00 10 */	lfs f0, 0x10(r3)
/* 80383C48 0037F8A8  D0 1F 00 0C */	stfs f0, 0xc(r31)
/* 80383C4C 0037F8AC  48 00 00 1C */	b lbl_80383C68
lbl_80383C50:
/* 80383C50 0037F8B0  C0 02 A7 F0 */	lfs f0, lbl_80642DF0-_SDA2_BASE_(r2)
/* 80383C54 0037F8B4  38 60 00 40 */	li r3, 0x40
/* 80383C58 0037F8B8  38 00 00 00 */	li r0, 0
/* 80383C5C 0037F8BC  98 7F 00 09 */	stb r3, 9(r31)
/* 80383C60 0037F8C0  98 1F 00 0A */	stb r0, 0xa(r31)
/* 80383C64 0037F8C4  D0 1F 00 0C */	stfs f0, 0xc(r31)
lbl_80383C68:
/* 80383C68 0037F8C8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80383C6C 0037F8CC  38 60 00 01 */	li r3, 1
/* 80383C70 0037F8D0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80383C74 0037F8D4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80383C78 0037F8D8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80383C7C 0037F8DC  7C 08 03 A6 */	mtlr r0
/* 80383C80 0037F8E0  38 21 00 20 */	addi r1, r1, 0x20
/* 80383C84 0037F8E4  4E 80 00 20 */	blr 

.global ReadWaveParam__Q44nw4r3snd6detail13WsdFileReaderCFiPQ44nw4r3snd6detail8WaveDataPCv
ReadWaveParam__Q44nw4r3snd6detail13WsdFileReaderCFiPQ44nw4r3snd6detail8WaveDataPCv:
/* 80383C88 0037F8E8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80383C8C 0037F8EC  7C 08 02 A6 */	mflr r0
/* 80383C90 0037F8F0  80 E3 00 00 */	lwz r7, 0(r3)
/* 80383C94 0037F8F4  90 01 00 24 */	stw r0, 0x24(r1)
/* 80383C98 0037F8F8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80383C9C 0037F8FC  7C DF 33 78 */	mr r31, r6
/* 80383CA0 0037F900  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80383CA4 0037F904  7C BE 2B 78 */	mr r30, r5
/* 80383CA8 0037F908  A0 07 00 06 */	lhz r0, 6(r7)
/* 80383CAC 0037F90C  28 00 01 00 */	cmplwi r0, 0x100
/* 80383CB0 0037F910  40 82 00 1C */	bne lbl_80383CCC
/* 80383CB4 0037F914  80 A3 00 08 */	lwz r5, 8(r3)
/* 80383CB8 0037F918  54 80 10 3A */	slwi r0, r4, 2
/* 80383CBC 0037F91C  7C 65 02 14 */	add r3, r5, r0
/* 80383CC0 0037F920  80 03 00 08 */	lwz r0, 8(r3)
/* 80383CC4 0037F924  7C 80 2A 14 */	add r4, r0, r5
/* 80383CC8 0037F928  48 00 00 2C */	b lbl_80383CF4
lbl_80383CCC:
/* 80383CCC 0037F92C  80 A3 00 08 */	lwz r5, 8(r3)
/* 80383CD0 0037F930  80 05 00 08 */	lwz r0, 8(r5)
/* 80383CD4 0037F934  7C 04 00 40 */	cmplw r4, r0
/* 80383CD8 0037F938  41 80 00 0C */	blt lbl_80383CE4
/* 80383CDC 0037F93C  38 60 00 00 */	li r3, 0
/* 80383CE0 0037F940  48 00 00 2C */	b lbl_80383D0C
lbl_80383CE4:
/* 80383CE4 0037F944  54 80 10 3A */	slwi r0, r4, 2
/* 80383CE8 0037F948  7C 65 02 14 */	add r3, r5, r0
/* 80383CEC 0037F94C  80 03 00 0C */	lwz r0, 0xc(r3)
/* 80383CF0 0037F950  7C 80 2A 14 */	add r4, r0, r5
lbl_80383CF4:
/* 80383CF4 0037F954  38 61 00 08 */	addi r3, r1, 8
/* 80383CF8 0037F958  4B FF F7 15 */	bl __ct__Q44nw4r3snd6detail14WaveFileReaderFPCQ54nw4r3snd6detail8WaveFile8WaveInfo
/* 80383CFC 0037F95C  7F C4 F3 78 */	mr r4, r30
/* 80383D00 0037F960  7F E5 FB 78 */	mr r5, r31
/* 80383D04 0037F964  38 61 00 08 */	addi r3, r1, 8
/* 80383D08 0037F968  4B FF F7 0D */	bl ReadWaveParam__Q44nw4r3snd6detail14WaveFileReaderCFPQ44nw4r3snd6detail8WaveDataPCv
lbl_80383D0C:
/* 80383D0C 0037F96C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80383D10 0037F970  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80383D14 0037F974  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80383D18 0037F978  7C 08 03 A6 */	mtlr r0
/* 80383D1C 0037F97C  38 21 00 20 */	addi r1, r1, 0x20
/* 80383D20 0037F980  4E 80 00 20 */	blr