Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MorsGames
GitHub Repository: MorsGames/sm64plus
Path: blob/master/lib/rsp.s
7854 views
1
#include "macros.inc"
2
.set UCODE_SIZE, 0x800
3
4
.section .text
5
6
.balign 16
7
glabel rspF3DBootStart
8
.incbin "rsp/rspboot.bin"
9
.balign 16
10
glabel rspF3DBootEnd
11
12
.balign 16
13
#ifndef F3DEX_GBI_SHARED
14
glabel rspF3DStart /* Use regular Fast3D bins (default) */
15
.incbin "rsp/fast3d.bin"
16
glabel rspF3DEnd
17
18
#else /* Use one of the Fast3DEX series grucodes. */
19
glabel rspF3DStart
20
#ifdef F3DZEX_GBI_2
21
.incbin "lib/PR/f3dex2/F3DZEX_NoN.bin"
22
#elif defined(F3DEX_GBI)
23
.incbin "lib/PR/f3dex/F3DEX.bin"
24
#elif defined(F3DEX_GBI_2)
25
.incbin "lib/PR/f3dex2/F3DEX2.bin"
26
#endif
27
glabel rspF3DEnd
28
#endif
29
30
/* Audio Bins */
31
32
.balign 16
33
glabel rspAspMainStart
34
.incbin "rsp/audio.bin"
35
glabel rspAspMainEnd
36
37
/*
38
* LESS COMMON MICROCODES
39
* These are setup to be loaded by G_LOAD_UCODE
40
*/
41
42
/* Fast3DEX NoN Text */
43
#ifdef F3DEX_NON_GBI
44
glabel rspF3DEXNoNStart
45
.balign 16
46
.incbin "lib/PR/f3dex/F3DEX_NoN.bin"
47
glabel rspF3DEXNoNEnd
48
#endif
49
50
/* Fast3DLX Text */
51
#ifdef F3DLX_GBI
52
glabel rspF3DLXStart
53
.incbin "lib/PR/f3dex/F3DLX.bin"
54
glabel rspF3DLXEnd
55
#endif
56
57
/* Fast3DLX NoN Text */
58
#ifdef F3DLX_NON_GBI
59
glabel rspF3DLXNoNStart
60
.balign 16
61
.incbin "lib/PR/f3dex/F3DLX_NoN.bin"
62
glabel rspF3DLXNoNEnd
63
#endif
64
65
/* Fast3DLX Rej Text */
66
#ifdef F3DLX_REJ_GBI
67
glabel rspF3DLXRejStart
68
.balign 16
69
.incbin "lib/PR/f3dex/F3DLX_Rej.bin"
70
glabel rspF3DLXRejEnd
71
#endif
72
73
/* Line3DEX Text */
74
#ifdef L3DEX_GBI
75
glabel rspL3DEXStart
76
.balign 16
77
.incbin "lib/PR/f3dex/L3DEX.bin"
78
glabel rspL3DEXEnd
79
#endif
80
81
/* S2DEX Text */
82
#ifdef S2DEX_GBI
83
glabel rspS2DEXStart
84
.balign 16
85
.incbin "lib/PR/s2dex/S2DEX.bin"
86
glabel rspS2DEXEnd
87
#endif
88
89
/* Fast3DEX2 series */
90
91
/* Fast3DEX2 NoN Text */
92
#ifdef F3DEX2_NON_GBI
93
.balign 16
94
glabel rspF3DEX2NoNStart
95
.incbin "lib/PR/f3dex2/F3DEX2_NoN.bin"
96
glabel rspF3DEX2NoNEnd
97
#endif
98
99
/* Fast3DEX2 Rej Text */
100
#ifdef F3DEX2_REJ_GBI
101
.balign 16
102
glabel rspF3DEX2RejStart
103
.incbin "lib/PR/f3dex2/F3DEX2_Rej.bin"
104
glabel rspF3DEX2RejEnd
105
#endif
106
107
/* Line3DEX2 Text */
108
#ifdef L3DEX2_GBI
109
.balign 16
110
glabel rspL3DEX2Start
111
.incbin "lib/PR/f3dex2/L3DEX2.bin"
112
glabel rspL3DEX2End
113
#endif
114
115
/* S2DEX2 Text */
116
#ifdef S2DEX_GBI_2
117
.balign 16
118
glabel rspS2DEXStart
119
.incbin "lib/PR/s2dex/S2DEX2.bin"
120
glabel rspS2DEXEnd
121
#endif
122
123
/* DATA SECTION START */
124
125
.section .rodata
126
127
.balign 16
128
#ifndef F3DEX_GBI_SHARED /* Use regular Fast3D data (default) */
129
glabel rspF3DDataStart
130
.incbin "rsp/fast3d_data.bin"
131
glabel rspF3DDataEnd
132
133
#else /* Using one of the Fast3DEX series grucodes */
134
glabel rspF3DDataStart
135
#ifdef F3DZEX_GBI_2
136
.incbin "lib/PR/f3dex2/F3DZEX_NoN_data.bin"
137
#elseif F3DEX_GBI
138
.incbin "lib/PR/f3dex/F3DEX_data.bin"
139
#elseif F3DEX_GBI_2
140
.incbin "lib/PR/f3dex2/F3DEX2_data.bin"
141
#endif
142
glabel rspF3DDataEnd
143
#endif
144
145
/* Audio Data */
146
147
.balign 16
148
glabel rspAspMainDataStart
149
.incbin "rsp/audio_data.bin"
150
glabel rspAspMainDataEnd
151
152
/* LESS COMMON MICROCODES */
153
154
/* Fast3DEX Series */
155
156
/* Fast3DEX NoN Data */
157
#ifdef F3DEX_NON_GBI
158
.balign 16
159
glabel rspF3DEXNoNDataStart
160
.incbin "lib/PR/f3dex/F3DEX_NoN_data.bin"
161
glabel rspF3DEXNoNDataEnd
162
#endif
163
164
/* Fast3DLX Data */
165
#ifdef F3DLX_GBI
166
.balign 16
167
glabel rspF3DLXDataStart
168
.incbin "lib/PR/f3dex/F3DLX_data.bin"
169
glabel rspF3DLXDataEnd
170
#endif
171
172
/* Fast3DLX NoN Data */
173
#ifdef F3DLX_NON_GBI
174
.balign 16
175
glabel rspF3DLXNoNDataStart
176
.incbin "lib/PR/f3dex/F3DLX_NoN_data.bin"
177
glabel rspF3DLXNoNDataEnd
178
#endif
179
180
/* Fast3DLX Rej Data */
181
#ifdef F3DLX_REJ_GBI
182
.balign 16
183
glabel rspF3DLXRejDataStart
184
.incbin "lib/PR/f3dex/F3DLX_Rej_data.bin"
185
glabel rspF3DLXRejDataEnd
186
#endif
187
188
/* Line3DEX Data */
189
#ifdef L3DEX_GBI
190
.balign 16
191
glabel rspL3DEXDataStart
192
.incbin "lib/PR/f3dex/L3DEX_data.bin"
193
glabel rspL3DEXDataEnd
194
#endif
195
196
/* S2DEX Data */
197
#ifdef S2DEX_GBI
198
.balign 16
199
glabel rspS2DEXDataStart
200
.incbin "lib/PR/s2dex/S2DEX_data.bin"
201
glabel rspS2DEXDataEnd
202
#endif
203
204
/* Fast3DEX2 Series */
205
206
/* Fast3DEX2 NoN Data */
207
#ifdef F3DEX2_NON_GBI
208
.balign 16
209
glabel rspF3DEX2NoNStart
210
.incbin "lib/PR/f3dex2/F3DEX2_NoN_data.bin"
211
glabel rspF3DEX2NoNEnd
212
#endif
213
214
/* Fast3DEX2 Rej Data */
215
#ifdef F3DEX2_REJ_GBI
216
.balign 16
217
glabel rspF3DEX2RejStart
218
.incbin "lib/PR/f3dex2/F3DEX2_Rej_data.bin"
219
glabel rspF3DEX2RejEnd
220
#endif
221
222
/* Line3DEX2 Data */
223
#ifdef L3DEX2_GBI
224
.balign 16
225
glabel rspL3DEX2Start
226
.incbin "lib/PR/f3dex2/L3DEX2_data.bin"
227
glabel rspL3DEX2End
228
#endif
229
230
/* S2DEX2 Data */
231
#ifdef S2DEX_GBI_2
232
.balign 16
233
glabel rspS2DEXStart
234
.incbin "lib/PR/s2dex/S2DEX2_data.bin"
235
glabel rspS2DEXEnd
236
#endif
237
238