Add new GPU register names and enumerations from the 3dbrew Wiki

This commit is contained in:
fincs 2015-12-01 12:58:57 +01:00
parent 50e804d4d2
commit f7798302ea
4 changed files with 118 additions and 98 deletions

View File

@ -32,6 +32,17 @@ typedef enum
GPU_MIRRORED_REPEAT = 0x3, ///< Repeats with mirrored texture. GPU_MIRRORED_REPEAT = 0x3, ///< Repeats with mirrored texture.
} GPU_TEXTURE_WRAP_PARAM; } GPU_TEXTURE_WRAP_PARAM;
/// Texture modes.
typedef enum
{
GPU_TEX_2D = 0x0, ///< 2D texture
GPU_TEX_CUBE_MAP = 0x1, ///< Cube map
GPU_TEX_SHADOW_2D = 0x2, ///< 2D Shadow texture
GPU_TEX_PROJECTION = 0x3, ///< Projection texture
GPU_TEX_SHADOW_CUBE = 0x4, ///< Shadow cube map
GPU_TEX_DISABLED = 0x5, ///< Disabled
} GPU_TEXTURE_MODE_PARAM;
/// Supported texture units. /// Supported texture units.
typedef enum typedef enum
{ {
@ -87,7 +98,16 @@ typedef enum
GPU_LEQUAL = 5, ///< Pass if less than or equal. GPU_LEQUAL = 5, ///< Pass if less than or equal.
GPU_GREATER = 6, ///< Pass if greater than. GPU_GREATER = 6, ///< Pass if greater than.
GPU_GEQUAL = 7, ///< Pass if greater than or equal. GPU_GEQUAL = 7, ///< Pass if greater than or equal.
}GPU_TESTFUNC; } GPU_TESTFUNC;
/// Early depth test functions.
typedef enum
{
GPU_EARLYDEPTH_GEQUAL = 0, ///< Pass if greater than or equal.
GPU_EARLYDEPTH_GREATER = 1, ///< Pass if greater than.
GPU_EARLYDEPTH_LEQUAL = 2, ///< Pass if less than or equal.
GPU_EARLYDEPTH_LESS = 3, ///< Pass if less than.
} GPU_EARLYDEPTHFUNC;
/// Scissor test modes. /// Scissor test modes.
typedef enum typedef enum

View File

