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
238
239
240
|
//
// Generated By: dol2asm
// Translation Unit: d/d_model
//
#include "d/d_model.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct dStage_roomControl_c {
static u8 mStatus[65792];
};
struct dMdl_obj_c {};
struct dKy_tevstr_c {};
struct J3DModelData {};
struct dMdl_mng_c {
/* 8009C6DC */ void search(J3DModelData*, u16, dKy_tevstr_c*);
/* 8009C724 */ void entry(J3DModelData*, u16, dKy_tevstr_c*);
/* 8009C8D8 */ void entry(J3DModelData*, u16, int);
/* 8009C7AC */ void create();
/* 8009C864 */ void remove();
/* 8009C8C0 */ void reset();
static u8 m_myObj[4 + 4 /* padding */];
};
struct dMdl_c {
/* 8009C4FC */ void draw();
/* 8009C650 */ void create(J3DModelData*, u16, dKy_tevstr_c*);
/* 8009C668 */ void entryObj(dMdl_obj_c*);
/* 8009C808 */ ~dMdl_c();
/* 8009C930 */ dMdl_c();
};
struct J3DShape {
/* 80315300 */ void loadPreDrawSetting() const;
static u8 sOldVcdVatCmd[4];
};
struct J3DPacket;
struct J3DDrawBuffer {
/* 8032548C */ void entryImm(J3DPacket*, u16);
};
struct J3DPacket {
/* 80312750 */ bool entry(J3DDrawBuffer*);
};
//
// Forward References:
//
extern "C" void draw__6dMdl_cFv();
extern "C" void create__6dMdl_cFP12J3DModelDataUsP12dKy_tevstr_c();
extern "C" void entryObj__6dMdl_cFP10dMdl_obj_c();
extern "C" void search__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c();
extern "C" void entry__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c();
extern "C" void create__10dMdl_mng_cFv();
extern "C" void __dt__6dMdl_cFv();
extern "C" void remove__10dMdl_mng_cFv();
extern "C" void reset__10dMdl_mng_cFv();
extern "C" void entry__10dMdl_mng_cFP12J3DModelDataUsi();
extern "C" void __ct__6dMdl_cFv();
extern "C" u8 m_myObj__10dMdl_mng_c[4 + 4 /* padding */];
//
// External References:
//
extern "C" void dKy_setLight_nowroom_actor__FP12dKy_tevstr_c();
extern "C" void dKy_setLight_again__Fv();
extern "C" void dKy_GxFog_tevstr_set__FP12dKy_tevstr_c();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" bool entry__9J3DPacketFP13J3DDrawBuffer();
extern "C" void loadPreDrawSetting__8J3DShapeCFv();
extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs();
extern "C" void PSMTXConcat();
extern "C" void GXSetChanAmbColor();
extern "C" void GXSetChanMatColor();
extern "C" void GXLoadPosMtxImm();
extern "C" void GXLoadNrmMtxImm();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" extern void* __vt__9J3DPacket[5];
extern "C" u8 mStatus__20dStage_roomControl_c[65792];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 j3dSys[284];
extern "C" extern u32 g_whiteColor;
extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
//
// Declarations:
//
/* ############################################################################################## */
/* 80456B70-80456B78 000010 0004+04 1/1 0/0 0/0 .sbss2 @3621 */
SECTION_SBSS2 static u8 lit_3621[4 + 4 /* padding */];
/* 8009C4FC-8009C650 096E3C 0154+00 1/0 0/0 0/0 .text draw__6dMdl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMdl_c::draw() {
nofralloc
#include "asm/d/d_model/draw__6dMdl_cFv.s"
}
#pragma pop
/* 8009C650-8009C668 096F90 0018+00 1/1 0/0 1/1 .text
* create__6dMdl_cFP12J3DModelDataUsP12dKy_tevstr_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMdl_c::create(J3DModelData* param_0, u16 param_1, dKy_tevstr_c* param_2) {
nofralloc
#include "asm/d/d_model/create__6dMdl_cFP12J3DModelDataUsP12dKy_tevstr_c.s"
}
#pragma pop
/* 8009C668-8009C6DC 096FA8 0074+00 0/0 0/0 5/5 .text entryObj__6dMdl_cFP10dMdl_obj_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMdl_c::entryObj(dMdl_obj_c* param_0) {
nofralloc
#include "asm/d/d_model/entryObj__6dMdl_cFP10dMdl_obj_c.s"
}
#pragma pop
/* 8009C6DC-8009C724 09701C 0048+00 1/1 0/0 0/0 .text
* search__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMdl_mng_c::search(J3DModelData* param_0, u16 param_1, dKy_tevstr_c* param_2) {
nofralloc
#include "asm/d/d_model/search__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c.s"
}
#pragma pop
/* 8009C724-8009C7AC 097064 0088+00 1/1 0/0 0/0 .text
* entry__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMdl_mng_c::entry(J3DModelData* param_0, u16 param_1, dKy_tevstr_c* param_2) {
nofralloc
#include "asm/d/d_model/entry__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c.s"
}
#pragma pop
/* ############################################################################################## */
/* 80450FA0-80450FA8 0004A0 0004+04 4/4 0/0 0/0 .sbss m_myObj__10dMdl_mng_c */
u8 dMdl_mng_c::m_myObj[4 + 4 /* padding */];
/* 8009C7AC-8009C808 0970EC 005C+00 0/0 1/1 0/0 .text create__10dMdl_mng_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMdl_mng_c::create() {
nofralloc
#include "asm/d/d_model/create__10dMdl_mng_cFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 803AF978-803AF990 00CA98 0014+04 2/2 0/0 1/1 .data __vt__6dMdl_c */
SECTION_DATA extern void* __vt__6dMdl_c[5 + 1 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)entry__9J3DPacketFP13J3DDrawBuffer,
(void*)draw__6dMdl_cFv,
(void*)__dt__6dMdl_cFv,
/* padding */
NULL,
};
/* 8009C808-8009C864 097148 005C+00 3/2 0/0 0/0 .text __dt__6dMdl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMdl_c::~dMdl_c() {
nofralloc
#include "asm/d/d_model/__dt__6dMdl_cFv.s"
}
#pragma pop
/* 8009C864-8009C8C0 0971A4 005C+00 0/0 1/1 0/0 .text remove__10dMdl_mng_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMdl_mng_c::remove() {
nofralloc
#include "asm/d/d_model/remove__10dMdl_mng_cFv.s"
}
#pragma pop
/* 8009C8C0-8009C8D8 097200 0018+00 0/0 1/1 0/0 .text reset__10dMdl_mng_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMdl_mng_c::reset() {
nofralloc
#include "asm/d/d_model/reset__10dMdl_mng_cFv.s"
}
#pragma pop
/* 8009C8D8-8009C930 097218 0058+00 0/0 0/0 4/4 .text entry__10dMdl_mng_cFP12J3DModelDataUsi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMdl_mng_c::entry(J3DModelData* param_0, u16 param_1, int param_2) {
nofralloc
#include "asm/d/d_model/entry__10dMdl_mng_cFP12J3DModelDataUsi.s"
}
#pragma pop
/* 8009C930-8009C964 097270 0034+00 1/1 0/0 0/0 .text __ct__6dMdl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMdl_c::dMdl_c() {
nofralloc
#include "asm/d/d_model/__ct__6dMdl_cFv.s"
}
#pragma pop
|