]> Chaos Git - corbenik/ctrulib.git/commitdiff
Add new GPU register names and enumerations from the 3dbrew Wiki
authorfincs <fincs.alt1@gmail.com>
Tue, 1 Dec 2015 11:58:57 +0000 (12:58 +0100)
committerfincs <fincs.alt1@gmail.com>
Tue, 1 Dec 2015 11:58:57 +0000 (12:58 +0100)
libctru/include/3ds/gpu/enums.h
libctru/include/3ds/gpu/registers.h
libctru/source/gpu/gpu-old.c
libctru/source/gpu/shaderProgram.c

index 9614b8e0028b909a86017479e4d63efa255d659c..2307a96452b5621580d7eb16daed143c949bbbc1 100644 (file)
@@ -32,6 +32,17 @@ typedef enum
        GPU_MIRRORED_REPEAT = 0x3, ///< Repeats with mirrored texture.
 } 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.
 typedef enum
 {
@@ -87,7 +98,16 @@ typedef enum
        GPU_LEQUAL   = 5, ///< Pass if less than or equal.
        GPU_GREATER  = 6, ///< Pass if greater than.
        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.
 typedef enum
index 52bf566e41f8e690b6b394fa24a3809e4d086897..f94600d0b177fc62755956cb69d8ba755695137b 100644 (file)
 #define GPUREG_VIEWPORT_INVH 0x0044      ///< Inverted viewport height.\r
 #define GPUREG_0045 0x0045               ///< Unknown\r
 #define GPUREG_0046 0x0046               ///< Unknown\r
-#define GPUREG_0047 0x0047               ///< Unknown\r
-#define GPUREG_0048 0x0048               ///< Unknown\r
-#define GPUREG_0049 0x0049               ///< Unknown\r
-#define GPUREG_004A 0x004A               ///< Unknown\r
-#define GPUREG_004B 0x004B               ///< Unknown\r
+#define GPUREG_FRAGOP_CLIP 0x0047        ///< Unknown\r
+#define GPUREG_FRAGOP_CLIP_DATA0 0x0048  ///< Unknown\r
+#define GPUREG_FRAGOP_CLIP_DATA1 0x0049  ///< Unknown\r
+#define GPUREG_FRAGOP_CLIP_DATA2 0x004A  ///< Unknown\r
+#define GPUREG_FRAGOP_CLIP_DATA3 0x004B  ///< Unknown\r
 #define GPUREG_004C 0x004C               ///< Unknown\r
 #define GPUREG_DEPTHMAP_SCALE 0x004D     ///< Depth map scale.\r
 #define GPUREG_DEPTHMAP_OFFSET 0x004E    ///< Depth map offset.\r
 #define GPUREG_005E 0x005E               ///< Unknown\r
 #define GPUREG_005F 0x005F               ///< Unknown\r
 #define GPUREG_0060 0x0060               ///< Unknown\r
-#define GPUREG_0061 0x0061               ///< Unknown\r
-#define GPUREG_0062 0x0062               ///< Unknown\r
-#define GPUREG_0063 0x0063               ///< Unknown\r
-#define GPUREG_0064 0x0064               ///< Unknown\r
+#define GPUREG_EARLYDEPTH_FUNC 0x0061    ///< Unknown\r
+#define GPUREG_EARLYDEPTH_TEST1 0x0062   ///< Unknown\r
+#define GPUREG_EARLYDEPTH_CLEAR 0x0063   ///< Unknown\r
+#define GPUREG_SH_OUTATTR_MODE 0x0064    ///< Shader output attributes mode.\r
 #define GPUREG_SCISSORTEST_MODE 0x0065   ///< Scissor test mode.\r
 #define GPUREG_SCISSORTEST_POS 0x0066    ///< Scissor test position.\r
 #define GPUREG_SCISSORTEST_DIM 0x0067    ///< Scissor text dimensions.\r
 #define GPUREG_VIEWPORT_XY 0x0068        ///< Viewport X and Y.\r
 #define GPUREG_0069 0x0069               ///< Unknown\r
-#define GPUREG_006A 0x006A               ///< Unknown\r
+#define GPUREG_EARLYDEPTH_DATA 0x006A    ///< Unknown\r
 #define GPUREG_006B 0x006B               ///< Unknown\r
 #define GPUREG_006C 0x006C               ///< Unknown\r
-#define GPUREG_006D 0x006D               ///< Unknown\r
-#define GPUREG_FRAMEBUFFER_DIM2 0x006E   ///< Framebuffer dimensions.\r
-#define GPUREG_006F 0x006F               ///< Unknown\r
+#define GPUREG_DEPTHMAP_ENABLE 0x006D    ///< Depth map enable.\r
+#define GPUREG_RENDERBUF_DIM 0x006E      ///< Renderbuffer dimensions.\r
+#define GPUREG_SH_OUTATTR_CLOCK 0x006F   ///< Shader output attributes clock enable.\r
 #define GPUREG_0070 0x0070               ///< Unknown\r
 #define GPUREG_0071 0x0071               ///< Unknown\r
 #define GPUREG_0072 0x0072               ///< Unknown\r
 \r
 ///@name Texturing registers (0x080-0x0FF)\r
 ///@{\r
-#define GPUREG_TEXUNIT_ENABLE 0x0080        ///< Enabled texture units.\r
+#define GPUREG_TEXUNIT_CONFIG 0x0080        ///< Texture unit configuration.\r
 #define GPUREG_TEXUNIT0_BORDER_COLOR 0x0081 ///< Texture unit 0 border color.\r
 #define GPUREG_TEXUNIT0_DIM 0x0082          ///< Texture unit 0 dimensions.\r
 #define GPUREG_TEXUNIT0_PARAM 0x0083        ///< Texture unit 0 parameters.\r
-#define GPUREG_0084 0x0084                  ///< Unknown.\r
-#define GPUREG_TEXUNIT0_LOC 0x0085          ///< Texture unit 0 address.\r
-#define GPUREG_0086 0x0086                  ///< Unknown.\r
-#define GPUREG_0087 0x0087                  ///< Unknown.\r
-#define GPUREG_0088 0x0088                  ///< Unknown.\r
-#define GPUREG_0089 0x0089                  ///< Unknown.\r
-#define GPUREG_008A 0x008A                  ///< Unknown.\r
-#define GPUREG_008B 0x008B                  ///< Unknown.\r
+#define GPUREG_TEXUNIT0_LOD 0x0084          ///< Texture unit 0 LOD.\r
+#define GPUREG_TEXUNIT0_ADDR1 0x0085        ///< Texture unit 0 address.\r
+#define GPUREG_TEXUNIT0_ADDR2 0x0086        ///< Unknown.\r
+#define GPUREG_TEXUNIT0_ADDR3 0x0087        ///< Unknown.\r
+#define GPUREG_TEXUNIT0_ADDR4 0x0088        ///< Unknown.\r
+#define GPUREG_TEXUNIT0_ADDR5 0x0089        ///< Unknown.\r
+#define GPUREG_TEXUNIT0_ADDR6 0x008A        ///< Unknown.\r
+#define GPUREG_TEXUNIT0_SHADOW 0x008B       ///< Unknown.\r
 #define GPUREG_008C 0x008C                  ///< Unknown.\r
 #define GPUREG_008D 0x008D                  ///< Unknown.\r
 #define GPUREG_TEXUNIT0_TYPE 0x008E         ///< Texture unit 0 type.\r
 #define GPUREG_TEXUNIT1_BORDER_COLOR 0x0091 ///< Texture unit 1 border color.\r
 #define GPUREG_TEXUNIT1_DIM 0x0092          ///< Texture unit 1 dimensions.\r
 #define GPUREG_TEXUNIT1_PARAM 0x0093        ///< Texture unit 1 parameters.\r
-#define GPUREG_0094 0x0094                  ///< Unknown.\r
-#define GPUREG_TEXUNIT1_LOC 0x0095          ///< Texture unit 1 address.\r
+#define GPUREG_TEXUNIT1_LOD 0x0094          ///< Texture unit 1 LOD.\r
+#define GPUREG_TEXUNIT1_ADDR 0x0095         ///< Texture unit 1 address.\r
 #define GPUREG_TEXUNIT1_TYPE 0x0096         ///< Texture unit 1 type.\r
 #define GPUREG_0097 0x0097                  ///< Unknown.\r
 #define GPUREG_0098 0x0098                  ///< Unknown.\r
 #define GPUREG_TEXUNIT2_BORDER_COLOR 0x0099 ///< Texture unit 2 border color.\r
 #define GPUREG_TEXUNIT2_DIM 0x009A          ///< Texture unit 2 dimensions.\r
 #define GPUREG_TEXUNIT2_PARAM 0x009B        ///< Texture unit 2 parameters.\r
-#define GPUREG_009C 0x009C                  ///< Unknown.\r
-#define GPUREG_TEXUNIT2_LOC 0x009D          ///< Texture unit 2 location.\r
+#define GPUREG_TEXUNIT2_LOD 0x009C          ///< Texture unit 2 LOD.\r
+#define GPUREG_TEXUNIT2_ADDR 0x009D         ///< Texture unit 2 address.\r
 #define GPUREG_TEXUNIT2_TYPE 0x009E         ///< Texture unit 2 type.\r
 #define GPUREG_009F 0x009F                  ///< Unknown.\r
 #define GPUREG_00A0 0x00A0                  ///< Unknown.\r
 #define GPUREG_00A5 0x00A5                  ///< Unknown.\r
 #define GPUREG_00A6 0x00A6                  ///< Unknown.\r
 #define GPUREG_00A7 0x00A7                  ///< Unknown.\r
-#define GPUREG_00A8 0x00A8                  ///< Unknown.\r
-#define GPUREG_00A9 0x00A9                  ///< Unknown.\r
-#define GPUREG_00AA 0x00AA                  ///< Unknown.\r
-#define GPUREG_00AB 0x00AB                  ///< Unknown.\r
-#define GPUREG_00AC 0x00AC                  ///< Unknown.\r
-#define GPUREG_00AD 0x00AD                  ///< Unknown.\r
+#define GPUREG_TEXUNIT3_PROTEX0 0x00A8      ///< Unknown.\r
+#define GPUREG_TEXUNIT3_PROTEX1 0x00A9      ///< Unknown.\r
+#define GPUREG_TEXUNIT3_PROTEX2 0x00AA      ///< Unknown.\r
+#define GPUREG_TEXUNIT3_PROTEX3 0x00AB      ///< Unknown.\r
+#define GPUREG_TEXUNIT3_PROTEX4 0x00AC      ///< Unknown.\r
+#define GPUREG_TEXUNIT3_PROTEX5 0x00AD      ///< Unknown.\r
 #define GPUREG_00AE 0x00AE                  ///< Unknown.\r
-#define GPUREG_00AF 0x00AF                  ///< Unknown.\r
-#define GPUREG_00B0 0x00B0                  ///< Unknown.\r
-#define GPUREG_00B1 0x00B1                  ///< Unknown.\r
-#define GPUREG_00B2 0x00B2                  ///< Unknown.\r
-#define GPUREG_00B3 0x00B3                  ///< Unknown.\r
-#define GPUREG_00B4 0x00B4                  ///< Unknown.\r
-#define GPUREG_00B5 0x00B5                  ///< Unknown.\r
-#define GPUREG_00B6 0x00B6                  ///< Unknown.\r
-#define GPUREG_00B7 0x00B7                  ///< Unknown.\r
+#define GPUREG_PROTEX_LUT 0x00AF            ///< Unknown.\r
+#define GPUREG_PROTEX_LUT_DATA0 0x00B0      ///< Unknown.\r
+#define GPUREG_PROTEX_LUT_DATA1 0x00B1      ///< Unknown.\r
+#define GPUREG_PROTEX_LUT_DATA2 0x00B2      ///< Unknown.\r
+#define GPUREG_PROTEX_LUT_DATA3 0x00B3      ///< Unknown.\r
+#define GPUREG_PROTEX_LUT_DATA4 0x00B4      ///< Unknown.\r
+#define GPUREG_PROTEX_LUT_DATA5 0x00B5      ///< Unknown.\r
+#define GPUREG_PROTEX_LUT_DATA6 0x00B6      ///< Unknown.\r
+#define GPUREG_PROTEX_LUT_DATA7 0x00B7      ///< Unknown.\r
 #define GPUREG_00B8 0x00B8                  ///< Unknown.\r
 #define GPUREG_00B9 0x00B9                  ///< Unknown.\r
 #define GPUREG_00BA 0x00BA                  ///< Unknown.\r
 #define GPUREG_00DE 0x00DE                  ///< Unknown.\r
 #define GPUREG_00DF 0x00DF                  ///< Unknown.\r
 #define GPUREG_TEXENV_UPDATE_BUFFER 0x00E0  ///< Texture env buffer update flag.\r
-#define GPUREG_00E1 0x00E1                  ///< Unknown.\r
+#define GPUREG_FOG_COLOR 0x00E1             ///< Unknown.\r
 #define GPUREG_00E2 0x00E2                  ///< Unknown.\r
 #define GPUREG_00E3 0x00E3                  ///< Unknown.\r
-#define GPUREG_00E4 0x00E4                  ///< Unknown.\r
-#define GPUREG_00E5 0x00E5                  ///< Unknown.\r
-#define GPUREG_00E6 0x00E6                  ///< Unknown.\r
+#define GPUREG_GAS_ATTENUATION 0x00E4       ///< Unknown.\r
+#define GPUREG_GAS_ACCMAX 0x00E5            ///< Unknown.\r
+#define GPUREG_FOG_LUT_INDEX 0x00E6         ///< Unknown.\r
 #define GPUREG_00E7 0x00E7                  ///< Unknown.\r
-#define GPUREG_00E8 0x00E8                  ///< Unknown.\r
-#define GPUREG_00E9 0x00E9                  ///< Unknown.\r
-#define GPUREG_00EA 0x00EA                  ///< Unknown.\r
-#define GPUREG_00EB 0x00EB                  ///< Unknown.\r
-#define GPUREG_00EC 0x00EC                  ///< Unknown.\r
-#define GPUREG_00ED 0x00ED                  ///< Unknown.\r
-#define GPUREG_00EE 0x00EE                  ///< Unknown.\r
-#define GPUREG_00EF 0x00EF                  ///< Unknown.\r
+#define GPUREG_FOG_LUT_DATA0 0x00E8         ///< Unknown.\r
+#define GPUREG_FOG_LUT_DATA1 0x00E9         ///< Unknown.\r
+#define GPUREG_FOG_LUT_DATA2 0x00EA         ///< Unknown.\r
+#define GPUREG_FOG_LUT_DATA3 0x00EB         ///< Unknown.\r
+#define GPUREG_FOG_LUT_DATA4 0x00EC         ///< Unknown.\r
+#define GPUREG_FOG_LUT_DATA5 0x00ED         ///< Unknown.\r
+#define GPUREG_FOG_LUT_DATA6 0x00EE         ///< Unknown.\r
+#define GPUREG_FOG_LUT_DATA7 0x00EF         ///< Unknown.\r
 #define GPUREG_TEXENV4_SOURCE 0x00F0        ///< Texture env 4 source.\r
 #define GPUREG_TEXENV4_OPERAND 0x00F1       ///< Texture env 4 operand.\r
 #define GPUREG_TEXENV4_COMBINER 0x00F2      ///< Texture env 4 combiner.\r
 #define GPUREG_DEPTHBUFFER_WRITE 0x0115      ///< Writes to the depth buffer.\r
 #define GPUREG_DEPTHBUFFER_FORMAT 0x0116     ///< Depth buffer format.\r
 #define GPUREG_COLORBUFFER_FORMAT 0x0117     ///< Color buffer format.\r
-#define GPUREG_0118 0x0118                   ///< Unknown.\r
+#define GPUREG_EARLYDEPTH_TEST2 0x0118       ///< Unknown.\r
 #define GPUREG_0119 0x0119                   ///< Unknown.\r
 #define GPUREG_011A 0x011A                   ///< Unknown.\r
 #define GPUREG_FRAMEBUFFER_BLOCK32 0x011B    ///< Frame buffer block 32.\r
 #define GPUREG_COLORBUFFER_LOC 0x011D        ///< Color buffer location.\r
 #define GPUREG_FRAMEBUFFER_DIM 0x011E        ///< Frame buffer dimensions.\r
 #define GPUREG_011F 0x011F                   ///< Unknown.\r
-#define GPUREG_0120 0x0120                   ///< Unknown.\r
-#define GPUREG_0121 0x0121                   ///< Unknown.\r
-#define GPUREG_0122 0x0122                   ///< Unknown.\r
-#define GPUREG_0123 0x0123                   ///< Unknown.\r
-#define GPUREG_0124 0x0124                   ///< Unknown.\r
+#define GPUREG_GAS_LIGHT_XY 0x0120           ///< Unknown.\r
+#define GPUREG_GAS_LIGHT_Z 0x0121            ///< Unknown.\r
+#define GPUREG_GAS_LIGHT_Z_COLOR 0x0122      ///< Unknown.\r
+#define GPUREG_GAS_LUT_INDEX 0x0123          ///< Unknown.\r
+#define GPUREG_GAS_LUT_DATA 0x0124           ///< Unknown.\r
 #define GPUREG_0125 0x0125                   ///< Unknown.\r
-#define GPUREG_0126 0x0126                   ///< Unknown.\r
+#define GPUREG_GAS_DELTAZ_DEPTH 0x0126       ///< Unknown.\r
 #define GPUREG_0127 0x0127                   ///< Unknown.\r
 #define GPUREG_0128 0x0128                   ///< Unknown.\r
 #define GPUREG_0129 0x0129                   ///< Unknown.\r
 #define GPUREG_012D 0x012D                   ///< Unknown.\r
 #define GPUREG_012E 0x012E                   ///< Unknown.\r
 #define GPUREG_012F 0x012F                   ///< Unknown.\r
-#define GPUREG_0130 0x0130                   ///< Unknown.\r
+#define GPUREG_FRAGOP_SHADOW 0x0130          ///< Unknown.\r
 #define GPUREG_0131 0x0131                   ///< Unknown.\r
 #define GPUREG_0132 0x0132                   ///< Unknown.\r
 #define GPUREG_0133 0x0133                   ///< Unknown.\r
 #define GPUREG_VERTEX_OFFSET 0x022A             ///< Vertex offset.\r
 #define GPUREG_022B 0x022B                      ///< Unknown.\r
 #define GPUREG_022C 0x022C                      ///< Unknown.\r
-#define GPUREG_022D 0x022D                      ///< Unknown.\r
+#define GPUREG_POST_VERTEX_CACHE_NUM 0x022D     ///< Unknown.\r
 #define GPUREG_DRAWARRAYS 0x022E                ///< Draw arrays trigger.\r
 #define GPUREG_DRAWELEMENTS 0x022F              ///< Draw arrays elements.\r
 #define GPUREG_0230 0x0230                      ///< Unknown.\r
-#define GPUREG_0231 0x0231                      ///< Unknown.\r
+#define GPUREG_VTX_FUNC 0x0231                  ///< Unknown.\r
 #define GPUREG_FIXEDATTRIB_INDEX 0x0232         ///< Fixed attribute index.\r
 #define GPUREG_FIXEDATTRIB_DATA0 0x0233         ///< Fixed attribute data 0.\r
 #define GPUREG_FIXEDATTRIB_DATA1 0x0234         ///< Fixed attribute data 1.\r
 #define GPUREG_023F 0x023F                      ///< Unknown.\r
 #define GPUREG_0240 0x0240                      ///< Unknown.\r
 #define GPUREG_0241 0x0241                      ///< Unknown.\r
-#define GPUREG_0242 0x0242                      ///< Unknown.\r
+#define GPUREG_VSH_NUM_ATTR 0x0242              ///< Unknown.\r
 #define GPUREG_0243 0x0243                      ///< Unknown.\r
-#define GPUREG_0244 0x0244                      ///< Unknown.\r
-#define GPUREG_0245 0x0245                      ///< Unknown.\r
+#define GPUREG_VSH_COM_MODE 0x0244              ///< Unknown.\r
+#define GPUREG_START_DRAW_FUNC0 0x0245          ///< Unknown.\r
 #define GPUREG_0246 0x0246                      ///< Unknown.\r
 #define GPUREG_0247 0x0247                      ///< Unknown.\r
 #define GPUREG_0248 0x0248                      ///< Unknown.\r
 #define GPUREG_0249 0x0249                      ///< Unknown.\r
-#define GPUREG_024A 0x024A                      ///< Unknown.\r
+#define GPUREG_VSH_OUTMAP_TOTAL1 0x024A         ///< Unknown.\r
 #define GPUREG_024B 0x024B                      ///< Unknown.\r
 #define GPUREG_024C 0x024C                      ///< Unknown.\r
 #define GPUREG_024D 0x024D                      ///< Unknown.\r
 #define GPUREG_024E 0x024E                      ///< Unknown.\r
 #define GPUREG_024F 0x024F                      ///< Unknown.\r
 #define GPUREG_0250 0x0250                      ///< Unknown.\r
-#define GPUREG_0251 0x0251                      ///< Unknown.\r
-#define GPUREG_0252 0x0252                      ///< Unknown.\r
-#define GPUREG_0253 0x0253                      ///< Unknown.\r
-#define GPUREG_0254 0x0254                      ///< Unknown.\r
+#define GPUREG_VSH_OUTMAP_TOTAL2 0x0251         ///< Unknown.\r
+#define GPUREG_GSH_MISC0 0x0252                 ///< Unknown.\r
+#define GPUREG_GEOSTAGE_CONFIG2 0x0253          ///< Unknown.\r
+#define GPUREG_GSH_MISC1 0x0254                 ///< Unknown.\r
 #define GPUREG_0255 0x0255                      ///< Unknown.\r
 #define GPUREG_0256 0x0256                      ///< Unknown.\r
 #define GPUREG_0257 0x0257                      ///< Unknown.\r
index 745010504390b65ccbe7b9ac10a0cc889d4e8a2f..25089c3dd994f3c87df152dd793f98c923ff3925 100644 (file)
@@ -52,7 +52,7 @@ void GPU_SetViewport(u32* depthBuffer, u32* colorBuffer, u32 x, u32 y, u32 w, u3
        param[0x2]=f116e;
        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_COLORBUFFER_FORMAT, 0x00000002); //color buffer format
        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)
 {
-       GPUCMD_AddWrite(GPUREG_006D, 0x00000001); //?
+       GPUCMD_AddWrite(GPUREG_DEPTHMAP_ENABLE, 0x00000001);
        GPUCMD_AddWrite(GPUREG_DEPTHMAP_SCALE, f32tof24(zScale));
        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)
 {
-       GPUCMD_AddMaskedWrite(GPUREG_006F, 0x2, units<<8);                      // enables texcoord outputs
-       GPUCMD_AddWrite(GPUREG_TEXUNIT_ENABLE, 0x00011000|units);       // enables texture units
+       GPUCMD_AddMaskedWrite(GPUREG_SH_OUTATTR_CLOCK, 0x2, units<<8); // enables texcoord outputs
+       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)
@@ -146,21 +146,21 @@ void GPU_SetTexture(GPU_TEXUNIT unit, u32* data, u16 width, u16 height, u32 para
        {
        case GPU_TEXUNIT0:
                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_PARAM, param);
                break;
                
        case GPU_TEXUNIT1:
                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_PARAM, param);
                break;
                
        case GPU_TEXUNIT2:
                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_PARAM, param);
                break;
