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
|
//
// Generated By: dol2asm
// Translation Unit: m_Do/m_Do_lib
//
#include "m_Do/m_Do_lib.h"
#include "JSystem/JMath/JMATrigonometric.h"
#include "JSystem/JUtility/JUTTexture.h"
#include "SSystem/SComponent/c_math.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward References:
//
extern "C" void mDoLib_setResTimgObj__FPC7ResTIMGP9_GXTexObjUlP10_GXTlutObj();
extern "C" void setup__14mDoLib_clipperFffff();
extern "C" void mDoLib_project__FP3VecP3Vec();
extern "C" void mDoLib_pos2camera__FP3VecP3Vec();
extern "C" void __sinit_m_Do_lib_cpp();
extern "C" void __dt__11J3DUClipperFv();
extern "C" u8 mClipper__14mDoLib_clipper[92];
extern "C" f32 mSystemFar__14mDoLib_clipper;
extern "C" f32 mFovyRate__14mDoLib_clipper;
//
// External References:
//
extern "C" void init__11J3DUClipperFv();
extern "C" void calcViewFrustum__11J3DUClipperFv();
extern "C" void __dl__FPv();
extern "C" void __register_global_object();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 sincosTable___5JMath[65536];
//
// Declarations:
//
/* ############################################################################################## */
/* 80451B70-80451B74 000170 0004+00 1/1 0/0 0/0 .sdata2 @3634 */
SECTION_SDATA2 static f32 lit_3634 = 0.125f;
/* 80451B74-80451B78 000174 0004+00 1/1 0/0 0/0 .sdata2 @3635 */
SECTION_SDATA2 static f32 lit_3635 = 1.0f / 100.0f;
/* 80451B78-80451B80 000178 0008+00 1/1 0/0 0/0 .sdata2 @3638 */
SECTION_SDATA2 static f64 lit_3638 = 4503601774854144.0 /* cast s32 to float */;
/* 8001513C-8001528C 00FA7C 0150+00 0/0 3/3 2/2 .text
* mDoLib_setResTimgObj__FPC7ResTIMGP9_GXTexObjUlP10_GXTlutObj */
#ifdef NONMATCHING
bool mDoLib_setResTimgObj(ResTIMG const* res, _GXTexObj* o_texObj, u32 param_2,
_GXTlutObj* o_tlutObj) {
if (res->palettesEnabled) {
GXInitTlutObj(o_tlutObj, (void*)(res + res->paletteOffset), (GXTlutFmt)res->paletteFormat,
res->paletteCount);
GXInitTexObjCI(o_texObj, (void*)(res + res->texDataOffset), res->width, res->height,
(GXCITexFmt)res->format, (GXTexWrapMode)res->wrapS,
(GXTexWrapMode)res->wrapT, 1 - res->mipmapCount, param_2);
} else {
GXInitTexObj(o_texObj, (void*)(res + res->texDataOffset), res->width, res->height,
(GXTexFmt)res->format, (GXTexWrapMode)res->wrapS, (GXTexWrapMode)res->wrapT,
(s32)1 - res->mipmapCount);
}
GXInitTexObjLOD(o_texObj, (GXTexFilter)res->minFilter, (GXTexFilter)res->magFilter,
(f32)res->minLOD * 0.125f, (f32)res->maxLOD * 0.125f, (f32)res->LODBias * 0.01f,
(s32)res->biasClamp, (s32)res->doEdgeLOD, (GXAnisotropy)res->maxAnisotropy);
return res->palettesEnabled;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool mDoLib_setResTimgObj(ResTIMG const* param_0, _GXTexObj* param_1, u32 param_2,
_GXTlutObj* param_3) {
nofralloc
#include "asm/m_Do/m_Do_lib/mDoLib_setResTimgObj__FPC7ResTIMGP9_GXTexObjUlP10_GXTlutObj.s"
}
#pragma pop
#endif
/* 803DD8E4-803DD940 00A604 005C+00 2/2 5/5 5/5 .bss mClipper__14mDoLib_clipper */
J3DUClipper mDoLib_clipper::mClipper;
/* 80450C70-80450C74 000170 0004+00 1/1 2/2 4/4 .sbss mSystemFar__14mDoLib_clipper */
f32 mDoLib_clipper::mSystemFar;
/* 80450C74-80450C78 000174 0004+00 1/1 1/1 0/0 .sbss mFovyRate__14mDoLib_clipper */
f32 mDoLib_clipper::mFovyRate;
/* 80451B80-80451B84 000180 0004+00 1/1 0/0 0/0 .sdata2 @3739 */
SECTION_SDATA2 static f32 lit_3739 = 182.04444885253906f;
/* 8001528C-80015310 00FBCC 0084+00 0/0 1/1 0/0 .text setup__14mDoLib_clipperFffff */
void mDoLib_clipper::setup(f32 fovy, f32 aspect, f32 near, f32 far) {
mClipper.setFovy(fovy);
mClipper.setAspect(aspect);
mClipper.setNear(near);
mClipper.setFar(far);
mSystemFar = far;
mClipper.calcViewFrustum();
s16 tmp = fovy * 182.04444885253906f;
mFovyRate = cM_scos(tmp) / cM_ssin(tmp);
}
/* ############################################################################################## */
/* 80451B84-80451B88 000184 0004+00 2/2 0/0 0/0 .sdata2 @3784 */
SECTION_SDATA2 static u8 lit_3784[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80451B88-80451B8C 000188 0004+00 1/1 0/0 0/0 .sdata2 @3785 */
SECTION_SDATA2 static f32 lit_3785 = 500000.0f;
/* 80451B8C-80451B90 00018C 0004+00 1/1 0/0 0/0 .sdata2 @3786 */
SECTION_SDATA2 static f32 lit_3786 = 0.5f;
/* 80451B90-80451B94 000190 0004+00 1/1 0/0 0/0 .sdata2 @3787 */
SECTION_SDATA2 static f32 lit_3787 = 2.0f;
/* 80451B94-80451B98 000194 0004+00 1/1 0/0 0/0 .sdata2 @3788 */
SECTION_SDATA2 static f32 lit_3788 = 304.0f;
/* 80451B98-80451B9C 000198 0004+00 1/1 0/0 0/0 .sdata2 @3789 */
SECTION_SDATA2 static f32 lit_3789 = 608.0f;
/* 80451B9C-80451BA0 00019C 0004+00 1/1 0/0 0/0 .sdata2 @3790 */
SECTION_SDATA2 static f32 lit_3790 = 224.0f;
/* 80451BA0-80451BA8 0001A0 0004+04 1/1 0/0 0/0 .sdata2 @3791 */
SECTION_SDATA2 static f32 lit_3791[1 + 1 /* padding */] = {
448.0f,
/* padding */
0.0f,
};
/* 80015310-800154EC 00FC50 01DC+00 0/0 21/21 23/23 .text mDoLib_project__FP3VecP3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoLib_project(Vec* param_0, Vec* param_1) {
nofralloc
#include "asm/m_Do/m_Do_lib/mDoLib_project__FP3VecP3Vec.s"
}
#pragma pop
/* 800154EC-80015544 00FE2C 0058+00 0/0 2/2 9/9 .text mDoLib_pos2camera__FP3VecP3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoLib_pos2camera(Vec* param_0, Vec* param_1) {
nofralloc
#include "asm/m_Do/m_Do_lib/mDoLib_pos2camera__FP3VecP3Vec.s"
}
#pragma pop
|