Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libmupen64plus/mupen64plus-video-glide64mk2/src/Glide64/ucode.h
2 views
1
/*
2
* Glide64 - Glide video plugin for Nintendo 64 emulators.
3
* Copyright (c) 2002 Dave2001
4
* Copyright (c) 2003-2009 Sergey 'Gonetz' Lipski
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
*/
20
21
//****************************************************************
22
//
23
// Glide64 - Glide Plugin for Nintendo 64 emulators
24
// Project started on December 29th, 2001
25
//
26
// Authors:
27
// Dave2001, original author, founded the project in 2001, left it in 2002
28
// Gugaman, joined the project in 2002, left it in 2002
29
// Sergey 'Gonetz' Lipski, joined the project in 2002, main author since fall of 2002
30
// Hiroshi 'KoolSmoky' Morii, joined the project in 2007
31
//
32
//****************************************************************
33
//
34
// To modify Glide64:
35
// * 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.
36
// * 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.
37
//
38
//****************************************************************
39
40
typedef void (*rdp_instr)();
41
42
// RDP graphic instructions pointer table
43
44
static rdp_instr gfx_instruction[10][256] =
45
{
46
{
47
// uCode 0 - RSP SW 2.0X
48
// 00-3f
49
// games: Super Mario 64, Tetrisphere, Demos
50
spnoop, uc0_matrix, rsp_reserved0, uc0_movemem,
51
uc0_vertex, rsp_reserved1, uc0_displaylist, rsp_reserved2,
52
rsp_reserved3, uc6_sprite2d, 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,
62
undef, undef, undef, undef,
63
undef, undef, undef, undef,
64
undef, undef, undef, undef,
65
undef, undef, undef, undef,
66
// 40-7f: Unused
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
undef, undef, undef, undef,
80
undef, undef, undef, undef,
81
undef, undef, undef, undef,
82
undef, undef, undef, undef,
83
// 80-bf: Immediate commands
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, undef, undef, undef,
93
undef, undef, undef, undef,
94
undef, undef, undef, undef,
95
undef, undef, undef, undef,
96
undef, uc0_tri4, rdphalf_cont, rdphalf_2,
97
rdphalf_1, uc0_line3d, uc0_cleargeometrymode, uc0_setgeometrymode,
98
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
99
uc0_moveword, uc0_popmatrix, uc0_culldl, uc0_tri1,
100
// c0-ff: RDP commands
101
rdp_noop, undef, undef, undef,
102
undef, undef, undef, undef,
103
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
104
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
105
undef, undef, undef, undef,
106
undef, undef, undef, undef,
107
undef, undef, undef, undef,
108
undef, undef, undef, undef,
109
undef, undef, undef, undef,
110
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
111
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
112
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
113
rdp_loadtlut, undef, rdp_settilesize, rdp_loadblock,
114
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
115
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
116
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
117
},
118
119
// uCode 1 - F3DEX 1.XX
120
// 00-3f
121
// games: Mario Kart, Star Fox
122
{
123
spnoop, uc0_matrix, rsp_reserved0, uc0_movemem,
124
uc1_vertex, rsp_reserved1, uc0_displaylist, rsp_reserved2,
125
rsp_reserved3, uc6_sprite2d, 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,
135
undef, undef, undef, undef,
136
undef, undef, undef, undef,
137
undef, undef, undef, undef,
138
undef, undef, undef, undef,
139
// 40-7f: unused
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
undef, undef, undef, undef,
153
undef, undef, undef, undef,
154
undef, undef, undef, undef,
155
undef, undef, undef, undef,
156
// 80-bf: Immediate commands
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, undef,
165
undef, undef, undef, undef,
166
undef, undef, undef, undef,
167
undef, undef, undef, undef,
168
undef, undef, undef, uc6_loaducode,
169
uc1_branch_z, uc1_tri2, uc2_modifyvtx, rdphalf_2,
170
uc1_rdphalf_1, uc1_line3d, uc0_cleargeometrymode, uc0_setgeometrymode,
171
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
172
uc0_moveword, uc0_popmatrix, uc2_culldl, uc1_tri1,
173
// c0-ff: RDP commands
174
rdp_noop, undef, undef, undef,
175
undef, undef, undef, undef,
176
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
177
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
178
undef, undef, undef, undef,
179
undef, undef, undef, undef,
180
undef, undef, undef, undef,
181
undef, undef, undef, undef,
182
undef, undef, undef, undef,
183
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
184
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
185
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
186
rdp_loadtlut, undef, rdp_settilesize, rdp_loadblock,
187
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
188
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
189
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
190
},
191
192
// uCode 2 - F3DEX 2.XX
193
// games: Zelda 64
194
{
195
// 00-3f
196
spnoop, uc2_vertex, uc2_modifyvtx, uc2_culldl,
197
uc1_branch_z, uc2_tri1, uc2_quad, uc2_quad,
198
uc2_line3d, uc6_bg_1cyc, uc6_bg_copy, uc6_obj_rendermode/*undef*/,
199
undef, undef, undef, undef,
200
uc0_tri4, uc0_tri4, uc0_tri4, uc0_tri4,
201
uc0_tri4, uc0_tri4, uc0_tri4, uc0_tri4,
202
uc0_tri4, uc0_tri4, uc0_tri4, uc0_tri4,
203
uc0_tri4, uc0_tri4, uc0_tri4, uc0_tri4,
204
undef, undef, undef, undef,
205
undef, undef, undef, undef,
206
undef, undef, undef, undef,
207
undef, undef, undef, undef,
208
undef, undef, undef, undef,
209
undef, undef, undef, undef,
210
undef, undef, undef, undef,
211
undef, undef, undef, undef,
212
213
// 40-7f: unused
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,
226
undef, undef, undef, undef,
227
undef, undef, undef, undef,
228
undef, undef, undef, undef,
229
undef, undef, undef, undef,
230
231
// 80-bf: unused
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,
244
undef, undef, undef, undef,
245
undef, undef, undef, undef,
246
undef, undef, undef, undef,
247
undef, undef, undef, undef,
248
249
// c0-ff: RDP commands mixed with uc2 commands
250
rdp_noop, undef, undef, undef,
251
undef, undef, undef, undef,
252
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
253
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
254
undef, undef, undef, uc2_special3,
255
uc2_special2, uc2_dlist_cnt, uc2_dma_io, uc0_texture,
256
uc2_pop_matrix, uc2_geom_mode, uc2_matrix, uc2_moveword,
257
uc2_movemem, uc2_load_ucode, uc0_displaylist, uc0_enddl,
258
spnoop, uc1_rdphalf_1, uc0_setothermode_l, uc0_setothermode_h,
259
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
260
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
261
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
262
rdp_loadtlut, uc2_rdphalf_2, rdp_settilesize, rdp_loadblock,
263
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
264
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
265
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
266
},
267
268
// uCode 3 - "RSP SW 2.0D", but not really
269
// 00-3f
270
// games: Wave Race
271
// ** Added by Gonetz **
272
{
273
spnoop, uc0_matrix, rsp_reserved0, uc0_movemem,
274
uc3_vertex, rsp_reserved1, uc0_displaylist, rsp_reserved2,
275
rsp_reserved3, uc6_sprite2d, 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,
285
undef, undef, undef, undef,
286
undef, undef, undef, undef,
287
undef, undef, undef, undef,
288
undef, undef, undef, undef,
289
// 40-7f: unused
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
undef, undef, undef, undef,
303
undef, undef, undef, undef,
304
undef, undef, undef, undef,
305
undef, undef, undef, undef,
306
// 80-bf: Immediate commands
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, undef, undef, undef,
316
undef, undef, undef, undef,
317
undef, undef, undef, undef,
318
undef, undef, undef, undef,
319
undef, uc3_tri2, rdphalf_cont, rdphalf_2,
320
rdphalf_1, uc3_quad3d, uc0_cleargeometrymode, uc0_setgeometrymode,
321
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
322
uc0_moveword, uc0_popmatrix, uc0_culldl, uc3_tri1,
323
// c0-ff: RDP commands
324
rdp_noop, undef, undef, undef,
325
undef, undef, undef, undef,
326
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
327
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
328
undef, undef, undef, undef,
329
undef, undef, undef, undef,
330
undef, undef, undef, undef,
331
undef, undef, undef, undef,
332
undef, undef, undef, undef,
333
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
334
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
335
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
336
rdp_loadtlut, undef, rdp_settilesize, rdp_loadblock,
337
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
338
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
339
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
340
},
341
342
{
343
// uCode 4 - RSP SW 2.0D EXT
344
// 00-3f
345
// games: Star Wars: Shadows of the Empire
346
spnoop, uc0_matrix, rsp_reserved0, uc0_movemem,
347
uc4_vertex, rsp_reserved1, uc0_displaylist, rsp_reserved2,
348
rsp_reserved3, uc6_sprite2d, 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,
358
undef, undef, undef, undef,
359
undef, undef, undef, undef,
360
undef, undef, undef, undef,
361
undef, undef, undef, undef,
362
// 40-7f: Unused
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
undef, undef, undef, undef,
376
undef, undef, undef, undef,
377
undef, undef, undef, undef,
378
undef, undef, undef, undef,
379
// 80-bf: Immediate commands
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, undef, undef, undef,
389
undef, undef, undef, undef,
390
undef, undef, undef, undef,
391
undef, undef, undef, undef,
392
undef, uc0_tri4, rdphalf_cont, rdphalf_2,
393
rdphalf_1, uc4_quad3d, uc0_cleargeometrymode, uc0_setgeometrymode,
394
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
395
uc0_moveword, uc0_popmatrix, uc0_culldl, uc4_tri1,
396
// c0-ff: RDP commands
397
rdp_noop, undef, undef, undef,
398
undef, undef, undef, undef,
399
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
400
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
401
undef, undef, undef, undef,
402
undef, undef, undef, undef,
403
undef, undef, undef, undef,
404
undef, undef, undef, undef,
405
undef, undef, undef, undef,
406
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
407
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
408
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
409
rdp_loadtlut, undef, rdp_settilesize, rdp_loadblock,
410
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
411
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
412
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
413
},
414
415
{
416
// uCode 5 - RSP SW 2.0 Diddy
417
// 00-3f
418
// games: Diddy Kong Racing
419
spnoop, uc5_matrix, rsp_reserved0, uc0_movemem,
420
uc5_vertex, uc5_tridma, uc0_displaylist, uc5_dl_in_mem,
421
rsp_reserved3, uc6_sprite2d, 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,
431
undef, undef, undef, undef,
432
undef, undef, undef, undef,
433
undef, undef, undef, undef,
434
undef, undef, undef, undef,
435
// 40-7f: Unused
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
undef, undef, undef, undef,
449
undef, undef, undef, undef,
450
undef, undef, undef, undef,
451
undef, undef, undef, undef,
452
// 80-bf: Immediate commands
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, undef, undef, undef,
462
undef, undef, undef, undef,
463
undef, undef, undef, undef,
464
undef, undef, undef, undef,
465
undef, uc0_tri4, rdphalf_cont, rdphalf_2,
466
rdphalf_1, uc0_line3d, uc5_cleargeometrymode, uc5_setgeometrymode,
467
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
468
uc5_moveword, uc0_popmatrix, uc0_culldl, uc5_dma_offsets,
469
// c0-ff: RDP commands
470
rdp_noop, undef, undef, undef,
471
undef, undef, undef, undef,
472
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
473
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
474
undef, undef, undef, undef,
475
undef, undef, undef, undef,
476
undef, undef, undef, undef,
477
undef, undef, undef, undef,
478
undef, undef, undef, undef,
479
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
480
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
481
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
482
rdp_loadtlut, undef, rdp_settilesize, rdp_loadblock,
483
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
484
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
485
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
486
},
487
488
// uCode 6 - S2DEX 1.XX
489
// games: Yoshi's Story
490
{
491
spnoop, uc6_bg_1cyc, uc6_bg_copy, uc6_obj_rectangle,
492
uc6_obj_sprite, uc6_obj_movemem, uc0_displaylist, rsp_reserved2,
493
rsp_reserved3, undef/*uc6_sprite2d*/, 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,
503
undef, undef, undef, undef,
504
undef, undef, undef, undef,
505
undef, undef, undef, undef,
506
undef, undef, undef, undef,
507
// 40-7f: unused
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
undef, undef, undef, undef,
521
undef, undef, undef, undef,
522
undef, undef, undef, undef,
523
undef, undef, undef, undef,
524
// 80-bf: Immediate commands
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, undef,
533
undef, undef, undef, undef,
534
undef, undef, undef, undef,
535
undef, undef, undef, undef,
536
undef, undef, undef, uc6_loaducode,
537
uc6_select_dl, uc6_obj_rendermode, uc6_obj_rectangle_r, rdphalf_2,
538
rdphalf_1, uc1_line3d, uc0_cleargeometrymode, uc0_setgeometrymode,
539
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
540
uc0_moveword, uc0_popmatrix, uc2_culldl, uc1_tri1,
541
// c0-ff: RDP commands
542
rdp_noop, uc6_obj_loadtxtr, uc6_obj_ldtx_sprite, uc6_obj_ldtx_rect,
543
uc6_ldtx_rect_r, undef, undef, undef,
544
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
545
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
546
undef, undef, undef, undef,
547
undef, undef, undef, undef,
548
undef, undef, undef, undef,
549
undef, undef, undef, undef,
550
undef, undef, undef, undef,
551
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
552
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
553
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
554
rdp_loadtlut, undef, rdp_settilesize, rdp_loadblock,
555
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
556
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
557
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
558
},
559
// uCode 7 - unknown
560
// games: Perfect Dark
561
{
562
// 00-3f
563
spnoop, uc0_matrix, rsp_reserved0, uc0_movemem,
564
uc7_vertex, rsp_reserved1, uc0_displaylist, uc7_colorbase,
565
rsp_reserved3, 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,
575
undef, undef, undef, undef,
576
undef, undef, undef, undef,
577
undef, undef, undef, undef,
578
undef, undef, undef, undef,
579
580
// 40-7f: unused
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,
593
undef, undef, undef, undef,
594
undef, undef, undef, undef,
595
undef, undef, undef, undef,
596
undef, undef, undef, undef,
597
598
// 80-bf: unused
599
undef, undef, undef, undef,
600
undef, undef, undef, undef,
601
undef, undef, undef, undef,
602
undef, undef, undef, undef,
603
604
undef, undef, undef, undef,
605
undef, undef, undef, undef,
606
undef, undef, undef, undef,
607
undef, undef, undef, undef,
608
609
undef, undef, undef, undef,
610
undef, undef, undef, undef,
611
undef, undef, undef, undef,
612
undef, undef, undef, undef,
613
614
undef, uc0_tri4, rdphalf_cont, rdphalf_2,
615
rdphalf_1, uc1_tri2, uc0_cleargeometrymode, uc0_setgeometrymode,
616
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
617
uc0_moveword, uc0_popmatrix, uc0_culldl, uc0_tri1,
618
619
// c0-ff: RDP commands mixed with uc2 commands
620
rdp_noop, undef, undef, undef,
621
undef, undef, undef, undef,
622
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
623
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
624
625
undef, undef, undef, undef,
626
undef, undef, undef, undef,
627
undef, undef, undef, undef,
628
undef, undef, undef, undef,
629
630
undef, undef, undef, undef,
631
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
632
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
633
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
634
635
rdp_loadtlut, rdphalf_2, rdp_settilesize, rdp_loadblock,
636
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
637
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
638
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
639
},
640
641
// uCode 8 - unknown
642
// games: Conker's Bad Fur Day
643
{
644
// 00-3f
645
spnoop, uc8_vertex, uc2_modifyvtx, uc2_culldl,
646
uc1_branch_z, uc2_tri1, uc2_quad, uc2_quad,
647
uc2_line3d, uc6_bg_1cyc, uc6_bg_copy, uc6_obj_rendermode/*undef*/,
648
undef, undef, undef, undef,
649
uc8_tri4, uc8_tri4, uc8_tri4, uc8_tri4,
650
uc8_tri4, uc8_tri4, uc8_tri4, uc8_tri4,
651
uc8_tri4, uc8_tri4, uc8_tri4, uc8_tri4,
652
uc8_tri4, uc8_tri4, uc8_tri4, uc8_tri4,
653
undef, undef, undef, undef,
654
undef, undef, undef, undef,
655
undef, undef, undef, undef,
656
undef, undef, undef, undef,
657
undef, undef, undef, undef,
658
undef, undef, undef, undef,
659
undef, undef, undef, undef,
660
undef, undef, undef, undef,
661
662
// 40-7f: unused
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,
675
undef, undef, undef, undef,
676
undef, undef, undef, undef,
677
undef, undef, undef, undef,
678
undef, undef, undef, undef,
679
680
// 80-bf: unused
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,
693
undef, undef, undef, undef,
694
undef, undef, undef, undef,
695
undef, undef, undef, undef,
696
undef, undef, undef, undef,
697
698
// c0-ff: RDP commands mixed with uc2 commands
699
rdp_noop, undef, undef, undef,
700
undef, undef, undef, undef,
701
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
702
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
703
undef, undef, undef, uc2_special3,
704
uc2_special2, uc2_dlist_cnt, uc2_dma_io, uc0_texture,
705
uc2_pop_matrix, uc2_geom_mode, uc2_matrix, uc8_moveword,
706
uc8_movemem, uc2_load_ucode, uc0_displaylist, uc0_enddl,
707
spnoop, rdphalf_1, uc0_setothermode_l, uc0_setothermode_h,
708
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
709
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
710
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
711
rdp_loadtlut, uc2_rdphalf_2, rdp_settilesize, rdp_loadblock,
712
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
713
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
714
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
715
},
716
717
{
718
// uCode 9 - gzsort
719
// games: Telefoot Soccer
720
// 00-3f
721
spnoop, undef, undef, undef,
722
undef, undef, undef, undef,
723
undef, undef, undef, undef,
724
undef, undef, undef, undef,
725
undef, undef, undef, undef,
726
undef, undef, undef, undef,
727
undef, undef, undef, undef,
728
undef, undef, undef, undef,
729
undef, undef, undef, undef,
730
undef, undef, undef, undef,
731
undef, undef, undef, undef,
732
undef, undef, undef, undef,
733
undef, undef, undef, undef,
734
undef, undef, undef, undef,
735
undef, undef, undef, undef,
736
undef, undef, undef, undef,
737
// 40-7f: Unused
738
undef, undef, undef, undef,
739
undef, undef, undef, undef,
740
undef, undef, undef, undef,
741
undef, undef, undef, undef,
742
undef, undef, undef, undef,
743
undef, undef, undef, undef,
744
undef, undef, undef, undef,
745
undef, undef, undef, undef,
746
undef, undef, undef, undef,
747
undef, undef, undef, undef,
748
undef, undef, undef, undef,
749
undef, undef, undef, undef,
750
undef, undef, undef, undef,
751
undef, undef, undef, undef,
752
undef, undef, undef, undef,
753
undef, undef, undef, undef,
754
// 80-bf: Immediate commands
755
uc9_object, uc9_rpdcmd, undef, undef,
756
undef, undef, undef, undef,
757
undef, undef, undef, undef,
758
undef, undef, undef, undef,
759
undef, undef, undef, undef,
760
undef, undef, undef, undef,
761
undef, undef, undef, undef,
762
undef, undef, undef, undef,
763
undef, undef, undef, undef,
764
undef, undef, undef, undef,
765
undef, undef, undef, undef,
766
undef, undef, undef, undef,
767
undef, undef, undef, undef,
768
rdphalf_1, undef, uc0_cleargeometrymode, uc0_setgeometrymode,
769
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
770
uc0_moveword, undef, uc0_culldl, undef,
771
// c0-ff: RDP commands
772
rdp_noop, undef, undef, undef,
773
undef, undef, undef, undef,
774
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
775
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
776
777
uc9_mix, uc9_fmlight, uc9_light, undef,
778
uc9_mtxtrnsp, uc9_mtxcat, uc9_mult_mpmtx, uc9_link_subdl,
779
uc9_set_subdl, uc9_wait_signal, uc9_send_signal, uc0_moveword,
780
uc9_movemem, undef, uc0_displaylist, uc0_enddl,
781
782
undef, undef, uc0_setothermode_l, uc0_setothermode_h,
783
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
784
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
785
rdp_setconvert, uc9_setscissor, rdp_setprimdepth, rdp_setothermode,
786
787
rdp_loadtlut, rdphalf_2, rdp_settilesize, rdp_loadblock,
788
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
789
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
790
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
791
},
792
};
793
794