@@ -218,7 +218,7 @@ void GPU_SetAttributeBuffers(u8 totalAttributes, u32* baseAddress, u64 attribute
        GPUCMD_AddIncrementalWrites(GPUREG_ATTRIBBUFFERS_LOC, param, 0x00000027);
 
        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);
 }
@@ -268,11 +268,11 @@ void GPU_DrawArray(GPU_Primitive_t primitive, u32 first, u32 count)
        GPUCMD_AddWrite(GPUREG_VERTEX_OFFSET, first);
 
        //all the following except 0x000F022E might be useless
-       GPUCMD_AddMaskedWrite(GPUREG_0253, 0x1, 0x00000001);
-       GPUCMD_AddMaskedWrite(GPUREG_0245, 0x1, 0x00000000);
+       GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG2, 0x1, 0x00000001);
+       GPUCMD_AddMaskedWrite(GPUREG_START_DRAW_FUNC0, 0x1, 0x00000000);
        GPUCMD_AddWrite(GPUREG_DRAWARRAYS, 0x00000001);
-       GPUCMD_AddMaskedWrite(GPUREG_0245, 0x1, 0x00000001);
-       GPUCMD_AddWrite(GPUREG_0231, 0x00000001);
+       GPUCMD_AddMaskedWrite(GPUREG_START_DRAW_FUNC0, 0x1, 0x00000001);
+       GPUCMD_AddWrite(GPUREG_VTX_FUNC, 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_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_AddMaskedWrite(GPUREG_0245, 0x1, 0x00000001);
-       GPUCMD_AddWrite(GPUREG_0231, 0x00000001);
+       GPUCMD_AddMaskedWrite(GPUREG_START_DRAW_FUNC0, 0x1, 0x00000001);
+       GPUCMD_AddWrite(GPUREG_VTX_FUNC, 0x00000001);
        
        // 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_INVALIDATE, 0x00000001);
-       GPUCMD_AddWrite(GPUREG_0063, 0x00000001);
+       GPUCMD_AddWrite(GPUREG_EARLYDEPTH_CLEAR, 0x00000001);
 }
