#pragma once

namespace vm { using namespace ps3; }

enum
{
	CELL_GCM_DISPLAY_HSYNC            = 1,
	CELL_GCM_DISPLAY_VSYNC            = 2,
	CELL_GCM_DISPLAY_HSYNC_WITH_NOISE = 3,
};

enum
{
	CELL_GCM_DEBUG_LEVEL0 = 1,
	CELL_GCM_DEBUG_LEVEL1 = 2,
	CELL_GCM_DEBUG_LEVEL2 = 3,
};

enum
{
	CELL_GCM_DISPLAY_FREQUENCY_59_94HZ = 1,
	CELL_GCM_DISPLAY_FREQUENCY_SCANOUT = 2,
	CELL_GCM_DISPLAY_FREQUENCY_DISABLE = 3,
};

enum
{
	CELL_GCM_VERTEX_S1      = 1,
	CELL_GCM_VERTEX_F       = 2,
	CELL_GCM_VERTEX_SF      = 3,
	CELL_GCM_VERTEX_UB      = 4,
	CELL_GCM_VERTEX_S32K    = 5,
	CELL_GCM_VERTEX_CMP     = 6,
	CELL_GCM_VERTEX_UB256   = 7,
};

enum
{
	CELL_GCM_DRAW_INDEX_ARRAY_TYPE_32 = 0,
	CELL_GCM_DRAW_INDEX_ARRAY_TYPE_16 = 1,
};

enum
{
	CELL_GCM_DISPLAY_FLIP_STATUS_        = 0,
	CELL_GCM_DISPLAY_FLIP_STATUS_WAITING = 1,
};

enum
{
	CELL_GCM_LOCATION_LOCAL = 0,
	CELL_GCM_LOCATION_MAIN  = 1,
};

enum
{
	CELL_GCM_FREQUENCY_MODULO = 1,
	CELL_GCM_FREQUENCY_DIVIDE = 0,
};

enum CellRescTableElement
{
	CELL_RESC_ELEMENT_HALF  = 0,
	CELL_RESC_ELEMENT_FLOAT = 1,
};

enum
{
	CELL_GCM_FLAT   = 0x1D00,
	CELL_GCM_SMOOTH = 0x1D01,
};

enum
{
	CELL_GCM_SYSTEM_MODE_IOMAP_512MB = 1,
};

// GCM Texture
enum
{
	// Color Flag
	CELL_GCM_TEXTURE_B8                     = 0x81,
	CELL_GCM_TEXTURE_A1R5G5B5               = 0x82,
	CELL_GCM_TEXTURE_A4R4G4B4               = 0x83,
	CELL_GCM_TEXTURE_R5G6B5                 = 0x84,
	CELL_GCM_TEXTURE_A8R8G8B8               = 0x85,
	CELL_GCM_TEXTURE_COMPRESSED_DXT1        = 0x86,
	CELL_GCM_TEXTURE_COMPRESSED_DXT23       = 0x87,
	CELL_GCM_TEXTURE_COMPRESSED_DXT45       = 0x88,
	CELL_GCM_TEXTURE_G8B8                   = 0x8B,
	CELL_GCM_TEXTURE_R6G5B5                 = 0x8F,
	CELL_GCM_TEXTURE_DEPTH24_D8             = 0x90,
	CELL_GCM_TEXTURE_DEPTH24_D8_FLOAT       = 0x91,
	CELL_GCM_TEXTURE_DEPTH16                = 0x92,
	CELL_GCM_TEXTURE_DEPTH16_FLOAT          = 0x93,
	CELL_GCM_TEXTURE_X16                    = 0x94,
	CELL_GCM_TEXTURE_Y16_X16                = 0x95,
	CELL_GCM_TEXTURE_R5G5B5A1               = 0x97,
	CELL_GCM_TEXTURE_COMPRESSED_HILO8       = 0x98,
	CELL_GCM_TEXTURE_COMPRESSED_HILO_S8     = 0x99,
	CELL_GCM_TEXTURE_W16_Z16_Y16_X16_FLOAT  = 0x9A,
	CELL_GCM_TEXTURE_W32_Z32_Y32_X32_FLOAT  = 0x9B,
	CELL_GCM_TEXTURE_X32_FLOAT              = 0x9C,
	CELL_GCM_TEXTURE_D1R5G5B5               = 0x9D,
	CELL_GCM_TEXTURE_D8R8G8B8               = 0x9E,
	CELL_GCM_TEXTURE_Y16_X16_FLOAT          = 0x9F,
	CELL_GCM_TEXTURE_COMPRESSED_B8R8_G8R8   = 0xAD,
	CELL_GCM_TEXTURE_COMPRESSED_R8B8_R8G8   = 0xAE,

	// Swizzle Flag
	CELL_GCM_TEXTURE_SZ = 0x00,
	CELL_GCM_TEXTURE_LN = 0x20,
	
	// Normalization Flag
	CELL_GCM_TEXTURE_NR = 0x00,
	CELL_GCM_TEXTURE_UN = 0x40,

	// Max Anisotropy
	CELL_GCM_TEXTURE_MAX_ANISO_1  = 0,
	CELL_GCM_TEXTURE_MAX_ANISO_2  = 1,
	CELL_GCM_TEXTURE_MAX_ANISO_4  = 2,
	CELL_GCM_TEXTURE_MAX_ANISO_6  = 3,
	CELL_GCM_TEXTURE_MAX_ANISO_8  = 4,
	CELL_GCM_TEXTURE_MAX_ANISO_10 = 5,
	CELL_GCM_TEXTURE_MAX_ANISO_12 = 6,
	CELL_GCM_TEXTURE_MAX_ANISO_16 = 7,

	// Wrap
	CELL_GCM_TEXTURE_WRAP                      = 1,
	CELL_GCM_TEXTURE_MIRROR                    = 2,
	CELL_GCM_TEXTURE_CLAMP_TO_EDGE             = 3,
	CELL_GCM_TEXTURE_BORDER                    = 4,
	CELL_GCM_TEXTURE_CLAMP                     = 5,
	CELL_GCM_TEXTURE_MIRROR_ONCE_CLAMP_TO_EDGE = 6,
	CELL_GCM_TEXTURE_MIRROR_ONCE_BORDER        = 7,
	CELL_GCM_TEXTURE_MIRROR_ONCE_CLAMP         = 8,

	// Logic Op
	CELL_GCM_CLEAR = 0x1500,
	CELL_GCM_AND = 0x1501,
	CELL_GCM_AND_REVERSE = 0x1502,
	CELL_GCM_COPY = 0x1503,
	CELL_GCM_AND_INVERTED = 0x1504,
	CELL_GCM_NOOP = 0x1505,
	CELL_GCM_XOR = 0x1506,
	CELL_GCM_OR = 0x1507,
	CELL_GCM_NOR = 0x1508,
	CELL_GCM_EQUIV = 0x1509,
	CELL_GCM_INVERT = 0x150A,
	CELL_GCM_OR_REVERSE = 0x150B,
	CELL_GCM_COPY_INVERTED = 0x150C,
	CELL_GCM_OR_INVERTED = 0x150D,
	CELL_GCM_NAND = 0x150E,
	CELL_GCM_SET = 0x150F,

	// Blend Op
	CELL_GCM_FUNC_ADD = 0x8006,
	CELL_GCM_MIN = 0x8007,
	CELL_GCM_MAX = 0x8008,
	CELL_GCM_FUNC_SUBTRACT = 0x800A,
	CELL_GCM_FUNC_REVERSE_SUBTRACT = 0x800B,
	CELL_GCM_FUNC_REVERSE_SUBTRACT_SIGNED = 0x0000F005,
	CELL_GCM_FUNC_ADD_SIGNED = 0x0000F006,
	CELL_GCM_FUNC_REVERSE_ADD_SIGNED = 0x0000F007,

	// Blend Factor
	CELL_GCM_ZERO = 0,
	CELL_GCM_ONE = 1,
	CELL_GCM_SRC_COLOR = 0x0300,
	CELL_GCM_ONE_MINUS_SRC_COLOR = 0x0301,
	CELL_GCM_SRC_ALPHA = 0x0302,
	CELL_GCM_ONE_MINUS_SRC_ALPHA = 0x0303,
	CELL_GCM_DST_ALPHA = 0x0304,
	CELL_GCM_ONE_MINUS_DST_ALPHA = 0x0305,
	CELL_GCM_DST_COLOR = 0x0306,
	CELL_GCM_ONE_MINUS_DST_COLOR = 0x0307,
	CELL_GCM_SRC_ALPHA_SATURATE = 0x0308,
	CELL_GCM_CONSTANT_COLOR = 0x8001,
	CELL_GCM_ONE_MINUS_CONSTANT_COLOR = 0x8002,
	CELL_GCM_CONSTANT_ALPHA = 0x8003,
	CELL_GCM_ONE_MINUS_CONSTANT_ALPHA = 0x8004,
	
	// Stencil/Depth Compare Function
	CELL_GCM_NEVER = 0x0200,
	CELL_GCM_LESS = 0x0201,
	CELL_GCM_EQUAL = 0x0202,
	CELL_GCM_LEQUAL = 0x0203,
	CELL_GCM_GREATER = 0x0204,
	CELL_GCM_NOTEQUAL = 0x0205,
	CELL_GCM_GEQUAL = 0x0206,
	CELL_GCM_ALWAYS = 0x0207,

	// Stencil Op
	CELL_GCM_KEEP = 0x1E00,
	CELL_GCM_REPLACE = 0x1E01,
	CELL_GCM_INCR = 0x1E02,
	CELL_GCM_DECR = 0x1E03,
	CELL_GCM_INCR_WRAP = 0x8507,
	CELL_GCM_DECR_WRAP = 0x8508,

	// Front Face
	CELL_GCM_FRONT = 0x0404,
	CELL_GCM_BACK = 0x0405,
	CELL_GCM_FRONT_AND_BACK = 0x0408,

	// Cull Face
	CELL_GCM_CW = 0x0900,
	CELL_GCM_CCW = 0x0901,

	// Texture Filter
	CELL_GCM_TEXTURE_NEAREST = 1,
	CELL_GCM_TEXTURE_LINEAR = 2,
	CELL_GCM_TEXTURE_NEAREST_NEAREST = 3,
	CELL_GCM_TEXTURE_LINEAR_NEAREST = 4,
	CELL_GCM_TEXTURE_NEAREST_LINEAR = 5,
	CELL_GCM_TEXTURE_LINEAR_LINEAR = 6,
	CELL_GCM_TEXTURE_CONVOLUTION_MIN = 7,
};

// GCM Surface
enum
{
	// Surface Target
	CELL_GCM_SURFACE_TARGET_NONE   = 0,
	CELL_GCM_SURFACE_TARGET_0      = 1,
	CELL_GCM_SURFACE_TARGET_1      = 2,
	CELL_GCM_SURFACE_TARGET_MRT1   = 0x13,
	CELL_GCM_SURFACE_TARGET_MRT2   = 0x17,
	CELL_GCM_SURFACE_TARGET_MRT3   = 0x1f,

	// Surface Depth
	CELL_GCM_SURFACE_Z16    = 1,
	CELL_GCM_SURFACE_Z24S8  = 2,

	// Surface Antialias
	CELL_GCM_SURFACE_CENTER_1            = 0,
	CELL_GCM_SURFACE_DIAGONAL_CENTERED_2 = 3,
	CELL_GCM_SURFACE_SQUARE_CENTERED_4   = 4,
	CELL_GCM_SURFACE_SQUARE_ROTATED_4    = 5,

	// Surface type
	CELL_GCM_SURFACE_PITCH    = 1,
	CELL_GCM_SURFACE_SWIZZLE  = 2,

	// Surface format
	CELL_GCM_SURFACE_X1R5G5B5_Z1R5G5B5 = 1,
	CELL_GCM_SURFACE_X1R5G5B5_O1R5G5B5 = 2,
	CELL_GCM_SURFACE_R5G6B5            = 3,
	CELL_GCM_SURFACE_X8R8G8B8_Z8R8G8B8 = 4,
	CELL_GCM_SURFACE_X8R8G8B8_O8R8G8B8 = 5,
	CELL_GCM_SURFACE_A8R8G8B8          = 8,
	CELL_GCM_SURFACE_B8                = 9,
	CELL_GCM_SURFACE_G8B8              = 10,
	CELL_GCM_SURFACE_F_W16Z16Y16X16    = 11,
	CELL_GCM_SURFACE_F_W32Z32Y32X32    = 12,
	CELL_GCM_SURFACE_F_X32             = 13,
	CELL_GCM_SURFACE_X8B8G8R8_Z8B8G8R8 = 14,
	CELL_GCM_SURFACE_X8B8G8R8_O8B8G8R8 = 15,
	CELL_GCM_SURFACE_A8B8G8R8          = 16,

};

// GCM Reports
enum
{
	CELL_GCM_ZPASS_PIXEL_CNT   = 1,
	CELL_GCM_ZCULL_STATS       = 2,
	CELL_GCM_ZCULL_STATS1      = 3,
	CELL_GCM_ZCULL_STATS2      = 4,
	CELL_GCM_ZCULL_STATS3      = 5,
};

// GPU Class Handles
enum
{
	CELL_GCM_CONTEXT_DMA_MEMORY_FRAME_BUFFER   = 0xFEED0000, // Local memory
	CELL_GCM_CONTEXT_DMA_MEMORY_HOST_BUFFER    = 0xFEED0001, // Main memory
	CELL_GCM_CONTEXT_SURFACE2D                 = 0x313371C3,
	CELL_GCM_CONTEXT_SWIZZLE2D                 = 0x31337A73,
	CELL_GCM_CONTEXT_DMA_TO_MEMORY_GET_REPORT  = 0x66626660,
	CELL_GCM_CONTEXT_DMA_REPORT_LOCATION_MAIN  = 0xBAD68000,
	CELL_GCM_CONTEXT_DMA_NOTIFY_MAIN_0         = 0x6660420F,
};

// User Clip Values
enum
{
	CELL_GCM_USER_CLIP_PLANE_DISABLE = 0,
	CELL_GCM_USER_CLIP_PLANE_ENABLE_LT = 1,
	CELL_GCM_USER_CLIP_PLANE_ENABLE_GE = 2,
};

struct CellGcmControl
{
	atomic_be_t<u32> put;
	atomic_be_t<u32> get;
	atomic_be_t<u32> ref;
};

struct CellGcmConfig
{
	be_t<u32> localAddress;
	be_t<u32> ioAddress;
	be_t<u32> localSize;
	be_t<u32> ioSize;
	be_t<u32> memoryFrequency;
	be_t<u32> coreFrequency;
};

struct CellGcmContextData;

typedef s32(CellGcmContextCallback)(vm::ptr<CellGcmContextData>, u32);

struct CellGcmContextData
{
	vm::bptr<u32> begin;
	vm::bptr<u32> end;
	vm::bptr<u32> current;
	vm::bptr<CellGcmContextCallback> callback;
};

