Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MorsGames
GitHub Repository: MorsGames/sm64plus
Path: blob/master/levels/ssl/spindel/model.inc.c
7853 views
1
// 0x070222A0 - 0x070222B8
2
static const Lights1 ssl_seg7_lights_070222A0 = gdSPDefLights1(
3
0x7f, 0x7f, 0x7f,
4
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
5
);
6
7
// 0x070222B8 - 0x070223B8
8
static const Vtx ssl_seg7_vertex_070222B8[] = {
9
{{{ -306, 0, 0}, 0, { 486, 912}, {0x81, 0x00, 0x00, 0xff}}},
10
{{{ -306, 78, -188}, 0, { 172, 0}, {0xb7, 0x1a, 0x9d, 0xff}}},
11
{{{ -306, -77, -188}, 0, { 798, 0}, {0xb7, 0xcc, 0xa7, 0xff}}},
12
{{{ -306, -77, -188}, 0, { 172, 0}, {0xb7, 0xcc, 0xa7, 0xff}}},
13
{{{ -306, -188, -77}, 0, { 798, 0}, {0xb7, 0x9d, 0xe6, 0xff}}},
14
{{{ -306, 78, 189}, 0, { 172, 0}, {0xb7, 0x34, 0x59, 0xff}}},
15
{{{ -306, 189, 78}, 0, { 798, 0}, {0xb7, 0x63, 0x1a, 0xff}}},
16
{{{ -306, 189, 78}, 0, { 172, 0}, {0xb7, 0x63, 0x1a, 0xff}}},
17
{{{ -306, 189, -77}, 0, { 798, 0}, {0xb7, 0x59, 0xcc, 0xff}}},
18
{{{ -306, 189, -77}, 0, { 172, 0}, {0xb7, 0x59, 0xcc, 0xff}}},
19
{{{ -306, 78, -188}, 0, { 798, 0}, {0xb7, 0x1a, 0x9d, 0xff}}},
20
{{{ 307, 78, 189}, 0, { 798, 0}, {0x49, 0x1a, 0x63, 0xff}}},
21
{{{ 307, -77, 189}, 0, { 172, 0}, {0x49, 0xcc, 0x59, 0xff}}},
22
{{{ 307, 0, 0}, 0, { 486, 912}, {0x7f, 0x00, 0x00, 0xff}}},
23
{{{ -306, -188, -77}, 0, { 172, 0}, {0xb7, 0x9d, 0xe6, 0xff}}},
24
{{{ -306, -188, 78}, 0, { 798, 0}, {0xb7, 0xa7, 0x34, 0xff}}},
25
};
26
27
// 0x070223B8 - 0x070224B8
28
static const Vtx ssl_seg7_vertex_070223B8[] = {
29
{{{ -306, 0, 0}, 0, { 486, 912}, {0x81, 0x00, 0x00, 0xff}}},
30
{{{ -306, -188, 78}, 0, { 172, 0}, {0xb7, 0xa7, 0x34, 0xff}}},
31
{{{ -306, -77, 189}, 0, { 798, 0}, {0xb7, 0xe6, 0x63, 0xff}}},
32
{{{ -306, -77, 189}, 0, { 172, 0}, {0xb7, 0xe6, 0x63, 0xff}}},
33
{{{ -306, 78, 189}, 0, { 798, 0}, {0xb7, 0x34, 0x59, 0xff}}},
34
{{{ 307, 189, 78}, 0, { 798, 0}, {0x49, 0x59, 0x34, 0xff}}},
35
{{{ 307, 78, 189}, 0, { 172, 0}, {0x49, 0x1a, 0x63, 0xff}}},
36
{{{ 307, 0, 0}, 0, { 486, 912}, {0x7f, 0x00, 0x00, 0xff}}},
37
{{{ 307, 78, -188}, 0, { 798, 0}, {0x49, 0x34, 0xa7, 0xff}}},
38
{{{ 307, 189, -77}, 0, { 172, 0}, {0x49, 0x63, 0xe6, 0xff}}},
39
{{{ 307, -77, 189}, 0, { 798, 0}, {0x49, 0xcc, 0x59, 0xff}}},
40
{{{ 307, -188, 78}, 0, { 172, 0}, {0x49, 0x9d, 0x1a, 0xff}}},
41
{{{ 307, -188, 78}, 0, { 798, 0}, {0x49, 0x9d, 0x1a, 0xff}}},
42
{{{ 307, -188, -77}, 0, { 172, 0}, {0x49, 0xa7, 0xcc, 0xff}}},
43
{{{ 307, -188, -77}, 0, { 798, 0}, {0x49, 0xa7, 0xcc, 0xff}}},
44
{{{ 307, -77, -188}, 0, { 172, 0}, {0x49, 0xe6, 0x9d, 0xff}}},
45
};
46
47
// 0x070224B8 - 0x07022508
48
static const Vtx ssl_seg7_vertex_070224B8[] = {
49
{{{ 307, -77, -188}, 0, { 798, 0}, {0x49, 0xe6, 0x9d, 0xff}}},
50
{{{ 307, 78, -188}, 0, { 172, 0}, {0x49, 0x34, 0xa7, 0xff}}},
51
{{{ 307, 0, 0}, 0, { 486, 912}, {0x7f, 0x00, 0x00, 0xff}}},
52
{{{ 307, 189, -77}, 0, { 798, 0}, {0x49, 0x63, 0xe6, 0xff}}},
53
{{{ 307, 189, 78}, 0, { 172, 0}, {0x49, 0x59, 0x34, 0xff}}},
54
};
55
56
// 0x07022508 - 0x070225F8
57
static const Vtx ssl_seg7_vertex_07022508[] = {
58
{{{ -306, -77, -188}, 0, { 990, 2012}, {0xb7, 0xcc, 0xa7, 0xff}}},
59
{{{ 307, -77, -188}, 0, { 990, -4120}, {0x49, 0xe6, 0x9d, 0xff}}},
60
{{{ 307, -188, -77}, 0, { 0, -4120}, {0x49, 0xa7, 0xcc, 0xff}}},
61
{{{ -306, -77, 189}, 0, { 990, 2012}, {0xb7, 0xe6, 0x63, 0xff}}},
62
{{{ 307, -77, 189}, 0, { 990, -4120}, {0x49, 0xcc, 0x59, 0xff}}},
63
{{{ 307, 78, 189}, 0, { 0, -4120}, {0x49, 0x1a, 0x63, 0xff}}},
64
{{{ -306, 78, 189}, 0, { 0, 2012}, {0xb7, 0x34, 0x59, 0xff}}},
65
{{{ -306, -188, 78}, 0, { 990, 2012}, {0xb7, 0xa7, 0x34, 0xff}}},
66
{{{ 307, -77, 189}, 0, { 0, -4120}, {0x49, 0xcc, 0x59, 0xff}}},
67
{{{ -306, -77, 189}, 0, { 0, 2012}, {0xb7, 0xe6, 0x63, 0xff}}},
68
{{{ 307, -188, 78}, 0, { 990, -4120}, {0x49, 0x9d, 0x1a, 0xff}}},
69
{{{ -306, -188, -77}, 0, { 990, 2012}, {0xb7, 0x9d, 0xe6, 0xff}}},
70
{{{ 307, -188, 78}, 0, { 0, -4120}, {0x49, 0x9d, 0x1a, 0xff}}},
71
{{{ -306, -188, 78}, 0, { 0, 2012}, {0xb7, 0xa7, 0x34, 0xff}}},
72
{{{ 307, -188, -77}, 0, { 990, -4120}, {0x49, 0xa7, 0xcc, 0xff}}},
73
};
74
75
// 0x070225F8 - 0x070226E8
76
static const Vtx ssl_seg7_vertex_070225F8[] = {
77
{{{ -306, 189, 78}, 0, { 990, 2012}, {0xb7, 0x63, 0x1a, 0xff}}},
78
{{{ 307, 189, 78}, 0, { 990, -4120}, {0x49, 0x59, 0x34, 0xff}}},
79
{{{ 307, 189, -77}, 0, { 0, -4120}, {0x49, 0x63, 0xe6, 0xff}}},
80
{{{ -306, -77, -188}, 0, { 990, 2012}, {0xb7, 0xcc, 0xa7, 0xff}}},
81
{{{ 307, -188, -77}, 0, { 0, -4120}, {0x49, 0xa7, 0xcc, 0xff}}},
82
{{{ -306, -188, -77}, 0, { 0, 2012}, {0xb7, 0x9d, 0xe6, 0xff}}},
83
{{{ -306, 78, -188}, 0, { 990, 2012}, {0xb7, 0x1a, 0x9d, 0xff}}},
84
{{{ 307, -77, -188}, 0, { 0, -4120}, {0x49, 0xe6, 0x9d, 0xff}}},
85
{{{ -306, -77, -188}, 0, { 0, 2012}, {0xb7, 0xcc, 0xa7, 0xff}}},
86
{{{ 307, 78, -188}, 0, { 990, -4120}, {0x49, 0x34, 0xa7, 0xff}}},
87
{{{ -306, 189, -77}, 0, { 990, 2012}, {0xb7, 0x59, 0xcc, 0xff}}},
88
{{{ 307, 78, -188}, 0, { 0, -4120}, {0x49, 0x34, 0xa7, 0xff}}},
89
{{{ -306, 78, -188}, 0, { 0, 2012}, {0xb7, 0x1a, 0x9d, 0xff}}},
90
{{{ 307, 189, -77}, 0, { 990, -4120}, {0x49, 0x63, 0xe6, 0xff}}},
91
{{{ -306, 189, -77}, 0, { 0, 2012}, {0xb7, 0x59, 0xcc, 0xff}}},
92
};
93
94
// 0x070226E8 - 0x07022728
95
static const Vtx ssl_seg7_vertex_070226E8[] = {
96
{{{ -306, 78, 189}, 0, { 990, 2012}, {0xb7, 0x34, 0x59, 0xff}}},
97
{{{ 307, 78, 189}, 0, { 990, -4120}, {0x49, 0x1a, 0x63, 0xff}}},
98
{{{ 307, 189, 78}, 0, { 0, -4120}, {0x49, 0x59, 0x34, 0xff}}},
99
{{{ -306, 189, 78}, 0, { 0, 2012}, {0xb7, 0x63, 0x1a, 0xff}}},
100
};
101
102
// 0x07022728 - 0x070227F0
103
static const Gfx ssl_seg7_dl_07022728[] = {
104
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09002000),
105
gsDPLoadSync(),
106
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
107
gsSPLight(&ssl_seg7_lights_070222A0.l, 1),
108
gsSPLight(&ssl_seg7_lights_070222A0.a, 2),
109
gsSPVertex(ssl_seg7_vertex_070222B8, 16, 0),
110
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0),
111
gsSP2Triangles( 0, 5, 6, 0x0, 0, 7, 8, 0x0),
112
gsSP2Triangles( 0, 9, 10, 0x0, 11, 12, 13, 0x0),
113
gsSP1Triangle( 0, 14, 15, 0x0),
114
gsSPVertex(ssl_seg7_vertex_070223B8, 16, 0),
115
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0),
116
gsSP2Triangles( 5, 6, 7, 0x0, 8, 9, 7, 0x0),
117
gsSP2Triangles(10, 11, 7, 0x0, 12, 13, 7, 0x0),
118
gsSP1Triangle(14, 15, 7, 0x0),
119
gsSPVertex(ssl_seg7_vertex_070224B8, 5, 0),
120
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0),
121
gsSPEndDisplayList(),
122
};
123
124
// 0x070227F0 - 0x070228A8
125
static const Gfx ssl_seg7_dl_070227F0[] = {
126
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ssl_seg7_texture_07002800),
127
gsDPLoadSync(),
128
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
129
gsSPVertex(ssl_seg7_vertex_07022508, 15, 0),
130
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
131
gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0),
132
gsSP2Triangles( 7, 10, 8, 0x0, 11, 12, 13, 0x0),
133
gsSP1Triangle(11, 14, 12, 0x0),
134
gsSPVertex(ssl_seg7_vertex_070225F8, 15, 0),
135
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
136
gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0),
137
gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0),
138
gsSP1Triangle( 0, 2, 14, 0x0),
139
gsSPVertex(ssl_seg7_vertex_070226E8, 4, 0),
140
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
141
gsSPEndDisplayList(),
142
};
143
144
// 0x070228A8 - 0x07022970
145
const Gfx ssl_seg7_dl_070228A8[] = {
146
gsDPPipeSync(),
147
gsDPSetCycleType(G_CYC_2CYCLE),
148
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2),
149
gsDPSetDepthSource(G_ZS_PIXEL),
150
gsDPSetFogColor(0, 0, 0, 255),
151
gsSPFogFactor(0x0E49, 0xF2B7), // This isn't gsSPFogPosition since there is no valid min/max pair that corresponds to 0x0E49F2B7
152
gsSPSetGeometryMode(G_FOG),
153
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_PASS2),
154
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
155
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
156
gsDPTileSync(),
157
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
158
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
159
gsSPDisplayList(ssl_seg7_dl_07022728),
160
gsDPTileSync(),
161
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
162
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
163
gsSPDisplayList(ssl_seg7_dl_070227F0),
164
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
165
gsDPPipeSync(),
166
gsDPSetCycleType(G_CYC_1CYCLE),
167
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_NOOP2),
168
gsSPClearGeometryMode(G_FOG),
169
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
170
gsSPEndDisplayList(),
171
};
172
173
// 0x07022970 - 0x070229B0
174
static const Vtx ssl_seg7_vertex_07022970[] = {
175
{{{ -183, 82, 193}, 0, { 0, 990}, {0xff, 0xff, 0xff, 0xff}}},
176
{{{ 184, 82, 193}, 0, { 990, 990}, {0xff, 0xff, 0xff, 0xff}}},
177
{{{ 184, 193, 82}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
178
{{{ -183, 193, 82}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
179
};
180
181
// 0x070229B0 - 0x070229E8
182
static const Gfx ssl_seg7_dl_070229B0[] = {
183
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ssl_seg7_texture_07003800),
184
gsDPLoadSync(),
185
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
186
gsSPVertex(ssl_seg7_vertex_07022970, 4, 0),
187
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
188
gsSPEndDisplayList(),
189
};
190
191
// 0x070229E8 - 0x07022AA0
192
const Gfx ssl_seg7_dl_070229E8[] = {
193
gsDPPipeSync(),
194
gsDPSetCycleType(G_CYC_2CYCLE),
195
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2),
196
gsDPSetDepthSource(G_ZS_PIXEL),
197
gsDPSetFogColor(0, 0, 0, 255),
198
gsSPFogFactor(0x0E49, 0xF2B7), // This isn't gsSPFogPosition since there is no valid min/max pair that corresponds to 0x0E49F2B7
199
gsSPSetGeometryMode(G_FOG),
200
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2),
201
gsSPClearGeometryMode(G_LIGHTING),
202
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
203
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
204
gsDPTileSync(),
205
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
206
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
207
gsSPDisplayList(ssl_seg7_dl_070229B0),
208
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
209
gsDPPipeSync(),
210
gsDPSetCycleType(G_CYC_1CYCLE),
211
gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_NOOP2),
212
gsSPClearGeometryMode(G_FOG),
213
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
214
gsSPSetGeometryMode(G_LIGHTING),
215
gsSPEndDisplayList(),
216
};
217
218