index abefbe180f87853da8457bc41a41d2f020d7d2d7..876332b7a3ec26d65c151c9aa120f8ed10a70446 100644 (file)
@@ -192,10 +192,10 @@ Result shaderProgramConfigure(shaderProgram_s* sp, bool sendVshCode, bool sendGs
        if(!sp->geometryShader)\r
        {\r
                GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 0x1, 0x00000000);\r
-               GPUCMD_AddMaskedWrite(GPUREG_0244, 0x1, 0x00000000);\r
+               GPUCMD_AddMaskedWrite(GPUREG_VSH_COM_MODE, 0x1, 0x00000000);\r
        }else{\r
                GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 0x1, 0x00000002);\r
-               GPUCMD_AddMaskedWrite(GPUREG_0244, 0x1, 0x00000001);\r
+               GPUCMD_AddMaskedWrite(GPUREG_VSH_COM_MODE, 0x1, 0x00000001);\r
        }\r
 \r
        // setup vertex shader stuff no matter what\r
@@ -209,19 +209,19 @@ Result shaderProgramConfigure(shaderProgram_s* sp, bool sendVshCode, bool sendGs
        GPUCMD_AddWrite(GPUREG_VSH_ENTRYPOINT, 0x7FFF0000|(vshDvle->mainOffset&0xFFFF));\r
        GPUCMD_AddWrite(GPUREG_VSH_OUTMAP_MASK, vshDvle->outmapMask);\r
 \r
-       GPUCMD_AddWrite(GPUREG_024A, vshDvle->outmapData[0]-1); // ?\r
-       GPUCMD_AddWrite(GPUREG_0251, vshDvle->outmapData[0]-1); // ?\r
+       GPUCMD_AddWrite(GPUREG_VSH_OUTMAP_TOTAL1, vshDvle->outmapData[0]-1); // ?\r
+       GPUCMD_AddWrite(GPUREG_VSH_OUTMAP_TOTAL2, vshDvle->outmapData[0]-1); // ?\r
 \r
        GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 0x8, 0x00000000); // ?\r