@ -81,11 +81,11 @@
#define GPUREG_VIEWPORT_INVH 0x0044 ///< Inverted viewport height. #define GPUREG_VIEWPORT_INVH 0x0044 ///< Inverted viewport height.
#define GPUREG_0045 0x0045 ///< Unknown #define GPUREG_0045 0x0045 ///< Unknown
#define GPUREG_0046 0x0046 ///< Unknown #define GPUREG_0046 0x0046 ///< Unknown
#define GPUREG_0047 0x0047 ///< Unknown #define GPUREG_FRAGOP_CLIP 0x0047 ///< Unknown
#define GPUREG_0048 0x0048 ///< Unknown #define GPUREG_FRAGOP_CLIP_DATA0 0x0048 ///< Unknown
#define GPUREG_0049 0x0049 ///< Unknown #define GPUREG_FRAGOP_CLIP_DATA1 0x0049 ///< Unknown
#define GPUREG_004A 0x004A ///< Unknown #define GPUREG_FRAGOP_CLIP_DATA2 0x004A ///< Unknown
#define GPUREG_004B 0x004B ///< Unknown #define GPUREG_FRAGOP_CLIP_DATA3 0x004B ///< Unknown
#define GPUREG_004C 0x004C ///< Unknown #define GPUREG_004C 0x004C ///< Unknown
#define GPUREG_DEPTHMAP_SCALE 0x004D ///< Depth map scale. #define GPUREG_DEPTHMAP_SCALE 0x004D ///< Depth map scale.
#define GPUREG_DEPTHMAP_OFFSET 0x004E ///< Depth map offset. #define GPUREG_DEPTHMAP_OFFSET 0x004E ///< Depth map offset.
@ -107,21 +107,21 @@
#define GPUREG_005E 0x005E ///< Unknown #define GPUREG_005E 0x005E ///< Unknown
#define GPUREG_005F 0x005F ///< Unknown #define GPUREG_005F 0x005F ///< Unknown
#define GPUREG_0060 0x0060 ///< Unknown #define GPUREG_0060 0x0060 ///< Unknown
#define GPUREG_0061 0x0061 ///< Unknown #define GPUREG_EARLYDEPTH_FUNC 0x0061 ///< Unknown
#define GPUREG_0062 0x0062 ///< Unknown #define GPUREG_EARLYDEPTH_TEST1 0x0062 ///< Unknown
#define GPUREG_0063 0x0063 ///< Unknown #define GPUREG_EARLYDEPTH_CLEAR 0x0063 ///< Unknown
#define GPUREG_0064 0x0064 ///< Unknown #define GPUREG_SH_OUTATTR_MODE 0x0064 ///< Shader output attributes mode.
#define GPUREG_SCISSORTEST_MODE 0x0065 ///< Scissor test mode. #define GPUREG_SCISSORTEST_MODE 0x0065 ///< Scissor test mode.
#define GPUREG_SCISSORTEST_POS 0x0066 ///< Scissor test position. #define GPUREG_SCISSORTEST_POS 0x0066 ///< Scissor test position.
#define GPUREG_SCISSORTEST_DIM 0x0067 ///< Scissor text dimensions. #define GPUREG_SCISSORTEST_DIM 0x0067 ///< Scissor text dimensions.
#define GPUREG_VIEWPORT_XY 0x0068 ///< Viewport X and Y. #define GPUREG_VIEWPORT_XY 0x0068 ///< Viewport X and Y.
#define GPUREG_0069 0x0069 ///< Unknown #define GPUREG_0069 0x0069 ///< Unknown
#define GPUREG_006A 0x006A ///< Unknown #define GPUREG_EARLYDEPTH_DATA 0x006A ///< Unknown
#define GPUREG_006B 0x006B ///< Unknown #define GPUREG_006B 0x006B ///< Unknown
#define GPUREG_006C 0x006C ///< Unknown #define GPUREG_006C 0x006C ///< Unknown
#define GPUREG_006D 0x006D ///< Unknown #define GPUREG_DEPTHMAP_ENABLE 0x006D ///< Depth map enable.
#define GPUREG_FRAMEBUFFER_DIM2 0x006E ///< Framebuffer dimensions. #define GPUREG_RENDERBUF_DIM 0x006E ///< Renderbuffer dimensions.
#define GPUREG_006F 0x006F ///< Unknown #define GPUREG_SH_OUTATTR_CLOCK 0x006F ///< Shader output attributes clock enable.
#define GPUREG_0070 0x0070 ///< Unknown #define GPUREG_0070 0x0070 ///< Unknown
#define GPUREG_0071 0x0071 ///< Unknown #define GPUREG_0071 0x0071 ///< Unknown
#define GPUREG_0072 0x0072 ///< Unknown #define GPUREG_0072 0x0072 ///< Unknown
@ -142,18 +142,18 @@
///@name Texturing registers (0x080-0x0FF) ///@name Texturing registers (0x080-0x0FF)
///@{ ///@{
#define GPUREG_TEXUNIT_ENABLE 0x0080 ///< Enabled texture units. #define GPUREG_TEXUNIT_CONFIG 0x0080 ///< Texture unit configuration.
#define GPUREG_TEXUNIT0_BORDER_COLOR 0x0081 ///< Texture unit 0 border color. #define GPUREG_TEXUNIT0_BORDER_COLOR 0x0081 ///< Texture unit 0 border color.
#define GPUREG_TEXUNIT0_DIM 0x0082 ///< Texture unit 0 dimensions. #define GPUREG_TEXUNIT0_DIM 0x0082 ///< Texture unit 0 dimensions.
#define GPUREG_TEXUNIT0_PARAM 0x0083 ///< Texture unit 0 parameters. #define GPUREG_TEXUNIT0_PARAM 0x0083 ///< Texture unit 0 parameters.
#define GPUREG_0084 0x0084 ///< Unknown. #define GPUREG_TEXUNIT0_LOD 0x0084 ///< Texture unit 0 LOD.
#define GPUREG_TEXUNIT0_LOC 0x0085 ///< Texture unit 0 address. #define GPUREG_TEXUNIT0_ADDR1 0x0085 ///< Texture unit 0 address.
#define GPUREG_0086 0x0086 ///< Unknown. #define GPUREG_TEXUNIT0_ADDR2 0x0086 ///< Unknown.
#define GPUREG_0087 0x0087 ///< Unknown. #define GPUREG_TEXUNIT0_ADDR3 0x0087 ///< Unknown.
#define GPUREG_0088 0x0088 ///< Unknown. #define GPUREG_TEXUNIT0_ADDR4 0x0088 ///< Unknown.
#define GPUREG_0089 0x0089 ///< Unknown. #define GPUREG_TEXUNIT0_ADDR5 0x0089 ///< Unknown.
#define GPUREG_008A 0x008A ///< Unknown. #define GPUREG_TEXUNIT0_ADDR6 0x008A ///< Unknown.
#define GPUREG_008B 0x008B ///< Unknown. #define GPUREG_TEXUNIT0_SHADOW 0x008B ///< Unknown.
#define GPUREG_008C 0x008C ///< Unknown. #define GPUREG_008C 0x008C ///< Unknown.
#define GPUREG_008D 0x008D ///< Unknown. #define GPUREG_008D 0x008D ///< Unknown.
#define GPUREG_TEXUNIT0_TYPE 0x008E ///< Texture unit 0 type. #define GPUREG_TEXUNIT0_TYPE 0x008E ///< Texture unit 0 type.
@ -162,16 +162,16 @@
#define GPUREG_TEXUNIT1_BORDER_COLOR 0x0091 ///< Texture unit 1 border color. #define GPUREG_TEXUNIT1_BORDER_COLOR 0x0091 ///< Texture unit 1 border color.
#define GPUREG_TEXUNIT1_DIM 0x0092 ///< Texture unit 1 dimensions. #define GPUREG_TEXUNIT1_DIM 0x0092 ///< Texture unit 1 dimensions.
#define GPUREG_TEXUNIT1_PARAM 0x0093 ///< Texture unit 1 parameters. #define GPUREG_TEXUNIT1_PARAM 0x0093 ///< Texture unit 1 parameters.
#define GPUREG_0094 0x0094 ///< Unknown. #define GPUREG_TEXUNIT1_LOD 0x0094 ///< Texture unit 1 LOD.
#define GPUREG_TEXUNIT1_LOC 0x0095 ///< Texture unit 1 address. #define GPUREG_TEXUNIT1_ADDR 0x0095 ///< Texture unit 1 address.
#define GPUREG_TEXUNIT1_TYPE 0x0096 ///< Texture unit 1 type. #define GPUREG_TEXUNIT1_TYPE 0x0096 ///< Texture unit 1 type.
#define GPUREG_0097 0x0097 ///< Unknown. #define GPUREG_0097 0x0097 ///< Unknown.
#define GPUREG_0098 0x0098 ///< Unknown. #define GPUREG_0098 0x0098 ///< Unknown.
#define GPUREG_TEXUNIT2_BORDER_COLOR 0x0099 ///< Texture unit 2 border color. #define GPUREG_TEXUNIT2_BORDER_COLOR 0x0099 ///< Texture unit 2 border color.
#define GPUREG_TEXUNIT2_DIM 0x009A ///< Texture unit 2 dimensions. #define GPUREG_TEXUNIT2_DIM 0x009A ///< Texture unit 2 dimensions.
#define GPUREG_TEXUNIT2_PARAM 0x009B ///< Texture unit 2 parameters. #define GPUREG_TEXUNIT2_PARAM 0x009B ///< Texture unit 2 parameters.
#define GPUREG_009C 0x009C ///< Unknown. #define GPUREG_TEXUNIT2_LOD 0x009C ///< Texture unit 2 LOD.
#define GPUREG_TEXUNIT2_LOC 0x009D ///< Texture unit 2 location. #define GPUREG_TEXUNIT2_ADDR 0x009D ///< Texture unit 2 address.
#define GPUREG_TEXUNIT2_TYPE 0x009E ///< Texture unit 2 type. #define GPUREG_TEXUNIT2_TYPE 0x009E ///< Texture unit 2 type.
#define GPUREG_009F 0x009F ///< Unknown. #define GPUREG_009F 0x009F ///< Unknown.
#define GPUREG_00A0 0x00A0 ///< Unknown. #define GPUREG_00A0 0x00A0 ///< Unknown.
@ -182,22 +182,22 @@
#define GPUREG_00A5 0x00A5 ///< Unknown. #define GPUREG_00A5 0x00A5 ///< Unknown.
#define GPUREG_00A6 0x00A6 ///< Unknown. #define GPUREG_00A6 0x00A6 ///< Unknown.
#define GPUREG_00A7 0x00A7 ///< Unknown. #define GPUREG_00A7 0x00A7 ///< Unknown.
#define GPUREG_00A8 0x00A8 ///< Unknown. #define GPUREG_TEXUNIT3_PROTEX0 0x00A8 ///< Unknown.
#define GPUREG_00A9 0x00A9 ///< Unknown. #define GPUREG_TEXUNIT3_PROTEX1 0x00A9 ///< Unknown.
#define GPUREG_00AA 0x00AA ///< Unknown. #define GPUREG_TEXUNIT3_PROTEX2 0x00AA ///< Unknown.
#define GPUREG_00AB 0x00AB ///< Unknown. #define GPUREG_TEXUNIT3_PROTEX3 0x00AB ///< Unknown.
#define GPUREG_00AC 0x00AC ///< Unknown. #define GPUREG_TEXUNIT3_PROTEX4 0x00AC ///< Unknown.
#define GPUREG_00AD 0x00AD ///< Unknown. #define GPUREG_TEXUNIT3_PROTEX5 0x00AD ///< Unknown.
#define GPUREG_00AE 0x00AE ///< Unknown. #define GPUREG_00AE 0x00AE ///< Unknown.
#define GPUREG_00AF 0x00AF ///< Unknown. #define GPUREG_PROTEX_LUT 0x00AF ///< Unknown.
#define GPUREG_00B0 0x00B0 ///< Unknown. #define GPUREG_PROTEX_LUT_DATA0 0x00B0 ///< Unknown.
#define GPUREG_00B1 0x00B1 ///< Unknown. #define GPUREG_PROTEX_LUT_DATA1 0x00B1 ///< Unknown.
#define GPUREG_00B2 0x00B2 ///< Unknown. #define GPUREG_PROTEX_LUT_DATA2 0x00B2 ///< Unknown.
#define GPUREG_00B3 0x00B3 ///< Unknown. #define GPUREG_PROTEX_LUT_DATA3 0x00B3 ///< Unknown.
#define GPUREG_00B4 0x00B4 ///< Unknown. #define GPUREG_PROTEX_LUT_DATA4 0x00B4 ///< Unknown.
#define GPUREG_00B5 0x00B5 ///< Unknown. #define GPUREG_PROTEX_LUT_DATA5 0x00B5 ///< Unknown.
#define GPUREG_00B6 0x00B6 ///< Unknown. #define GPUREG_PROTEX_LUT_DATA6 0x00B6 ///< Unknown.
#define GPUREG_00B7 0x00B7 ///< Unknown. #define GPUREG_PROTEX_LUT_DATA7 0x00B7 ///< Unknown.
#define GPUREG_00B8 0x00B8 ///< Unknown. #define GPUREG_00B8 0x00B8 ///< Unknown.
#define GPUREG_00B9 0x00B9 ///< Unknown. #define GPUREG_00B9 0x00B9 ///< Unknown.
#define GPUREG_00BA 0x00BA ///< Unknown. #define GPUREG_00BA 0x00BA ///< Unknown.
@ -239,21 +239,21 @@
#define GPUREG_00DE 0x00DE ///< Unknown. #define GPUREG_00DE 0x00DE ///< Unknown.
#define GPUREG_00DF 0x00DF ///< Unknown. #define GPUREG_00DF 0x00DF ///< Unknown.
#define GPUREG_TEXENV_UPDATE_BUFFER 0x00E0 ///< Texture env buffer update flag. #define GPUREG_TEXENV_UPDATE_BUFFER 0x00E0 ///< Texture env buffer update flag.
#define GPUREG_00E1 0x00E1 ///< Unknown. #define GPUREG_FOG_COLOR 0x00E1 ///< Unknown.
#define GPUREG_00E2 0x00E2 ///< Unknown. #define GPUREG_00E2 0x00E2 ///< Unknown.
#define GPUREG_00E3 0x00E3 ///< Unknown. #define GPUREG_00E3 0x00E3 ///< Unknown.
#define GPUREG_00E4 0x00E4 ///< Unknown. #define GPUREG_GAS_ATTENUATION 0x00E4 ///< Unknown.
#define GPUREG_00E5 0x00E5 ///< Unknown. #define GPUREG_GAS_ACCMAX 0x00E5 ///< Unknown.
#define GPUREG_00E6 0x00E6 ///< Unknown. #define GPUREG_FOG_LUT_INDEX 0x00E6 ///< Unknown.
#define GPUREG_00E7 0x00E7 ///< Unknown. #define GPUREG_00E7 0x00E7 ///< Unknown.
#define GPUREG_00E8 0x00E8 ///< Unknown. #define GPUREG_FOG_LUT_DATA0 0x00E8 ///< Unknown.
#define GPUREG_00E9 0x00E9 ///< Unknown. #define GPUREG_FOG_LUT_DATA1 0x00E9 ///< Unknown.
#define GPUREG_00EA 0x00EA ///< Unknown. #define GPUREG_FOG_LUT_DATA2 0x00EA ///< Unknown.
#define GPUREG_00EB 0x00EB ///< Unknown. #define GPUREG_FOG_LUT_DATA3 0x00EB ///< Unknown.
#define GPUREG_00EC 0x00EC ///< Unknown. #define GPUREG_FOG_LUT_DATA4 0x00EC ///< Unknown.
#define GPUREG_00ED 0x00ED ///< Unknown. #define GPUREG_FOG_LUT_DATA5 0x00ED ///< Unknown.
#define GPUREG_00EE 0x00EE ///< Unknown. #define GPUREG_FOG_LUT_DATA6 0x00EE ///< Unknown.
#define GPUREG_00EF 0x00EF ///< Unknown. #define GPUREG_FOG_LUT_DATA7 0x00EF ///< Unknown.
#define GPUREG_TEXENV4_SOURCE 0x00F0 ///< Texture env 4 source. #define GPUREG_TEXENV4_SOURCE 0x00F0 ///< Texture env 4 source.
#define GPUREG_TEXENV4_OPERAND 0x00F1 ///< Texture env 4 operand. #define GPUREG_TEXENV4_OPERAND 0x00F1 ///< Texture env 4 operand.
#define GPUREG_TEXENV4_COMBINER 0x00F2 ///< Texture env 4 combiner. #define GPUREG_TEXENV4_COMBINER 0x00F2 ///< Texture env 4 combiner.
@ -298,7 +298,7 @@
#define GPUREG_DEPTHBUFFER_WRITE 0x0115 ///< Writes to the depth buffer. #define GPUREG_DEPTHBUFFER_WRITE 0x0115 ///< Writes to the depth buffer.
#define GPUREG_DEPTHBUFFER_FORMAT 0x0116 ///< Depth buffer format. #define GPUREG_DEPTHBUFFER_FORMAT 0x0116 ///< Depth buffer format.
#define GPUREG_COLORBUFFER_FORMAT 0x0117 ///< Color buffer format. #define GPUREG_COLORBUFFER_FORMAT 0x0117 ///< Color buffer format.
#define GPUREG_0118 0x0118 ///< Unknown. #define GPUREG_EARLYDEPTH_TEST2 0x0118 ///< Unknown.
#define GPUREG_0119 0x0119 ///< Unknown. #define GPUREG_0119 0x0119 ///< Unknown.
#define GPUREG_011A 0x011A ///< Unknown. #define GPUREG_011A 0x011A ///< Unknown.
#define GPUREG_FRAMEBUFFER_BLOCK32 0x011B ///< Frame buffer block 32. #define GPUREG_FRAMEBUFFER_BLOCK32 0x011B ///< Frame buffer block 32.
@ -306,13 +306,13 @@
#define GPUREG_COLORBUFFER_LOC 0x011D ///< Color buffer location. #define GPUREG_COLORBUFFER_LOC 0x011D ///< Color buffer location.
#define GPUREG_FRAMEBUFFER_DIM 0x011E ///< Frame buffer dimensions. #define GPUREG_FRAMEBUFFER_DIM 0x011E ///< Frame buffer dimensions.
#define GPUREG_011F 0x011F ///< Unknown. #define GPUREG_011F 0x011F ///< Unknown.
#define GPUREG_0120 0x0120 ///< Unknown. #define GPUREG_GAS_LIGHT_XY 0x0120 ///< Unknown.
#define GPUREG_0121 0x0121 ///< Unknown. #define GPUREG_GAS_LIGHT_Z 0x0121 ///< Unknown.
#define GPUREG_0122 0x0122 ///< Unknown. #define GPUREG_GAS_LIGHT_Z_COLOR 0x0122 ///< Unknown.
#define GPUREG_0123 0x0123 ///< Unknown. #define GPUREG_GAS_LUT_INDEX 0x0123 ///< Unknown.
#define GPUREG_0124 0x0124 ///< Unknown. #define GPUREG_GAS_LUT_DATA 0x0124 ///< Unknown.
#define GPUREG_0125 0x0125 ///< Unknown. #define GPUREG_0125 0x0125 ///< Unknown.
#define GPUREG_0126 0x0126 ///< Unknown. #define GPUREG_GAS_DELTAZ_DEPTH 0x0126 ///< Unknown.
#define GPUREG_0127 0x0127 ///< Unknown. #define GPUREG_0127 0x0127 ///< Unknown.
#define GPUREG_0128 0x0128 ///< Unknown. #define GPUREG_0128 0x0128 ///< Unknown.
#define GPUREG_0129 0x0129 ///< Unknown. #define GPUREG_0129 0x0129 ///< Unknown.
@ -322,7 +322,7 @@
#define GPUREG_012D 0x012D ///< Unknown. #define GPUREG_012D 0x012D ///< Unknown.
#define GPUREG_012E 0x012E ///< Unknown. #define GPUREG_012E 0x012E ///< Unknown.
#define GPUREG_012F 0x012F ///< Unknown. #define GPUREG_012F 0x012F ///< Unknown.
#define GPUREG_0130 0x0130 ///< Unknown. #define GPUREG_FRAGOP_SHADOW 0x0130 ///< Unknown.
#define GPUREG_0131 0x0131 ///< Unknown. #define GPUREG_0131 0x0131 ///< Unknown.
#define GPUREG_0132 0x0132 ///< Unknown. #define GPUREG_0132 0x0132 ///< Unknown.
#define GPUREG_0133 0x0133 ///< Unknown. #define GPUREG_0133 0x0133 ///< Unknown.
@ -583,11 +583,11 @@
#define GPUREG_VERTEX_OFFSET 0x022A ///< Vertex offset. #define GPUREG_VERTEX_OFFSET 0x022A ///< Vertex offset.
#define GPUREG_022B 0x022B ///< Unknown. #define GPUREG_022B 0x022B ///< Unknown.
#define GPUREG_022C 0x022C ///< Unknown. #define GPUREG_022C 0x022C ///< Unknown.
#define GPUREG_022D 0x022D ///< Unknown. #define GPUREG_POST_VERTEX_CACHE_NUM 0x022D ///< Unknown.
#define GPUREG_DRAWARRAYS 0x022E ///< Draw arrays trigger. #define GPUREG_DRAWARRAYS 0x022E ///< Draw arrays trigger.
#define GPUREG_DRAWELEMENTS 0x022F ///< Draw arrays elements. #define GPUREG_DRAWELEMENTS 0x022F ///< Draw arrays elements.
#define GPUREG_0230 0x0230 ///< Unknown. #define GPUREG_0230 0x0230 ///< Unknown.
#define GPUREG_0231 0x0231 ///< Unknown. #define GPUREG_VTX_FUNC 0x0231 ///< Unknown.
#define GPUREG_FIXEDATTRIB_INDEX 0x0232 ///< Fixed attribute index. #define GPUREG_FIXEDATTRIB_INDEX 0x0232 ///< Fixed attribute index.
#define GPUREG_FIXEDATTRIB_DATA0 0x0233 ///< Fixed attribute data 0. #define GPUREG_FIXEDATTRIB_DATA0 0x0233 ///< Fixed attribute data 0.
#define GPUREG_FIXEDATTRIB_DATA1 0x0234 ///< Fixed attribute data 1. #define GPUREG_FIXEDATTRIB_DATA1 0x0234 ///< Fixed attribute data 1.
@ -604,25 +604,25 @@
#define GPUREG_023F 0x023F ///< Unknown. #define GPUREG_023F 0x023F ///< Unknown.
#define GPUREG_0240 0x0240 ///< Unknown. #define GPUREG_0240 0x0240 ///< Unknown.
#define GPUREG_0241 0x0241 ///< Unknown. #define GPUREG_0241 0x0241 ///< Unknown.
#define GPUREG_0242 0x0242 ///< Unknown. #define GPUREG_VSH_NUM_ATTR 0x0242 ///< Unknown.
#define GPUREG_0243 0x0243 ///< Unknown. #define GPUREG_0243 0x0243 ///< Unknown.
#define GPUREG_0244 0x0244 ///< Unknown. #define GPUREG_VSH_COM_MODE 0x0244 ///< Unknown.
#define GPUREG_0245 0x0245 ///< Unknown. #define GPUREG_START_DRAW_FUNC0 0x0245 ///< Unknown.
#define GPUREG_0246 0x0246 ///< Unknown. #define GPUREG_0246 0x0246 ///< Unknown.
#define GPUREG_0247 0x0247 ///< Unknown. #define GPUREG_0247 0x0247 ///< Unknown.
#define GPUREG_0248 0x0248 ///< Unknown. #define GPUREG_0248 0x0248 ///< Unknown.
#define GPUREG_0249 0x0249 ///< Unknown. #define GPUREG_0249 0x0249 ///< Unknown.
#define GPUREG_024A 0x024A ///< Unknown. #define GPUREG_VSH_OUTMAP_TOTAL1 0x024A ///< Unknown.
#define GPUREG_024B 0x024B ///< Unknown. #define GPUREG_024B 0x024B ///< Unknown.
#define GPUREG_024C 0x024C ///< Unknown. #define GPUREG_024C 0x024C ///< Unknown.
#define GPUREG_024D 0x024D ///< Unknown. #define GPUREG_024D 0x024D ///< Unknown.
#define GPUREG_024E 0x024E ///< Unknown. #define GPUREG_024E 0x024E ///< Unknown.
#define GPUREG_024F 0x024F ///< Unknown. #define GPUREG_024F 0x024F ///< Unknown.
#define GPUREG_0250 0x0250 ///< Unknown. #define GPUREG_0250 0x0250 ///< Unknown.
#define GPUREG_0251 0x0251 ///< Unknown. #define GPUREG_VSH_OUTMAP_TOTAL2 0x0251 ///< Unknown.
#define GPUREG_0252 0x0252 ///< Unknown. #define GPUREG_GSH_MISC0 0x0252 ///< Unknown.
#define GPUREG_0253 0x0253 ///< Unknown. #define GPUREG_GEOSTAGE_CONFIG2 0x0253 ///< Unknown.
#define GPUREG_0254 0x0254 ///< Unknown. #define GPUREG_GSH_MISC1 0x0254 ///< Unknown.
#define GPUREG_0255 0x0255 ///< Unknown. #define GPUREG_0255 0x0255 ///< Unknown.
#define GPUREG_0256 0x0256 ///< Unknown. #define GPUREG_0256 0x0256 ///< Unknown.
#define GPUREG_0257 0x0257 ///< Unknown. #define GPUREG_0257 0x0257 ///< Unknown.

