blob: cb11d7ddae6578aeacfa35f92217d3791b397e3a (
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
|
//
// Generated By: dol2asm
// Translation Unit: JAUInitializer
//
#include "JSystem/JAudio2/JAUInitializer.h"
#include "JSystem/JAudio2/JASTaskThread.h"
#include "JSystem/JAudio2/JASTrack.h"
#include "JSystem/JAudio2/JASWaveArcLoader.h"
#include "JSystem/JKernel/JKRAram.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "JSystem/JKernel/JKRThread.h"
#include "dol2asm.h"
#include "dolphin/os/OSRtc.h"
//
// Types:
//
//
// Forward References:
//
extern "C" void __ct__18JAU_JASInitializerFv();
extern "C" void initJASystem__18JAU_JASInitializerFP12JKRSolidHeap();
extern "C" void __ct__18JAU_JAIInitializerFv();
extern "C" void initJAInterface__18JAU_JAIInitializerFv();
//
// External References:
//
extern "C" void getThreadPointer__6JASDvdFv();
extern "C" void createThread__6JASDvdFliUl();
extern "C" void __ct__17JASGenericMemPoolFv();
extern "C" void newMemPool__17JASGenericMemPoolFUli();
extern "C" void setupRootHeap__9JASKernelFP12JKRSolidHeapUl();
extern "C" void setupAramHeap__9JASKernelFUlUl();
extern "C" void func_802932E0(void* _this);
extern "C" void func_80293334(void* _this);
extern "C" void initSystem__13JASAramStreamFUlUl();
extern "C" void setCurrentDir__16JASWaveArcLoaderFPCc();
extern "C" void create__14JASAudioThreadFl();
extern "C" void setDSPLevel__9JASDriverFf();
extern "C" void setOutputMode__9JASDriverFUl();
extern "C" void func_8029FC34(void* _this);
extern "C" void func_802A1268(void* _this);
extern "C" void func_802A1AF4(void* _this);
extern "C" void func_802A3E68(void* _this);
extern "C" void getFreeSize__7JKRHeapFv();
extern "C" void enter__15JKRThreadSwitchFP9JKRThreadi();
extern "C" void __register_global_object();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" extern u8 data_80431AF4[16];
extern "C" extern u8 data_80431B04[16 + 4 /* padding */];
extern "C" extern u8 data_80434084[16 + 4 /* padding */];
extern "C" extern u8 data_804340B0[16];
extern "C" extern u8 data_804340CC[16 + 4 /* padding */];
extern "C" extern u8 data_804340FC[16 + 4 /* padding */];
extern "C" extern u8 data_80450B8C[4];
extern "C" extern u8 struct_80451230[8];
extern "C" extern u8 data_80451310[8];
extern "C" extern u8 data_80451318[8];
extern "C" extern u8 data_80451320[8];
extern "C" extern u8 data_80451328[8];
extern "C" u8 sManager__15JKRThreadSwitch[4];
extern "C" u8 sAramObject__7JKRAram[4];
extern "C" extern u8 __OSReport_disable;
//
// Declarations:
//
/* 802A4AD0-802A4B28 29F410 0058+00 0/0 1/1 0/0 .text __ct__18JAU_JASInitializerFv */
JAU_JASInitializer::JAU_JASInitializer() {
field_0x00 = 0;
field_0x04 = 0;
field_0x14 = -1;
field_0x18 = -1;
field_0x08 = 0x1000;
field_0x0c = 3;
field_0x10 = 2;
field_0x1c = 0x80;
field_0x2c = 1.0f;
field_0x24 = 0x2760;
field_0x28 = 2;
field_0x20 = 0;
field_0x30 = NULL;
}
/* ############################################################################################## */
/* 80434110-8043411C 060E30 000C+00 2/2 0/0 0/0 .bss @757 */
static u8 lit_757[12];
/* 8043411C-80434128 060E3C 000C+00 1/1 0/0 0/0 .bss @763 */
static u8 lit_763[12];
/* 802A4B28-802A4D3C 29F468 0214+00 0/0 1/1 0/0 .text
* initJASystem__18JAU_JASInitializerFP12JKRSolidHeap */
// extra destructors
#ifdef NONMATCHING
void JAU_JASInitializer::initJASystem(JKRSolidHeap* param_0) {
if (JASAudioThread::getThreadPointer()) {
} else if (JASDvd::getThreadPointer()) {
} else {
JASKernel::setupRootHeap(param_0, field_0x08);
if (field_0x00 == 0) {
field_0x00 = JKRAram::getManager()->getAudioMemory();
}
if (field_0x04 == 0) {
field_0x04 = JKRAram::getManager()->getAudioMemSize();
}
JASKernel::setupAramHeap(field_0x00, field_0x04);
JASPoolAllocObject_MultiThreaded<JASTrack>::newMemPool(field_0x1c);
if (field_0x20 > 0) {
JASPoolAllocObject_MultiThreaded<JASTrack::TChannelMgr>::newMemPool(field_0x20);
}
JASDvd::createThread(field_0x0c,0x80,0x1000);
JASAudioThread::create(field_0x10);
JKRThreadSwitch* threadSwitch = JKRThreadSwitch::getManager();
if (threadSwitch) {
if (field_0x14 >= 0) {
threadSwitch->enter(JASDvd::getThreadPointer(), field_0x14);
}
if (field_0x18 >= 0) {
threadSwitch->enter(JASAudioThread::getThreadPointer(), field_0x18);
}
}
JASDriver::setDSPLevel(field_0x2c);
JASAramStream::initSystem(field_0x24,field_0x28);
}
if (field_0x30) {
JASWaveArcLoader::setCurrentDir(field_0x30);
}
switch (OSGetSoundMode()) {
case 0:
JASDriver::setOutputMode(0);
break;
case 1:
JASDriver::setOutputMode(1);
break;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAU_JASInitializer::initJASystem(JKRSolidHeap* param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JAUInitializer/initJASystem__18JAU_JASInitializerFP12JKRSolidHeap.s"
}
#pragma pop
#endif
/* 802A4D3C-802A4D60 29F67C 0024+00 0/0 1/1 0/0 .text __ct__18JAU_JAIInitializerFv */
JAU_JAIInitializer::JAU_JAIInitializer() {
field_0x0 = 100;
field_0x4 = 4;
field_0x8 = 2;
field_0xc = 16;
}
/* ############################################################################################## */
/* 80434128-80434134 060E48 000C+00 0/1 0/0 0/0 .bss @855 */
#pragma push
#pragma force_active on
static u8 lit_855[12];
#pragma pop
/* 80434134-80434140 060E54 000C+00 0/1 0/0 0/0 .bss @859 */
#pragma push
#pragma force_active on
static u8 lit_859[12];
#pragma pop
/* 80434140-8043414C 060E60 000C+00 0/1 0/0 0/0 .bss @863 */
#pragma push
#pragma force_active on
static u8 lit_863[12];
#pragma pop
/* 8043414C-804341B8 060E6C 000C+60 0/1 0/0 0/0 .bss @867 */
#pragma push
#pragma force_active on
static u8 lit_867[12 + 96 /* padding */];
#pragma pop
/* 802A4D60-802A4EE8 29F6A0 0188+00 0/0 1/1 0/0 .text initJAInterface__18JAU_JAIInitializerFv */
// extra destructors
#ifdef NONMATCHING
void JAU_JAIInitializer::initJAInterface() {
s32 r30 = JASDram->getFreeSize();
JASPoolAllocObject<JAIStream>::newMemPool(field_0x8);
JASPoolAllocObject<JAISeq>::newMemPool(field_0x4);
JASPoolAllocObject<JAISe>::newMemPool(field_0x0);
JASPoolAllocObject<JAISoundChild>::newMemPool(field_0xc);
s32 r29 = JASDram->getFreeSize();
//OSReport("JAU_JAIInitializer uses %d bytes\n", r30 - r29);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAU_JAIInitializer::initJAInterface() {
nofralloc
#include "asm/JSystem/JAudio2/JAUInitializer/initJAInterface__18JAU_JAIInitializerFv.s"
}
#pragma pop
#endif
|