daedalus/Source/HLEGraphics/uCodes/Ucode.cpp
2022-03-22 18:06:17 +11:00

863 lines
46 KiB
C++

/*
Copyright (C) 2010 StrmnNrmn
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 (at your option) 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "BuildOptions.h"
#include "Base/Types.h"
#include "HLEGraphics/uCodes/Ucode.h"
// Only the official ucode tables are defined here, 5 in total
// Please do not add any new ucode tables here, doing so will just waste memory
// If you want to add a custom ucode table, just patch any of official ucode tables with GBIMicrocode_SetCustomArray
//*************************************************************************************
//
//*************************************************************************************
const MicroCodeInstruction gNormalInstruction[5][256] =
{
// uCode 0 - RSP SW 2.0X
// Games: Super Mario 64, Tetrisphere, Demos
{
DLParser_GBI1_SpNoop, DLParser_GBI1_Mtx, DLParser_GBI1_Reserved, DLParser_GBI1_MoveMem,
DLParser_GBI0_Vtx, DLParser_GBI1_Reserved, DLParser_GBI1_DL, DLParser_GBI1_Reserved,
DLParser_GBI1_Reserved, DLParser_GBI1_Sprite2DBase, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//10
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//20
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//30
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//40
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//50
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//60
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//70
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//80
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//90
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//a0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//b0
DLParser_Nothing, DLParser_Nothing, DLParser_GBI1_RDPHalf_Cont, DLParser_GBI1_RDPHalf_2,
DLParser_GBI1_RDPHalf_1, DLParser_GBI0_Line3D, DLParser_GBI1_GeometryMode, DLParser_GBI1_GeometryMode,
DLParser_GBI1_EndDL, DLParser_GBI1_SetOtherModeL, DLParser_GBI1_SetOtherModeH, DLParser_GBI1_Texture,
DLParser_GBI1_MoveWord, DLParser_GBI1_PopMtx, DLParser_GBI0_CullDL, DLParser_GBI0_Tri1,
//c0
DLParser_GBI1_Noop, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP,
DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP,
//d0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//e0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_TexRect, DLParser_TexRectFlip, DLParser_RDPLoadSync, DLParser_RDPPipeSync,
DLParser_RDPTileSync, DLParser_RDPFullSync, DLParser_SetKeyGB, DLParser_SetKeyR,
DLParser_SetConvert, DLParser_SetScissor, DLParser_SetPrimDepth, DLParser_RDPSetOtherMode,
//f0
DLParser_LoadTLut, DLParser_Nothing, DLParser_SetTileSize, DLParser_LoadBlock,
DLParser_LoadTile, DLParser_SetTile, DLParser_FillRect, DLParser_SetFillColor,
DLParser_SetFogColor, DLParser_SetBlendColor, DLParser_SetPrimColor, DLParser_SetEnvColor,
DLParser_SetCombine, DLParser_SetTImg, DLParser_SetZImg, DLParser_SetCImg
},
// uCode 1 - F3DEX 1.XX
// 00-3f
// games: Mario Kart, Star Fox
{
DLParser_GBI1_SpNoop, DLParser_GBI1_Mtx, DLParser_GBI1_Reserved, DLParser_GBI1_MoveMem,
DLParser_GBI1_Vtx, DLParser_GBI1_Reserved, DLParser_GBI1_DL, DLParser_GBI1_Reserved,
DLParser_GBI1_Reserved, DLParser_GBI1_Sprite2DBase, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//10
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//20
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//30
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//40
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//50
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//60
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//70
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//80
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//90
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//a0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_GBI1_LoadUCode,
//b0
DLParser_GBI1_BranchZ, DLParser_GBI1_Tri2, DLParser_GBI1_ModifyVtx, DLParser_GBI1_RDPHalf_2,
DLParser_GBI1_RDPHalf_1,DLParser_GBI1_Line3D, DLParser_GBI1_GeometryMode,DLParser_GBI1_GeometryMode,
DLParser_GBI1_EndDL, DLParser_GBI1_SetOtherModeL,DLParser_GBI1_SetOtherModeH, DLParser_GBI1_Texture,
DLParser_GBI1_MoveWord, DLParser_GBI1_PopMtx, DLParser_GBI1_CullDL, DLParser_GBI1_Tri1,
//c0
DLParser_GBI1_Noop, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP,
DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP,
//d0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//e0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_TexRect, DLParser_TexRectFlip, DLParser_RDPLoadSync, DLParser_RDPPipeSync,
DLParser_RDPTileSync, DLParser_RDPFullSync, DLParser_SetKeyGB, DLParser_SetKeyR,
DLParser_SetConvert, DLParser_SetScissor, DLParser_SetPrimDepth, DLParser_RDPSetOtherMode,
//f0
DLParser_LoadTLut, DLParser_Nothing, DLParser_SetTileSize, DLParser_LoadBlock,
DLParser_LoadTile, DLParser_SetTile, DLParser_FillRect, DLParser_SetFillColor,
DLParser_SetFogColor, DLParser_SetBlendColor, DLParser_SetPrimColor, DLParser_SetEnvColor,
DLParser_SetCombine, DLParser_SetTImg, DLParser_SetZImg, DLParser_SetCImg
},
// Ucode:F3DEX_GBI_2
// Zelda and new games
{
DLParser_GBI1_SpNoop, DLParser_GBI2_Vtx, DLParser_GBI1_ModifyVtx, DLParser_GBI1_CullDL,
DLParser_GBI1_BranchZ, DLParser_GBI2_Tri1, DLParser_GBI2_Tri2, DLParser_GBI2_Quad,
DLParser_GBI2_Line3D, DLParser_S2DEX_Bg1cyc, DLParser_S2DEX_BgCopy, DLParser_S2DEX_ObjRendermode,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//10
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//20
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//30
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//40
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//50
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//60
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//70
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//80
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//90
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//a0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//b0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//c0
DLParser_GBI1_Noop, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP,
DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP,
//d0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_GBI2_DL_Count, DLParser_GBI2_DMA_IO, DLParser_GBI2_Texture,
DLParser_GBI2_PopMtx, DLParser_GBI2_GeometryMode, DLParser_GBI2_Mtx, DLParser_GBI2_MoveWord,
DLParser_GBI2_MoveMem, DLParser_GBI1_LoadUCode, DLParser_GBI1_DL, DLParser_GBI1_EndDL,
//e0
DLParser_GBI1_SpNoop, DLParser_GBI1_RDPHalf_1, DLParser_GBI2_SetOtherModeL,DLParser_GBI2_SetOtherModeH,
DLParser_TexRect, DLParser_TexRectFlip, DLParser_RDPLoadSync, DLParser_RDPPipeSync,
DLParser_RDPTileSync, DLParser_RDPFullSync, DLParser_SetKeyGB, DLParser_SetKeyR,
DLParser_SetConvert, DLParser_SetScissor, DLParser_SetPrimDepth, DLParser_RDPSetOtherMode,
//f0
DLParser_LoadTLut, DLParser_GBI1_RDPHalf_2, DLParser_SetTileSize, DLParser_LoadBlock,
DLParser_LoadTile, DLParser_SetTile, DLParser_FillRect, DLParser_SetFillColor,
DLParser_SetFogColor, DLParser_SetBlendColor, DLParser_SetPrimColor, DLParser_SetEnvColor,
DLParser_SetCombine, DLParser_SetTImg, DLParser_SetZImg, DLParser_SetCImg
},
// Ucode: S2DEX 1.--
// Games: Yoshi's Story
{
DLParser_GBI1_SpNoop, DLParser_S2DEX_Bg1cyc, DLParser_S2DEX_BgCopy, DLParser_S2DEX_ObjRectangle,
DLParser_S2DEX_ObjSprite, DLParser_S2DEX_ObjMoveMem, DLParser_GBI1_DL, DLParser_GBI1_Reserved,
DLParser_GBI1_Reserved, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//10
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//20
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//30
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//40
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//50
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//60
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//70
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//80
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//90
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//a0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_GBI1_LoadUCode,
//b0
DLParser_S2DEX_SelectDl, DLParser_S2DEX_ObjRendermode, DLParser_S2DEX_ObjRectangleR, DLParser_GBI1_RDPHalf_2,
DLParser_GBI1_RDPHalf_1, DLParser_GBI1_Line3D, DLParser_GBI1_GeometryMode,DLParser_GBI1_GeometryMode,
DLParser_GBI1_EndDL, DLParser_GBI1_SetOtherModeL, DLParser_GBI1_SetOtherModeH, DLParser_GBI1_Texture,
DLParser_GBI1_MoveWord, DLParser_GBI1_PopMtx, DLParser_GBI1_CullDL, DLParser_GBI1_Tri1,
//c0
DLParser_GBI1_Noop, DLParser_S2DEX_ObjLoadTxtr, DLParser_S2DEX_ObjLdtxSprite, DLParser_S2DEX_ObjLdtxRect,
DLParser_S2DEX_ObjLdtxRectR,DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP,
DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP,
//d0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//e0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_S2DEX_RDPHalf_0, DLParser_TexRectFlip, DLParser_RDPLoadSync, DLParser_RDPPipeSync,
DLParser_RDPTileSync, DLParser_RDPFullSync, DLParser_SetKeyGB, DLParser_SetKeyR,
DLParser_SetConvert, DLParser_SetScissor, DLParser_SetPrimDepth, DLParser_RDPSetOtherMode,
//f0
DLParser_LoadTLut, DLParser_Nothing, DLParser_SetTileSize, DLParser_LoadBlock,
DLParser_LoadTile, DLParser_SetTile, DLParser_FillRect, DLParser_SetFillColor,
DLParser_SetFogColor, DLParser_SetBlendColor, DLParser_SetPrimColor, DLParser_SetEnvColor,
DLParser_SetCombine, DLParser_SetTImg, DLParser_SetZImg, DLParser_SetCImg
},
// Ucode: S2DEX 2.--
// Games: Neon Evangelion, Kirby
{
DLParser_GBI1_Noop, DLParser_S2DEX_ObjRectangle, DLParser_S2DEX_ObjSprite, DLParser_GBI1_CullDL,
DLParser_S2DEX_SelectDl, DLParser_S2DEX_ObjLoadTxtr, DLParser_S2DEX_ObjLdtxSprite, DLParser_S2DEX_ObjLdtxRect,
DLParser_S2DEX_ObjLdtxRectR,DLParser_S2DEX_Bg1cyc, DLParser_S2DEX_BgCopy, DLParser_S2DEX_ObjRendermode,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//10
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//20
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//30
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//40
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//50
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//60
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//70
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//80
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//90
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//a0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//b0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
//c0
DLParser_GBI1_Noop, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP,
DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP, DLParser_TriRSP,
//d0
DLParser_Nothing, DLParser_Nothing, DLParser_Nothing, DLParser_Nothing,
DLParser_Nothing, DLParser_GBI2_DL_Count, DLParser_GBI2_DMA_IO, DLParser_GBI2_Texture,
DLParser_GBI2_PopMtx, DLParser_GBI2_GeometryMode, DLParser_S2DEX_ObjRectangleR,DLParser_GBI2_MoveWord,
DLParser_GBI2_MoveMem, DLParser_GBI1_LoadUCode, DLParser_GBI1_DL, DLParser_GBI1_EndDL,
//e0
DLParser_GBI1_SpNoop, DLParser_GBI1_RDPHalf_1, DLParser_GBI2_SetOtherModeL,DLParser_GBI2_SetOtherModeH,
DLParser_TexRect, DLParser_TexRectFlip, DLParser_RDPLoadSync, DLParser_RDPPipeSync,
DLParser_RDPTileSync, DLParser_RDPFullSync, DLParser_SetKeyGB, DLParser_SetKeyR,
DLParser_SetConvert, DLParser_SetScissor, DLParser_SetPrimDepth, DLParser_RDPSetOtherMode,
//f0
DLParser_LoadTLut, DLParser_GBI1_RDPHalf_2, DLParser_SetTileSize, DLParser_LoadBlock,
DLParser_LoadTile, DLParser_SetTile, DLParser_FillRect, DLParser_SetFillColor,
DLParser_SetFogColor, DLParser_SetBlendColor, DLParser_SetPrimColor, DLParser_SetEnvColor,
DLParser_SetCombine, DLParser_SetTImg, DLParser_SetZImg, DLParser_SetCImg
},
};
//*************************************************************************************
//
//*************************************************************************************
const char * gNormalInstructionName[5][256] =
{
// uCode 0 - RSP SW 2.0X
// Games: Super Mario 64, Tetrisphere, Demos
{
"G_GBI1_SpNoop", "G_GBI1_Mtx", "G_GBI1_Reserved", "G_GBI1_MoveMem",
"G_GBI0_Vtx", "G_GBI1_Reserved", "G_GBI1_DL", "G_GBI1_Reserved",
"G_GBI1_Reserved", "G_GBI1_Sprite2DBase", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//10
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//20
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//30
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//40
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//50
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//60
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//70
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//80
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//90
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//a0
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//b0
"G_Nothing", "G_GBI0_Tri4", "G_GBI1_RDPHalf_Cont", "G_GBI1_RDPHalf_2",
"G_GBI1_RDPHalf_1", "G_GBI1_Line3D", "G_GBI1_ClearGeometryMode", "G_GBI1_SetGeometryMode",
"G_GBI1_EndDL", "G_GBI1_SetOtherModeL", "G_GBI1_SetOtherModeH", "G_GBI1_Texture",
"G_GBI1_MoveWord", "G_GBI1_PopMtx", "G_GBI1_CullDL", "G_GBI1_Tri1",
//c0
"G_GBI1_Noop", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_TriRSP", "G_TriRSP", "G_TriRSP", "G_TriRSP",
"G_TriRSP", "G_TriRSP", "G_TriRSP", "G_TriRSP",
//d0
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//e0
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_TexRect", "G_TexRectFlip", "G_RDPLoadSync", "G_RDPPipeSync",
"G_RDPTileSync", "G_RDPFullSync", "G_SetKeyGB", "G_SetKeyR",
"G_SetConvert", "G_SetScissor", "G_SetPrimDepth", "G_RDPSetOtherMode",
//f0
"G_LoadTLut", "G_Nothing", "G_SetTileSize", "G_LoadBlock",
"G_LoadTile", "G_SetTile", "G_FillRect", "G_SetFillColor",
"G_SetFogColor", "G_SetBlendColor", "G_SetPrimColor", "G_SetEnvColor",
"G_SetCombine", "G_SetTImg", "G_SetZImg", "G_SetCImg"
},
//uCode "1 "- "F3DEX "1."XX
// 00-3f
//games": "Mario "Kart", "Star "Fox
{
"G_GBI1_SpNoop", "G_GBI1_Mtx", "G_GBI1_Reserved", "G_GBI1_MoveMem",
"G_GBI1_Vtx", "G_GBI1_Reserved", "G_GBI1_DL", "G_GBI1_Reserved",
"G_GBI1_Reserved", "G_GBI1_Sprite2DBase", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//40"-"7f": "unused
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//80"-"bf": "Immediate "commands
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_GBI1_LoadUCode",
"G_GBI1_BranchZ", "G_GBI1_Tri2", "G_GBI1_ModifyVtx", "G_GBI1_RDPHalf_2",
"G_GBI1_RDPHalf_1", "G_GBI1_Line3D", "G_GBI1_ClearGeometryMode", "G_GBI1_SetGeometryMode",
"G_GBI1_EndDL", "G_GBI1_SetOtherModeL", "G_GBI1_SetOtherModeH", "G_GBI1_Texture",
"G_GBI1_MoveWord", "G_GBI1_PopMtx", "G_GBI1_CullDL", "G_GBI1_Tri1",
//c0"-"ff": "RDP "commands
"G_GBI1_Noop", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_TriRSP", "G_TriRSP", "G_TriRSP", "G_TriRSP",
"G_TriRSP", "G_TriRSP", "G_TriRSP", "G_TriRSP",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_TexRect", "G_TexRectFlip", "G_RDPLoadSync", "G_RDPPipeSync",
"G_RDPTileSync", "G_RDPFullSync", "G_SetKeyGB", "G_SetKeyR",
"G_SetConvert", "G_SetScissor", "G_SetPrimDepth", "G_RDPSetOtherMode",
"G_LoadTLut", "G_Nothing", "G_SetTileSize", "G_LoadBlock",
"G_LoadTile", "G_SetTile", "G_FillRect", "G_SetFillColor",
"G_SetFogColor", "G_SetBlendColor", "G_SetPrimColor", "G_SetEnvColor",
"G_SetCombine", "G_SetTImg", "G_SetZImg", "G_SetCImg"
},
//Ucode":"F3DEX_GBI_2
//Zelda "and "new games
{
"G_GBI1_Noop", "G_GBI2_Vtx", "G_GBI1_ModifyVtx", "G_GBI2_CullDL",
"G_GBI1_BranchZ", "G_GBI2_Tri1", "G_GBI2_Tri2", "G_GBI2_Quad",
"G_GBI2_Line3D", "G_S2DEX_Bg1cyc", "G_S2DEX_BgCopy", "G_S2DEX_ObjRendermode",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//10
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//20
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//30
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//40
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//50
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//60
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//70
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//80
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//90
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//a0
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_GBI1_LoadUCode",
//b0
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//c0
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_TriRSP", "G_TriRSP", "G_TriRSP", "G_TriRSP",
"G_TriRSP", "G_TriRSP", "G_TriRSP", "G_TriRSP",
//d0
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_GBI2_DL_Count", "G_GBI2_DMA_IO", "G_GBI2_Texture",
"G_GBI2_PopMtx", "G_GBI2_GeometryMode", "G_GBI2_Mtx", "G_GBI2_MoveWord",
"G_GBI2_MoveMem", "G_GBI1_LoadUCode", "G_GBI2_DL", "G_GBI2_EndDL",
//e0
"G_GBI1_SpNoop", "G_GBI1_RDPHalf_1", "G_GBI2_SetOtherModeL", "G_GBI2_SetOtherModeH",
"G_TexRect", "G_TexRectFlip", "G_RDPLoadSync", "G_RDPPipeSync",
"G_RDPTileSync", "G_RDPFullSync", "G_SetKeyGB", "G_SetKeyR",
"G_SetConvert", "G_SetScissor", "G_SetPrimDepth", "G_RDPSetOtherMode",
//f0
"G_LoadTLut", "G_Nothing", "G_SetTileSize", "G_LoadBlock",
"G_LoadTile", "G_SetTile", "G_FillRect", "G_SetFillColor",
"G_SetFogColor", "G_SetBlendColor", "G_SetPrimColor", "G_SetEnvColor",
"G_SetCombine", "G_SetTImg", "G_SetZImg", "G_SetCImg"
},
// Ucode: S2DEX 1.--
// Games: Yoshi's Story
{
"G_GBI1_SpNoop", "G__S2DEX_Bg1cyc_2", "G_S2DEX_BgCopy", "G_S2DEX_ObjRectangle",
"G_S2DEX_ObjSprite", "G_S2DEX_ObjMoveMem", "G_GBI1_DL", "G_GBI1_Reserved",
"G_GBI1_Reserved", "G_GBI1_Sprite2DBase", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//40"-"7f": "unused
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//80"-"bf": "Immediate "commands
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_GBI1_LoadUCode",
"G_S2DEX_SelectDl", "G_S2DEX_ObjRendermode", "G_S2DEX_ObjRectangleR", "G_GBI1_RDPHalf_2",
"G_GBI1_RDPHalf_1", "G_GBI1_Line3D", "G_GBI1_ClearGeometryMode", "G_GBI1_SetGeometryMode",
"G_GBI1_EndDL", "G_GBI1_SetOtherModeL", "G_GBI1_SetOtherModeH", "G_GBI1_Texture",
"G_GBI1_MoveWord", "G_GBI1_PopMtx", "G_GBI1_CullDL", "G_GBI1_Tri1",
//c0
"G_GBI1_Noop", "G_S2DEX_ObjLoadTxtr", "G_S2DEX_ObjLdtxSprite", "G_S2DEX_ObjLdtxRect",
"G_S2DEX_ObjLdtxRectR","G_Nothing", "G_Nothing", "G_Nothing",
"G_TriRSP", "G_TriRSP", "G_TriRSP", "G_TriRSP",
"G_TriRSP", "G_TriRSP", "G_TriRSP", "G_TriRSP",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_TexRect", "G_TexRectFlip", "G_RDPLoadSync", "G_RDPPipeSync",
"G_RDPTileSync", "G_RDPFullSync", "G_SetKeyGB", "G_SetKeyR",
"G_SetConvert", "G_SetScissor", "G_SetPrimDepth", "G_RDPSetOtherMode",
"G_LoadTLut", "G_Nothing", "G_SetTileSize", "G_LoadBlock",
"G_LoadTile", "G_SetTile", "G_FillRect", "G_SetFillColor",
"G_SetFogColor", "G_SetBlendColor", "G_SetPrimColor", "G_SetEnvColor",
"G_SetCombine", "G_SetTImg", "G_SetZImg", "G_SetCImg"
},
// Ucode: S2DEX 2.--
// Games: Neon Evangelion, Kirby
{
"G_GBI1_Noop", "G_S2DEX_ObjRectangle", "G_S2DEX_ObjSprite", "G_GBI2_CullDL",
"G_S2DEX_SelectDl", "G_S2DEX_ObjLoadTxtr", "G_S2DEX_ObjLdtxSprite", "G_S2DEX_ObjLdtxRect",
"G_S2DEX_ObjLdtxRectR", "G_S2DEX_Bg1cyc", "G_S2DEX_BgCopy", "G_S2DEX_ObjRendermode",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//10
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//20
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//30
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//40
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//50
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//60
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//70
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//80
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//90
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//a0
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_GBI1_LoadUCode",
//b0
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
//c0
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_TriRSP", "G_TriRSP", "G_TriRSP", "G_TriRSP",
"G_TriRSP", "G_TriRSP", "G_TriRSP", "G_TriRSP",
//d0
"G_Nothing", "G_Nothing", "G_Nothing", "G_Nothing",
"G_Nothing", "G_GBI2_DL_Count", "G_GBI2_DMA_IO", "G_GBI2_Texture",
"G_GBI2_PopMtx", "G_GBI2_GeometryMode", "G_GBI2_Mtx", "G_GBI2_MoveWord",
"G_GBI2_MoveMem", "G_GBI1_LoadUCode", "G_GBI2_DL", "G_GBI2_EndDL",
//e0
"G_GBI1_SpNoop", "G_GBI1_RDPHalf_1", "G_GBI2_SetOtherModeL", "G_GBI2_SetOtherModeH",
"G_TexRect", "G_TexRectFlip", "G_RDPLoadSync", "G_RDPPipeSync",
"G_RDPTileSync", "G_RDPFullSync", "G_SetKeyGB", "G_SetKeyR",
"G_SetConvert", "G_SetScissor", "G_SetPrimDepth", "G_RDPSetOtherMode",
//f0
"G_LoadTLut", "G_Nothing", "G_SetTileSize", "G_LoadBlock",
"G_LoadTile", "G_SetTile", "G_FillRect", "G_SetFillColor",
"G_SetFogColor", "G_SetBlendColor", "G_SetPrimColor", "G_SetEnvColor",
"G_SetCombine", "G_SetTImg", "G_SetZImg", "G_SetCImg"
}
};