-       GPUCMD_AddWrite(GPUREG_0252, 0x00000000); // ?\r
+       GPUCMD_AddWrite(GPUREG_GSH_MISC0, 0x00000000); // ?\r
 \r
        if(!sp->geometryShader)\r
        {\r
                // finish setting up vertex shader alone\r
                GPU_SetShaderOutmap((u32*)vshDvle->outmapData);\r
 \r
-               GPUCMD_AddWrite(GPUREG_0064, 0x00000001); // ?\r
-               GPUCMD_AddWrite(GPUREG_006F, 0x00000703); // ?\r
+               GPUCMD_AddWrite(GPUREG_SH_OUTATTR_MODE, 0x00000001); // ?\r
+               GPUCMD_AddWrite(GPUREG_SH_OUTATTR_CLOCK, 0x00000703); // ?\r
        }else{\r
                // setup both vertex and geometry shader\r
                const DVLE_s* gshDvle = sp->geometryShader->dvle;\r
@@ -240,8 +240,8 @@ Result shaderProgramConfigure(shaderProgram_s* sp, bool sendVshCode, bool sendGs
                GPUCMD_AddWrite(GPUREG_GSH_INPUTBUFFER_CONFIG, 0x08000000|(sp->geoShaderInputStride-1));\r
                GPUCMD_AddIncrementalWrites(GPUREG_GSH_ATTRIBUTES_PERMUTATION_LOW, sp->geoShaderInputPermutation, 2);\r
 \r
-               GPUCMD_AddWrite(GPUREG_0064, 0x00000001); // ?\r
-               GPUCMD_AddWrite(GPUREG_006F, 0x01030703); // ?\r
+               GPUCMD_AddWrite(GPUREG_SH_OUTATTR_MODE, 0x00000001); // ?\r
+               GPUCMD_AddWrite(GPUREG_SH_OUTATTR_CLOCK, 0x01030703); // ?\r
        }\r
 \r
        return 0;\r