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

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

.global __ct__Q44nw4r3snd6detail14WaveFileReaderFPCQ54nw4r3snd6detail8WaveFile8WaveInfo
__ct__Q44nw4r3snd6detail14WaveFileReaderFPCQ54nw4r3snd6detail8WaveFile8WaveInfo:
/* 8038340C 0037F06C  90 83 00 00 */	stw r4, 0(r3)
/* 80383410 0037F070  4E 80 00 20 */	blr 

.global ReadWaveParam__Q44nw4r3snd6detail14WaveFileReaderCFPQ44nw4r3snd6detail8WaveDataPCv
ReadWaveParam__Q44nw4r3snd6detail14WaveFileReaderCFPQ44nw4r3snd6detail8WaveDataPCv:
/* 80383414 0037F074  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80383418 0037F078  7C 08 02 A6 */	mflr r0
/* 8038341C 0037F07C  80 C3 00 00 */	lwz r6, 0(r3)
/* 80383420 0037F080  90 01 00 24 */	stw r0, 0x24(r1)
/* 80383424 0037F084  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80383428 0037F088  7C BF 2B 78 */	mr r31, r5
/* 8038342C 0037F08C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80383430 0037F090  7C 7E 1B 78 */	mr r30, r3
/* 80383434 0037F094  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80383438 0037F098  93 81 00 10 */	stw r28, 0x10(r1)
/* 8038343C 0037F09C  7C 9C 23 78 */	mr r28, r4
/* 80383440 0037F0A0  88 06 00 00 */	lbz r0, 0(r6)
/* 80383444 0037F0A4  28 00 00 01 */	cmplwi r0, 1
/* 80383448 0037F0A8  40 82 00 0C */	bne lbl_80383454
/* 8038344C 0037F0AC  3B A0 00 0A */	li r29, 0xa
/* 80383450 0037F0B0  48 00 00 14 */	b lbl_80383464
lbl_80383454:
/* 80383454 0037F0B4  2C 00 00 00 */	cmpwi r0, 0
/* 80383458 0037F0B8  3B A0 00 00 */	li r29, 0
/* 8038345C 0037F0BC  40 82 00 08 */	bne lbl_80383464
/* 80383460 0037F0C0  3B A0 00 19 */	li r29, 0x19
lbl_80383464:
/* 80383464 0037F0C4  80 E3 00 00 */	lwz r7, 0(r3)
/* 80383468 0037F0C8  7F A5 EB 78 */	mr r5, r29
/* 8038346C 0037F0CC  98 04 00 00 */	stb r0, 0(r4)
/* 80383470 0037F0D0  38 60 00 00 */	li r3, 0
/* 80383474 0037F0D4  88 07 00 02 */	lbz r0, 2(r7)
/* 80383478 0037F0D8  98 04 00 02 */	stb r0, 2(r4)
/* 8038347C 0037F0DC  88 C7 00 03 */	lbz r6, 3(r7)
/* 80383480 0037F0E0  A0 07 00 04 */	lhz r0, 4(r7)
/* 80383484 0037F0E4  54 C6 80 1E */	slwi r6, r6, 0x10
/* 80383488 0037F0E8  7C 06 02 14 */	add r0, r6, r0
/* 8038348C 0037F0EC  90 04 00 04 */	stw r0, 4(r4)
/* 80383490 0037F0F0  88 07 00 01 */	lbz r0, 1(r7)
/* 80383494 0037F0F4  98 04 00 01 */	stb r0, 1(r4)
/* 80383498 0037F0F8  80 87 00 08 */	lwz r4, 8(r7)
/* 8038349C 0037F0FC  4B FE 6B 75 */	bl GetSampleByDspAddress__Q44nw4r3snd6detail7AxVoiceFPCvUlQ54nw4r3snd6detail7AxVoice6Format
/* 803834A0 0037F100  90 7C 00 08 */	stw r3, 8(r28)
/* 803834A4 0037F104  7F A5 EB 78 */	mr r5, r29
/* 803834A8 0037F108  80 9E 00 00 */	lwz r4, 0(r30)
/* 803834AC 0037F10C  38 60 00 00 */	li r3, 0
/* 803834B0 0037F110  80 84 00 0C */	lwz r4, 0xc(r4)
/* 803834B4 0037F114  4B FE 6B 5D */	bl GetSampleByDspAddress__Q44nw4r3snd6detail7AxVoiceFPCvUlQ54nw4r3snd6detail7AxVoice6Format
/* 803834B8 0037F118  38 03 00 01 */	addi r0, r3, 1
/* 803834BC 0037F11C  80 7E 00 00 */	lwz r3, 0(r30)
/* 803834C0 0037F120  90 1C 00 0C */	stw r0, 0xc(r28)
/* 803834C4 0037F124  38 9C 00 10 */	addi r4, r28, 0x10
/* 803834C8 0037F128  38 C0 00 00 */	li r6, 0
/* 803834CC 0037F12C  80 03 00 10 */	lwz r0, 0x10(r3)
/* 803834D0 0037F130  7C A0 1A 14 */	add r5, r0, r3
/* 803834D4 0037F134  48 00 01 20 */	b lbl_803835F4
lbl_803834D8:
/* 803834D8 0037F138  80 05 00 00 */	lwz r0, 0(r5)
/* 803834DC 0037F13C  7C E0 1A 14 */	add r7, r0, r3
/* 803834E0 0037F140  80 07 00 08 */	lwz r0, 8(r7)
/* 803834E4 0037F144  90 04 00 04 */	stw r0, 4(r4)
/* 803834E8 0037F148  80 07 00 0C */	lwz r0, 0xc(r7)
/* 803834EC 0037F14C  90 04 00 08 */	stw r0, 8(r4)
/* 803834F0 0037F150  80 07 00 10 */	lwz r0, 0x10(r7)
/* 803834F4 0037F154  90 04 00 0C */	stw r0, 0xc(r4)
/* 803834F8 0037F158  80 07 00 14 */	lwz r0, 0x14(r7)
/* 803834FC 0037F15C  90 04 00 10 */	stw r0, 0x10(r4)
/* 80383500 0037F160  80 67 00 04 */	lwz r3, 4(r7)
/* 80383504 0037F164  2C 03 00 00 */	cmpwi r3, 0
/* 80383508 0037F168  41 82 00 C8 */	beq lbl_803835D0
/* 8038350C 0037F16C  80 1E 00 00 */	lwz r0, 0(r30)
/* 80383510 0037F170  7D 03 02 6E */	lhzux r8, r3, r0
/* 80383514 0037F174  A0 03 00 02 */	lhz r0, 2(r3)
/* 80383518 0037F178  B1 04 00 14 */	sth r8, 0x14(r4)
/* 8038351C 0037F17C  B0 04 00 16 */	sth r0, 0x16(r4)
/* 80383520 0037F180  A1 03 00 04 */	lhz r8, 4(r3)
/* 80383524 0037F184  A0 03 00 06 */	lhz r0, 6(r3)
/* 80383528 0037F188  B1 04 00 18 */	sth r8, 0x18(r4)
/* 8038352C 0037F18C  B0 04 00 1A */	sth r0, 0x1a(r4)
/* 80383530 0037F190  A1 03 00 08 */	lhz r8, 8(r3)
/* 80383534 0037F194  A0 03 00 0A */	lhz r0, 0xa(r3)
/* 80383538 0037F198  B1 04 00 1C */	sth r8, 0x1c(r4)
/* 8038353C 0037F19C  B0 04 00 1E */	sth r0, 0x1e(r4)
/* 80383540 0037F1A0  A1 03 00 0C */	lhz r8, 0xc(r3)
/* 80383544 0037F1A4  A0 03 00 0E */	lhz r0, 0xe(r3)
/* 80383548 0037F1A8  B1 04 00 20 */	sth r8, 0x20(r4)
/* 8038354C 0037F1AC  B0 04 00 22 */	sth r0, 0x22(r4)
/* 80383550 0037F1B0  A1 03 00 10 */	lhz r8, 0x10(r3)
/* 80383554 0037F1B4  A0 03 00 12 */	lhz r0, 0x12(r3)
/* 80383558 0037F1B8  B1 04 00 24 */	sth r8, 0x24(r4)
/* 8038355C 0037F1BC  B0 04 00 26 */	sth r0, 0x26(r4)
/* 80383560 0037F1C0  A1 03 00 14 */	lhz r8, 0x14(r3)
/* 80383564 0037F1C4  A0 03 00 16 */	lhz r0, 0x16(r3)
/* 80383568 0037F1C8  B1 04 00 28 */	sth r8, 0x28(r4)
/* 8038356C 0037F1CC  B0 04 00 2A */	sth r0, 0x2a(r4)
/* 80383570 0037F1D0  A1 03 00 18 */	lhz r8, 0x18(r3)
/* 80383574 0037F1D4  A0 03 00 1A */	lhz r0, 0x1a(r3)
/* 80383578 0037F1D8  B1 04 00 2C */	sth r8, 0x2c(r4)
/* 8038357C 0037F1DC  B0 04 00 2E */	sth r0, 0x2e(r4)
/* 80383580 0037F1E0  A1 03 00 1C */	lhz r8, 0x1c(r3)
/* 80383584 0037F1E4  A0 03 00 1E */	lhz r0, 0x1e(r3)
/* 80383588 0037F1E8  B1 04 00 30 */	sth r8, 0x30(r4)
/* 8038358C 0037F1EC  B0 04 00 32 */	sth r0, 0x32(r4)
/* 80383590 0037F1F0  A1 03 00 20 */	lhz r8, 0x20(r3)
/* 80383594 0037F1F4  A0 03 00 22 */	lhz r0, 0x22(r3)
/* 80383598 0037F1F8  B1 04 00 34 */	sth r8, 0x34(r4)
/* 8038359C 0037F1FC  B0 04 00 36 */	sth r0, 0x36(r4)
/* 803835A0 0037F200  A1 03 00 24 */	lhz r8, 0x24(r3)
/* 803835A4 0037F204  A0 03 00 26 */	lhz r0, 0x26(r3)
/* 803835A8 0037F208  B1 04 00 38 */	sth r8, 0x38(r4)
/* 803835AC 0037F20C  B0 04 00 3A */	sth r0, 0x3a(r4)
/* 803835B0 0037F210  A0 03 00 28 */	lhz r0, 0x28(r3)
/* 803835B4 0037F214  B0 04 00 3C */	sth r0, 0x3c(r4)
/* 803835B8 0037F218  A0 03 00 2A */	lhz r0, 0x2a(r3)
/* 803835BC 0037F21C  B0 04 00 3E */	sth r0, 0x3e(r4)
/* 803835C0 0037F220  A0 03 00 2C */	lhz r0, 0x2c(r3)
/* 803835C4 0037F224  B0 04 00 40 */	sth r0, 0x40(r4)
/* 803835C8 0037F228  A0 03 00 2E */	lhz r0, 0x2e(r3)
/* 803835CC 0037F22C  B0 04 00 42 */	sth r0, 0x42(r4)
lbl_803835D0:
/* 803835D0 0037F230  81 1E 00 00 */	lwz r8, 0(r30)
/* 803835D4 0037F234  38 A5 00 04 */	addi r5, r5, 4
/* 803835D8 0037F238  80 67 00 00 */	lwz r3, 0(r7)
/* 803835DC 0037F23C  38 C6 00 01 */	addi r6, r6, 1
/* 803835E0 0037F240  80 08 00 14 */	lwz r0, 0x14(r8)
/* 803835E4 0037F244  7C 00 FA 14 */	add r0, r0, r31
/* 803835E8 0037F248  7C 03 02 14 */	add r0, r3, r0
/* 803835EC 0037F24C  90 04 00 00 */	stw r0, 0(r4)
/* 803835F0 0037F250  38 84 00 44 */	addi r4, r4, 0x44
lbl_803835F4:
/* 803835F4 0037F254  80 7E 00 00 */	lwz r3, 0(r30)
/* 803835F8 0037F258  88 03 00 02 */	lbz r0, 2(r3)
/* 803835FC 0037F25C  7C 06 00 00 */	cmpw r6, r0
/* 80383600 0037F260  41 80 FE D8 */	blt lbl_803834D8
/* 80383604 0037F264  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80383608 0037F268  38 60 00 01 */	li r3, 1
/* 8038360C 0037F26C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80383610 0037F270  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80383614 0037F274  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80383618 0037F278  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8038361C 0037F27C  7C 08 03 A6 */	mtlr r0
/* 80383620 0037F280  38 21 00 20 */	addi r1, r1, 0x20
/* 80383624 0037F284  4E 80 00 20 */	blr 

.global GetAxVoiceFormatFromWaveFileFormat__Q44nw4r3snd6detail14WaveFileReaderFUl
GetAxVoiceFormatFromWaveFileFormat__Q44nw4r3snd6detail14WaveFileReaderFUl:
/* 80383628 0037F288  28 03 00 01 */	cmplwi r3, 1
/* 8038362C 0037F28C  40 82 00 0C */	bne lbl_80383638
/* 80383630 0037F290  38 60 00 0A */	li r3, 0xa
/* 80383634 0037F294  4E 80 00 20 */	blr 
lbl_80383638:
/* 80383638 0037F298  2C 03 00 00 */	cmpwi r3, 0
/* 8038363C 0037F29C  38 60 00 00 */	li r3, 0
/* 80383640 0037F2A0  4C 82 00 20 */	bnelr 
/* 80383644 0037F2A4  38 60 00 19 */	li r3, 0x19
/* 80383648 0037F2A8  4E 80 00 20 */	blr