struct gcmInfo
{
	u32 config_addr;
	u32 context_addr;
	u32 control_addr;
	u32 label_addr;
};

struct CellGcmSurface
{
	u8 type;
	u8 antialias;
	u8 colorFormat;
	u8 colorTarget;
	u8 colorLocation[4];
	be_t<u32> colorOffset[4];
	be_t<u32> colorPitch[4];
	u8 depthFormat;
	u8 depthLocation;
	u8 _padding[2];
	be_t<u32> depthOffset;
	be_t<u32> depthPitch;
	be_t<u16> width;
	be_t<u16> height;
	be_t<u16> x;
	be_t<u16> y;
};

struct CellGcmReportData
{
	u64 timer;
	u32 value;
	u32 padding;
};

struct CellGcmZcullInfo
{
	u32 region;
	u32 size;
	u32 start;
	u32 offset;
	u32 status0;
	u32 status1;
};

struct CellGcmDisplayInfo
{
	be_t<u32> offset;
	be_t<u32> pitch;
	be_t<u32> width;
	be_t<u32> height;
};

struct CellGcmTileInfo
{
	be_t<u32> tile;
	be_t<u32> limit;
	be_t<u32> pitch;
	be_t<u32> format;
};

struct GcmZcullInfo
{
	u32 m_offset;
	u32 m_width;
	u32 m_height;
	u32 m_cullStart;
	u32 m_zFormat;
	u32 m_aaFormat;
	u32 m_zcullDir;
	u32 m_zcullFormat;
	u32 m_sFunc;
	u32 m_sRef;
	u32 m_sMask;
	bool m_binded;

	GcmZcullInfo()
	{
		memset(this, 0, sizeof(*this));
	}

	CellGcmZcullInfo Pack()
	{
		CellGcmZcullInfo ret;

		ret.region = (1<<0) | (m_zFormat<<4) | (m_aaFormat<<8);
		ret.size = ((m_width>>6)<<22) | ((m_height>>6)<<6);
		ret.start = m_cullStart&(~0xFFF);
		ret.offset = m_offset;
		ret.status0 = (m_zcullDir<<1) | (m_zcullFormat<<2) | ((m_sFunc&0xF)<<12) | (m_sRef<<16) | (m_sMask<<24);
		ret.status1 = (0x2000<<0) | (0x20<<16);

		return ret;
	}
};

struct GcmTileInfo
{
	u8 m_location;
	u32 m_offset;
	u32 m_size;
	u32 m_pitch;
	u8 m_comp;
	u16 m_base;
	u8 m_bank;
	bool m_binded;

	GcmTileInfo()
	{
		memset(this, 0, sizeof(*this));
	}

	CellGcmTileInfo Pack()
	{
		CellGcmTileInfo ret;

		ret.tile = (m_location + 1) | (m_bank << 4) | ((m_offset / 0x10000) << 16) | (m_location << 31);
		ret.limit = ((m_offset + m_size - 1) / 0x10000) << 16 | (m_location << 31);
		ret.pitch = (m_pitch / 0x100) << 8;
		ret.format = m_base | ((m_base + ((m_size - 1) / 0x10000)) << 13) | (m_comp << 26) | (1 << 30);

		return ret;
	}
};

enum
{
	// NV40_CHANNEL_DMA (NV406E)
	NV406E_SET_REFERENCE                     = 0x00000050,
	NV406E_SET_CONTEXT_DMA_SEMAPHORE         = 0x00000060,
	NV406E_SEMAPHORE_OFFSET                  = 0x00000064,
	NV406E_SEMAPHORE_ACQUIRE                 = 0x00000068,
	NV406E_SEMAPHORE_RELEASE                 = 0x0000006c,

	// NV40_CURIE_PRIMITIVE	(NV4097)
	NV4097_SET_OBJECT                        = 0x00000000,
	NV4097_NO_OPERATION                      = 0x00000100,
	NV4097_NOTIFY                            = 0x00000104,
	NV4097_WAIT_FOR_IDLE                     = 0x00000110,
	NV4097_PM_TRIGGER                        = 0x00000140,
	NV4097_SET_CONTEXT_DMA_NOTIFIES          = 0x00000180,
	NV4097_SET_CONTEXT_DMA_A                 = 0x00000184,
	NV4097_SET_CONTEXT_DMA_B                 = 0x00000188,
	NV4097_SET_CONTEXT_DMA_COLOR_B           = 0x0000018c,
	NV4097_SET_CONTEXT_DMA_STATE             = 0x00000190,
	NV4097_SET_CONTEXT_DMA_COLOR_A           = 0x00000194,
	NV4097_SET_CONTEXT_DMA_ZETA              = 0x00000198,
	NV4097_SET_CONTEXT_DMA_VERTEX_A          = 0x0000019c,
	NV4097_SET_CONTEXT_DMA_VERTEX_B          = 0x000001a0,
	NV4097_SET_CONTEXT_DMA_SEMAPHORE         = 0x000001a4,
	NV4097_SET_CONTEXT_DMA_REPORT            = 0x000001a8,
	NV4097_SET_CONTEXT_DMA_CLIP_ID           = 0x000001ac,
	NV4097_SET_CONTEXT_DMA_CULL_DATA         = 0x000001b0,
	NV4097_SET_CONTEXT_DMA_COLOR_C           = 0x000001b4,
	NV4097_SET_CONTEXT_DMA_COLOR_D           = 0x000001b8,
	NV4097_SET_SURFACE_CLIP_HORIZONTAL       = 0x00000200,
	NV4097_SET_SURFACE_CLIP_VERTICAL         = 0x00000204,
	NV4097_SET_SURFACE_FORMAT                = 0x00000208,
	NV4097_SET_SURFACE_PITCH_A               = 0x0000020c,
	NV4097_SET_SURFACE_COLOR_AOFFSET         = 0x00000210,
	NV4097_SET_SURFACE_ZETA_OFFSET           = 0x00000214,
	NV4097_SET_SURFACE_COLOR_BOFFSET         = 0x00000218,
	NV4097_SET_SURFACE_PITCH_B               = 0x0000021c,
	NV4097_SET_SURFACE_COLOR_TARGET          = 0x00000220,
	NV4097_SET_SURFACE_PITCH_Z               = 0x0000022c,
	NV4097_INVALIDATE_ZCULL                  = 0x00000234,
	NV4097_SET_CYLINDRICAL_WRAP              = 0x00000238,
	NV4097_SET_CYLINDRICAL_WRAP1             = 0x0000023c,
	NV4097_SET_SURFACE_PITCH_C               = 0x00000280,
	NV4097_SET_SURFACE_PITCH_D               = 0x00000284,
	NV4097_SET_SURFACE_COLOR_COFFSET         = 0x00000288,
	NV4097_SET_SURFACE_COLOR_DOFFSET         = 0x0000028c,
	NV4097_SET_WINDOW_OFFSET                 = 0x000002b8,
	NV4097_SET_WINDOW_CLIP_TYPE              = 0x000002bc,
	NV4097_SET_WINDOW_CLIP_HORIZONTAL        = 0x000002c0,
	NV4097_SET_WINDOW_CLIP_VERTICAL          = 0x000002c4,
	NV4097_SET_DITHER_ENABLE                 = 0x00000300,
	NV4097_SET_ALPHA_TEST_ENABLE             = 0x00000304,
	NV4097_SET_ALPHA_FUNC                    = 0x00000308,
	NV4097_SET_ALPHA_REF                     = 0x0000030c,
	NV4097_SET_BLEND_ENABLE                  = 0x00000310,
	NV4097_SET_BLEND_FUNC_SFACTOR            = 0x00000314,
	NV4097_SET_BLEND_FUNC_DFACTOR            = 0x00000318,
	NV4097_SET_BLEND_COLOR                   = 0x0000031c,
	NV4097_SET_BLEND_EQUATION                = 0x00000320,
	NV4097_SET_COLOR_MASK                    = 0x00000324,
	NV4097_SET_STENCIL_TEST_ENABLE           = 0x00000328,
	NV4097_SET_STENCIL_MASK                  = 0x0000032c,
	NV4097_SET_STENCIL_FUNC                  = 0x00000330,
	NV4097_SET_STENCIL_FUNC_REF              = 0x00000334,
	NV4097_SET_STENCIL_FUNC_MASK             = 0x00000338,
	NV4097_SET_STENCIL_OP_FAIL               = 0x0000033c,
	NV4097_SET_STENCIL_OP_ZFAIL              = 0x00000340,
	NV4097_SET_STENCIL_OP_ZPASS              = 0x00000344,
	NV4097_SET_TWO_SIDED_STENCIL_TEST_ENABLE = 0x00000348,
	NV4097_SET_BACK_STENCIL_MASK             = 0x0000034c,
	NV4097_SET_BACK_STENCIL_FUNC             = 0x00000350,
	NV4097_SET_BACK_STENCIL_FUNC_REF         = 0x00000354,
	NV4097_SET_BACK_STENCIL_FUNC_MASK        = 0x00000358,
	NV4097_SET_BACK_STENCIL_OP_FAIL          = 0x0000035c,
	NV4097_SET_BACK_STENCIL_OP_ZFAIL         = 0x00000360,
	NV4097_SET_BACK_STENCIL_OP_ZPASS         = 0x00000364,
	NV4097_SET_SHADE_MODE                    = 0x00000368,
	NV4097_SET_BLEND_ENABLE_MRT              = 0x0000036c,
	NV4097_SET_COLOR_MASK_MRT                = 0x00000370,
	NV4097_SET_LOGIC_OP_ENABLE               = 0x00000374,
	NV4097_SET_LOGIC_OP                      = 0x00000378,
	NV4097_SET_BLEND_COLOR2                  = 0x0000037c,
	NV4097_SET_DEPTH_BOUNDS_TEST_ENABLE      = 0x00000380,
	NV4097_SET_DEPTH_BOUNDS_MIN              = 0x00000384,
	NV4097_SET_DEPTH_BOUNDS_MAX              = 0x00000388,
	NV4097_SET_CLIP_MIN                      = 0x00000394,
	NV4097_SET_CLIP_MAX                      = 0x00000398,
	NV4097_SET_CONTROL0                      = 0x000003b0,
	NV4097_SET_LINE_WIDTH                    = 0x000003b8,
	NV4097_SET_LINE_SMOOTH_ENABLE            = 0x000003bc,
	NV4097_SET_ANISO_SPREAD                  = 0x000003c0,
	NV4097_SET_SCISSOR_HORIZONTAL            = 0x000008c0,
	NV4097_SET_SCISSOR_VERTICAL              = 0x000008c4,
	NV4097_SET_FOG_MODE                      = 0x000008cc,
	NV4097_SET_FOG_PARAMS                    = 0x000008d0,
	NV4097_SET_SHADER_PROGRAM                = 0x000008e4,
	NV4097_SET_VERTEX_TEXTURE_OFFSET         = 0x00000900,
	NV4097_SET_VERTEX_TEXTURE_FORMAT         = 0x00000904,
	NV4097_SET_VERTEX_TEXTURE_ADDRESS        = 0x00000908,
	NV4097_SET_VERTEX_TEXTURE_CONTROL0       = 0x0000090c,
	NV4097_SET_VERTEX_TEXTURE_CONTROL3       = 0x00000910,
	NV4097_SET_VERTEX_TEXTURE_FILTER         = 0x00000914,
	NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT     = 0x00000918,
	NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR   = 0x0000091c,
	NV4097_SET_VIEWPORT_HORIZONTAL           = 0x00000a00,
	NV4097_SET_VIEWPORT_VERTICAL             = 0x00000a04,
	NV4097_SET_POINT_CENTER_MODE             = 0x00000a0c,
	NV4097_ZCULL_SYNC                        = 0x00000a1c,
	NV4097_SET_VIEWPORT_OFFSET               = 0x00000a20,
	NV4097_SET_VIEWPORT_SCALE                = 0x00000a30,
	NV4097_SET_POLY_OFFSET_POINT_ENABLE      = 0x00000a60,
	NV4097_SET_POLY_OFFSET_LINE_ENABLE       = 0x00000a64,
	NV4097_SET_POLY_OFFSET_FILL_ENABLE       = 0x00000a68,
	NV4097_SET_DEPTH_FUNC                    = 0x00000a6c,
	NV4097_SET_DEPTH_MASK                    = 0x00000a70,
	NV4097_SET_DEPTH_TEST_ENABLE             = 0x00000a74,
	NV4097_SET_POLYGON_OFFSET_SCALE_FACTOR   = 0x00000a78,
	NV4097_SET_POLYGON_OFFSET_BIAS           = 0x00000a7c,
	NV4097_SET_VERTEX_DATA_SCALED4S_M        = 0x00000a80,
	NV4097_SET_TEXTURE_CONTROL2              = 0x00000b00,
	NV4097_SET_TEX_COORD_CONTROL             = 0x00000b40,
	NV4097_SET_TRANSFORM_PROGRAM             = 0x00000b80,
	NV4097_SET_SPECULAR_ENABLE               = 0x00001428,
	NV4097_SET_TWO_SIDE_LIGHT_EN             = 0x0000142c,
	NV4097_CLEAR_ZCULL_SURFACE               = 0x00001438,
	NV4097_SET_PERFORMANCE_PARAMS            = 0x00001450,
	NV4097_SET_FLAT_SHADE_OP                 = 0x00001454,
	NV4097_SET_EDGE_FLAG                     = 0x0000145c,
	NV4097_SET_USER_CLIP_PLANE_CONTROL       = 0x00001478,
	NV4097_SET_POLYGON_STIPPLE               = 0x0000147c,
	NV4097_SET_POLYGON_STIPPLE_PATTERN       = 0x00001480,
	NV4097_SET_VERTEX_DATA3F_M               = 0x00001500,
	NV4097_SET_VERTEX_DATA_ARRAY_OFFSET      = 0x00001680,
	NV4097_INVALIDATE_VERTEX_CACHE_FILE      = 0x00001710,
	NV4097_INVALIDATE_VERTEX_FILE            = 0x00001714,
	NV4097_PIPE_NOP                          = 0x00001718,
	NV4097_SET_VERTEX_DATA_BASE_OFFSET       = 0x00001738,
	NV4097_SET_VERTEX_DATA_BASE_INDEX        = 0x0000173c,
	NV4097_SET_VERTEX_DATA_ARRAY_FORMAT      = 0x00001740,
	NV4097_CLEAR_REPORT_VALUE                = 0x000017c8,
	NV4097_SET_ZPASS_PIXEL_COUNT_ENABLE      = 0x000017cc,
	NV4097_GET_REPORT                        = 0x00001800,
	NV4097_SET_ZCULL_STATS_ENABLE            = 0x00001804,
	NV4097_SET_BEGIN_END                     = 0x00001808,
	NV4097_ARRAY_ELEMENT16                   = 0x0000180c,
	NV4097_ARRAY_ELEMENT32                   = 0x00001810,
	NV4097_DRAW_ARRAYS                       = 0x00001814,
	NV4097_INLINE_ARRAY                      = 0x00001818,
	NV4097_SET_INDEX_ARRAY_ADDRESS           = 0x0000181c,
	NV4097_SET_INDEX_ARRAY_DMA               = 0x00001820,
	NV4097_DRAW_INDEX_ARRAY                  = 0x00001824,
	NV4097_SET_FRONT_POLYGON_MODE            = 0x00001828,
	NV4097_SET_BACK_POLYGON_MODE             = 0x0000182c,
	NV4097_SET_CULL_FACE                     = 0x00001830,
	NV4097_SET_FRONT_FACE                    = 0x00001834,
	NV4097_SET_POLY_SMOOTH_ENABLE            = 0x00001838,
	NV4097_SET_CULL_FACE_ENABLE              = 0x0000183c,
	NV4097_SET_TEXTURE_CONTROL3              = 0x00001840,
	NV4097_SET_VERTEX_DATA2F_M               = 0x00001880,
	NV4097_SET_VERTEX_DATA2S_M               = 0x00001900,
	NV4097_SET_VERTEX_DATA4UB_M              = 0x00001940,
	NV4097_SET_VERTEX_DATA4S_M               = 0x00001980,
	NV4097_SET_TEXTURE_OFFSET                = 0x00001a00,
	NV4097_SET_TEXTURE_FORMAT                = 0x00001a04,
	NV4097_SET_TEXTURE_ADDRESS               = 0x00001a08,
	NV4097_SET_TEXTURE_CONTROL0              = 0x00001a0c,
	NV4097_SET_TEXTURE_CONTROL1              = 0x00001a10,
	NV4097_SET_TEXTURE_FILTER                = 0x00001a14,
	NV4097_SET_TEXTURE_IMAGE_RECT            = 0x00001a18,
	NV4097_SET_TEXTURE_BORDER_COLOR          = 0x00001a1c,
	NV4097_SET_VERTEX_DATA4F_M               = 0x00001c00,
	NV4097_SET_COLOR_KEY_COLOR               = 0x00001d00,
	NV4097_SET_SHADER_CONTROL                = 0x00001d60,
	NV4097_SET_INDEXED_CONSTANT_READ_LIMITS  = 0x00001d64,
	NV4097_SET_SEMAPHORE_OFFSET              = 0x00001d6c,
	NV4097_BACK_END_WRITE_SEMAPHORE_RELEASE  = 0x00001d70,
	NV4097_TEXTURE_READ_SEMAPHORE_RELEASE    = 0x00001d74,
	NV4097_SET_ZMIN_MAX_CONTROL              = 0x00001d78,
	NV4097_SET_ANTI_ALIASING_CONTROL         = 0x00001d7c,
	NV4097_SET_SURFACE_COMPRESSION           = 0x00001d80,
	NV4097_SET_ZCULL_EN                      = 0x00001d84,
	NV4097_SET_SHADER_WINDOW                 = 0x00001d88,
	NV4097_SET_ZSTENCIL_CLEAR_VALUE          = 0x00001d8c,
	NV4097_SET_COLOR_CLEAR_VALUE             = 0x00001d90,
	NV4097_CLEAR_SURFACE                     = 0x00001d94,
	NV4097_SET_CLEAR_RECT_HORIZONTAL         = 0x00001d98,
	NV4097_SET_CLEAR_RECT_VERTICAL           = 0x00001d9c,
	NV4097_SET_CLIP_ID_TEST_ENABLE           = 0x00001da4,
	NV4097_SET_RESTART_INDEX_ENABLE          = 0x00001dac,
	NV4097_SET_RESTART_INDEX                 = 0x00001db0,
	NV4097_SET_LINE_STIPPLE                  = 0x00001db4,
	NV4097_SET_LINE_STIPPLE_PATTERN          = 0x00001db8,
	NV4097_SET_VERTEX_DATA1F_M               = 0x00001e40,
	NV4097_SET_TRANSFORM_EXECUTION_MODE      = 0x00001e94,
	NV4097_SET_RENDER_ENABLE                 = 0x00001e98,
	NV4097_SET_TRANSFORM_PROGRAM_LOAD        = 0x00001e9c,
	NV4097_SET_TRANSFORM_PROGRAM_START       = 0x00001ea0,
	NV4097_SET_ZCULL_CONTROL0                = 0x00001ea4,
	NV4097_SET_ZCULL_CONTROL1                = 0x00001ea8,
	NV4097_SET_SCULL_CONTROL                 = 0x00001eac,
	NV4097_SET_POINT_SIZE                    = 0x00001ee0,
	NV4097_SET_POINT_PARAMS_ENABLE           = 0x00001ee4,
	NV4097_SET_POINT_SPRITE_CONTROL          = 0x00001ee8,
	NV4097_SET_TRANSFORM_TIMEOUT             = 0x00001ef8,
	NV4097_SET_TRANSFORM_CONSTANT_LOAD       = 0x00001efc,
	NV4097_SET_TRANSFORM_CONSTANT            = 0x00001f00,
	NV4097_SET_FREQUENCY_DIVIDER_OPERATION   = 0x00001fc0,
	NV4097_SET_ATTRIB_COLOR                  = 0x00001fc4,
	NV4097_SET_ATTRIB_TEX_COORD              = 0x00001fc8,
	NV4097_SET_ATTRIB_TEX_COORD_EX           = 0x00001fcc,
	NV4097_SET_ATTRIB_UCLIP0                 = 0x00001fd0,
	NV4097_SET_ATTRIB_UCLIP1                 = 0x00001fd4,
	NV4097_INVALIDATE_L2                     = 0x00001fd8,
	NV4097_SET_REDUCE_DST_COLOR              = 0x00001fe0,
	NV4097_SET_NO_PARANOID_TEXTURE_FETCHES   = 0x00001fe8,
	NV4097_SET_SHADER_PACKER                 = 0x00001fec,
	NV4097_SET_VERTEX_ATTRIB_INPUT_MASK      = 0x00001ff0,
	NV4097_SET_VERTEX_ATTRIB_OUTPUT_MASK     = 0x00001ff4,
	NV4097_SET_TRANSFORM_BRANCH_BITS         = 0x00001ff8,

