mirror of
https://github.com/mupen64plus/mupen64plus-oldsvn.git
synced 2025-04-02 10:52:35 -04:00
714 lines
59 KiB
C
714 lines
59 KiB
C
/*
|
|
* Glide64 - Glide video plugin for Nintendo 64 emulators.
|
|
* Copyright (c) 2002 Dave2001
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public
|
|
* License along with this program; if not, write to the Free
|
|
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
//****************************************************************
|
|
//
|
|
// Glide64 - Glide Plugin for Nintendo 64 emulators (tested mostly with Project64)
|
|
// Project started on December 29th, 2001
|
|
//
|
|
// To modify Glide64:
|
|
// * 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.
|
|
// * 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.
|
|
//
|
|
// Official Glide64 development channel: #Glide64 on EFnet
|
|
//
|
|
// Original author: Dave2001 (Dave2999@hotmail.com)
|
|
// Other authors: Gonetz, Gugaman
|
|
//
|
|
//****************************************************************
|
|
|
|
typedef void (*rdp_instr)();
|
|
|
|
// RDP graphic instructions pointer table
|
|
|
|
static rdp_instr gfx_instruction[9][256] =
|
|
{
|
|
{
|
|
// uCode 0 - RSP SW 2.0X
|
|
// 00-3f
|
|
// games: Super Mario 64, Tetrisphere, Demos
|
|
spnoop, uc0_matrix, rsp_reserved0, uc0_movemem,
|
|
uc0_vertex, rsp_reserved1, uc0_displaylist, rsp_reserved2,
|
|
rsp_reserved3, uc6_sprite2d, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
// 40-7f: Unused
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
// 80-bf: Immediate commands
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, uc0_tri4, uc0_rdphalf_cont, uc0_rdphalf_2,
|
|
uc0_rdphalf_1, uc0_quad3d, uc0_cleargeometrymode, uc0_setgeometrymode,
|
|
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
|
|
uc0_moveword, uc0_popmatrix, uc0_culldl, uc0_tri1,
|
|
// c0-ff: RDP commands
|
|
rdp_noop, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
|
|
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
|
|
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
|
|
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
|
|
rdp_loadtlut, undef, rdp_settilesize, rdp_loadblock,
|
|
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
|
|
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
|
|
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
|
|
},
|
|
|
|
// uCode 1 - F3DEX 1.XX
|
|
// 00-3f
|
|
// games: Mario Kart, Star Fox
|
|
{
|
|
spnoop, uc0_matrix, rsp_reserved0, uc0_movemem,
|
|
uc1_vertex, rsp_reserved1, uc0_displaylist, rsp_reserved2,
|
|
rsp_reserved3, uc6_sprite2d, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
// 40-7f: unused
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
// 80-bf: Immediate commands
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, uc6_loaducode,
|
|
uc1_branch_z, uc1_tri2, uc2_modifyvtx, uc0_rdphalf_2,
|
|
uc1_rdphalf_1, uc1_line3d, uc0_cleargeometrymode, uc0_setgeometrymode,
|
|
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
|
|
uc0_moveword, uc0_popmatrix, uc2_culldl, uc1_tri1,
|
|
// c0-ff: RDP commands
|
|
rdp_noop, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
|
|
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
|
|
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
|
|
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
|
|
rdp_loadtlut, undef, rdp_settilesize, rdp_loadblock,
|
|
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
|
|
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
|
|
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
|
|
},
|
|
|
|
// uCode 2 - F3DEX 2.XX
|
|
// games: Zelda 64
|
|
{
|
|
// 00-3f
|
|
spnoop, uc2_vertex, uc2_modifyvtx, uc2_culldl,
|
|
uc1_branch_z, uc2_tri1, uc2_quad, uc2_quad,
|
|
uc2_line3d, uc6_bg_1cyc, uc6_bg_copy, uc6_obj_rendermode/*undef*/,
|
|
undef, undef, undef, undef,
|
|
uc0_tri4, uc0_tri4, uc0_tri4, uc0_tri4,
|
|
uc0_tri4, uc0_tri4, uc0_tri4, uc0_tri4,
|
|
uc0_tri4, uc0_tri4, uc0_tri4, uc0_tri4,
|
|
uc0_tri4, uc0_tri4, uc0_tri4, uc0_tri4,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
|
|
// 40-7f: unused
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
|
|
// 80-bf: unused
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
|
|
// c0-ff: RDP commands mixed with uc2 commands
|
|
rdp_noop, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
|
|
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
|
|
undef, undef, undef, uc2_special3,
|
|
uc2_special2, uc2_dlist_cnt, uc2_dma_io, uc0_texture,
|
|
uc2_pop_matrix, uc2_geom_mode, uc2_matrix, uc2_moveword,
|
|
uc2_movemem, uc2_load_ucode, uc0_displaylist, uc0_enddl,
|
|
spnoop, uc1_rdphalf_1, uc0_setothermode_l,uc0_setothermode_h,
|
|
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
|
|
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
|
|
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
|
|
rdp_loadtlut, uc2_rdphalf_2, rdp_settilesize, rdp_loadblock,
|
|
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
|
|
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
|
|
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
|
|
},
|
|
|
|
// uCode 3 - "RSP SW 2.0D", but not really
|
|
// 00-3f
|
|
// games: Wave Race
|
|
// ** Added by Gonetz **
|
|
{
|
|
spnoop, uc0_matrix, rsp_reserved0, uc0_movemem,
|
|
uc3_vertex, rsp_reserved1, uc0_displaylist, rsp_reserved2,
|
|
rsp_reserved3, uc6_sprite2d, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
// 40-7f: unused
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
// 80-bf: Immediate commands
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, uc3_tri2, uc0_rdphalf_cont, uc0_rdphalf_2,
|
|
uc0_rdphalf_1, uc3_quad3d, uc0_cleargeometrymode, uc0_setgeometrymode,
|
|
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
|
|
uc0_moveword, uc0_popmatrix, uc0_culldl, uc3_tri1,
|
|
// c0-ff: RDP commands
|
|
rdp_noop, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
|
|
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
|
|
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
|
|
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
|
|
rdp_loadtlut, undef, rdp_settilesize, rdp_loadblock,
|
|
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
|
|
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
|
|
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
|
|
},
|
|
|
|
{
|
|
// uCode 4 - RSP SW 2.0D EXT
|
|
// 00-3f
|
|
// games: Star Wars: Shadows of the Empire
|
|
spnoop, uc0_matrix, rsp_reserved0, uc0_movemem,
|
|
uc4_vertex, rsp_reserved1, uc0_displaylist, rsp_reserved2,
|
|
rsp_reserved3, uc6_sprite2d, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
// 40-7f: Unused
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
// 80-bf: Immediate commands
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, uc0_tri4, uc0_rdphalf_cont, uc0_rdphalf_2,
|
|
uc0_rdphalf_1, uc4_quad3d, uc0_cleargeometrymode, uc0_setgeometrymode,
|
|
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
|
|
uc0_moveword, uc0_popmatrix, uc0_culldl, uc4_tri1,
|
|
// c0-ff: RDP commands
|
|
rdp_noop, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
|
|
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
|
|
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
|
|
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
|
|
rdp_loadtlut, undef, rdp_settilesize, rdp_loadblock,
|
|
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
|
|
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
|
|
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
|
|
},
|
|
|
|
{
|
|
// uCode 5 - RSP SW 2.0 Diddy
|
|
// 00-3f
|
|
// games: Diddy Kong Racing
|
|
spnoop, uc5_matrix, rsp_reserved0, uc0_movemem,
|
|
uc5_vertex, uc5_tridma, uc0_displaylist, uc5_dl_in_mem,
|
|
rsp_reserved3, uc6_sprite2d, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
// 40-7f: Unused
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
// 80-bf: Immediate commands
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, uc0_tri4, uc0_rdphalf_cont, uc0_rdphalf_2,
|
|
uc0_rdphalf_1, uc0_quad3d, uc5_cleargeometrymode, uc5_setgeometrymode,
|
|
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
|
|
uc5_moveword, uc0_popmatrix, uc0_culldl, uc5_dma_offsets,
|
|
// c0-ff: RDP commands
|
|
rdp_noop, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
|
|
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
|
|
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
|
|
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
|
|
rdp_loadtlut, undef, rdp_settilesize, rdp_loadblock,
|
|
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
|
|
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
|
|
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
|
|
},
|
|
|
|
// uCode 6 - S2DEX 1.XX
|
|
// games: Yoshi's Story
|
|
{
|
|
spnoop, uc6_bg_1cyc, uc6_bg_copy, uc6_obj_rectangle,
|
|
uc6_obj_sprite, uc6_obj_movemem, uc0_displaylist, rsp_reserved2,
|
|
rsp_reserved3, undef/*uc6_sprite2d*/, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
// 40-7f: unused
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
// 80-bf: Immediate commands
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, uc6_loaducode,
|
|
uc6_select_dl, uc6_obj_rendermode, uc6_obj_rectangle_r, uc0_rdphalf_2,
|
|
uc6_rdphalf_1, uc1_line3d, uc0_cleargeometrymode, uc0_setgeometrymode,
|
|
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
|
|
uc0_moveword, uc0_popmatrix, uc2_culldl, uc1_tri1,
|
|
// c0-ff: RDP commands
|
|
rdp_noop, uc6_obj_loadtxtr, uc6_obj_ldtx_sprite, uc6_obj_ldtx_rect,
|
|
uc6_ldtx_rect_r, undef, undef, undef,
|
|
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
|
|
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
|
|
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
|
|
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
|
|
rdp_loadtlut, undef, rdp_settilesize, rdp_loadblock,
|
|
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
|
|
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
|
|
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
|
|
},
|
|
// uCode 7 - unknown
|
|
// games: Perfect Dark
|
|
{
|
|
// 00-3f
|
|
spnoop, uc0_matrix, rsp_reserved0, uc0_movemem,
|
|
uc7_vertex, rsp_reserved1, uc0_displaylist, uc7_colorbase,
|
|
rsp_reserved3, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
|
|
// 40-7f: unused
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
|
|
// 80-bf: unused
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
|
|
undef, uc0_tri4, uc0_rdphalf_cont, uc0_rdphalf_2,
|
|
uc0_rdphalf_1, uc1_tri2, uc0_cleargeometrymode, uc0_setgeometrymode,
|
|
uc0_enddl, uc0_setothermode_l, uc0_setothermode_h, uc0_texture,
|
|
uc0_moveword, uc0_popmatrix, uc0_culldl, uc0_tri1,
|
|
|
|
// c0-ff: RDP commands mixed with uc2 commands
|
|
rdp_noop, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
|
|
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
|
|
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
|
|
undef, undef, undef, undef,
|
|
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
|
|
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
|
|
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
|
|
|
|
rdp_loadtlut, uc0_rdphalf_2, rdp_settilesize, rdp_loadblock,
|
|
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
|
|
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
|
|
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
|
|
},
|
|
|
|
// uCode 8 - unknown
|
|
// games: Conker's Bad Fur Day
|
|
{
|
|
// 00-3f
|
|
spnoop, uc8_vertex, uc2_modifyvtx, uc2_culldl,
|
|
uc1_branch_z, uc2_tri1, uc2_quad, uc2_quad,
|
|
uc2_line3d, uc6_bg_1cyc, uc6_bg_copy, uc6_obj_rendermode/*undef*/,
|
|
undef, undef, undef, undef,
|
|
uc8_tri4, uc8_tri4, uc8_tri4, uc8_tri4,
|
|
uc8_tri4, uc8_tri4, uc8_tri4, uc8_tri4,
|
|
uc8_tri4, uc8_tri4, uc8_tri4, uc8_tri4,
|
|
uc8_tri4, uc8_tri4, uc8_tri4, uc8_tri4,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
|
|
// 40-7f: unused
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
|
|
// 80-bf: unused
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
|
|
// c0-ff: RDP commands mixed with uc2 commands
|
|
rdp_noop, undef, undef, undef,
|
|
undef, undef, undef, undef,
|
|
rdp_trifill, rdp_trifillz, rdp_tritxtr, rdp_tritxtrz,
|
|
rdp_trishade, rdp_trishadez, rdp_trishadetxtr, rdp_trishadetxtrz,
|
|
undef, undef, undef, uc2_special3,
|
|
uc2_special2, uc2_dlist_cnt, uc2_dma_io, uc0_texture,
|
|
uc2_pop_matrix, uc2_geom_mode, uc2_matrix, uc8_moveword,
|
|
uc8_movemem, uc2_load_ucode, uc0_displaylist, uc0_enddl,
|
|
spnoop, uc1_rdphalf_1, uc0_setothermode_l, uc0_setothermode_h,
|
|
rdp_texrect, rdp_texrect, rdp_loadsync, rdp_pipesync,
|
|
rdp_tilesync, rdp_fullsync, rdp_setkeygb, rdp_setkeyr,
|
|
rdp_setconvert, rdp_setscissor, rdp_setprimdepth, rdp_setothermode,
|
|
rdp_loadtlut, uc2_rdphalf_2, rdp_settilesize, rdp_loadblock,
|
|
rdp_loadtile, rdp_settile, rdp_fillrect, rdp_setfillcolor,
|
|
rdp_setfogcolor, rdp_setblendcolor, rdp_setprimcolor, rdp_setenvcolor,
|
|
rdp_setcombine, rdp_settextureimage, rdp_setdepthimage, rdp_setcolorimage
|
|
},
|
|
};
|
|
|