View File

@ -52,7 +52,7 @@ void GPU_SetViewport(u32* depthBuffer, u32* colorBuffer, u32 x, u32 y, u32 w, u3
param[0x2]=f116e; param[0x2]=f116e;
GPUCMD_AddIncrementalWrites(GPUREG_DEPTHBUFFER_LOC, param, 0x00000003); GPUCMD_AddIncrementalWrites(GPUREG_DEPTHBUFFER_LOC, param, 0x00000003);
GPUCMD_AddWrite(GPUREG_FRAMEBUFFER_DIM2, f116e); GPUCMD_AddWrite(GPUREG_RENDERBUF_DIM, f116e);
GPUCMD_AddWrite(GPUREG_DEPTHBUFFER_FORMAT, 0x00000003); //depth buffer format GPUCMD_AddWrite(GPUREG_DEPTHBUFFER_FORMAT, 0x00000003); //depth buffer format
GPUCMD_AddWrite(GPUREG_COLORBUFFER_FORMAT, 0x00000002); //color buffer format GPUCMD_AddWrite(GPUREG_COLORBUFFER_FORMAT, 0x00000002); //color buffer format
GPUCMD_AddWrite(GPUREG_FRAMEBUFFER_BLOCK32, 0x00000000); //? GPUCMD_AddWrite(GPUREG_FRAMEBUFFER_BLOCK32, 0x00000000); //?
@ -90,7 +90,7 @@ void GPU_SetScissorTest(GPU_SCISSORMODE mode, u32 left, u32 bottom, u32 right, u
void GPU_DepthMap(float zScale, float zOffset) void GPU_DepthMap(float zScale, float zOffset)
{ {
GPUCMD_AddWrite(GPUREG_006D, 0x00000001); //? GPUCMD_AddWrite(GPUREG_DEPTHMAP_ENABLE, 0x00000001);
GPUCMD_AddWrite(GPUREG_DEPTHMAP_SCALE, f32tof24(zScale)); GPUCMD_AddWrite(GPUREG_DEPTHMAP_SCALE, f32tof24(zScale));
GPUCMD_AddWrite(GPUREG_DEPTHMAP_OFFSET, f32tof24(zOffset)); GPUCMD_AddWrite(GPUREG_DEPTHMAP_OFFSET, f32tof24(zOffset));
} }
@ -136,8 +136,8 @@ void GPU_SetBlendingColor(u8 r, u8 g, u8 b, u8 a)
void GPU_SetTextureEnable(GPU_TEXUNIT units) void GPU_SetTextureEnable(GPU_TEXUNIT units)
{ {
GPUCMD_AddMaskedWrite(GPUREG_006F, 0x2, units<<8); // enables texcoord outputs GPUCMD_AddMaskedWrite(GPUREG_SH_OUTATTR_CLOCK, 0x2, units<<8); // enables texcoord outputs
GPUCMD_AddWrite(GPUREG_TEXUNIT_ENABLE, 0x00011000|units); // enables texture units GPUCMD_AddWrite(GPUREG_TEXUNIT_CONFIG, 0x00011000|units); // enables texture units
} }
void GPU_SetTexture(GPU_TEXUNIT unit, u32* data, u16 width, u16 height, u32 param, GPU_TEXCOLOR colorType) void GPU_SetTexture(GPU_TEXUNIT unit, u32* data, u16 width, u16 height, u32 param, GPU_TEXCOLOR colorType)
@ -146,21 +146,21 @@ void GPU_SetTexture(GPU_TEXUNIT unit, u32* data, u16 width, u16 height, u32 para
{ {
case GPU_TEXUNIT0: case GPU_TEXUNIT0:
GPUCMD_AddWrite(GPUREG_TEXUNIT0_TYPE, colorType); GPUCMD_AddWrite(GPUREG_TEXUNIT0_TYPE, colorType);
GPUCMD_AddWrite(GPUREG_TEXUNIT0_LOC, ((u32)data)>>3); GPUCMD_AddWrite(GPUREG_TEXUNIT0_ADDR1, ((u32)data)>>3);
GPUCMD_AddWrite(GPUREG_TEXUNIT0_DIM, (width<<16)|height); GPUCMD_AddWrite(GPUREG_TEXUNIT0_DIM, (width<<16)|height);
GPUCMD_AddWrite(GPUREG_TEXUNIT0_PARAM, param); GPUCMD_AddWrite(GPUREG_TEXUNIT0_PARAM, param);
break; break;
case GPU_TEXUNIT1: case GPU_TEXUNIT1:
GPUCMD_AddWrite(GPUREG_TEXUNIT1_TYPE, colorType); GPUCMD_AddWrite(GPUREG_TEXUNIT1_TYPE, colorType);
GPUCMD_AddWrite(GPUREG_TEXUNIT1_LOC, ((u32)data)>>3); GPUCMD_AddWrite(GPUREG_TEXUNIT1_ADDR, ((u32)data)>>3);
GPUCMD_AddWrite(GPUREG_TEXUNIT1_DIM, (width<<16)|height); GPUCMD_AddWrite(GPUREG_TEXUNIT1_DIM, (width<<16)|height);
GPUCMD_AddWrite(GPUREG_TEXUNIT1_PARAM, param); GPUCMD_AddWrite(GPUREG_TEXUNIT1_PARAM, param);
break; break;
case GPU_TEXUNIT2: case GPU_TEXUNIT2:
GPUCMD_AddWrite(GPUREG_TEXUNIT2_TYPE, colorType); GPUCMD_AddWrite(GPUREG_TEXUNIT2_TYPE, colorType);
GPUCMD_AddWrite(GPUREG_TEXUNIT2_LOC, ((u32)data)>>3); GPUCMD_AddWrite(GPUREG_TEXUNIT2_ADDR, ((u32)data)>>3);
GPUCMD_AddWrite(GPUREG_TEXUNIT2_DIM, (width<<16)|height); GPUCMD_AddWrite(GPUREG_TEXUNIT2_DIM, (width<<16)|height);
GPUCMD_AddWrite(GPUREG_TEXUNIT2_PARAM, param); GPUCMD_AddWrite(GPUREG_TEXUNIT2_PARAM, param);
break; break;
@ -218,7 +218,7 @@ void GPU_SetAttributeBuffers(u8 totalAttributes, u32* baseAddress, u64 attribute
GPUCMD_AddIncrementalWrites(GPUREG_ATTRIBBUFFERS_LOC, param, 0x00000027); GPUCMD_AddIncrementalWrites(GPUREG_ATTRIBBUFFERS_LOC, param, 0x00000027);
GPUCMD_AddMaskedWrite(GPUREG_VSH_INPUTBUFFER_CONFIG, 0xB, 0xA0000000|(totalAttributes-1)); GPUCMD_AddMaskedWrite(GPUREG_VSH_INPUTBUFFER_CONFIG, 0xB, 0xA0000000|(totalAttributes-1));
GPUCMD_AddWrite(GPUREG_0242, (totalAttributes-1)); GPUCMD_AddWrite(GPUREG_VSH_NUM_ATTR, (totalAttributes-1));
GPUCMD_AddIncrementalWrites(GPUREG_VSH_ATTRIBUTES_PERMUTATION_LOW, ((u32[]){attributePermutation&0xFFFFFFFF, (attributePermutation>>32)&0xFFFF}), 2); GPUCMD_AddIncrementalWrites(GPUREG_VSH_ATTRIBUTES_PERMUTATION_LOW, ((u32[]){attributePermutation&0xFFFFFFFF, (attributePermutation>>32)&0xFFFF}), 2);
} }
@ -268,11 +268,11 @@ void GPU_DrawArray(GPU_Primitive_t primitive, u32 first, u32 count)
GPUCMD_AddWrite(GPUREG_VERTEX_OFFSET, first); GPUCMD_AddWrite(GPUREG_VERTEX_OFFSET, first);
//all the following except 0x000F022E might be useless //all the following except 0x000F022E might be useless
GPUCMD_AddMaskedWrite(GPUREG_0253, 0x1, 0x00000001); GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG2, 0x1, 0x00000001);
GPUCMD_AddMaskedWrite(GPUREG_0245, 0x1, 0x00000000); GPUCMD_AddMaskedWrite(GPUREG_START_DRAW_FUNC0, 0x1, 0x00000000);
GPUCMD_AddWrite(GPUREG_DRAWARRAYS, 0x00000001); GPUCMD_AddWrite(GPUREG_DRAWARRAYS, 0x00000001);
GPUCMD_AddMaskedWrite(GPUREG_0245, 0x1, 0x00000001); GPUCMD_AddMaskedWrite(GPUREG_START_DRAW_FUNC0, 0x1, 0x00000001);
GPUCMD_AddWrite(GPUREG_0231, 0x00000001); GPUCMD_AddWrite(GPUREG_VTX_FUNC, 0x00000001);
GPUCMD_AddWrite(GPUREG_FRAMEBUFFER_FLUSH, 0x00000001); GPUCMD_AddWrite(GPUREG_FRAMEBUFFER_FLUSH, 0x00000001);
} }
@ -289,12 +289,12 @@ void GPU_DrawElements(GPU_Primitive_t primitive, u32* indexArray, u32 n)
GPUCMD_AddWrite(GPUREG_VERTEX_OFFSET, 0x00000000); GPUCMD_AddWrite(GPUREG_VERTEX_OFFSET, 0x00000000);
GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 0x2, 0x00000100); GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 0x2, 0x00000100);
GPUCMD_AddMaskedWrite(GPUREG_0253, 0x2, 0x00000100); GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG2, 0x2, 0x00000100);
GPUCMD_AddMaskedWrite(GPUREG_0245, 0x1, 0x00000000); GPUCMD_AddMaskedWrite(GPUREG_START_DRAW_FUNC0, 0x1, 0x00000000);
GPUCMD_AddWrite(GPUREG_DRAWELEMENTS, 0x00000001); GPUCMD_AddWrite(GPUREG_DRAWELEMENTS, 0x00000001);
GPUCMD_AddMaskedWrite(GPUREG_0245, 0x1, 0x00000001); GPUCMD_AddMaskedWrite(GPUREG_START_DRAW_FUNC0, 0x1, 0x00000001);
GPUCMD_AddWrite(GPUREG_0231, 0x00000001); GPUCMD_AddWrite(GPUREG_VTX_FUNC, 0x00000001);
// CHECKME: does this one also require GPUREG_FRAMEBUFFER_FLUSH at the end? // CHECKME: does this one also require GPUREG_FRAMEBUFFER_FLUSH at the end?
} }
@ -303,5 +303,5 @@ void GPU_FinishDrawing()
{ {
GPUCMD_AddWrite(GPUREG_FRAMEBUFFER_FLUSH, 0x00000001); GPUCMD_AddWrite(GPUREG_FRAMEBUFFER_FLUSH, 0x00000001);
GPUCMD_AddWrite(GPUREG_FRAMEBUFFER_INVALIDATE, 0x00000001); GPUCMD_AddWrite(GPUREG_FRAMEBUFFER_INVALIDATE, 0x00000001);
GPUCMD_AddWrite(GPUREG_0063, 0x00000001); GPUCMD_AddWrite(GPUREG_EARLYDEPTH_CLEAR, 0x00000001);
} }