	// NV03_MEMORY_TO_MEMORY_FORMAT	(NV0039)
	NV0039_SET_OBJECT                        = 0x00002000,
	NV0039_SET_CONTEXT_DMA_NOTIFIES          = 0x00002180,
	NV0039_SET_CONTEXT_DMA_BUFFER_IN         = 0x00002184,
	NV0039_SET_CONTEXT_DMA_BUFFER_OUT        = 0x00002188,
	NV0039_OFFSET_IN                         = 0x0000230C,
	NV0039_OFFSET_OUT                        = 0x00002310,
	NV0039_PITCH_IN                          = 0x00002314,
	NV0039_PITCH_OUT                         = 0x00002318,
	NV0039_LINE_LENGTH_IN                    = 0x0000231C,
	NV0039_LINE_COUNT                        = 0x00002320,
	NV0039_FORMAT                            = 0x00002324,
	NV0039_BUFFER_NOTIFY                     = 0x00002328,

	// NV30_CONTEXT_SURFACES_2D	(NV3062)
	NV3062_SET_OBJECT                        = 0x00006000,
	NV3062_SET_CONTEXT_DMA_NOTIFIES          = 0x00006180,
	NV3062_SET_CONTEXT_DMA_IMAGE_SOURCE      = 0x00006184,
	NV3062_SET_CONTEXT_DMA_IMAGE_DESTIN      = 0x00006188,
	NV3062_SET_COLOR_FORMAT                  = 0x00006300,
	NV3062_SET_PITCH                         = 0x00006304,
	NV3062_SET_OFFSET_SOURCE                 = 0x00006308,
	NV3062_SET_OFFSET_DESTIN                 = 0x0000630C,

	// NV30_CONTEXT_SURFACE_SWIZZLED (NV309E)
	NV309E_SET_OBJECT                        = 0x00008000,
	NV309E_SET_CONTEXT_DMA_NOTIFIES          = 0x00008180,
	NV309E_SET_CONTEXT_DMA_IMAGE             = 0x00008184,
	NV309E_SET_FORMAT                        = 0x00008300,
	NV309E_SET_OFFSET                        = 0x00008304,

	// NV30_IMAGE_FROM_CPU (NV308A)
	NV308A_SET_OBJECT                        = 0x0000A000,
	NV308A_SET_CONTEXT_DMA_NOTIFIES          = 0x0000A180,
	NV308A_SET_CONTEXT_COLOR_KEY             = 0x0000A184,
	NV308A_SET_CONTEXT_CLIP_RECTANGLE        = 0x0000A188,
	NV308A_SET_CONTEXT_PATTERN               = 0x0000A18C,
	NV308A_SET_CONTEXT_ROP                   = 0x0000A190,
	NV308A_SET_CONTEXT_BETA1                 = 0x0000A194,
	NV308A_SET_CONTEXT_BETA4                 = 0x0000A198,
	NV308A_SET_CONTEXT_SURFACE               = 0x0000A19C,
	NV308A_SET_COLOR_CONVERSION              = 0x0000A2F8,
	NV308A_SET_OPERATION                     = 0x0000A2FC,
	NV308A_SET_COLOR_FORMAT                  = 0x0000A300,
	NV308A_POINT                             = 0x0000A304,
	NV308A_SIZE_OUT                          = 0x0000A308,
	NV308A_SIZE_IN                           = 0x0000A30C,
	NV308A_COLOR                             = 0x0000A400,

	// NV30_SCALED_IMAGE_FROM_MEMORY (NV3089)
	NV3089_SET_OBJECT                        = 0x0000C000,
	NV3089_SET_CONTEXT_DMA_NOTIFIES          = 0x0000C180,
	NV3089_SET_CONTEXT_DMA_IMAGE             = 0x0000C184,
	NV3089_SET_CONTEXT_PATTERN               = 0x0000C188,
	NV3089_SET_CONTEXT_ROP                   = 0x0000C18C,
	NV3089_SET_CONTEXT_BETA1                 = 0x0000C190,
	NV3089_SET_CONTEXT_BETA4                 = 0x0000C194,
	NV3089_SET_CONTEXT_SURFACE               = 0x0000C198,
	NV3089_SET_COLOR_CONVERSION              = 0x0000C2FC,
	NV3089_SET_COLOR_FORMAT                  = 0x0000C300,
	NV3089_SET_OPERATION                     = 0x0000C304,
	NV3089_CLIP_POINT                        = 0x0000C308,
	NV3089_CLIP_SIZE                         = 0x0000C30C,
	NV3089_IMAGE_OUT_POINT                   = 0x0000C310,
	NV3089_IMAGE_OUT_SIZE                    = 0x0000C314,
	NV3089_DS_DX                             = 0x0000C318,
	NV3089_DT_DY                             = 0x0000C31C,
	NV3089_IMAGE_IN_SIZE                     = 0x0000C400,
	NV3089_IMAGE_IN_FORMAT                   = 0x0000C404,
	NV3089_IMAGE_IN_OFFSET                   = 0x0000C408,
	NV3089_IMAGE_IN                          = 0x0000C40C,

	GCM_SET_USER_COMMAND                     = 0x0000EB00,
};

