2 * Glide64 - Glide video plugin for Nintendo 64 emulators.
3 * Copyright (c) 2002 Dave2001
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 //****************************************************************
22 // Glide64 - Glide Plugin for Nintendo 64 emulators (tested mostly with Project64)
23 // Project started on December 29th, 2001
26 // * Write your name and (optional)email, commented by your work, so I know who did it, and so that you can find which parts you modified when it comes time to send it to me.
27 // * Do NOT send me the whole project or file that you modified. Take out your modified code sections, and tell me where to put them. If people sent the whole thing, I would have many different versions, but no idea how to combine them all.
29 // Official Glide64 development channel: #Glide64 on EFnet
31 // Original author: Dave2001 (Dave2999@hotmail.com)
32 // Other authors: Gonetz, Gugaman
34 //****************************************************************
36 typedef void (*rdp_instr
)();
38 // RDP graphic instructions pointer table
40 static rdp_instr gfx_instruction
[9][256] =
43 // uCode 0 - RSP SW 2.0X
45 // games: Super Mario 64, Tetrisphere, Demos
46 spnoop
, uc0_matrix
, rsp_reserved0
, uc0_movemem
,
47 uc0_vertex
, rsp_reserved1
, uc0_displaylist
, rsp_reserved2
,
48 rsp_reserved3
, uc6_sprite2d
, undef
, undef
,
49 undef
, undef
, undef
, undef
,
50 undef
, undef
, undef
, undef
,
51 undef
, undef
, undef
, undef
,
52 undef
, undef
, undef
, undef
,
53 undef
, undef
, undef
, undef
,
54 undef
, undef
, undef
, undef
,
55 undef
, undef
, undef
, undef
,
56 undef
, undef
, undef
, undef
,
57 undef
, undef
, undef
, undef
,
58 undef
, undef
, undef
, undef
,
59 undef
, undef
, undef
, undef
,
60 undef
, undef
, undef
, undef
,
61 undef
, undef
, undef
, undef
,
63 undef
, undef
, undef
, undef
,
64 undef
, undef
, undef
, undef
,
65 undef
, undef
, undef
, undef
,
66 undef
, undef
, undef
, undef
,
67 undef
, undef
, undef
, undef
,
68 undef
, undef
, undef
, undef
,
69 undef
, undef
, undef
, undef
,
70 undef
, undef
, undef
, undef
,
71 undef
, undef
, undef
, undef
,
72 undef
, undef
, undef
, undef
,
73 undef
, undef
, undef
, undef
,
74 undef
, undef
, undef
, undef
,
75 undef
, undef
, undef
, undef
,
76 undef
, undef
, undef
, undef
,
77 undef
, undef
, undef
, undef
,
78 undef
, undef
, undef
, undef
,
79 // 80-bf: Immediate commands
80 undef
, undef
, undef
, undef
,
81 undef
, undef
, undef
, undef
,
82 undef
, undef
, undef
, undef
,
83 undef
, undef
, undef
, undef
,
84 undef
, undef
, undef
, undef
,
85 undef
, undef
, undef
, undef
,
86 undef
, undef
, undef
, undef
,
87 undef
, undef
, undef
, undef
,
88 undef
, undef
, undef
, undef
,
89 undef
, undef
, undef
, undef
,
90 undef
, undef
, undef
, undef
,
91 undef
, undef
, undef
, undef
,
92 undef
, uc0_tri4
, uc0_rdphalf_cont
, uc0_rdphalf_2
,
93 uc0_rdphalf_1
, uc0_quad3d
, uc0_cleargeometrymode
, uc0_setgeometrymode
,
94 uc0_enddl
, uc0_setothermode_l
, uc0_setothermode_h
, uc0_texture
,
95 uc0_moveword
, uc0_popmatrix
, uc0_culldl
, uc0_tri1
,
96 // c0-ff: RDP commands
97 rdp_noop
, undef
, undef
, undef
,
98 undef
, undef
, undef
, undef
,
99 rdp_trifill
, rdp_trifillz
, rdp_tritxtr
, rdp_tritxtrz
,
100 rdp_trishade
, rdp_trishadez
, rdp_trishadetxtr
, rdp_trishadetxtrz
,
101 undef
, undef
, undef
, undef
,
102 undef
, undef
, undef
, undef
,
103 undef
, undef
, undef
, undef
,
104 undef
, undef
, undef
, undef
,
105 undef
, undef
, undef
, undef
,
106 rdp_texrect
, rdp_texrect
, rdp_loadsync
, rdp_pipesync
,
107 rdp_tilesync
, rdp_fullsync
, rdp_setkeygb
, rdp_setkeyr
,
108 rdp_setconvert
, rdp_setscissor
, rdp_setprimdepth
, rdp_setothermode
,
109 rdp_loadtlut
, undef
, rdp_settilesize
, rdp_loadblock
,
110 rdp_loadtile
, rdp_settile
, rdp_fillrect
, rdp_setfillcolor
,
111 rdp_setfogcolor
, rdp_setblendcolor
, rdp_setprimcolor
, rdp_setenvcolor
,
112 rdp_setcombine
, rdp_settextureimage
, rdp_setdepthimage
, rdp_setcolorimage
115 // uCode 1 - F3DEX 1.XX
117 // games: Mario Kart, Star Fox
119 spnoop
, uc0_matrix
, rsp_reserved0
, uc0_movemem
,
120 uc1_vertex
, rsp_reserved1
, uc0_displaylist
, rsp_reserved2
,
121 rsp_reserved3
, uc6_sprite2d
, undef
, undef
,
122 undef
, undef
, undef
, undef
,
123 undef
, undef
, undef
, undef
,
124 undef
, undef
, undef
, undef
,
125 undef
, undef
, undef
, undef
,
126 undef
, undef
, undef
, undef
,
127 undef
, undef
, undef
, undef
,
128 undef
, undef
, undef
, undef
,
129 undef
, undef
, undef
, undef
,
130 undef
, undef
, undef
, undef
,
131 undef
, undef
, undef
, undef
,
132 undef
, undef
, undef
, undef
,
133 undef
, undef
, undef
, undef
,
134 undef
, undef
, undef
, undef
,
136 undef
, undef
, undef
, undef
,
137 undef
, undef
, undef
, undef
,
138 undef
, undef
, undef
, undef
,
139 undef
, undef
, undef
, undef
,
140 undef
, undef
, undef
, undef
,
141 undef
, undef
, undef
, undef
,
142 undef
, undef
, undef
, undef
,
143 undef
, undef
, undef
, undef
,
144 undef
, undef
, undef
, undef
,
145 undef
, undef
, undef
, undef
,
146 undef
, undef
, undef
, undef
,
147 undef
, undef
, undef
, undef
,
148 undef
, undef
, undef
, undef
,
149 undef
, undef
, undef
, undef
,
150 undef
, undef
, undef
, undef
,
151 undef
, undef
, undef
, undef
,
152 // 80-bf: Immediate commands
153 undef
, undef
, undef
, undef
,
154 undef
, undef
, undef
, undef
,
155 undef
, undef
, undef
, undef
,
156 undef
, undef
, undef
, undef
,
157 undef
, undef
, undef
, undef
,
158 undef
, undef
, undef
, undef
,
159 undef
, undef
, undef
, undef
,
160 undef
, undef
, undef
, undef
,
161 undef
, undef
, undef
, undef
,
162 undef
, undef
, undef
, undef
,
163 undef
, undef
, undef
, undef
,
164 undef
, undef
, undef
, uc6_loaducode
,
165 uc1_branch_z
, uc1_tri2
, uc2_modifyvtx
, uc0_rdphalf_2
,
166 uc1_rdphalf_1
, uc1_line3d
, uc0_cleargeometrymode
, uc0_setgeometrymode
,
167 uc0_enddl
, uc0_setothermode_l
, uc0_setothermode_h
, uc0_texture
,
168 uc0_moveword
, uc0_popmatrix
, uc2_culldl
, uc1_tri1
,
169 // c0-ff: RDP commands
170 rdp_noop
, undef
, undef
, undef
,
171 undef
, undef
, undef
, undef
,
172 rdp_trifill
, rdp_trifillz
, rdp_tritxtr
, rdp_tritxtrz
,
173 rdp_trishade
, rdp_trishadez
, rdp_trishadetxtr
, rdp_trishadetxtrz
,
174 undef
, undef
, undef
, undef
,
175 undef
, undef
, undef
, undef
,
176 undef
, undef
, undef
, undef
,
177 undef
, undef
, undef
, undef
,
178 undef
, undef
, undef
, undef
,
179 rdp_texrect
, rdp_texrect
, rdp_loadsync
, rdp_pipesync
,
180 rdp_tilesync
, rdp_fullsync
, rdp_setkeygb
, rdp_setkeyr
,
181 rdp_setconvert
, rdp_setscissor
, rdp_setprimdepth
, rdp_setothermode
,
182 rdp_loadtlut
, undef
, rdp_settilesize
, rdp_loadblock
,
183 rdp_loadtile
, rdp_settile
, rdp_fillrect
, rdp_setfillcolor
,
184 rdp_setfogcolor
, rdp_setblendcolor
, rdp_setprimcolor
, rdp_setenvcolor
,
185 rdp_setcombine
, rdp_settextureimage
, rdp_setdepthimage
, rdp_setcolorimage
188 // uCode 2 - F3DEX 2.XX
192 spnoop
, uc2_vertex
, uc2_modifyvtx
, uc2_culldl
,
193 uc1_branch_z
, uc2_tri1
, uc2_quad
, uc2_quad
,
194 uc2_line3d
, uc6_bg_1cyc
, uc6_bg_copy
, uc6_obj_rendermode
/*undef*/,
195 undef
, undef
, undef
, undef
,
196 uc0_tri4
, uc0_tri4
, uc0_tri4
, uc0_tri4
,
197 uc0_tri4
, uc0_tri4
, uc0_tri4
, uc0_tri4
,
198 uc0_tri4
, uc0_tri4
, uc0_tri4
, uc0_tri4
,
199 uc0_tri4
, uc0_tri4
, uc0_tri4
, uc0_tri4
,
200 undef
, undef
, undef
, undef
,
201 undef
, undef
, undef
, undef
,
202 undef
, undef
, undef
, undef
,
203 undef
, undef
, undef
, undef
,
204 undef
, undef
, undef
, undef
,
205 undef
, undef
, undef
, undef
,
206 undef
, undef
, undef
, undef
,
207 undef
, undef
, undef
, undef
,
210 undef
, undef
, undef
, undef
,
211 undef
, undef
, undef
, undef
,
212 undef
, undef
, undef
, undef
,
213 undef
, undef
, undef
, undef
,
214 undef
, undef
, undef
, undef
,
215 undef
, undef
, undef
, undef
,
216 undef
, undef
, undef
, undef
,
217 undef
, undef
, undef
, undef
,
218 undef
, undef
, undef
, undef
,
219 undef
, undef
, undef
, undef
,
220 undef
, undef
, undef
, undef
,
221 undef
, undef
, undef
, undef
,
222 undef
, undef
, undef
, undef
,
223 undef
, undef
, undef
, undef
,
224 undef
, undef
, undef
, undef
,
225 undef
, undef
, undef
, undef
,
228 undef
, undef
, undef
, undef
,
229 undef
, undef
, undef
, undef
,
230 undef
, undef
, undef
, undef
,
231 undef
, undef
, undef
, undef
,
232 undef
, undef
, undef
, undef
,
233 undef
, undef
, undef
, undef
,
234 undef
, undef
, undef
, undef
,
235 undef
, undef
, undef
, undef
,
236 undef
, undef
, undef
, undef
,
237 undef
, undef
, undef
, undef
,
238 undef
, undef
, undef
, undef
,
239 undef
, undef
, undef
, undef
,
240 undef
, undef
, undef
, undef
,
241 undef
, undef
, undef
, undef
,
242 undef
, undef
, undef
, undef
,
243 undef
, undef
, undef
, undef
,
245 // c0-ff: RDP commands mixed with uc2 commands
246 rdp_noop
, undef
, undef
, undef
,
247 undef
, undef
, undef
, undef
,
248 rdp_trifill
, rdp_trifillz
, rdp_tritxtr
, rdp_tritxtrz
,
249 rdp_trishade
, rdp_trishadez
, rdp_trishadetxtr
, rdp_trishadetxtrz
,
250 undef
, undef
, undef
, uc2_special3
,
251 uc2_special2
, uc2_dlist_cnt
, uc2_dma_io
, uc0_texture
,
252 uc2_pop_matrix
, uc2_geom_mode
, uc2_matrix
, uc2_moveword
,
253 uc2_movemem
, uc2_load_ucode
, uc0_displaylist
, uc0_enddl
,
254 spnoop
, uc1_rdphalf_1
, uc0_setothermode_l
,uc0_setothermode_h
,
255 rdp_texrect
, rdp_texrect
, rdp_loadsync
, rdp_pipesync
,
256 rdp_tilesync
, rdp_fullsync
, rdp_setkeygb
, rdp_setkeyr
,
257 rdp_setconvert
, rdp_setscissor
, rdp_setprimdepth
, rdp_setothermode
,
258 rdp_loadtlut
, uc2_rdphalf_2
, rdp_settilesize
, rdp_loadblock
,
259 rdp_loadtile
, rdp_settile
, rdp_fillrect
, rdp_setfillcolor
,
260 rdp_setfogcolor
, rdp_setblendcolor
, rdp_setprimcolor
, rdp_setenvcolor
,
261 rdp_setcombine
, rdp_settextureimage
, rdp_setdepthimage
, rdp_setcolorimage
264 // uCode 3 - "RSP SW 2.0D", but not really
267 // ** Added by Gonetz **
269 spnoop
, uc0_matrix
, rsp_reserved0
, uc0_movemem
,
270 uc3_vertex
, rsp_reserved1
, uc0_displaylist
, rsp_reserved2
,
271 rsp_reserved3
, uc6_sprite2d
, undef
, undef
,
272 undef
, undef
, undef
, undef
,
273 undef
, undef
, undef
, undef
,
274 undef
, undef
, undef
, undef
,
275 undef
, undef
, undef
, undef
,
276 undef
, undef
, undef
, undef
,
277 undef
, undef
, undef
, undef
,
278 undef
, undef
, undef
, undef
,
279 undef
, undef
, undef
, undef
,
280 undef
, undef
, undef
, undef
,
281 undef
, undef
, undef
, undef
,
282 undef
, undef
, undef
, undef
,
283 undef
, undef
, undef
, undef
,
284 undef
, undef
, undef
, undef
,
286 undef
, undef
, undef
, undef
,
287 undef
, undef
, undef
, undef
,
288 undef
, undef
, undef
, undef
,
289 undef
, undef
, undef
, undef
,
290 undef
, undef
, undef
, undef
,
291 undef
, undef
, undef
, undef
,
292 undef
, undef
, undef
, undef
,
293 undef
, undef
, undef
, undef
,
294 undef
, undef
, undef
, undef
,
295 undef
, undef
, undef
, undef
,
296 undef
, undef
, undef
, undef
,
297 undef
, undef
, undef
, undef
,
298 undef
, undef
, undef
, undef
,
299 undef
, undef
, undef
, undef
,
300 undef
, undef
, undef
, undef
,
301 undef
, undef
, undef
, undef
,
302 // 80-bf: Immediate commands
303 undef
, undef
, undef
, undef
,
304 undef
, undef
, undef
, undef
,
305 undef
, undef
, undef
, undef
,
306 undef
, undef
, undef
, undef
,
307 undef
, undef
, undef
, undef
,
308 undef
, undef
, undef
, undef
,
309 undef
, undef
, undef
, undef
,
310 undef
, undef
, undef
, undef
,
311 undef
, undef
, undef
, undef
,
312 undef
, undef
, undef
, undef
,
313 undef
, undef
, undef
, undef
,
314 undef
, undef
, undef
, undef
,
315 undef
, uc3_tri2
, uc0_rdphalf_cont
, uc0_rdphalf_2
,
316 uc0_rdphalf_1
, uc3_quad3d
, uc0_cleargeometrymode
, uc0_setgeometrymode
,
317 uc0_enddl
, uc0_setothermode_l
, uc0_setothermode_h
, uc0_texture
,
318 uc0_moveword
, uc0_popmatrix
, uc0_culldl
, uc3_tri1
,
319 // c0-ff: RDP commands
320 rdp_noop
, undef
, undef
, undef
,
321 undef
, undef
, undef
, undef
,
322 rdp_trifill
, rdp_trifillz
, rdp_tritxtr
, rdp_tritxtrz
,
323 rdp_trishade
, rdp_trishadez
, rdp_trishadetxtr
, rdp_trishadetxtrz
,
324 undef
, undef
, undef
, undef
,
325 undef
, undef
, undef
, undef
,
326 undef
, undef
, undef
, undef
,
327 undef
, undef
, undef
, undef
,
328 undef
, undef
, undef
, undef
,
329 rdp_texrect
, rdp_texrect
, rdp_loadsync
, rdp_pipesync
,
330 rdp_tilesync
, rdp_fullsync
, rdp_setkeygb
, rdp_setkeyr
,
331 rdp_setconvert
, rdp_setscissor
, rdp_setprimdepth
, rdp_setothermode
,
332 rdp_loadtlut
, undef
, rdp_settilesize
, rdp_loadblock
,
333 rdp_loadtile
, rdp_settile
, rdp_fillrect
, rdp_setfillcolor
,
334 rdp_setfogcolor
, rdp_setblendcolor
, rdp_setprimcolor
, rdp_setenvcolor
,
335 rdp_setcombine
, rdp_settextureimage
, rdp_setdepthimage
, rdp_setcolorimage
339 // uCode 4 - RSP SW 2.0D EXT
341 // games: Star Wars: Shadows of the Empire
342 spnoop
, uc0_matrix
, rsp_reserved0
, uc0_movemem
,
343 uc4_vertex
, rsp_reserved1
, uc0_displaylist
, rsp_reserved2
,
344 rsp_reserved3
, uc6_sprite2d
, undef
, undef
,
345 undef
, undef
, undef
, undef
,
346 undef
, undef
, undef
, undef
,
347 undef
, undef
, undef
, undef
,
348 undef
, undef
, undef
, undef
,
349 undef
, undef
, undef
, undef
,
350 undef
, undef
, undef
, undef
,
351 undef
, undef
, undef
, undef
,
352 undef
, undef
, undef
, undef
,
353 undef
, undef
, undef
, undef
,
354 undef
, undef
, undef
, undef
,
355 undef
, undef
, undef
, undef
,
356 undef
, undef
, undef
, undef
,
357 undef
, undef
, undef
, undef
,
359 undef
, undef
, undef
, undef
,
360 undef
, undef
, undef
, undef
,
361 undef
, undef
, undef
, undef
,
362 undef
, undef
, undef
, undef
,
363 undef
, undef
, undef
, undef
,
364 undef
, undef
, undef
, undef
,
365 undef
, undef
, undef
, undef
,
366 undef
, undef
, undef
, undef
,
367 undef
, undef
, undef
, undef
,
368 undef
, undef
, undef
, undef
,
369 undef
, undef
, undef
, undef
,
370 undef
, undef
, undef
, undef
,
371 undef
, undef
, undef
, undef
,
372 undef
, undef
, undef
, undef
,
373 undef
, undef
, undef
, undef
,
374 undef
, undef
, undef
, undef
,
375 // 80-bf: Immediate commands
376 undef
, undef
, undef
, undef
,
377 undef
, undef
, undef
, undef
,
378 undef
, undef
, undef
, undef
,
379 undef
, undef
, undef
, undef
,
380 undef
, undef
, undef
, undef
,
381 undef
, undef
, undef
, undef
,
382 undef
, undef
, undef
, undef
,
383 undef
, undef
, undef
, undef
,
384 undef
, undef
, undef
, undef
,
385 undef
, undef
, undef
, undef
,
386 undef
, undef
, undef
, undef
,
387 undef
, undef
, undef
, undef
,
388 undef
, uc0_tri4
, uc0_rdphalf_cont
, uc0_rdphalf_2
,
389 uc0_rdphalf_1
, uc4_quad3d
, uc0_cleargeometrymode
, uc0_setgeometrymode
,
390 uc0_enddl
, uc0_setothermode_l
, uc0_setothermode_h
, uc0_texture
,
391 uc0_moveword
, uc0_popmatrix
, uc0_culldl
, uc4_tri1
,
392 // c0-ff: RDP commands
393 rdp_noop
, undef
, undef
, undef
,
394 undef
, undef
, undef
, undef
,
395 rdp_trifill
, rdp_trifillz
, rdp_tritxtr
, rdp_tritxtrz
,
396 rdp_trishade
, rdp_trishadez
, rdp_trishadetxtr
, rdp_trishadetxtrz
,
397 undef
, undef
, undef
, undef
,
398 undef
, undef
, undef
, undef
,
399 undef
, undef
, undef
, undef
,
400 undef
, undef
, undef
, undef
,
401 undef
, undef
, undef
, undef
,
402 rdp_texrect
, rdp_texrect
, rdp_loadsync
, rdp_pipesync
,
403 rdp_tilesync
, rdp_fullsync
, rdp_setkeygb
, rdp_setkeyr
,
404 rdp_setconvert
, rdp_setscissor
, rdp_setprimdepth
, rdp_setothermode
,
405 rdp_loadtlut
, undef
, rdp_settilesize
, rdp_loadblock
,
406 rdp_loadtile
, rdp_settile
, rdp_fillrect
, rdp_setfillcolor
,
407 rdp_setfogcolor
, rdp_setblendcolor
, rdp_setprimcolor
, rdp_setenvcolor
,
408 rdp_setcombine
, rdp_settextureimage
, rdp_setdepthimage
, rdp_setcolorimage
412 // uCode 5 - RSP SW 2.0 Diddy
414 // games: Diddy Kong Racing
415 spnoop
, uc5_matrix
, rsp_reserved0
, uc0_movemem
,
416 uc5_vertex
, uc5_tridma
, uc0_displaylist
, uc5_dl_in_mem
,
417 rsp_reserved3
, uc6_sprite2d
, undef
, undef
,
418 undef
, undef
, undef
, undef
,
419 undef
, undef
, undef
, undef
,
420 undef
, undef
, undef
, undef
,
421 undef
, undef
, undef
, undef
,
422 undef
, undef
, undef
, undef
,
423 undef
, undef
, undef
, undef
,
424 undef
, undef
, undef
, undef
,
425 undef
, undef
, undef
, undef
,
426 undef
, undef
, undef
, undef
,
427 undef
, undef
, undef
, undef
,
428 undef
, undef
, undef
, undef
,
429 undef
, undef
, undef
, undef
,
430 undef
, undef
, undef
, undef
,
432 undef
, undef
, undef
, undef
,
433 undef
, undef
, undef
, undef
,
434 undef
, undef
, undef
, undef
,
435 undef
, undef
, undef
, undef
,
436 undef
, undef
, undef
, undef
,
437 undef
, undef
, undef
, undef
,
438 undef
, undef
, undef
, undef
,
439 undef
, undef
, undef
, undef
,
440 undef
, undef
, undef
, undef
,
441 undef
, undef
, undef
, undef
,
442 undef
, undef
, undef
, undef
,
443 undef
, undef
, undef
, undef
,
444 undef
, undef
, undef
, undef
,
445 undef
, undef
, undef
, undef
,
446 undef
, undef
, undef
, undef
,
447 undef
, undef
, undef
, undef
,
448 // 80-bf: Immediate commands
449 undef
, undef
, undef
, undef
,
450 undef
, undef
, undef
, undef
,
451 undef
, undef
, undef
, undef
,
452 undef
, undef
, undef
, undef
,
453 undef
, undef
, undef
, undef
,
454 undef
, undef
, undef
, undef
,
455 undef
, undef
, undef
, undef
,
456 undef
, undef
, undef
, undef
,
457 undef
, undef
, undef
, undef
,
458 undef
, undef
, undef
, undef
,
459 undef
, undef
, undef
, undef
,
460 undef
, undef
, undef
, undef
,
461 undef
, uc0_tri4
, uc0_rdphalf_cont
, uc0_rdphalf_2
,
462 uc0_rdphalf_1
, uc0_quad3d
, uc5_cleargeometrymode
, uc5_setgeometrymode
,
463 uc0_enddl
, uc0_setothermode_l
, uc0_setothermode_h
, uc0_texture
,
464 uc5_moveword
, uc0_popmatrix
, uc0_culldl
, uc5_dma_offsets
,
465 // c0-ff: RDP commands
466 rdp_noop
, undef
, undef
, undef
,
467 undef
, undef
, undef
, undef
,
468 rdp_trifill
, rdp_trifillz
, rdp_tritxtr
, rdp_tritxtrz
,
469 rdp_trishade
, rdp_trishadez
, rdp_trishadetxtr
, rdp_trishadetxtrz
,
470 undef
, undef
, undef
, undef
,
471 undef
, undef
, undef
, undef
,
472 undef
, undef
, undef
, undef
,
473 undef
, undef
, undef
, undef
,
474 undef
, undef
, undef
, undef
,
475 rdp_texrect
, rdp_texrect
, rdp_loadsync
, rdp_pipesync
,
476 rdp_tilesync
, rdp_fullsync
, rdp_setkeygb
, rdp_setkeyr
,
477 rdp_setconvert
, rdp_setscissor
, rdp_setprimdepth
, rdp_setothermode
,
478 rdp_loadtlut
, undef
, rdp_settilesize
, rdp_loadblock
,
479 rdp_loadtile
, rdp_settile
, rdp_fillrect
, rdp_setfillcolor
,
480 rdp_setfogcolor
, rdp_setblendcolor
, rdp_setprimcolor
, rdp_setenvcolor
,
481 rdp_setcombine
, rdp_settextureimage
, rdp_setdepthimage
, rdp_setcolorimage
484 // uCode 6 - S2DEX 1.XX
485 // games: Yoshi's Story
487 spnoop
, uc6_bg_1cyc
, uc6_bg_copy
, uc6_obj_rectangle
,
488 uc6_obj_sprite
, uc6_obj_movemem
, uc0_displaylist
, rsp_reserved2
,
489 rsp_reserved3
, undef
/*uc6_sprite2d*/, undef
, undef
,
490 undef
, undef
, undef
, undef
,
491 undef
, undef
, undef
, undef
,
492 undef
, undef
, undef
, undef
,
493 undef
, undef
, undef
, undef
,
494 undef
, undef
, undef
, undef
,
495 undef
, undef
, undef
, undef
,
496 undef
, undef
, undef
, undef
,
497 undef
, undef
, undef
, undef
,
498 undef
, undef
, undef
, undef
,
499 undef
, undef
, undef
, undef
,
500 undef
, undef
, undef
, undef
,
501 undef
, undef
, undef
, undef
,
502 undef
, undef
, undef
, undef
,
504 undef
, undef
, undef
, undef
,
505 undef
, undef
, undef
, undef
,
506 undef
, undef
, undef
, undef
,
507 undef
, undef
, undef
, undef
,
508 undef
, undef
, undef
, undef
,
509 undef
, undef
, undef
, undef
,
510 undef
, undef
, undef
, undef
,
511 undef
, undef
, undef
, undef
,
512 undef
, undef
, undef
, undef
,
513 undef
, undef
, undef
, undef
,
514 undef
, undef
, undef
, undef
,
515 undef
, undef
, undef
, undef
,
516 undef
, undef
, undef
, undef
,
517 undef
, undef
, undef
, undef
,
518 undef
, undef
, undef
, undef
,
519 undef
, undef
, undef
, undef
,
520 // 80-bf: Immediate commands
521 undef
, undef
, undef
, undef
,
522 undef
, undef
, undef
, undef
,
523 undef
, undef
, undef
, undef
,
524 undef
, undef
, undef
, undef
,
525 undef
, undef
, undef
, undef
,
526 undef
, undef
, undef
, undef
,
527 undef
, undef
, undef
, undef
,
528 undef
, undef
, undef
, undef
,
529 undef
, undef
, undef
, undef
,
530 undef
, undef
, undef
, undef
,
531 undef
, undef
, undef
, undef
,
532 undef
, undef
, undef
, uc6_loaducode
,
533 uc6_select_dl
, uc6_obj_rendermode
, uc6_obj_rectangle_r
, uc0_rdphalf_2
,
534 uc6_rdphalf_1
, uc1_line3d
, uc0_cleargeometrymode
, uc0_setgeometrymode
,
535 uc0_enddl
, uc0_setothermode_l
, uc0_setothermode_h
, uc0_texture
,
536 uc0_moveword
, uc0_popmatrix
, uc2_culldl
, uc1_tri1
,
537 // c0-ff: RDP commands
538 rdp_noop
, uc6_obj_loadtxtr
, uc6_obj_ldtx_sprite
, uc6_obj_ldtx_rect
,
539 uc6_ldtx_rect_r
, undef
, undef
, undef
,
540 rdp_trifill
, rdp_trifillz
, rdp_tritxtr
, rdp_tritxtrz
,
541 rdp_trishade
, rdp_trishadez
, rdp_trishadetxtr
, rdp_trishadetxtrz
,
542 undef
, undef
, undef
, undef
,
543 undef
, undef
, undef
, undef
,
544 undef
, undef
, undef
, undef
,
545 undef
, undef
, undef
, undef
,
546 undef
, undef
, undef
, undef
,
547 rdp_texrect
, rdp_texrect
, rdp_loadsync
, rdp_pipesync
,
548 rdp_tilesync
, rdp_fullsync
, rdp_setkeygb
, rdp_setkeyr
,
549 rdp_setconvert
, rdp_setscissor
, rdp_setprimdepth
, rdp_setothermode
,
550 rdp_loadtlut
, undef
, rdp_settilesize
, rdp_loadblock
,
551 rdp_loadtile
, rdp_settile
, rdp_fillrect
, rdp_setfillcolor
,
552 rdp_setfogcolor
, rdp_setblendcolor
, rdp_setprimcolor
, rdp_setenvcolor
,
553 rdp_setcombine
, rdp_settextureimage
, rdp_setdepthimage
, rdp_setcolorimage
556 // games: Perfect Dark
559 spnoop
, uc0_matrix
, rsp_reserved0
, uc0_movemem
,
560 uc7_vertex
, rsp_reserved1
, uc0_displaylist
, uc7_colorbase
,
561 rsp_reserved3
, undef
, undef
, undef
,
562 undef
, undef
, undef
, undef
,
563 undef
, undef
, undef
, undef
,
564 undef
, undef
, undef
, undef
,
565 undef
, undef
, undef
, undef
,
566 undef
, undef
, undef
, undef
,
567 undef
, undef
, undef
, undef
,
568 undef
, undef
, undef
, undef
,
569 undef
, undef
, undef
, undef
,
570 undef
, undef
, undef
, undef
,
571 undef
, undef
, undef
, undef
,
572 undef
, undef
, undef
, undef
,
573 undef
, undef
, undef
, undef
,
574 undef
, undef
, undef
, undef
,
577 undef
, undef
, undef
, undef
,
578 undef
, undef
, undef
, undef
,
579 undef
, undef
, undef
, undef
,
580 undef
, undef
, undef
, undef
,
581 undef
, undef
, undef
, undef
,
582 undef
, undef
, undef
, undef
,
583 undef
, undef
, undef
, undef
,
584 undef
, undef
, undef
, undef
,
585 undef
, undef
, undef
, undef
,
586 undef
, undef
, undef
, undef
,
587 undef
, undef
, undef
, undef
,
588 undef
, undef
, undef
, undef
,
589 undef
, undef
, undef
, undef
,
590 undef
, undef
, undef
, undef
,
591 undef
, undef
, undef
, undef
,
592 undef
, undef
, undef
, undef
,
595 undef
, undef
, undef
, undef
,
596 undef
, undef
, undef
, undef
,
597 undef
, undef
, undef
, undef
,
598 undef
, undef
, undef
, undef
,
600 undef
, undef
, undef
, undef
,
601 undef
, undef
, undef
, undef
,
602 undef
, undef
, undef
, undef
,
603 undef
, undef
, undef
, undef
,
605 undef
, undef
, undef
, undef
,
606 undef
, undef
, undef
, undef
,
607 undef
, undef
, undef
, undef
,
608 undef
, undef
, undef
, undef
,
610 undef
, uc0_tri4
, uc0_rdphalf_cont
, uc0_rdphalf_2
,
611 uc0_rdphalf_1
, uc1_tri2
, uc0_cleargeometrymode
, uc0_setgeometrymode
,
612 uc0_enddl
, uc0_setothermode_l
, uc0_setothermode_h
, uc0_texture
,
613 uc0_moveword
, uc0_popmatrix
, uc0_culldl
, uc0_tri1
,
615 // c0-ff: RDP commands mixed with uc2 commands
616 rdp_noop
, undef
, undef
, undef
,
617 undef
, undef
, undef
, undef
,
618 rdp_trifill
, rdp_trifillz
, rdp_tritxtr
, rdp_tritxtrz
,
619 rdp_trishade
, rdp_trishadez
, rdp_trishadetxtr
, rdp_trishadetxtrz
,
621 undef
, undef
, undef
, undef
,
622 undef
, undef
, undef
, undef
,
623 undef
, undef
, undef
, undef
,
624 undef
, undef
, undef
, undef
,
626 undef
, undef
, undef
, undef
,
627 rdp_texrect
, rdp_texrect
, rdp_loadsync
, rdp_pipesync
,
628 rdp_tilesync
, rdp_fullsync
, rdp_setkeygb
, rdp_setkeyr
,
629 rdp_setconvert
, rdp_setscissor
, rdp_setprimdepth
, rdp_setothermode
,
631 rdp_loadtlut
, uc0_rdphalf_2
, rdp_settilesize
, rdp_loadblock
,
632 rdp_loadtile
, rdp_settile
, rdp_fillrect
, rdp_setfillcolor
,
633 rdp_setfogcolor
, rdp_setblendcolor
, rdp_setprimcolor
, rdp_setenvcolor
,
634 rdp_setcombine
, rdp_settextureimage
, rdp_setdepthimage
, rdp_setcolorimage
638 // games: Conker's Bad Fur Day
641 spnoop
, uc8_vertex
, uc2_modifyvtx
, uc2_culldl
,
642 uc1_branch_z
, uc2_tri1
, uc2_quad
, uc2_quad
,
643 uc2_line3d
, uc6_bg_1cyc
, uc6_bg_copy
, uc6_obj_rendermode
/*undef*/,
644 undef
, undef
, undef
, undef
,
645 uc8_tri4
, uc8_tri4
, uc8_tri4
, uc8_tri4
,
646 uc8_tri4
, uc8_tri4
, uc8_tri4
, uc8_tri4
,
647 uc8_tri4
, uc8_tri4
, uc8_tri4
, uc8_tri4
,
648 uc8_tri4
, uc8_tri4
, uc8_tri4
, uc8_tri4
,
649 undef
, undef
, undef
, undef
,
650 undef
, undef
, undef
, undef
,
651 undef
, undef
, undef
, undef
,
652 undef
, undef
, undef
, undef
,
653 undef
, undef
, undef
, undef
,
654 undef
, undef
, undef
, undef
,
655 undef
, undef
, undef
, undef
,
656 undef
, undef
, undef
, undef
,
659 undef
, undef
, undef
, undef
,
660 undef
, undef
, undef
, undef
,
661 undef
, undef
, undef
, undef
,
662 undef
, undef
, undef
, undef
,
663 undef
, undef
, undef
, undef
,
664 undef
, undef
, undef
, undef
,
665 undef
, undef
, undef
, undef
,
666 undef
, undef
, undef
, undef
,
667 undef
, undef
, undef
, undef
,
668 undef
, undef
, undef
, undef
,
669 undef
, undef
, undef
, undef
,
670 undef
, undef
, undef
, undef
,
671 undef
, undef
, undef
, undef
,
672 undef
, undef
, undef
, undef
,
673 undef
, undef
, undef
, undef
,
674 undef
, undef
, undef
, undef
,
677 undef
, undef
, undef
, undef
,
678 undef
, undef
, undef
, undef
,
679 undef
, undef
, undef
, undef
,
680 undef
, undef
, undef
, undef
,
681 undef
, undef
, undef
, undef
,
682 undef
, undef
, undef
, undef
,
683 undef
, undef
, undef
, undef
,
684 undef
, undef
, undef
, undef
,
685 undef
, undef
, undef
, undef
,
686 undef
, undef
, undef
, undef
,
687 undef
, undef
, undef
, undef
,
688 undef
, undef
, undef
, undef
,
689 undef
, undef
, undef
, undef
,
690 undef
, undef
, undef
, undef
,
691 undef
, undef
, undef
, undef
,
692 undef
, undef
, undef
, undef
,
694 // c0-ff: RDP commands mixed with uc2 commands
695 rdp_noop
, undef
, undef
, undef
,
696 undef
, undef
, undef
, undef
,
697 rdp_trifill
, rdp_trifillz
, rdp_tritxtr
, rdp_tritxtrz
,
698 rdp_trishade
, rdp_trishadez
, rdp_trishadetxtr
, rdp_trishadetxtrz
,
699 undef
, undef
, undef
, uc2_special3
,
700 uc2_special2
, uc2_dlist_cnt
, uc2_dma_io
, uc0_texture
,
701 uc2_pop_matrix
, uc2_geom_mode
, uc2_matrix
, uc8_moveword
,
702 uc8_movemem
, uc2_load_ucode
, uc0_displaylist
, uc0_enddl
,
703 spnoop
, uc1_rdphalf_1
, uc0_setothermode_l
, uc0_setothermode_h
,
704 rdp_texrect
, rdp_texrect
, rdp_loadsync
, rdp_pipesync
,
705 rdp_tilesync
, rdp_fullsync
, rdp_setkeygb
, rdp_setkeyr
,
706 rdp_setconvert
, rdp_setscissor
, rdp_setprimdepth
, rdp_setothermode
,
707 rdp_loadtlut
, uc2_rdphalf_2
, rdp_settilesize
, rdp_loadblock
,
708 rdp_loadtile
, rdp_settile
, rdp_fillrect
, rdp_setfillcolor
,
709 rdp_setfogcolor
, rdp_setblendcolor
, rdp_setprimcolor
, rdp_setenvcolor
,
710 rdp_setcombine
, rdp_settextureimage
, rdp_setdepthimage
, rdp_setcolorimage