summaryrefslogtreecommitdiff
path: root/asm/Dolphin/os/OSAudioSystem.s
blob: c3aafe4c64d7decc25674195a01d1250e6c176d0 (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
.include "macros.inc"

.section .text

.global func_8036d638
.type func_8036d638, @function
func_8036d638:
/* 8036D638 7C0802A6 */ mflr        r0
/* 8036D63C 90010004 */ stw         r0, 4(r1)
/* 8036D640 9421FFD0 */ stwu        r1, -0x30(r1)
/* 8036D644 BF210014 */ stmw        r25, 0x14(r1)
/* 8036D648 4BFFFFD1 */ bl          func_8036d618
/* 8036D64C 3C808100 */ lis         r4, 0x8100
/* 8036D650 38A00080 */ li          r5, 0x80
/* 8036D654 3863FF80 */ addi        r3, r3, -0x80
/* 8036D658 4BCA0DC5 */ bl          func_8000e41c
/* 8036D65C 3C60804F */ lis         r3, lbl_804eed70@ha
/* 8036D660 3883ED70 */ addi        r4, r3, lbl_804eed70@l
/* 8036D664 3C608100 */ lis         r3, 0x8100
/* 8036D668 38A00080 */ li          r5, 0x80
/* 8036D66C 4BCA0DB1 */ bl          func_8000e41c
/* 8036D670 3C608100 */ lis         r3, 0x8100
/* 8036D674 38800080 */ li          r4, 0x80
/* 8036D678 48000299 */ bl          func_8036d910
/* 8036D67C 3C60CC00 */ lis         r3, 0xcc00
/* 8036D680 38635000 */ addi        r3, r3, 0x5000
/* 8036D684 38000043 */ li          r0, 0x43
/* 8036D688 B0030012 */ sth         r0, 0x12(r3)
/* 8036D68C 3BE3000A */ addi        r31, r3, 0xa
/* 8036D690 380008AC */ li          r0, 0x8ac
/* 8036D694 B003000A */ sth         r0, 0xa(r3)
/* 8036D698 A003000A */ lhz         r0, 0xa(r3)
/* 8036D69C 60000001 */ ori         r0, r0, 1
/* 8036D6A0 B003000A */ sth         r0, 0xa(r3)
lbl_8036d6a4:
/* 8036D6A4 A01F0000 */ lhz         r0, 0(r31)
/* 8036D6A8 540007FF */ clrlwi.     r0, r0, 0x1f
/* 8036D6AC 4082FFF8 */ bne+        lbl_8036d6a4
/* 8036D6B0 38000000 */ li          r0, 0x0
/* 8036D6B4 3C80CC00 */ lis         r4, 0xcc00
/* 8036D6B8 B0045000 */ sth         r0, 0x5000(r4)
lbl_8036d6bc:
/* 8036D6BC 3BC45000 */ addi        r30, r4, 0x5000
/* 8036D6C0 A47E0004 */ lhzu        r3, 4(r30)
/* 8036D6C4 3BA45000 */ addi        r29, r4, 0x5000
/* 8036D6C8 A41D0006 */ lhzu        r0, 6(r29)
/* 8036D6CC 5060801E */ rlwimi      r0, r3, 0x10, 0, 0xf
/* 8036D6D0 54000001 */ rlwinm.     r0, r0, 0, 0, 0
/* 8036D6D4 4082FFE8 */ bne+        lbl_8036d6bc
/* 8036D6D8 3C60CC00 */ lis         r3, 0xcc00
/* 8036D6DC 3C000100 */ lis         r0, 0x100
/* 8036D6E0 3B635000 */ addi        r27, r3, 0x5000
/* 8036D6E4 941B0020 */ stwu        r0, 0x20(r27)
/* 8036D6E8 38000000 */ li          r0, 0x0
/* 8036D6EC 3B435000 */ addi        r26, r3, 0x5000
/* 8036D6F0 941A0024 */ stwu        r0, 0x24(r26)
/* 8036D6F4 38000020 */ li          r0, 0x20
/* 8036D6F8 3B235000 */ addi        r25, r3, 0x5000
/* 8036D6FC 94190028 */ stwu        r0, 0x28(r25)
/* 8036D700 A07F0000 */ lhz         r3, 0(r31)
/* 8036D704 48000008 */ b           lbl_8036d70c
lbl_8036d708:
/* 8036D708 A07F0000 */ lhz         r3, 0(r31)
lbl_8036d70c:
/* 8036D70C 546006B5 */ rlwinm.     r0, r3, 0, 0x1a, 0x1a
/* 8036D710 4182FFF8 */ beq+        lbl_8036d708
/* 8036D714 B07F0000 */ sth         r3, 0(r31)
/* 8036D718 480050C5 */ bl          func_803727dc
/* 8036D71C 7C7C1B78 */ mr          r28, r3
lbl_8036d720:
/* 8036D720 480050BD */ bl          func_803727dc
/* 8036D724 7C1C1850 */ subf        r0, r28, r3
/* 8036D728 2C000892 */ cmpwi       r0, 0x892
/* 8036D72C 4180FFF4 */ blt+        lbl_8036d720
/* 8036D730 3C000100 */ lis         r0, 0x100
/* 8036D734 901B0000 */ stw         r0, 0(r27)
/* 8036D738 38600000 */ li          r3, 0x0
/* 8036D73C 38000020 */ li          r0, 0x20
/* 8036D740 907A0000 */ stw         r3, 0(r26)
/* 8036D744 90190000 */ stw         r0, 0(r25)
/* 8036D748 A07F0000 */ lhz         r3, 0(r31)
/* 8036D74C 48000008 */ b           lbl_8036d754
lbl_8036d750:
/* 8036D750 A07F0000 */ lhz         r3, 0(r31)
lbl_8036d754:
/* 8036D754 546006B5 */ rlwinm.     r0, r3, 0, 0x1a, 0x1a
/* 8036D758 4182FFF8 */ beq+        lbl_8036d750
/* 8036D75C B07F0000 */ sth         r3, 0(r31)
/* 8036D760 A01F0000 */ lhz         r0, 0(r31)
/* 8036D764 54000566 */ rlwinm      r0, r0, 0, 0x15, 0x13
/* 8036D768 B01F0000 */ sth         r0, 0(r31)
lbl_8036d76c:
/* 8036D76C A01F0000 */ lhz         r0, 0(r31)
/* 8036D770 5400056B */ rlwinm.     r0, r0, 0, 0x15, 0x15
/* 8036D774 4082FFF8 */ bne+        lbl_8036d76c
/* 8036D778 A01F0000 */ lhz         r0, 0(r31)
/* 8036D77C 540007B8 */ rlwinm      r0, r0, 0, 0x1e, 0x1c
/* 8036D780 B01F0000 */ sth         r0, 0(r31)
/* 8036D784 A01E0000 */ lhz         r0, 0(r30)
/* 8036D788 48000008 */ b           lbl_8036d790
lbl_8036d78c:
/* 8036D78C A01E0000 */ lhz         r0, 0(r30)
lbl_8036d790:
/* 8036D790 5405043E */ clrlwi      r5, r0, 0x10
/* 8036D794 54000421 */ rlwinm.     r0, r0, 0, 0x10, 0x10
/* 8036D798 4182FFF4 */ beq+        lbl_8036d78c
/* 8036D79C A01F0000 */ lhz         r0, 0(r31)
/* 8036D7A0 A09D0000 */ lhz         r4, 0(r29)
/* 8036D7A4 60000004 */ ori         r0, r0, 4
/* 8036D7A8 B01F0000 */ sth         r0, 0(r31)
/* 8036D7AC 380008AC */ li          r0, 0x8ac
/* 8036D7B0 B01F0000 */ sth         r0, 0(r31)
/* 8036D7B4 A01F0000 */ lhz         r0, 0(r31)
/* 8036D7B8 60000001 */ ori         r0, r0, 1
/* 8036D7BC B01F0000 */ sth         r0, 0(r31)
lbl_8036d7c0:
/* 8036D7C0 A01F0000 */ lhz         r0, 0(r31)
/* 8036D7C4 540007FF */ clrlwi.     r0, r0, 0x1f
/* 8036D7C8 4082FFF8 */ bne+        lbl_8036d7c0
/* 8036D7CC 4BFFFE4D */ bl          func_8036d618
/* 8036D7D0 3883FF80 */ addi        r4, r3, -0x80
/* 8036D7D4 3C608100 */ lis         r3, 0x8100
/* 8036D7D8 38A00080 */ li          r5, 0x80
/* 8036D7DC 4BCA0C41 */ bl          func_8000e41c
/* 8036D7E0 BB210014 */ lmw         r25, 0x14(r1)
/* 8036D7E4 80010034 */ lwz         r0, 0x34(r1)
/* 8036D7E8 38210030 */ addi        r1, r1, 0x30
/* 8036D7EC 7C0803A6 */ mtlr        r0
/* 8036D7F0 4E800020 */ blr         
.size func_8036d638, . - func_8036d638


.global func_8036d7f4
.type func_8036d7f4, @function
func_8036d7f4:
/* 8036D7F4 7C0802A6 */ mflr        r0
/* 8036D7F8 3C60CC00 */ lis         r3, 0xcc00
/* 8036D7FC 90010004 */ stw         r0, 4(r1)
/* 8036D800 38000804 */ li          r0, 0x804
/* 8036D804 9421FFF0 */ stwu        r1, -0x10(r1)
/* 8036D808 93E1000C */ stw         r31, 0xc(r1)
/* 8036D80C 3BE35000 */ addi        r31, r3, 0x5000
/* 8036D810 38635000 */ addi        r3, r3, 0x5000
/* 8036D814 93C10008 */ stw         r30, 8(r1)
/* 8036D818 B01F000A */ sth         r0, 0xa(r31)
/* 8036D81C A0030036 */ lhz         r0, 0x36(r3)
/* 8036D820 5400045E */ rlwinm      r0, r0, 0, 0x11, 0xf
/* 8036D824 B0030036 */ sth         r0, 0x36(r3)
/* 8036D828 A41F000A */ lhzu        r0, 0xa(r31)
/* 8036D82C 48000008 */ b           lbl_8036d834
lbl_8036d830:
/* 8036D830 A01F0000 */ lhz         r0, 0(r31)
lbl_8036d834:
/* 8036D834 5400056B */ rlwinm.     r0, r0, 0, 0x15, 0x15
/* 8036D838 4082FFF8 */ bne+        lbl_8036d830
/* 8036D83C A01F0000 */ lhz         r0, 0(r31)
/* 8036D840 48000008 */ b           lbl_8036d848
lbl_8036d844:
/* 8036D844 A01F0000 */ lhz         r0, 0(r31)
lbl_8036d848:
/* 8036D848 540005AD */ rlwinm.     r0, r0, 0, 0x16, 0x16
/* 8036D84C 4082FFF8 */ bne+        lbl_8036d844
/* 8036D850 380008AC */ li          r0, 0x8ac
/* 8036D854 3C60CC00 */ lis         r3, 0xcc00
/* 8036D858 B01F0000 */ sth         r0, 0(r31)
/* 8036D85C 38000000 */ li          r0, 0x0
/* 8036D860 B0035000 */ sth         r0, 0x5000(r3)
/* 8036D864 38835000 */ addi        r4, r3, 0x5000
lbl_8036d868:
/* 8036D868 A0640004 */ lhz         r3, 4(r4)
/* 8036D86C A0040006 */ lhz         r0, 6(r4)
/* 8036D870 5060801E */ rlwimi      r0, r3, 0x10, 0, 0xf
/* 8036D874 54000001 */ rlwinm.     r0, r0, 0, 0, 0
/* 8036D878 4082FFF0 */ bne+        lbl_8036d868
/* 8036D87C 48004F61 */ bl          func_803727dc
/* 8036D880 7C7E1B78 */ mr          r30, r3
lbl_8036d884:
/* 8036D884 48004F59 */ bl          func_803727dc
/* 8036D888 7C1E1850 */ subf        r0, r30, r3
/* 8036D88C 2C00002C */ cmpwi       r0, 0x2c
/* 8036D890 4180FFF4 */ blt+        lbl_8036d884
/* 8036D894 A01F0000 */ lhz         r0, 0(r31)
/* 8036D898 60000001 */ ori         r0, r0, 1
/* 8036D89C B01F0000 */ sth         r0, 0(r31)
/* 8036D8A0 A01F0000 */ lhz         r0, 0(r31)
/* 8036D8A4 48000008 */ b           lbl_8036d8ac
lbl_8036d8a8:
/* 8036D8A8 A01F0000 */ lhz         r0, 0(r31)
lbl_8036d8ac:
/* 8036D8AC 540007FF */ clrlwi.     r0, r0, 0x1f
/* 8036D8B0 4082FFF8 */ bne+        lbl_8036d8a8
/* 8036D8B4 80010014 */ lwz         r0, 0x14(r1)
/* 8036D8B8 83E1000C */ lwz         r31, 0xc(r1)
/* 8036D8BC 83C10008 */ lwz         r30, 8(r1)
/* 8036D8C0 38210010 */ addi        r1, r1, 0x10
/* 8036D8C4 7C0803A6 */ mtlr        r0
/* 8036D8C8 4E800020 */ blr         
.size func_8036d7f4, . - func_8036d7f4