static const std::string GetMethodName(const u32 id)
{
	struct MethodName
	{
		const u32 id;
		const std::string& name;
	} static const METHOD_NAME_LIST[] = {
		{ NV4097_NO_OPERATION , "NV4097_NO_OPERATION" },
		{ NV4097_NOTIFY , "NV4097_NOTIFY" },
		{ NV4097_WAIT_FOR_IDLE , "NV4097_WAIT_FOR_IDLE" },
		{ NV4097_PM_TRIGGER , "NV4097_PM_TRIGGER" },
		{ NV4097_SET_CONTEXT_DMA_NOTIFIES , "NV4097_SET_CONTEXT_DMA_NOTIFIES" },
		{ NV4097_SET_CONTEXT_DMA_A , "NV4097_SET_CONTEXT_DMA_A" },
		{ NV4097_SET_CONTEXT_DMA_B , "NV4097_SET_CONTEXT_DMA_B" },
		{ NV4097_SET_CONTEXT_DMA_COLOR_B , "NV4097_SET_CONTEXT_DMA_COLOR_B" },
		{ NV4097_SET_CONTEXT_DMA_STATE , "NV4097_SET_CONTEXT_DMA_STATE" },
		{ NV4097_SET_CONTEXT_DMA_COLOR_A , "NV4097_SET_CONTEXT_DMA_COLOR_A" },
		{ NV4097_SET_CONTEXT_DMA_ZETA , "NV4097_SET_CONTEXT_DMA_ZETA" },
		{ NV4097_SET_CONTEXT_DMA_VERTEX_A , "NV4097_SET_CONTEXT_DMA_VERTEX_A" },
		{ NV4097_SET_CONTEXT_DMA_VERTEX_B , "NV4097_SET_CONTEXT_DMA_VERTEX_B" },
		{ NV4097_SET_CONTEXT_DMA_SEMAPHORE , "NV4097_SET_CONTEXT_DMA_SEMAPHORE" },
		{ NV4097_SET_CONTEXT_DMA_REPORT , "NV4097_SET_CONTEXT_DMA_REPORT" },
		{ NV4097_SET_CONTEXT_DMA_CLIP_ID , "NV4097_SET_CONTEXT_DMA_CLIP_ID" },
		{ NV4097_SET_CONTEXT_DMA_CULL_DATA , "NV4097_SET_CONTEXT_DMA_CULL_DATA" },
		{ NV4097_SET_CONTEXT_DMA_COLOR_C , "NV4097_SET_CONTEXT_DMA_COLOR_C" },
		{ NV4097_SET_CONTEXT_DMA_COLOR_D , "NV4097_SET_CONTEXT_DMA_COLOR_D" },
		{ NV4097_SET_SURFACE_CLIP_HORIZONTAL , "NV4097_SET_SURFACE_CLIP_HORIZONTAL" },
		{ NV4097_SET_SURFACE_CLIP_VERTICAL , "NV4097_SET_SURFACE_CLIP_VERTICAL" },
		{ NV4097_SET_SURFACE_FORMAT , "NV4097_SET_SURFACE_FORMAT" },
		{ NV4097_SET_SURFACE_PITCH_A , "NV4097_SET_SURFACE_PITCH_A" },
		{ NV4097_SET_SURFACE_COLOR_AOFFSET , "NV4097_SET_SURFACE_COLOR_AOFFSET" },
		{ NV4097_SET_SURFACE_ZETA_OFFSET , "NV4097_SET_SURFACE_ZETA_OFFSET" },
		{ NV4097_SET_SURFACE_COLOR_BOFFSET , "NV4097_SET_SURFACE_COLOR_BOFFSET" },
		{ NV4097_SET_SURFACE_PITCH_B , "NV4097_SET_SURFACE_PITCH_B" },
		{ NV4097_SET_SURFACE_COLOR_TARGET , "NV4097_SET_SURFACE_COLOR_TARGET" },
		{ NV4097_SET_SURFACE_PITCH_Z , "NV4097_SET_SURFACE_PITCH_Z" },
		{ NV4097_INVALIDATE_ZCULL , "NV4097_INVALIDATE_ZCULL" },
		{ NV4097_SET_CYLINDRICAL_WRAP , "NV4097_SET_CYLINDRICAL_WRAP" },
		{ NV4097_SET_CYLINDRICAL_WRAP1 , "NV4097_SET_CYLINDRICAL_WRAP1" },
		{ NV4097_SET_SURFACE_PITCH_C , "NV4097_SET_SURFACE_PITCH_C" },
		{ NV4097_SET_SURFACE_PITCH_D , "NV4097_SET_SURFACE_PITCH_D" },
		{ NV4097_SET_SURFACE_COLOR_COFFSET , "NV4097_SET_SURFACE_COLOR_COFFSET" },
		{ NV4097_SET_SURFACE_COLOR_DOFFSET , "NV4097_SET_SURFACE_COLOR_DOFFSET" },
		{ NV4097_SET_WINDOW_OFFSET , "NV4097_SET_WINDOW_OFFSET" },
		{ NV4097_SET_DITHER_ENABLE , "NV4097_SET_DITHER_ENABLE" },
		{ NV4097_SET_ALPHA_TEST_ENABLE , "NV4097_SET_ALPHA_TEST_ENABLE" },
		{ NV4097_SET_ALPHA_FUNC , "NV4097_SET_ALPHA_FUNC" },
		{ NV4097_SET_ALPHA_REF , "NV4097_SET_ALPHA_REF" },
		{ NV4097_SET_BLEND_ENABLE , "NV4097_SET_BLEND_ENABLE" },
		{ NV4097_SET_BLEND_FUNC_SFACTOR , "NV4097_SET_BLEND_FUNC_SFACTOR" },
		{ NV4097_SET_BLEND_FUNC_DFACTOR , "NV4097_SET_BLEND_FUNC_DFACTOR" },
		{ NV4097_SET_BLEND_COLOR , "NV4097_SET_BLEND_COLOR" },
		{ NV4097_SET_BLEND_EQUATION , "NV4097_SET_BLEND_EQUATION" },
		{ NV4097_SET_COLOR_MASK , "NV4097_SET_COLOR_MASK" },
		{ NV4097_SET_STENCIL_TEST_ENABLE , "NV4097_SET_STENCIL_TEST_ENABLE" },
		{ NV4097_SET_STENCIL_MASK , "NV4097_SET_STENCIL_MASK" },
		{ NV4097_SET_STENCIL_FUNC , "NV4097_SET_STENCIL_FUNC" },
		{ NV4097_SET_STENCIL_FUNC_REF , "NV4097_SET_STENCIL_FUNC_REF" },
		{ NV4097_SET_STENCIL_FUNC_MASK , "NV4097_SET_STENCIL_FUNC_MASK" },
		{ NV4097_SET_STENCIL_OP_FAIL , "NV4097_SET_STENCIL_OP_FAIL" },
		{ NV4097_SET_STENCIL_OP_ZFAIL , "NV4097_SET_STENCIL_OP_ZFAIL" },
		{ NV4097_SET_STENCIL_OP_ZPASS , "NV4097_SET_STENCIL_OP_ZPASS" },
		{ NV4097_SET_TWO_SIDED_STENCIL_TEST_ENABLE , "NV4097_SET_TWO_SIDED_STENCIL_TEST_ENABLE" },
		{ NV4097_SET_BACK_STENCIL_MASK , "NV4097_SET_BACK_STENCIL_MASK" },
		{ NV4097_SET_BACK_STENCIL_FUNC , "NV4097_SET_BACK_STENCIL_FUNC" },
		{ NV4097_SET_BACK_STENCIL_FUNC_REF , "NV4097_SET_BACK_STENCIL_FUNC_REF" },
		{ NV4097_SET_BACK_STENCIL_FUNC_MASK , "NV4097_SET_BACK_STENCIL_FUNC_MASK" },
		{ NV4097_SET_BACK_STENCIL_OP_FAIL , "NV4097_SET_BACK_STENCIL_OP_FAIL" },
		{ NV4097_SET_BACK_STENCIL_OP_ZFAIL , "NV4097_SET_BACK_STENCIL_OP_ZFAIL" },
		{ NV4097_SET_BACK_STENCIL_OP_ZPASS , "NV4097_SET_BACK_STENCIL_OP_ZPASS" },
		{ NV4097_SET_SHADE_MODE , "NV4097_SET_SHADE_MODE" },
		{ NV4097_SET_BLEND_ENABLE_MRT , "NV4097_SET_BLEND_ENABLE_MRT" },
		{ NV4097_SET_COLOR_MASK_MRT , "NV4097_SET_COLOR_MASK_MRT" },
		{ NV4097_SET_LOGIC_OP_ENABLE , "NV4097_SET_LOGIC_OP_ENABLE" },
		{ NV4097_SET_LOGIC_OP , "NV4097_SET_LOGIC_OP" },
		{ NV4097_SET_BLEND_COLOR2 , "NV4097_SET_BLEND_COLOR2" },
		{ NV4097_SET_DEPTH_BOUNDS_TEST_ENABLE , "NV4097_SET_DEPTH_BOUNDS_TEST_ENABLE" },
		{ NV4097_SET_DEPTH_BOUNDS_MIN , "NV4097_SET_DEPTH_BOUNDS_MIN" },
		{ NV4097_SET_DEPTH_BOUNDS_MAX , "NV4097_SET_DEPTH_BOUNDS_MAX" },
		{ NV4097_SET_CLIP_MIN , "NV4097_SET_CLIP_MIN" },
		{ NV4097_SET_CLIP_MAX , "NV4097_SET_CLIP_MAX" },
		{ NV4097_SET_CONTROL0 , "NV4097_SET_CONTROL0" },
		{ NV4097_SET_LINE_WIDTH , "NV4097_SET_LINE_WIDTH" },
		{ NV4097_SET_LINE_SMOOTH_ENABLE , "NV4097_SET_LINE_SMOOTH_ENABLE" },
		{ NV4097_SET_ANISO_SPREAD , "NV4097_SET_ANISO_SPREAD" },
		{ NV4097_SET_ANISO_SPREAD + 4 , "NV4097_SET_ANISO_SPREAD + 4" },
		{ NV4097_SET_ANISO_SPREAD + 8 , "NV4097_SET_ANISO_SPREAD + 8" },
		{ NV4097_SET_ANISO_SPREAD + 12 , "NV4097_SET_ANISO_SPREAD + 12" },
		{ NV4097_SET_ANISO_SPREAD + 16 , "NV4097_SET_ANISO_SPREAD + 16" },
		{ NV4097_SET_ANISO_SPREAD + 20 , "NV4097_SET_ANISO_SPREAD + 20" },
		{ NV4097_SET_ANISO_SPREAD + 24 , "NV4097_SET_ANISO_SPREAD + 24" },
		{ NV4097_SET_ANISO_SPREAD + 28 , "NV4097_SET_ANISO_SPREAD + 28" },
		{ NV4097_SET_ANISO_SPREAD + 32 , "NV4097_SET_ANISO_SPREAD + 32" },
		{ NV4097_SET_ANISO_SPREAD + 36 , "NV4097_SET_ANISO_SPREAD + 36" },
		{ NV4097_SET_ANISO_SPREAD + 40 , "NV4097_SET_ANISO_SPREAD + 40" },
		{ NV4097_SET_ANISO_SPREAD + 44 , "NV4097_SET_ANISO_SPREAD + 44" },
		{ NV4097_SET_ANISO_SPREAD + 48 , "NV4097_SET_ANISO_SPREAD + 48" },
		{ NV4097_SET_ANISO_SPREAD + 52 , "NV4097_SET_ANISO_SPREAD + 52" },
		{ NV4097_SET_ANISO_SPREAD + 56 , "NV4097_SET_ANISO_SPREAD + 56" },
		{ NV4097_SET_ANISO_SPREAD + 60 , "NV4097_SET_ANISO_SPREAD + 60" },
		{ NV4097_SET_SCISSOR_HORIZONTAL , "NV4097_SET_SCISSOR_HORIZONTAL" },
		{ NV4097_SET_SCISSOR_VERTICAL , "NV4097_SET_SCISSOR_VERTICAL" },
		{ NV4097_SET_FOG_MODE , "NV4097_SET_FOG_MODE" },
		{ NV4097_SET_FOG_PARAMS , "NV4097_SET_FOG_PARAMS" },
		{ NV4097_SET_FOG_PARAMS + 4 , "NV4097_SET_FOG_PARAMS + 4" },
		{ NV4097_SET_FOG_PARAMS + 8 , "NV4097_SET_FOG_PARAMS + 8" },
		{ NV4097_SET_SHADER_PROGRAM , "NV4097_SET_SHADER_PROGRAM" },
		{ NV4097_SET_VERTEX_TEXTURE_OFFSET , "NV4097_SET_VERTEX_TEXTURE_OFFSET" },
		{ NV4097_SET_VERTEX_TEXTURE_FORMAT , "NV4097_SET_VERTEX_TEXTURE_FORMAT" },
		{ NV4097_SET_VERTEX_TEXTURE_ADDRESS , "NV4097_SET_VERTEX_TEXTURE_ADDRESS" },
		{ NV4097_SET_VERTEX_TEXTURE_CONTROL0 , "NV4097_SET_VERTEX_TEXTURE_CONTROL0" },
		{ NV4097_SET_VERTEX_TEXTURE_CONTROL3 , "NV4097_SET_VERTEX_TEXTURE_CONTROL3" },
		{ NV4097_SET_VERTEX_TEXTURE_FILTER , "NV4097_SET_VERTEX_TEXTURE_FILTER" },
		{ NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT , "NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT" },
		{ NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR , "NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR" },
		{ NV4097_SET_VERTEX_TEXTURE_OFFSET + 0x20, "NV4097_SET_VERTEX_TEXTURE_OFFSET + 0x20" },
		{ NV4097_SET_VERTEX_TEXTURE_FORMAT + 0x20, "NV4097_SET_VERTEX_TEXTURE_FORMAT + 0x20" },
		{ NV4097_SET_VERTEX_TEXTURE_ADDRESS + 0x20, "NV4097_SET_VERTEX_TEXTURE_ADDRESS + 0x20" },
		{ NV4097_SET_VERTEX_TEXTURE_CONTROL0 + 0x20, "NV4097_SET_VERTEX_TEXTURE_CONTROL0 + 0x20" },
		{ NV4097_SET_VERTEX_TEXTURE_CONTROL3 + 0x20, "NV4097_SET_VERTEX_TEXTURE_CONTROL3 + 0x20" },
		{ NV4097_SET_VERTEX_TEXTURE_FILTER + 0x20, "NV4097_SET_VERTEX_TEXTURE_FILTER + 0x20" },
		{ NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT + 0x20, "NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT + 0x20" },
		{ NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR + 0x20, "NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR + 0x20" },
		{ NV4097_SET_VERTEX_TEXTURE_OFFSET + 0x40, "NV4097_SET_VERTEX_TEXTURE_OFFSET + 0x40" },
		{ NV4097_SET_VERTEX_TEXTURE_FORMAT + 0x40, "NV4097_SET_VERTEX_TEXTURE_FORMAT + 0x40" },
		{ NV4097_SET_VERTEX_TEXTURE_ADDRESS + 0x40, "NV4097_SET_VERTEX_TEXTURE_ADDRESS + 0x40" },
		{ NV4097_SET_VERTEX_TEXTURE_CONTROL0 + 0x40, "NV4097_SET_VERTEX_TEXTURE_CONTROL0 + 0x40" },
		{ NV4097_SET_VERTEX_TEXTURE_CONTROL3 + 0x40, "NV4097_SET_VERTEX_TEXTURE_CONTROL3 + 0x40" },
		{ NV4097_SET_VERTEX_TEXTURE_FILTER + 0x40, "NV4097_SET_VERTEX_TEXTURE_FILTER + 0x40" },
		{ NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT + 0x40, "NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT + 0x40" },
		{ NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR + 0x40, "NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR + 0x40" },
		{ NV4097_SET_VERTEX_TEXTURE_OFFSET + 0x60, "NV4097_SET_VERTEX_TEXTURE_OFFSET + 0x60" },
		{ NV4097_SET_VERTEX_TEXTURE_FORMAT + 0x60, "NV4097_SET_VERTEX_TEXTURE_FORMAT + 0x60" },
		{ NV4097_SET_VERTEX_TEXTURE_ADDRESS + 0x60, "NV4097_SET_VERTEX_TEXTURE_ADDRESS + 0x60" },
		{ NV4097_SET_VERTEX_TEXTURE_CONTROL0 + 0x60, "NV4097_SET_VERTEX_TEXTURE_CONTROL0 + 0x60" },
		{ NV4097_SET_VERTEX_TEXTURE_CONTROL3 + 0x60, "NV4097_SET_VERTEX_TEXTURE_CONTROL3 + 0x60" },
		{ NV4097_SET_VERTEX_TEXTURE_FILTER + 0x60, "NV4097_SET_VERTEX_TEXTURE_FILTER + 0x60" },
		{ NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT + 0x60, "NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT + 0x60" },
		{ NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR + 0x60, "NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR + 0x60" },
		{ NV4097_SET_VIEWPORT_HORIZONTAL , "NV4097_SET_VIEWPORT_HORIZONTAL" },
		{ NV4097_SET_VIEWPORT_VERTICAL , "NV4097_SET_VIEWPORT_VERTICAL" },
		{ NV4097_SET_VIEWPORT_OFFSET , "NV4097_SET_VIEWPORT_OFFSET" },
		{ NV4097_SET_VIEWPORT_SCALE , "NV4097_SET_VIEWPORT_SCALE" },
		{ NV4097_SET_POLY_OFFSET_LINE_ENABLE , "NV4097_SET_POLY_OFFSET_LINE_ENABLE" },
		{ NV4097_SET_POLY_OFFSET_FILL_ENABLE , "NV4097_SET_POLY_OFFSET_FILL_ENABLE" },
		{ NV4097_SET_DEPTH_FUNC , "NV4097_SET_DEPTH_FUNC" },
		{ NV4097_SET_DEPTH_MASK , "NV4097_SET_DEPTH_MASK" },
		{ NV4097_SET_DEPTH_TEST_ENABLE , "NV4097_SET_DEPTH_TEST_ENABLE" },
		{ NV4097_SET_POLYGON_OFFSET_SCALE_FACTOR , "NV4097_SET_POLYGON_OFFSET_SCALE_FACTOR" },
		{ NV4097_SET_POLYGON_OFFSET_BIAS , "NV4097_SET_POLYGON_OFFSET_BIAS" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M , "NV4097_SET_VERTEX_DATA_SCALED4S_M" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 4 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 4" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 8 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 8" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 12 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 12" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 16 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 16" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 20 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 20" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 24 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 24" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 28 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 28" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 32 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 32" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 36 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 36" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 40, "NV4097_SET_VERTEX_DATA_SCALED4S_M + 40" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 44 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 44" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 48 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 48" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 52 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 52" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 56 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 56" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 60 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 60" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 64 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 64" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 68 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 68" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 72 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 72" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 76 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 76" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 80 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 80" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 84 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 84" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 88 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 88" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 92 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 92" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 96 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 96" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 100 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 100" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 104 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 104" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 108 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 108" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 112 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 112" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 116 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 116" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 120 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 120" },
		{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 124 , "NV4097_SET_VERTEX_DATA_SCALED4S_M + 124" },
		{ NV4097_SET_TEXTURE_CONTROL2 , "NV4097_SET_TEXTURE_CONTROL2" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 4 , "NV4097_SET_TEXTURE_CONTROL2 + 4" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 8 , "NV4097_SET_TEXTURE_CONTROL2 + 8" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 12 , "NV4097_SET_TEXTURE_CONTROL2 + 12" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 16 , "NV4097_SET_TEXTURE_CONTROL2 + 16" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 20 , "NV4097_SET_TEXTURE_CONTROL2 + 20" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 24 , "NV4097_SET_TEXTURE_CONTROL2 + 24" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 28 , "NV4097_SET_TEXTURE_CONTROL2 + 28" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 32 , "NV4097_SET_TEXTURE_CONTROL2 + 32" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 36 , "NV4097_SET_TEXTURE_CONTROL2 + 36" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 40 , "NV4097_SET_TEXTURE_CONTROL2 + 40" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 44 , "NV4097_SET_TEXTURE_CONTROL2 + 44" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 48 , "NV4097_SET_TEXTURE_CONTROL2 + 48" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 52 , "NV4097_SET_TEXTURE_CONTROL2 + 52" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 56 , "NV4097_SET_TEXTURE_CONTROL2 + 56" },
		{ NV4097_SET_TEXTURE_CONTROL2 + 60 , "NV4097_SET_TEXTURE_CONTROL2 + 60" },
		{ NV4097_SET_TEX_COORD_CONTROL , "NV4097_SET_TEX_COORD_CONTROL" },
		{ NV4097_SET_TEX_COORD_CONTROL + 4 , "NV4097_SET_TEX_COORD_CONTROL + 4" },
		{ NV4097_SET_TEX_COORD_CONTROL + 8 , "NV4097_SET_TEX_COORD_CONTROL + 8" },
		{ NV4097_SET_TEX_COORD_CONTROL + 12 , "NV4097_SET_TEX_COORD_CONTROL + 12" },
		{ NV4097_SET_TEX_COORD_CONTROL + 16 , "NV4097_SET_TEX_COORD_CONTROL + 16" },
		{ NV4097_SET_TEX_COORD_CONTROL + 20 , "NV4097_SET_TEX_COORD_CONTROL + 20" },
		{ NV4097_SET_TEX_COORD_CONTROL + 24 , "NV4097_SET_TEX_COORD_CONTROL + 24" },
		{ NV4097_SET_TEX_COORD_CONTROL + 28 , "NV4097_SET_TEX_COORD_CONTROL + 28" },
		{ NV4097_SET_TEX_COORD_CONTROL + 32 , "NV4097_SET_TEX_COORD_CONTROL + 32" },
		{ NV4097_SET_TEX_COORD_CONTROL + 36 , "NV4097_SET_TEX_COORD_CONTROL + 36" },
		{ NV4097_SET_TRANSFORM_PROGRAM , "NV4097_SET_TRANSFORM_PROGRAM" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 4 , "NV4097_SET_TRANSFORM_PROGRAM + 4" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 8 , "NV4097_SET_TRANSFORM_PROGRAM + 8" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 12 , "NV4097_SET_TRANSFORM_PROGRAM + 12" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 16 , "NV4097_SET_TRANSFORM_PROGRAM + 16" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 20 , "NV4097_SET_TRANSFORM_PROGRAM + 20" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 24 , "NV4097_SET_TRANSFORM_PROGRAM + 24" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 28 , "NV4097_SET_TRANSFORM_PROGRAM + 28" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 32 , "NV4097_SET_TRANSFORM_PROGRAM + 32" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 36 , "NV4097_SET_TRANSFORM_PROGRAM + 36" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 40 , "NV4097_SET_TRANSFORM_PROGRAM + 40" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 44 , "NV4097_SET_TRANSFORM_PROGRAM + 44" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 48 , "NV4097_SET_TRANSFORM_PROGRAM + 48" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 52 , "NV4097_SET_TRANSFORM_PROGRAM + 52" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 56 , "NV4097_SET_TRANSFORM_PROGRAM + 56" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 60 , "NV4097_SET_TRANSFORM_PROGRAM + 60" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 64 , "NV4097_SET_TRANSFORM_PROGRAM + 64" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 68 , "NV4097_SET_TRANSFORM_PROGRAM + 68" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 72 , "NV4097_SET_TRANSFORM_PROGRAM + 72" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 76 , "NV4097_SET_TRANSFORM_PROGRAM + 76" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 80 , "NV4097_SET_TRANSFORM_PROGRAM + 80" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 84 , "NV4097_SET_TRANSFORM_PROGRAM + 84" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 88 , "NV4097_SET_TRANSFORM_PROGRAM + 88" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 92 , "NV4097_SET_TRANSFORM_PROGRAM + 92" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 96 , "NV4097_SET_TRANSFORM_PROGRAM + 96" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 100 , "NV4097_SET_TRANSFORM_PROGRAM + 100" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 104 , "NV4097_SET_TRANSFORM_PROGRAM + 104" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 108 , "NV4097_SET_TRANSFORM_PROGRAM + 108" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 112 , "NV4097_SET_TRANSFORM_PROGRAM + 112" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 116 , "NV4097_SET_TRANSFORM_PROGRAM + 116" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 120 , "NV4097_SET_TRANSFORM_PROGRAM + 120" },
		{ NV4097_SET_TRANSFORM_PROGRAM + 124 , "NV4097_SET_TRANSFORM_PROGRAM + 124" },
		{ NV4097_SET_TWO_SIDE_LIGHT_EN , "NV4097_SET_TWO_SIDE_LIGHT_EN" },
		{ NV4097_CLEAR_ZCULL_SURFACE , "NV4097_CLEAR_ZCULL_SURFACE" },
		{ NV4097_SET_USER_CLIP_PLANE_CONTROL , "NV4097_SET_USER_CLIP_PLANE_CONTROL" },
		{ NV4097_SET_POLYGON_STIPPLE , "NV4097_SET_POLYGON_STIPPLE" },
		{ NV4097_SET_POLYGON_STIPPLE_PATTERN , "NV4097_SET_POLYGON_STIPPLE_PATTERN" },
		{ NV4097_SET_VERTEX_DATA3F_M , "NV4097_SET_VERTEX_DATA3F_M" },
		{ NV4097_SET_VERTEX_DATA3F_M + 4 , "NV4097_SET_VERTEX_DATA3F_M + 4" },
		{ NV4097_SET_VERTEX_DATA3F_M + 8 , "NV4097_SET_VERTEX_DATA3F_M + 8" },
		{ NV4097_SET_VERTEX_DATA3F_M + 12 , "NV4097_SET_VERTEX_DATA3F_M + 12" },
		{ NV4097_SET_VERTEX_DATA3F_M + 16 , "NV4097_SET_VERTEX_DATA3F_M + 16" },
		{ NV4097_SET_VERTEX_DATA3F_M + 20 , "NV4097_SET_VERTEX_DATA3F_M + 20" },
		{ NV4097_SET_VERTEX_DATA3F_M + 24 , "NV4097_SET_VERTEX_DATA3F_M + 24" },
		{ NV4097_SET_VERTEX_DATA3F_M + 28 , "NV4097_SET_VERTEX_DATA3F_M + 28" },
		{ NV4097_SET_VERTEX_DATA3F_M + 32 , "NV4097_SET_VERTEX_DATA3F_M + 32" },
		{ NV4097_SET_VERTEX_DATA3F_M + 36 , "NV4097_SET_VERTEX_DATA3F_M + 36" },
		{ NV4097_SET_VERTEX_DATA3F_M + 40 , "NV4097_SET_VERTEX_DATA3F_M + 40" },
		{ NV4097_SET_VERTEX_DATA3F_M + 44 , "NV4097_SET_VERTEX_DATA3F_M + 44" },
		{ NV4097_SET_VERTEX_DATA3F_M + 48 , "NV4097_SET_VERTEX_DATA3F_M + 48" },
		{ NV4097_SET_VERTEX_DATA3F_M + 52 , "NV4097_SET_VERTEX_DATA3F_M + 52" },
		{ NV4097_SET_VERTEX_DATA3F_M + 56 , "NV4097_SET_VERTEX_DATA3F_M + 56" },
		{ NV4097_SET_VERTEX_DATA3F_M + 60 , "NV4097_SET_VERTEX_DATA3F_M + 60" },
		{ NV4097_SET_VERTEX_DATA3F_M + 64 , "NV4097_SET_VERTEX_DATA3F_M + 64" },
		{ NV4097_SET_VERTEX_DATA3F_M + 68 , "NV4097_SET_VERTEX_DATA3F_M + 68" },
		{ NV4097_SET_VERTEX_DATA3F_M + 72 , "NV4097_SET_VERTEX_DATA3F_M + 72" },
		{ NV4097_SET_VERTEX_DATA3F_M + 76 , "NV4097_SET_VERTEX_DATA3F_M + 76" },
		{ NV4097_SET_VERTEX_DATA3F_M + 80 , "NV4097_SET_VERTEX_DATA3F_M + 80" },
		{ NV4097_SET_VERTEX_DATA3F_M + 84 , "NV4097_SET_VERTEX_DATA3F_M + 84" },
		{ NV4097_SET_VERTEX_DATA3F_M + 88 , "NV4097_SET_VERTEX_DATA3F_M + 88" },
		{ NV4097_SET_VERTEX_DATA3F_M + 92 , "NV4097_SET_VERTEX_DATA3F_M + 92" },
		{ NV4097_SET_VERTEX_DATA3F_M + 96 , "NV4097_SET_VERTEX_DATA3F_M + 96" },
		{ NV4097_SET_VERTEX_DATA3F_M + 100 , "NV4097_SET_VERTEX_DATA3F_M + 100" },
		{ NV4097_SET_VERTEX_DATA3F_M + 104 , "NV4097_SET_VERTEX_DATA3F_M + 104" },
		{ NV4097_SET_VERTEX_DATA3F_M + 108 , "NV4097_SET_VERTEX_DATA3F_M + 108" },
		{ NV4097_SET_VERTEX_DATA3F_M + 112 , "NV4097_SET_VERTEX_DATA3F_M + 112" },
		{ NV4097_SET_VERTEX_DATA3F_M + 116 , "NV4097_SET_VERTEX_DATA3F_M + 116" },
		{ NV4097_SET_VERTEX_DATA3F_M + 120 , "NV4097_SET_VERTEX_DATA3F_M + 120" },
		{ NV4097_SET_VERTEX_DATA3F_M + 124 , "NV4097_SET_VERTEX_DATA3F_M + 124" },
		{ NV4097_SET_VERTEX_DATA3F_M + 128 , "NV4097_SET_VERTEX_DATA3F_M + 128" },
		{ NV4097_SET_VERTEX_DATA3F_M + 132 , "NV4097_SET_VERTEX_DATA3F_M + 132" },
		{ NV4097_SET_VERTEX_DATA3F_M + 136 , "NV4097_SET_VERTEX_DATA3F_M + 136" },
		{ NV4097_SET_VERTEX_DATA3F_M + 140 , "NV4097_SET_VERTEX_DATA3F_M + 140" },
		{ NV4097_SET_VERTEX_DATA3F_M + 144 , "NV4097_SET_VERTEX_DATA3F_M + 144" },
		{ NV4097_SET_VERTEX_DATA3F_M + 148 , "NV4097_SET_VERTEX_DATA3F_M + 148" },
		{ NV4097_SET_VERTEX_DATA3F_M + 152 , "NV4097_SET_VERTEX_DATA3F_M + 152" },
		{ NV4097_SET_VERTEX_DATA3F_M + 156 , "NV4097_SET_VERTEX_DATA3F_M + 156" },
		{ NV4097_SET_VERTEX_DATA3F_M + 160 , "NV4097_SET_VERTEX_DATA3F_M + 160" },
		{ NV4097_SET_VERTEX_DATA3F_M + 164 , "NV4097_SET_VERTEX_DATA3F_M + 164" },
		{ NV4097_SET_VERTEX_DATA3F_M + 168 , "NV4097_SET_VERTEX_DATA3F_M + 168" },
		{ NV4097_SET_VERTEX_DATA3F_M + 172 , "NV4097_SET_VERTEX_DATA3F_M + 172" },
		{ NV4097_SET_VERTEX_DATA3F_M + 176 , "NV4097_SET_VERTEX_DATA3F_M + 176" },
		{ NV4097_SET_VERTEX_DATA3F_M + 180 , "NV4097_SET_VERTEX_DATA3F_M + 180" },
		{ NV4097_SET_VERTEX_DATA3F_M + 184 , "NV4097_SET_VERTEX_DATA3F_M + 184" },
		{ NV4097_SET_VERTEX_DATA3F_M + 188 , "NV4097_SET_VERTEX_DATA3F_M + 188" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 4 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 4" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 8 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 8" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 12 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 12" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 16 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 16" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 20 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 20" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 24 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 24" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 28 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 28" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 32 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 32" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 36 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 36" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 40 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 40" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 44 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 44" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 48 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 48" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 52 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 52" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 56 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 56" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 60 , "NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 60" },
		{ NV4097_INVALIDATE_VERTEX_CACHE_FILE , "NV4097_INVALIDATE_VERTEX_CACHE_FILE" },
		{ NV4097_INVALIDATE_VERTEX_FILE , "NV4097_INVALIDATE_VERTEX_FILE" },
		{ NV4097_SET_VERTEX_DATA_BASE_OFFSET , "NV4097_SET_VERTEX_DATA_BASE_OFFSET" },
		{ NV4097_SET_VERTEX_DATA_BASE_INDEX , "NV4097_SET_VERTEX_DATA_BASE_INDEX" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 4 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 4" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 8 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 8" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 12 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 12" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 16 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 16" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 20 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 20" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 24 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 24" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 28 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 28" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 32 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 32" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 36 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 36" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 40 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 40" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 44 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 44" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 48 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 48" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 52 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 52" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 56 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 56" },
		{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 60 , "NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 60" },
		{ NV4097_CLEAR_REPORT_VALUE , "NV4097_CLEAR_REPORT_VALUE" },
		{ NV4097_SET_ZPASS_PIXEL_COUNT_ENABLE , "NV4097_SET_ZPASS_PIXEL_COUNT_ENABLE" },
		{ NV4097_GET_REPORT , "NV4097_GET_REPORT" },
		{ NV4097_SET_ZCULL_STATS_ENABLE , "NV4097_SET_ZCULL_STATS_ENABLE" },
		{ NV4097_SET_BEGIN_END , "NV4097_SET_BEGIN_END" },
		{ NV4097_ARRAY_ELEMENT16 , "NV4097_ARRAY_ELEMENT16" },
		{ NV4097_ARRAY_ELEMENT32 , "NV4097_ARRAY_ELEMENT32" },
		{ NV4097_DRAW_ARRAYS , "NV4097_DRAW_ARRAYS" },
		{ NV4097_INLINE_ARRAY , "NV4097_INLINE_ARRAY" },
		{ NV4097_SET_INDEX_ARRAY_ADDRESS , "NV4097_SET_INDEX_ARRAY_ADDRESS" },
		{ NV4097_SET_INDEX_ARRAY_DMA , "NV4097_SET_INDEX_ARRAY_DMA" },
		{ NV4097_DRAW_INDEX_ARRAY , "NV4097_DRAW_INDEX_ARRAY" },
		{ NV4097_SET_FRONT_POLYGON_MODE , "NV4097_SET_FRONT_POLYGON_MODE" },
		{ NV4097_SET_BACK_POLYGON_MODE , "NV4097_SET_BACK_POLYGON_MODE" },
		{ NV4097_SET_CULL_FACE , "NV4097_SET_CULL_FACE" },
		{ NV4097_SET_FRONT_FACE , "NV4097_SET_FRONT_FACE" },
		{ NV4097_SET_POLY_SMOOTH_ENABLE , "NV4097_SET_POLY_SMOOTH_ENABLE" },
		{ NV4097_SET_CULL_FACE_ENABLE , "NV4097_SET_CULL_FACE_ENABLE" },
		{ NV4097_SET_TEXTURE_CONTROL3 , "NV4097_SET_TEXTURE_CONTROL3" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 4 , "NV4097_SET_TEXTURE_CONTROL3 + 4" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 8 , "NV4097_SET_TEXTURE_CONTROL3 + 8" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 12 , "NV4097_SET_TEXTURE_CONTROL3 + 12" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 16 , "NV4097_SET_TEXTURE_CONTROL3 + 16" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 20 , "NV4097_SET_TEXTURE_CONTROL3 + 20" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 24 , "NV4097_SET_TEXTURE_CONTROL3 + 24" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 28 , "NV4097_SET_TEXTURE_CONTROL3 + 28" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 32 , "NV4097_SET_TEXTURE_CONTROL3 + 32" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 36 , "NV4097_SET_TEXTURE_CONTROL3 + 36" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 40 , "NV4097_SET_TEXTURE_CONTROL3 + 40" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 44 , "NV4097_SET_TEXTURE_CONTROL3 + 44" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 48 , "NV4097_SET_TEXTURE_CONTROL3 + 48" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 52 , "NV4097_SET_TEXTURE_CONTROL3 + 52" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 56 , "NV4097_SET_TEXTURE_CONTROL3 + 56" },
		{ NV4097_SET_TEXTURE_CONTROL3 + 60 , "NV4097_SET_TEXTURE_CONTROL3 + 60" },
		{ NV4097_SET_VERTEX_DATA2F_M , "NV4097_SET_VERTEX_DATA2F_M" },
		{ NV4097_SET_VERTEX_DATA2F_M + 4 , "NV4097_SET_VERTEX_DATA2F_M + 4" },
		{ NV4097_SET_VERTEX_DATA2F_M + 8 , "NV4097_SET_VERTEX_DATA2F_M + 8" },
		{ NV4097_SET_VERTEX_DATA2F_M + 12 , "NV4097_SET_VERTEX_DATA2F_M + 12" },
		{ NV4097_SET_VERTEX_DATA2F_M + 16 , "NV4097_SET_VERTEX_DATA2F_M + 16" },
		{ NV4097_SET_VERTEX_DATA2F_M + 20 , "NV4097_SET_VERTEX_DATA2F_M + 20" },
		{ NV4097_SET_VERTEX_DATA2F_M + 24 , "NV4097_SET_VERTEX_DATA2F_M + 24" },
		{ NV4097_SET_VERTEX_DATA2F_M + 28 , "NV4097_SET_VERTEX_DATA2F_M + 28" },
		{ NV4097_SET_VERTEX_DATA2F_M + 32 , "NV4097_SET_VERTEX_DATA2F_M + 32" },
		{ NV4097_SET_VERTEX_DATA2F_M + 36 , "NV4097_SET_VERTEX_DATA2F_M + 36" },
		{ NV4097_SET_VERTEX_DATA2F_M + 40 , "NV4097_SET_VERTEX_DATA2F_M + 40" },
		{ NV4097_SET_VERTEX_DATA2F_M + 44 , "NV4097_SET_VERTEX_DATA2F_M + 44" },
		{ NV4097_SET_VERTEX_DATA2F_M + 48 , "NV4097_SET_VERTEX_DATA2F_M + 48" },
		{ NV4097_SET_VERTEX_DATA2F_M + 52 , "NV4097_SET_VERTEX_DATA2F_M + 52" },
		{ NV4097_SET_VERTEX_DATA2F_M + 56 , "NV4097_SET_VERTEX_DATA2F_M + 56" },
		{ NV4097_SET_VERTEX_DATA2F_M + 60 , "NV4097_SET_VERTEX_DATA2F_M + 60" },
		{ NV4097_SET_VERTEX_DATA2F_M + 64 , "NV4097_SET_VERTEX_DATA2F_M + 64" },
		{ NV4097_SET_VERTEX_DATA2F_M + 68 , "NV4097_SET_VERTEX_DATA2F_M + 68" },
		{ NV4097_SET_VERTEX_DATA2F_M + 72 , "NV4097_SET_VERTEX_DATA2F_M + 72" },
		{ NV4097_SET_VERTEX_DATA2F_M + 76 , "NV4097_SET_VERTEX_DATA2F_M + 76" },
		{ NV4097_SET_VERTEX_DATA2F_M + 80 , "NV4097_SET_VERTEX_DATA2F_M + 80" },
		{ NV4097_SET_VERTEX_DATA2F_M + 84 , "NV4097_SET_VERTEX_DATA2F_M + 84" },
		{ NV4097_SET_VERTEX_DATA2F_M + 88 , "NV4097_SET_VERTEX_DATA2F_M + 88" },
		{ NV4097_SET_VERTEX_DATA2F_M + 92 , "NV4097_SET_VERTEX_DATA2F_M + 92" },
		{ NV4097_SET_VERTEX_DATA2F_M + 96 , "NV4097_SET_VERTEX_DATA2F_M + 96" },
		{ NV4097_SET_VERTEX_DATA2F_M + 100 , "NV4097_SET_VERTEX_DATA2F_M + 100" },
		{ NV4097_SET_VERTEX_DATA2F_M + 104 , "NV4097_SET_VERTEX_DATA2F_M + 104" },
		{ NV4097_SET_VERTEX_DATA2F_M + 108 , "NV4097_SET_VERTEX_DATA2F_M + 108" },
		{ NV4097_SET_VERTEX_DATA2F_M + 112 , "NV4097_SET_VERTEX_DATA2F_M + 112" },
		{ NV4097_SET_VERTEX_DATA2F_M + 116 , "NV4097_SET_VERTEX_DATA2F_M + 116" },
		{ NV4097_SET_VERTEX_DATA2F_M + 120 , "NV4097_SET_VERTEX_DATA2F_M + 120" },
		{ NV4097_SET_VERTEX_DATA2F_M + 124 , "NV4097_SET_VERTEX_DATA2F_M + 124" },
		{ NV4097_SET_VERTEX_DATA2S_M , "NV4097_SET_VERTEX_DATA2S_M" },
		{ NV4097_SET_VERTEX_DATA2S_M + 4 , "NV4097_SET_VERTEX_DATA2S_M + 4" },
		{ NV4097_SET_VERTEX_DATA2S_M + 8 , "NV4097_SET_VERTEX_DATA2S_M + 8" },
		{ NV4097_SET_VERTEX_DATA2S_M + 12 , "NV4097_SET_VERTEX_DATA2S_M + 12" },
		{ NV4097_SET_VERTEX_DATA2S_M + 16 , "NV4097_SET_VERTEX_DATA2S_M + 16" },
		{ NV4097_SET_VERTEX_DATA2S_M + 20 , "NV4097_SET_VERTEX_DATA2S_M + 20" },
		{ NV4097_SET_VERTEX_DATA2S_M + 24 , "NV4097_SET_VERTEX_DATA2S_M + 24" },
		{ NV4097_SET_VERTEX_DATA2S_M + 28 , "NV4097_SET_VERTEX_DATA2S_M + 28" },
		{ NV4097_SET_VERTEX_DATA2S_M + 32 , "NV4097_SET_VERTEX_DATA2S_M + 32" },
		{ NV4097_SET_VERTEX_DATA2S_M + 36 , "NV4097_SET_VERTEX_DATA2S_M + 36" },
		{ NV4097_SET_VERTEX_DATA2S_M + 40 , "NV4097_SET_VERTEX_DATA2S_M + 40" },
		{ NV4097_SET_VERTEX_DATA2S_M + 44 , "NV4097_SET_VERTEX_DATA2S_M + 44" },
		{ NV4097_SET_VERTEX_DATA2S_M + 48 , "NV4097_SET_VERTEX_DATA2S_M + 48" },
		{ NV4097_SET_VERTEX_DATA2S_M + 52 , "NV4097_SET_VERTEX_DATA2S_M + 52" },
		{ NV4097_SET_VERTEX_DATA2S_M + 56 , "NV4097_SET_VERTEX_DATA2S_M + 56" },
		{ NV4097_SET_VERTEX_DATA2S_M + 60 , "NV4097_SET_VERTEX_DATA2S_M + 60" },
		{ NV4097_SET_VERTEX_DATA4UB_M , "NV4097_SET_VERTEX_DATA4UB_M" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 4 , "NV4097_SET_VERTEX_DATA4UB_M + 4" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 8 , "NV4097_SET_VERTEX_DATA4UB_M + 8" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 12 , "NV4097_SET_VERTEX_DATA4UB_M + 12" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 16 , "NV4097_SET_VERTEX_DATA4UB_M + 16" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 20 , "NV4097_SET_VERTEX_DATA4UB_M + 20" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 24 , "NV4097_SET_VERTEX_DATA4UB_M + 24" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 28 , "NV4097_SET_VERTEX_DATA4UB_M + 28" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 32 , "NV4097_SET_VERTEX_DATA4UB_M + 32" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 36 , "NV4097_SET_VERTEX_DATA4UB_M + 36" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 40 , "NV4097_SET_VERTEX_DATA4UB_M + 40" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 44 , "NV4097_SET_VERTEX_DATA4UB_M + 44" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 48 , "NV4097_SET_VERTEX_DATA4UB_M + 48" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 52 , "NV4097_SET_VERTEX_DATA4UB_M + 52" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 56 , "NV4097_SET_VERTEX_DATA4UB_M + 56" },
		{ NV4097_SET_VERTEX_DATA4UB_M + 60 , "NV4097_SET_VERTEX_DATA4UB_M + 60" },
		{ NV4097_SET_VERTEX_DATA4S_M , "NV4097_SET_VERTEX_DATA4S_M" },
		{ NV4097_SET_VERTEX_DATA4S_M + 4 , "NV4097_SET_VERTEX_DATA4S_M + 4" },
		{ NV4097_SET_VERTEX_DATA4S_M + 8 , "NV4097_SET_VERTEX_DATA4S_M + 8" },
		{ NV4097_SET_VERTEX_DATA4S_M + 12 , "NV4097_SET_VERTEX_DATA4S_M + 12" },
		{ NV4097_SET_VERTEX_DATA4S_M + 16 , "NV4097_SET_VERTEX_DATA4S_M + 16" },
		{ NV4097_SET_VERTEX_DATA4S_M + 20 , "NV4097_SET_VERTEX_DATA4S_M + 20" },
		{ NV4097_SET_VERTEX_DATA4S_M + 24 , "NV4097_SET_VERTEX_DATA4S_M + 24" },
		{ NV4097_SET_VERTEX_DATA4S_M + 28 , "NV4097_SET_VERTEX_DATA4S_M + 28" },
		{ NV4097_SET_VERTEX_DATA4S_M + 32 , "NV4097_SET_VERTEX_DATA4S_M + 32" },
		{ NV4097_SET_VERTEX_DATA4S_M + 36 , "NV4097_SET_VERTEX_DATA4S_M + 36" },
		{ NV4097_SET_VERTEX_DATA4S_M + 40 , "NV4097_SET_VERTEX_DATA4S_M + 40" },
		{ NV4097_SET_VERTEX_DATA4S_M + 44 , "NV4097_SET_VERTEX_DATA4S_M + 44" },
		{ NV4097_SET_VERTEX_DATA4S_M + 48 , "NV4097_SET_VERTEX_DATA4S_M + 48" },
		{ NV4097_SET_VERTEX_DATA4S_M + 52 , "NV4097_SET_VERTEX_DATA4S_M + 52" },
		{ NV4097_SET_VERTEX_DATA4S_M + 56 , "NV4097_SET_VERTEX_DATA4S_M + 56" },
		{ NV4097_SET_VERTEX_DATA4S_M + 60 , "NV4097_SET_VERTEX_DATA4S_M + 60" },
		{ NV4097_SET_VERTEX_DATA4S_M + 64 , "NV4097_SET_VERTEX_DATA4S_M + 64" },
		{ NV4097_SET_VERTEX_DATA4S_M + 68 , "NV4097_SET_VERTEX_DATA4S_M + 68" },
		{ NV4097_SET_VERTEX_DATA4S_M + 72 , "NV4097_SET_VERTEX_DATA4S_M + 72" },
		{ NV4097_SET_VERTEX_DATA4S_M + 76 , "NV4097_SET_VERTEX_DATA4S_M + 76" },
		{ NV4097_SET_VERTEX_DATA4S_M + 80 , "NV4097_SET_VERTEX_DATA4S_M + 80" },
		{ NV4097_SET_VERTEX_DATA4S_M + 84 , "NV4097_SET_VERTEX_DATA4S_M + 84" },
		{ NV4097_SET_VERTEX_DATA4S_M + 88 , "NV4097_SET_VERTEX_DATA4S_M + 88" },
		{ NV4097_SET_VERTEX_DATA4S_M + 92 , "NV4097_SET_VERTEX_DATA4S_M + 92" },
		{ NV4097_SET_VERTEX_DATA4S_M + 96 , "NV4097_SET_VERTEX_DATA4S_M + 96" },
		{ NV4097_SET_VERTEX_DATA4S_M + 100 , "NV4097_SET_VERTEX_DATA4S_M + 100" },
		{ NV4097_SET_VERTEX_DATA4S_M + 104 , "NV4097_SET_VERTEX_DATA4S_M + 104" },
		{ NV4097_SET_VERTEX_DATA4S_M + 108 , "NV4097_SET_VERTEX_DATA4S_M + 108" },
		{ NV4097_SET_VERTEX_DATA4S_M + 112 , "NV4097_SET_VERTEX_DATA4S_M + 112" },
		{ NV4097_SET_VERTEX_DATA4S_M + 116 , "NV4097_SET_VERTEX_DATA4S_M + 116" },
		{ NV4097_SET_VERTEX_DATA4S_M + 120 , "NV4097_SET_VERTEX_DATA4S_M + 120" },
		{ NV4097_SET_VERTEX_DATA4S_M + 124 , "NV4097_SET_VERTEX_DATA4S_M + 124" },
		{ NV4097_SET_TEXTURE_OFFSET , "NV4097_SET_TEXTURE_OFFSET" },
		{ NV4097_SET_TEXTURE_FORMAT , "NV4097_SET_TEXTURE_FORMAT" },
		{ NV4097_SET_TEXTURE_ADDRESS , "NV4097_SET_TEXTURE_ADDRESS" },
		{ NV4097_SET_TEXTURE_CONTROL0 , "NV4097_SET_TEXTURE_CONTROL0" },
		{ NV4097_SET_TEXTURE_CONTROL1 , "NV4097_SET_TEXTURE_CONTROL1" },
		{ NV4097_SET_TEXTURE_FILTER , "NV4097_SET_TEXTURE_FILTER" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT , "NV4097_SET_TEXTURE_IMAGE_RECT" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR , "NV4097_SET_TEXTURE_BORDER_COLOR" },
		{ NV4097_SET_TEXTURE_OFFSET + 0x20 , "NV4097_SET_TEXTURE_OFFSET + 0x20" },
		{ NV4097_SET_TEXTURE_FORMAT + 0x20 , "NV4097_SET_TEXTURE_FORMAT + 0x20" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0x20 , "NV4097_SET_TEXTURE_ADDRESS + 0x20" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0x20 , "NV4097_SET_TEXTURE_CONTROL0 + 0x20" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0x20 , "NV4097_SET_TEXTURE_CONTROL1 + 0x20" },
		{ NV4097_SET_TEXTURE_FILTER + 0x20 , "NV4097_SET_TEXTURE_FILTER + 0x20" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x20 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0x20" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x20 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0x20" },
		{ NV4097_SET_TEXTURE_OFFSET + 0x40 , "NV4097_SET_TEXTURE_OFFSET + 0x40" },
		{ NV4097_SET_TEXTURE_FORMAT + 0x40 , "NV4097_SET_TEXTURE_FORMAT + 0x40" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0x40 , "NV4097_SET_TEXTURE_ADDRESS + 0x40" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0x40 , "NV4097_SET_TEXTURE_CONTROL0 + 0x40" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0x40 , "NV4097_SET_TEXTURE_CONTROL1 + 0x40" },
		{ NV4097_SET_TEXTURE_FILTER + 0x40 , "NV4097_SET_TEXTURE_FILTER + 0x40" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x40 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0x40" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x40 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0x40" },
		{ NV4097_SET_TEXTURE_OFFSET + 0x60 , "NV4097_SET_TEXTURE_OFFSET + 0x60" },
		{ NV4097_SET_TEXTURE_FORMAT + 0x60 , "NV4097_SET_TEXTURE_FORMAT + 0x60" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0x60 , "NV4097_SET_TEXTURE_ADDRESS + 0x60" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0x60 , "NV4097_SET_TEXTURE_CONTROL0 + 0x60" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0x60 , "NV4097_SET_TEXTURE_CONTROL1 + 0x60" },
		{ NV4097_SET_TEXTURE_FILTER + 0x60 , "NV4097_SET_TEXTURE_FILTER + 0x60" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x60 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0x60" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x60 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0x60" },
		{ NV4097_SET_TEXTURE_OFFSET + 0x80 , "NV4097_SET_TEXTURE_OFFSET + 0x80" },
		{ NV4097_SET_TEXTURE_FORMAT + 0x80 , "NV4097_SET_TEXTURE_FORMAT + 0x80" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0x80 , "NV4097_SET_TEXTURE_ADDRESS + 0x80" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0x80 , "NV4097_SET_TEXTURE_CONTROL0 + 0x80" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0x80 , "NV4097_SET_TEXTURE_CONTROL1 + 0x80" },
		{ NV4097_SET_TEXTURE_FILTER + 0x80 , "NV4097_SET_TEXTURE_FILTER + 0x80" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x80 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0x80" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x80 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0x80" },
		{ NV4097_SET_TEXTURE_OFFSET + 0xa0 , "NV4097_SET_TEXTURE_OFFSET + 0xa0" },
		{ NV4097_SET_TEXTURE_FORMAT + 0xa0 , "NV4097_SET_TEXTURE_FORMAT + 0xa0" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0xa0 , "NV4097_SET_TEXTURE_ADDRESS + 0xa0" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0xa0 , "NV4097_SET_TEXTURE_CONTROL0 + 0xa0" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0xa0 , "NV4097_SET_TEXTURE_CONTROL1 + 0xa0" },
		{ NV4097_SET_TEXTURE_FILTER + 0xa0 , "NV4097_SET_TEXTURE_FILTER + 0xa0" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0xa0 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0xa0" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0xa0 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0xa0" },
		{ NV4097_SET_TEXTURE_OFFSET + 0xc0 , "NV4097_SET_TEXTURE_OFFSET + 0xc0" },
		{ NV4097_SET_TEXTURE_FORMAT + 0xc0 , "NV4097_SET_TEXTURE_FORMAT + 0xc0" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0xc0 , "NV4097_SET_TEXTURE_ADDRESS + 0xc0" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0xc0 , "NV4097_SET_TEXTURE_CONTROL0 + 0xc0" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0xc0 , "NV4097_SET_TEXTURE_CONTROL1 + 0xc0" },
		{ NV4097_SET_TEXTURE_FILTER + 0xc0 , "NV4097_SET_TEXTURE_FILTER + 0xc0" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0xc0 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0xc0" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0xc0 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0xc0" },
		{ NV4097_SET_TEXTURE_OFFSET + 0xe0 , "NV4097_SET_TEXTURE_OFFSET + 0xe0" },
		{ NV4097_SET_TEXTURE_FORMAT + 0xe0 , "NV4097_SET_TEXTURE_FORMAT + 0xe0" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0xe0 , "NV4097_SET_TEXTURE_ADDRESS + 0xe0" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0xe0 , "NV4097_SET_TEXTURE_CONTROL0 + 0xe0" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0xe0 , "NV4097_SET_TEXTURE_CONTROL1 + 0xe0" },
		{ NV4097_SET_TEXTURE_FILTER + 0xe0 , "NV4097_SET_TEXTURE_FILTER + 0xe0" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0xe0 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0xe0" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0xe0 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0xe0" },
		{ NV4097_SET_TEXTURE_OFFSET + 0x100 , "NV4097_SET_TEXTURE_OFFSET + 0x100" },
		{ NV4097_SET_TEXTURE_FORMAT + 0x100 , "NV4097_SET_TEXTURE_FORMAT + 0x100" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0x100 , "NV4097_SET_TEXTURE_ADDRESS + 0x100" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0x100 , "NV4097_SET_TEXTURE_CONTROL0 + 0x100" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0x100 , "NV4097_SET_TEXTURE_CONTROL1 + 0x100" },
		{ NV4097_SET_TEXTURE_FILTER + 0x100 , "NV4097_SET_TEXTURE_FILTER + 0x100" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x100 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0x100" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x100 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0x100" },
		{ NV4097_SET_TEXTURE_OFFSET + 0x120 , "NV4097_SET_TEXTURE_OFFSET + 0x120" },
		{ NV4097_SET_TEXTURE_FORMAT + 0x120 , "NV4097_SET_TEXTURE_FORMAT + 0x120" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0x120 , "NV4097_SET_TEXTURE_ADDRESS + 0x120" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0x120 , "NV4097_SET_TEXTURE_CONTROL0 + 0x120" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0x120 , "NV4097_SET_TEXTURE_CONTROL1 + 0x120" },
		{ NV4097_SET_TEXTURE_FILTER + 0x120 , "NV4097_SET_TEXTURE_FILTER + 0x120" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x120 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0x120" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x120 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0x120" },
		{ NV4097_SET_TEXTURE_OFFSET + 0x140 , "NV4097_SET_TEXTURE_OFFSET + 0x140" },
		{ NV4097_SET_TEXTURE_FORMAT + 0x140 , "NV4097_SET_TEXTURE_FORMAT + 0x140" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0x140 , "NV4097_SET_TEXTURE_ADDRESS + 0x140" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0x140 , "NV4097_SET_TEXTURE_CONTROL0 + 0x140" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0x140 , "NV4097_SET_TEXTURE_CONTROL1 + 0x140" },
		{ NV4097_SET_TEXTURE_FILTER + 0x140 , "NV4097_SET_TEXTURE_FILTER + 0x140" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x140 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0x140" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x140 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0x140" },
		{ NV4097_SET_TEXTURE_OFFSET + 0x160 , "NV4097_SET_TEXTURE_OFFSET + 0x160" },
		{ NV4097_SET_TEXTURE_FORMAT + 0x160 , "NV4097_SET_TEXTURE_FORMAT + 0x160" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0x160 , "NV4097_SET_TEXTURE_ADDRESS + 0x160" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0x160 , "NV4097_SET_TEXTURE_CONTROL0 + 0x160" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0x160 , "NV4097_SET_TEXTURE_CONTROL1 + 0x160" },
		{ NV4097_SET_TEXTURE_FILTER + 0x160 , "NV4097_SET_TEXTURE_FILTER + 0x160" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x160 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0x160" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x160 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0x160" },
		{ NV4097_SET_TEXTURE_OFFSET + 0x180 , "NV4097_SET_TEXTURE_OFFSET + 0x180" },
		{ NV4097_SET_TEXTURE_FORMAT + 0x180 , "NV4097_SET_TEXTURE_FORMAT + 0x180" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0x180 , "NV4097_SET_TEXTURE_ADDRESS + 0x180" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0x180 , "NV4097_SET_TEXTURE_CONTROL0 + 0x180" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0x180 , "NV4097_SET_TEXTURE_CONTROL1 + 0x180" },
		{ NV4097_SET_TEXTURE_FILTER + 0x180 , "NV4097_SET_TEXTURE_FILTER + 0x180" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x180 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0x180" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x180 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0x180" },
		{ NV4097_SET_TEXTURE_OFFSET + 0x1a0 , "NV4097_SET_TEXTURE_OFFSET + 0x1a0" },
		{ NV4097_SET_TEXTURE_FORMAT + 0x1a0 , "NV4097_SET_TEXTURE_FORMAT + 0x1a0" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0x1a0 , "NV4097_SET_TEXTURE_ADDRESS + 0x1a0" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0x1a0 , "NV4097_SET_TEXTURE_CONTROL0 + 0x1a0" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0x1a0 , "NV4097_SET_TEXTURE_CONTROL1 + 0x1a0" },
		{ NV4097_SET_TEXTURE_FILTER + 0x1a0 , "NV4097_SET_TEXTURE_FILTER + 0x1a0" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x1a0 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0x1a0" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x1a0 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0x1a0" },
		{ NV4097_SET_TEXTURE_OFFSET + 0x1c0 , "NV4097_SET_TEXTURE_OFFSET + 0x1c0" },
		{ NV4097_SET_TEXTURE_FORMAT + 0x1c0 , "NV4097_SET_TEXTURE_FORMAT + 0x1c0" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0x1c0 , "NV4097_SET_TEXTURE_ADDRESS + 0x1c0" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0x1c0 , "NV4097_SET_TEXTURE_CONTROL0 + 0x1c0" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0x1c0 , "NV4097_SET_TEXTURE_CONTROL1 + 0x1c0" },
		{ NV4097_SET_TEXTURE_FILTER + 0x1c0 , "NV4097_SET_TEXTURE_FILTER + 0x1c0" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x1c0 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0x1c0" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x1c0 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0x1c0" },
		{ NV4097_SET_TEXTURE_OFFSET + 0x1e0 , "NV4097_SET_TEXTURE_OFFSET + 0x1e0" },
		{ NV4097_SET_TEXTURE_FORMAT + 0x1e0 , "NV4097_SET_TEXTURE_FORMAT + 0x1e0" },
		{ NV4097_SET_TEXTURE_ADDRESS + 0x1e0 , "NV4097_SET_TEXTURE_ADDRESS + 0x1e0" },
		{ NV4097_SET_TEXTURE_CONTROL0 + 0x1e0 , "NV4097_SET_TEXTURE_CONTROL0 + 0x1e0" },
		{ NV4097_SET_TEXTURE_CONTROL1 + 0x1e0 , "NV4097_SET_TEXTURE_CONTROL1 + 0x1e0" },
		{ NV4097_SET_TEXTURE_FILTER + 0x1e0 , "NV4097_SET_TEXTURE_FILTER + 0x1e0" },
		{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x1e0 , "NV4097_SET_TEXTURE_IMAGE_RECT + 0x1e0" },
		{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x1e0 , "NV4097_SET_TEXTURE_BORDER_COLOR + 0x1e0" },
		{ NV4097_SET_VERTEX_DATA4F_M , "NV4097_SET_VERTEX_DATA4F_M" },
		{ NV4097_SET_VERTEX_DATA4F_M + 4 , "NV4097_SET_VERTEX_DATA4F_M + 4" },
		{ NV4097_SET_VERTEX_DATA4F_M + 8 , "NV4097_SET_VERTEX_DATA4F_M + 8" },
		{ NV4097_SET_VERTEX_DATA4F_M + 12 , "NV4097_SET_VERTEX_DATA4F_M + 12" },
		{ NV4097_SET_VERTEX_DATA4F_M + 16 , "NV4097_SET_VERTEX_DATA4F_M + 16" },
		{ NV4097_SET_VERTEX_DATA4F_M + 20 , "NV4097_SET_VERTEX_DATA4F_M + 20" },
		{ NV4097_SET_VERTEX_DATA4F_M + 24 , "NV4097_SET_VERTEX_DATA4F_M + 24" },
		{ NV4097_SET_VERTEX_DATA4F_M + 28 , "NV4097_SET_VERTEX_DATA4F_M + 28" },
		{ NV4097_SET_VERTEX_DATA4F_M + 32 , "NV4097_SET_VERTEX_DATA4F_M + 32" },
		{ NV4097_SET_VERTEX_DATA4F_M + 36 , "NV4097_SET_VERTEX_DATA4F_M + 36" },
		{ NV4097_SET_VERTEX_DATA4F_M + 40 , "NV4097_SET_VERTEX_DATA4F_M + 40" },
		{ NV4097_SET_VERTEX_DATA4F_M + 44 , "NV4097_SET_VERTEX_DATA4F_M + 44" },
		{ NV4097_SET_VERTEX_DATA4F_M + 48 , "NV4097_SET_VERTEX_DATA4F_M + 48" },
		{ NV4097_SET_VERTEX_DATA4F_M + 52 , "NV4097_SET_VERTEX_DATA4F_M + 52" },
		{ NV4097_SET_VERTEX_DATA4F_M + 56 , "NV4097_SET_VERTEX_DATA4F_M + 56" },
		{ NV4097_SET_VERTEX_DATA4F_M + 60 , "NV4097_SET_VERTEX_DATA4F_M + 60" },
		{ NV4097_SET_VERTEX_DATA4F_M + 64 , "NV4097_SET_VERTEX_DATA4F_M + 64" },
		{ NV4097_SET_VERTEX_DATA4F_M + 68 , "NV4097_SET_VERTEX_DATA4F_M + 68" },
		{ NV4097_SET_VERTEX_DATA4F_M + 72 , "NV4097_SET_VERTEX_DATA4F_M + 72" },
		{ NV4097_SET_VERTEX_DATA4F_M + 76 , "NV4097_SET_VERTEX_DATA4F_M + 76" },
		{ NV4097_SET_VERTEX_DATA4F_M + 80 , "NV4097_SET_VERTEX_DATA4F_M + 80" },
		{ NV4097_SET_VERTEX_DATA4F_M + 84 , "NV4097_SET_VERTEX_DATA4F_M + 84" },
		{ NV4097_SET_VERTEX_DATA4F_M + 88 , "NV4097_SET_VERTEX_DATA4F_M + 88" },
		{ NV4097_SET_VERTEX_DATA4F_M + 92 , "NV4097_SET_VERTEX_DATA4F_M + 92" },
		{ NV4097_SET_VERTEX_DATA4F_M + 96 , "NV4097_SET_VERTEX_DATA4F_M + 96" },
		{ NV4097_SET_VERTEX_DATA4F_M + 100 , "NV4097_SET_VERTEX_DATA4F_M + 100" },
		{ NV4097_SET_VERTEX_DATA4F_M + 104 , "NV4097_SET_VERTEX_DATA4F_M + 104" },
		{ NV4097_SET_VERTEX_DATA4F_M + 108 , "NV4097_SET_VERTEX_DATA4F_M + 108" },
		{ NV4097_SET_VERTEX_DATA4F_M + 112 , "NV4097_SET_VERTEX_DATA4F_M + 112" },
		{ NV4097_SET_VERTEX_DATA4F_M + 116 , "NV4097_SET_VERTEX_DATA4F_M + 116" },
		{ NV4097_SET_VERTEX_DATA4F_M + 120 , "NV4097_SET_VERTEX_DATA4F_M + 120" },
		{ NV4097_SET_VERTEX_DATA4F_M + 124 , "NV4097_SET_VERTEX_DATA4F_M + 124" },
		{ NV4097_SET_VERTEX_DATA4F_M + 128 , "NV4097_SET_VERTEX_DATA4F_M + 128" },
		{ NV4097_SET_VERTEX_DATA4F_M + 132 , "NV4097_SET_VERTEX_DATA4F_M + 132" },
		{ NV4097_SET_VERTEX_DATA4F_M + 136 , "NV4097_SET_VERTEX_DATA4F_M + 136" },
		{ NV4097_SET_VERTEX_DATA4F_M + 140 , "NV4097_SET_VERTEX_DATA4F_M + 140" },
		{ NV4097_SET_VERTEX_DATA4F_M + 144 , "NV4097_SET_VERTEX_DATA4F_M + 144" },
		{ NV4097_SET_VERTEX_DATA4F_M + 148 , "NV4097_SET_VERTEX_DATA4F_M + 148" },
		{ NV4097_SET_VERTEX_DATA4F_M + 152 , "NV4097_SET_VERTEX_DATA4F_M + 152" },
		{ NV4097_SET_VERTEX_DATA4F_M + 156 , "NV4097_SET_VERTEX_DATA4F_M + 156" },
		{ NV4097_SET_VERTEX_DATA4F_M + 160 , "NV4097_SET_VERTEX_DATA4F_M + 160" },
		{ NV4097_SET_VERTEX_DATA4F_M + 164 , "NV4097_SET_VERTEX_DATA4F_M + 164" },
		{ NV4097_SET_VERTEX_DATA4F_M + 168 , "NV4097_SET_VERTEX_DATA4F_M + 168" },
		{ NV4097_SET_VERTEX_DATA4F_M + 172 , "NV4097_SET_VERTEX_DATA4F_M + 172" },
		{ NV4097_SET_VERTEX_DATA4F_M + 176 , "NV4097_SET_VERTEX_DATA4F_M + 176" },
		{ NV4097_SET_VERTEX_DATA4F_M + 180 , "NV4097_SET_VERTEX_DATA4F_M + 180" },
		{ NV4097_SET_VERTEX_DATA4F_M + 184 , "NV4097_SET_VERTEX_DATA4F_M + 184" },
		{ NV4097_SET_VERTEX_DATA4F_M + 188 , "NV4097_SET_VERTEX_DATA4F_M + 188" },
		{ NV4097_SET_VERTEX_DATA4F_M + 192 , "NV4097_SET_VERTEX_DATA4F_M + 192" },
		{ NV4097_SET_VERTEX_DATA4F_M + 196 , "NV4097_SET_VERTEX_DATA4F_M + 196" },
		{ NV4097_SET_VERTEX_DATA4F_M + 200 , "NV4097_SET_VERTEX_DATA4F_M + 200" },
		{ NV4097_SET_VERTEX_DATA4F_M + 204 , "NV4097_SET_VERTEX_DATA4F_M + 204" },
		{ NV4097_SET_VERTEX_DATA4F_M + 208 , "NV4097_SET_VERTEX_DATA4F_M + 208" },
		{ NV4097_SET_VERTEX_DATA4F_M + 212 , "NV4097_SET_VERTEX_DATA4F_M + 212" },
		{ NV4097_SET_VERTEX_DATA4F_M + 216 , "NV4097_SET_VERTEX_DATA4F_M + 216" },
		{ NV4097_SET_VERTEX_DATA4F_M + 220 , "NV4097_SET_VERTEX_DATA4F_M + 220" },
		{ NV4097_SET_VERTEX_DATA4F_M + 224 , "NV4097_SET_VERTEX_DATA4F_M + 224" },
		{ NV4097_SET_VERTEX_DATA4F_M + 228 , "NV4097_SET_VERTEX_DATA4F_M + 228" },
		{ NV4097_SET_VERTEX_DATA4F_M + 232 , "NV4097_SET_VERTEX_DATA4F_M + 232" },
		{ NV4097_SET_VERTEX_DATA4F_M + 236 , "NV4097_SET_VERTEX_DATA4F_M + 236" },
		{ NV4097_SET_VERTEX_DATA4F_M + 240 , "NV4097_SET_VERTEX_DATA4F_M + 240" },
		{ NV4097_SET_VERTEX_DATA4F_M + 244 , "NV4097_SET_VERTEX_DATA4F_M + 244" },
		{ NV4097_SET_VERTEX_DATA4F_M + 248 , "NV4097_SET_VERTEX_DATA4F_M + 248" },
		{ NV4097_SET_VERTEX_DATA4F_M + 252 , "NV4097_SET_VERTEX_DATA4F_M + 252" },
		{ NV4097_SET_SHADER_CONTROL , "NV4097_SET_SHADER_CONTROL" },
		{ NV4097_SET_SEMAPHORE_OFFSET , "NV4097_SET_SEMAPHORE_OFFSET" },
		{ NV4097_BACK_END_WRITE_SEMAPHORE_RELEASE , "NV4097_BACK_END_WRITE_SEMAPHORE_RELEASE" },
		{ NV4097_TEXTURE_READ_SEMAPHORE_RELEASE , "NV4097_TEXTURE_READ_SEMAPHORE_RELEASE" },
		{ NV4097_SET_ZMIN_MAX_CONTROL , "NV4097_SET_ZMIN_MAX_CONTROL" },
		{ NV4097_SET_ANTI_ALIASING_CONTROL , "NV4097_SET_ANTI_ALIASING_CONTROL" },
		{ NV4097_SET_ZCULL_EN , "NV4097_SET_ZCULL_EN" },
		{ NV4097_SET_SHADER_WINDOW , "NV4097_SET_SHADER_WINDOW" },
		{ NV4097_SET_ZSTENCIL_CLEAR_VALUE , "NV4097_SET_ZSTENCIL_CLEAR_VALUE" },
		{ NV4097_SET_COLOR_CLEAR_VALUE , "NV4097_SET_COLOR_CLEAR_VALUE" },
		{ NV4097_CLEAR_SURFACE , "NV4097_CLEAR_SURFACE" },
		{ NV4097_SET_RESTART_INDEX_ENABLE , "NV4097_SET_RESTART_INDEX_ENABLE" },
		{ NV4097_SET_RESTART_INDEX , "NV4097_SET_RESTART_INDEX" },
		{ NV4097_SET_LINE_STIPPLE , "NV4097_SET_LINE_STIPPLE" },
		{ NV4097_SET_LINE_STIPPLE_PATTERN , "NV4097_SET_LINE_STIPPLE_PATTERN" },
		{ NV4097_SET_VERTEX_DATA1F_M , "NV4097_SET_VERTEX_DATA1F_M" },
		{ NV4097_SET_VERTEX_DATA1F_M + 4 , "NV4097_SET_VERTEX_DATA1F_M + 4" },
		{ NV4097_SET_VERTEX_DATA1F_M + 8 , "NV4097_SET_VERTEX_DATA1F_M + 8" },
		{ NV4097_SET_VERTEX_DATA1F_M + 12 , "NV4097_SET_VERTEX_DATA1F_M + 12" },
		{ NV4097_SET_VERTEX_DATA1F_M + 16 , "NV4097_SET_VERTEX_DATA1F_M + 16" },
		{ NV4097_SET_VERTEX_DATA1F_M + 20 , "NV4097_SET_VERTEX_DATA1F_M + 20" },
		{ NV4097_SET_VERTEX_DATA1F_M + 24 , "NV4097_SET_VERTEX_DATA1F_M + 24" },
		{ NV4097_SET_VERTEX_DATA1F_M + 28 , "NV4097_SET_VERTEX_DATA1F_M + 28" },
		{ NV4097_SET_VERTEX_DATA1F_M + 32 , "NV4097_SET_VERTEX_DATA1F_M + 32" },
		{ NV4097_SET_VERTEX_DATA1F_M + 36 , "NV4097_SET_VERTEX_DATA1F_M + 36" },
		{ NV4097_SET_VERTEX_DATA1F_M + 40 , "NV4097_SET_VERTEX_DATA1F_M + 40" },
		{ NV4097_SET_VERTEX_DATA1F_M + 44 , "NV4097_SET_VERTEX_DATA1F_M + 44" },
		{ NV4097_SET_VERTEX_DATA1F_M + 48 , "NV4097_SET_VERTEX_DATA1F_M + 48" },
		{ NV4097_SET_VERTEX_DATA1F_M + 52 , "NV4097_SET_VERTEX_DATA1F_M + 52" },
		{ NV4097_SET_VERTEX_DATA1F_M + 56 , "NV4097_SET_VERTEX_DATA1F_M + 56" },
		{ NV4097_SET_VERTEX_DATA1F_M + 60 , "NV4097_SET_VERTEX_DATA1F_M + 60" },
		{ NV4097_SET_RENDER_ENABLE , "NV4097_SET_RENDER_ENABLE" },
		{ NV4097_SET_TRANSFORM_PROGRAM_LOAD , "NV4097_SET_TRANSFORM_PROGRAM_LOAD" },
		{ NV4097_SET_TRANSFORM_PROGRAM_START , "NV4097_SET_TRANSFORM_PROGRAM_START" },
		{ NV4097_SET_ZCULL_CONTROL0 , "NV4097_SET_ZCULL_CONTROL0" },
		{ NV4097_SET_ZCULL_CONTROL1 , "NV4097_SET_ZCULL_CONTROL1" },
		{ NV4097_SET_SCULL_CONTROL , "NV4097_SET_SCULL_CONTROL" },
		{ NV4097_SET_POINT_SIZE , "NV4097_SET_POINT_SIZE" },
		{ NV4097_SET_POINT_PARAMS_ENABLE , "NV4097_SET_POINT_PARAMS_ENABLE" },
		{ NV4097_SET_POINT_SPRITE_CONTROL , "NV4097_SET_POINT_SPRITE_CONTROL" },
		{ NV4097_SET_TRANSFORM_TIMEOUT , "NV4097_SET_TRANSFORM_TIMEOUT" },
		{ NV4097_SET_TRANSFORM_CONSTANT_LOAD , "NV4097_SET_TRANSFORM_CONSTANT_LOAD" },
		{ NV4097_SET_FREQUENCY_DIVIDER_OPERATION , "NV4097_SET_FREQUENCY_DIVIDER_OPERATION" },
		{ NV4097_SET_ATTRIB_COLOR, "NV4097_SET_ATTRIB_COLOR" },
		{ NV4097_SET_ATTRIB_TEX_COORD, "NV4097_SET_ATTRIB_TEX_COORD" },
		{ NV4097_SET_ATTRIB_TEX_COORD_EX, "NV4097_SET_ATTRIB_TEX_COORD_EX" },
		{ NV4097_SET_ATTRIB_UCLIP0, "NV4097_SET_ATTRIB_UCLIP0" },
		{ NV4097_SET_ATTRIB_UCLIP1, "NV4097_SET_ATTRIB_UCLIP1" },
		{ NV4097_INVALIDATE_L2, "NV4097_INVALIDATE_L2" },
		{ NV4097_SET_REDUCE_DST_COLOR, "NV4097_SET_REDUCE_DST_COLOR" },
		{ NV4097_SET_NO_PARANOID_TEXTURE_FETCHES, "NV4097_SET_NO_PARANOID_TEXTURE_FETCHES" },
		{ NV4097_SET_SHADER_PACKER, "NV4097_SET_SHADER_PACKER" },
		{ NV4097_SET_VERTEX_ATTRIB_INPUT_MASK, "NV4097_SET_VERTEX_ATTRIB_INPUT_MASK" },
		{ NV4097_SET_VERTEX_ATTRIB_OUTPUT_MASK, "NV4097_SET_VERTEX_ATTRIB_OUTPUT_MASK" },
		{ NV4097_SET_TRANSFORM_BRANCH_BITS, "NV4097_SET_TRANSFORM_BRANCH_BITS" }
	};

	for (auto& s: METHOD_NAME_LIST)
	{
		if (s.id == id)
			return s.name;
	}

	return fmt::format("unknown/illegal method [0x%08x]", id);
}