View File

@ -192,10 +192,10 @@ Result shaderProgramConfigure(shaderProgram_s* sp, bool sendVshCode, bool sendGs
if(!sp->geometryShader) if(!sp->geometryShader)
{ {
GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 0x1, 0x00000000); GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 0x1, 0x00000000);
GPUCMD_AddMaskedWrite(GPUREG_0244, 0x1, 0x00000000); GPUCMD_AddMaskedWrite(GPUREG_VSH_COM_MODE, 0x1, 0x00000000);
}else{ }else{
GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 0x1, 0x00000002); GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 0x1, 0x00000002);
GPUCMD_AddMaskedWrite(GPUREG_0244, 0x1, 0x00000001); GPUCMD_AddMaskedWrite(GPUREG_VSH_COM_MODE, 0x1, 0x00000001);
} }
// setup vertex shader stuff no matter what // setup vertex shader stuff no matter what
@ -209,19 +209,19 @@ Result shaderProgramConfigure(shaderProgram_s* sp, bool sendVshCode, bool sendGs
GPUCMD_AddWrite(GPUREG_VSH_ENTRYPOINT, 0x7FFF0000|(vshDvle->mainOffset&0xFFFF)); GPUCMD_AddWrite(GPUREG_VSH_ENTRYPOINT, 0x7FFF0000|(vshDvle->mainOffset&0xFFFF));
GPUCMD_AddWrite(GPUREG_VSH_OUTMAP_MASK, vshDvle->outmapMask); GPUCMD_AddWrite(GPUREG_VSH_OUTMAP_MASK, vshDvle->outmapMask);
GPUCMD_AddWrite(GPUREG_024A, vshDvle->outmapData[0]-1); // ? GPUCMD_AddWrite(GPUREG_VSH_OUTMAP_TOTAL1, vshDvle->outmapData[0]-1); // ?
GPUCMD_AddWrite(GPUREG_0251, vshDvle->outmapData[0]-1); // ? GPUCMD_AddWrite(GPUREG_VSH_OUTMAP_TOTAL2, vshDvle->outmapData[0]-1); // ?
GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 0x8, 0x00000000); // ? GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 0x8, 0x00000000); // ?
GPUCMD_AddWrite(GPUREG_0252, 0x00000000); // ? GPUCMD_AddWrite(GPUREG_GSH_MISC0, 0x00000000); // ?
if(!sp->geometryShader) if(!sp->geometryShader)
{ {
// finish setting up vertex shader alone // finish setting up vertex shader alone
GPU_SetShaderOutmap((u32*)vshDvle->outmapData); GPU_SetShaderOutmap((u32*)vshDvle->outmapData);
GPUCMD_AddWrite(GPUREG_0064, 0x00000001); // ? GPUCMD_AddWrite(GPUREG_SH_OUTATTR_MODE, 0x00000001); // ?
GPUCMD_AddWrite(GPUREG_006F, 0x00000703); // ? GPUCMD_AddWrite(GPUREG_SH_OUTATTR_CLOCK, 0x00000703); // ?
}else{ }else{
// setup both vertex and geometry shader // setup both vertex and geometry shader
const DVLE_s* gshDvle = sp->geometryShader->dvle; const DVLE_s* gshDvle = sp->geometryShader->dvle;
@ -240,8 +240,8 @@ Result shaderProgramConfigure(shaderProgram_s* sp, bool sendVshCode, bool sendGs
GPUCMD_AddWrite(GPUREG_GSH_INPUTBUFFER_CONFIG, 0x08000000|(sp->geoShaderInputStride-1)); GPUCMD_AddWrite(GPUREG_GSH_INPUTBUFFER_CONFIG, 0x08000000|(sp->geoShaderInputStride-1));
GPUCMD_AddIncrementalWrites(GPUREG_GSH_ATTRIBUTES_PERMUTATION_LOW, sp->geoShaderInputPermutation, 2); GPUCMD_AddIncrementalWrites(GPUREG_GSH_ATTRIBUTES_PERMUTATION_LOW, sp->geoShaderInputPermutation, 2);
GPUCMD_AddWrite(GPUREG_0064, 0x00000001); // ? GPUCMD_AddWrite(GPUREG_SH_OUTATTR_MODE, 0x00000001); // ?
GPUCMD_AddWrite(GPUREG_006F, 0x01030703); // ? GPUCMD_AddWrite(GPUREG_SH_OUTATTR_CLOCK, 0x01030703); // ?
} }
return 0; return 0;