cdrom: change pause timing again
[pcsx_rearmed.git] / plugins / gpu-gles / gpuPrim.c
index 37db052..ed16e4a 100644 (file)
@@ -44,9 +44,6 @@
 // globals\r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-EGLSurface surface;\r
-EGLDisplay display;\r
-\r
 \r
 BOOL           bDrawTextured;                          // current active drawing states\r
 BOOL           bDrawSmoothShaded;\r
@@ -80,16 +77,29 @@ BOOL           bUsingMovie=FALSE;                      // movie active flag
 PSXRect_t      xrMovieArea;                            // rect for movie upload\r
 short          sSprite_ux2;                            // needed for sprire adjust\r
 short          sSprite_vy2;                            // \r
-unsigned long  ulOLDCOL=0;                             // active color\r
-unsigned long  ulClutID;                               // clut\r
+unsigned int   ulOLDCOL=0;                             // active color\r
+unsigned int   ulClutID;                               // clut\r
 \r
-unsigned long dwCfgFixes;                              // game fixes\r
-unsigned long dwActFixes=0;\r
-unsigned long dwEmuFixes=0;\r
+unsigned int  dwCfgFixes;                              // game fixes\r
+unsigned int  dwActFixes=0;\r
+unsigned int  dwEmuFixes=0;\r
 BOOL          bUseFixes;\r
 \r
-long          drawX,drawY,drawW,drawH;                 // offscreen drawing checkers\r
+int           drawX,drawY,drawW,drawH;                 // offscreen drawing checkers\r
 short         sxmin,sxmax,symin,symax;\r
+unsigned int CSVERTEX=0,CSCOLOR=0,CSTEXTURE=0;\r
+\r
+void offsetPSX4(void)\r
+{\r
+ lx0 += PSXDisplay.DrawOffset.x;\r
+ ly0 += PSXDisplay.DrawOffset.y;\r
+ lx1 += PSXDisplay.DrawOffset.x;\r
+ ly1 += PSXDisplay.DrawOffset.y;\r
+ lx2 += PSXDisplay.DrawOffset.x;\r
+ ly2 += PSXDisplay.DrawOffset.y;\r
+ lx3 += PSXDisplay.DrawOffset.x;\r
+ ly3 += PSXDisplay.DrawOffset.y;\r
+}\r
 \r
 ////////////////////////////////////////////////////////////////////////                                          \r
 // Update global TP infos\r
@@ -137,9 +147,9 @@ void UpdateGlobalTP(unsigned short gdata)
 ////////////////////////////////////////////////////////////////////////\r
 \r
 \r
-unsigned long DoubleBGR2RGB (unsigned long BGR)\r
+unsigned int DoubleBGR2RGB (unsigned int BGR)\r
 {\r
- unsigned long ebx,eax,edx;\r
+ unsigned int ebx,eax,edx;\r
 \r
  ebx=(BGR&0x000000ff)<<1;\r
  if(ebx&0x00000100) ebx=0x000000ff;\r
@@ -153,7 +163,7 @@ unsigned long DoubleBGR2RGB (unsigned long BGR)
  return (ebx|eax|edx);\r
 }\r
 \r
-unsigned short BGR24to16 (unsigned long BGR)\r
+unsigned short BGR24to16 (unsigned int BGR)\r
 {\r
  return ((BGR>>3)&0x1f)|((BGR&0xf80000)>>9)|((BGR&0xf800)>>6);\r
 }\r
@@ -193,22 +203,23 @@ v[3].xyz.y = fpoint(vertex3->y);
 v[3].xyz.z = fpoint(vertex3->z);\r
 v[3].st.x = fpoint(vertex3->sow);\r
 v[3].st.y = fpoint(vertex3->tow);\r
-\r
-glEnableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glDisableClientState(GL_VERTEX_ARRAY); \r
+if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError();\r
+if (CSTEXTURE==0) glEnableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);glError();\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+CSTEXTURE=CSVERTEX=1;\r
+CSCOLOR=0;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawTexturedTri(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawTexturedTri(OGLVertex* vertex1, OGLVertex* vertex2,\r
                                   OGLVertex* vertex3) \r
 {\r
 Vertex v[3];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -227,24 +238,25 @@ v[2].xyz.y = fpoint(vertex3->y);
 v[2].xyz.z = fpoint(vertex3->z);\r
 v[2].st.x = fpoint(vertex3->sow);\r
 v[2].st.y = fpoint(vertex3->tow);\r
-\r
-glEnableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glDrawArrays(GL_TRIANGLES, 0, 3);\r
-glDisableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
+if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError();\r
+if (CSTEXTURE==0) glEnableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);glError();\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glDrawArrays(GL_TRIANGLES, 0, 3);glError();\r
+CSTEXTURE=CSVERTEX=1;\r
+CSCOLOR=0;\r
 \r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawTexGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawTexGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2,\r
                                          OGLVertex* vertex3) \r
 {\r
 \r
 Vertex2 v[3];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -276,26 +288,25 @@ v[2].rgba.g = vertex3->c.col[1];
 v[2].rgba.b = vertex3->c.col[2];\r
 v[2].rgba.a = vertex3->c.col[3];\r
 \r
-glEnableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glEnableClientState(GL_COLOR_ARRAY);\r
+if (CSTEXTURE==0) glEnableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError();\r
 \r
-glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);\r
+glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);glError();\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError();\r
 \r
-glDrawArrays(GL_TRIANGLES, 0, 3);\r
-glDisableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
-glDisableClientState(GL_COLOR_ARRAY);\r
+glDrawArrays(GL_TRIANGLES, 0, 3);glError();\r
+CSTEXTURE=CSVERTEX=CSCOLOR=1;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawTexGouraudTriColorQuad(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawTexGouraudTriColorQuad(OGLVertex* vertex1, OGLVertex* vertex2,\r
                                              OGLVertex* vertex3, OGLVertex* vertex4) \r
 {\r
 Vertex2 v[4];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0&&vertex4->x==0&&vertex4->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -337,25 +348,24 @@ v[3].rgba.g = vertex3->c.col[1];
 v[3].rgba.b = vertex3->c.col[2];\r
 v[3].rgba.a = vertex3->c.col[3];\r
 \r
-glEnableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glEnableClientState(GL_COLOR_ARRAY);\r
+if (CSTEXTURE==0) glEnableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError();\r
 \r
-glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);\r
+glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);glError();\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError();\r
 \r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
-glDisableClientState(GL_COLOR_ARRAY);\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+CSTEXTURE=CSVERTEX=CSCOLOR=1;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawTri(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3) \r
+void PRIMdrawTri(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3)\r
 {\r
 Vec3f v[3];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0) return;\r
 \r
 v[0].x = fpoint(vertex1->x);\r
 v[0].y = fpoint(vertex1->y);\r
@@ -369,18 +379,24 @@ v[2].x = fpoint(vertex3->x);
 v[2].y = fpoint(vertex3->y);\r
 v[2].z = fpoint(vertex3->z);\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);\r
-glDrawArrays(GL_TRIANGLES, 0, 3);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError();\r
+\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);glError();\r
+glDrawArrays(GL_TRIANGLES, 0, 3);glError();\r
+CSVERTEX=1;\r
+CSTEXTURE=CSCOLOR=0;\r
+\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawTri2(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawTri2(OGLVertex* vertex1, OGLVertex* vertex2,\r
                            OGLVertex* vertex3, OGLVertex* vertex4) \r
 {\r
 Vec3f v[4];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0&&vertex4->x==0&&vertex4->y==0) return;\r
 \r
 v[0].x = fpoint(vertex1->x);\r
 v[0].y = fpoint(vertex1->y);\r
@@ -398,18 +414,23 @@ v[3].x = fpoint(vertex4->x);
 v[3].y = fpoint(vertex4->y);\r
 v[3].z = fpoint(vertex4->z);\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);\r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError();\r
+\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);glError();\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+CSVERTEX=1;\r
+CSTEXTURE=CSCOLOR=0;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2,\r
                                       OGLVertex* vertex3) \r
 {\r
 Vertex2 v[3];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -435,23 +456,25 @@ v[2].rgba.g = vertex3->c.col[1];
 v[2].rgba.b = vertex3->c.col[2];\r
 v[2].rgba.a = vertex3->c.col[3];\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glEnableClientState(GL_COLOR_ARRAY);\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError();\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
 \r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError();\r
 \r
-glDrawArrays(GL_TRIANGLES, 0, 3);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
-glDisableClientState(GL_COLOR_ARRAY);\r
+glDrawArrays(GL_TRIANGLES, 0, 3);glError();\r
+CSVERTEX=CSCOLOR=1;\r
+CSTEXTURE=0;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawGouraudTri2Color(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawGouraudTri2Color(OGLVertex* vertex1, OGLVertex* vertex2,\r
                                        OGLVertex* vertex3, OGLVertex* vertex4) \r
 {\r
 Vertex2 v[4];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0&&vertex4->x==0&&vertex4->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -485,22 +508,24 @@ v[3].rgba.g = vertex4->c.col[1];
 v[3].rgba.b = vertex4->c.col[2];\r
 v[3].rgba.a = vertex4->c.col[3];\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glEnableClientState(GL_COLOR_ARRAY);\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError();\r
 \r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError();\r
 \r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
-glDisableClientState(GL_COLOR_ARRAY);\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+CSTEXTURE=0;\r
+CSVERTEX=CSCOLOR=1;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawFlatLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4)\r
+void PRIMdrawFlatLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4)\r
 {\r
 Vertex2 v[4];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0&&vertex4->x==0&&vertex4->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -534,24 +559,27 @@ v[3].rgba.g = vertex1->c.col[1];
 v[3].rgba.b = vertex1->c.col[2];\r
 v[3].rgba.a = vertex1->c.col[3];\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glEnableClientState(GL_COLOR_ARRAY);\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError();\r
 \r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError();\r
 \r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
-glDisableClientState(GL_COLOR_ARRAY);\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+\r
+CSTEXTURE=0;\r
+CSVERTEX=CSCOLOR=1;\r
 \r
 \r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
      \r
-__inline void PRIMdrawGouraudLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4)\r
+void PRIMdrawGouraudLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4)\r
 {\r
        Vertex2 v[4];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0&&vertex4->x==0&&vertex4->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -585,23 +613,25 @@ v[2].rgba.g = vertex4->c.col[1];
 v[2].rgba.b = vertex4->c.col[2];\r
 v[2].rgba.a = vertex4->c.col[3];\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glEnableClientState(GL_COLOR_ARRAY);\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError();\r
 \r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError();\r
 \r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
-glDisableClientState(GL_COLOR_ARRAY);\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+CSTEXTURE=0;\r
+CSVERTEX=CSCOLOR=1;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
              \r
-__inline void PRIMdrawQuad(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawQuad(OGLVertex* vertex1, OGLVertex* vertex2,\r
                            OGLVertex* vertex3, OGLVertex* vertex4) \r
 {\r
 Vec3f v[4];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0&&vertex4->x==0&&vertex4->y==0) return;\r
 \r
 v[0].x = fpoint(vertex1->x);\r
 v[0].y = fpoint(vertex1->y);\r
@@ -619,10 +649,15 @@ v[3].x = fpoint(vertex3->x);
 v[3].y = fpoint(vertex3->y);\r
 v[3].z = fpoint(vertex3->z);\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);\r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError();\r
+\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);glError();\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+CSTEXTURE=0;\r
+CSVERTEX=1;\r
+CSCOLOR=0;\r
 }\r
 \r
 ////////////////////////////////////////////////////////////////////////                                          \r
@@ -661,7 +696,7 @@ void SetSemiTrans(void)
  if(!DrawSemiTrans)                                    // no semi trans at all?\r
   {\r
    if(bBlendEnable)\r
-    {glDisable(GL_BLEND);bBlendEnable=FALSE;}          // -> don't wanna blend\r
+    {glDisable(GL_BLEND);glError();bBlendEnable=FALSE;}// -> don't wanna blend\r
    ubGloAlpha=ubGloColAlpha=255;                       // -> full alpha\r
    return;                                             // -> and bye\r
   }\r
@@ -669,7 +704,7 @@ void SetSemiTrans(void)
  ubGloAlpha=ubGloColAlpha=TransSets[GlobalTextABR].alpha;\r
 \r
  if(!bBlendEnable)\r
-  {glEnable(GL_BLEND);bBlendEnable=TRUE;}              // wanna blend\r
+  {glEnable(GL_BLEND);glError();bBlendEnable=TRUE;}    // wanna blend\r
 \r
  if(TransSets[GlobalTextABR].srcFac!=obm1 || \r
     TransSets[GlobalTextABR].dstFac!=obm2)\r
@@ -678,7 +713,7 @@ void SetSemiTrans(void)
     {\r
      obm1=TransSets[GlobalTextABR].srcFac;\r
      obm2=TransSets[GlobalTextABR].dstFac;\r
-     glBlendFunc(obm1,obm2);                           // set blend func\r
+     glBlendFunc(obm1,obm2); glError();                // set blend func\r
     }\r
    /*else\r
    if(TransSets[GlobalTextABR].dstFac !=GL_ONE_MINUS_SRC_COLOR)\r
@@ -709,7 +744,7 @@ void SetScanTrans(void)                                // blending for scan line
 */\r
  obm1=TransSets[0].srcFac;\r
  obm2=TransSets[0].dstFac;\r
- glBlendFunc(obm1,obm2);                               // set blend func\r
+ glBlendFunc(obm1,obm2); glError();                    // set blend func\r
 }\r
 \r
 void SetScanTexTrans(void)                             // blending for scan mask texture\r
@@ -722,7 +757,7 @@ void SetScanTexTrans(void)                             // blending for scan mask
 */\r
  obm1=TransSets[2].srcFac;\r
  obm2=TransSets[2].dstFac;\r
- glBlendFunc(obm1,obm2);                               // set blend func\r
+ glBlendFunc(obm1,obm2); glError();                    // set blend func\r
 }\r
 \r
 ////////////////////////////////////////////////////////////////////////                                          \r
@@ -802,11 +837,11 @@ void SetSemiTransMulti(int Pass)
   }\r
 \r
  if(!bBlendEnable)\r
-  {glEnable(GL_BLEND);bBlendEnable=TRUE;}              // wanna blend\r
+  {glEnable(GL_BLEND);glError();bBlendEnable=TRUE;}    // wanna blend\r
 \r
  if(bm1!=obm1 || bm2!=obm2)\r
   {\r
-   glBlendFunc(bm1,bm2);                               // set blend func\r
+   glBlendFunc(bm1,bm2); glError();                    // set blend func\r
    obm1=bm1;obm2=bm2;\r
   }\r
 }\r
@@ -815,7 +850,7 @@ void SetSemiTransMulti(int Pass)
 // Set several rendering stuff including blending \r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-__inline void SetZMask3O(void)\r
+void SetZMask3O(void)\r
 {\r
  if(iUseMask && DrawSemiTrans && !iSetMask)\r
   {\r
@@ -824,7 +859,7 @@ __inline void SetZMask3O(void)
   }\r
 }\r
 \r
-__inline void SetZMask3(void)\r
+void SetZMask3(void)\r
 {\r
  if(iUseMask)\r
   {\r
@@ -838,7 +873,7 @@ __inline void SetZMask3(void)
   }\r
 }\r
 \r
-__inline void SetZMask3NT(void)\r
+void SetZMask3NT(void)\r
 {\r
  if(iUseMask)\r
   {\r
@@ -854,7 +889,7 @@ __inline void SetZMask3NT(void)
 \r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-__inline void SetZMask4O(void)\r
+ void SetZMask4O(void)\r
 {\r
  if(iUseMask && DrawSemiTrans && !iSetMask)\r
   {\r
@@ -863,7 +898,7 @@ __inline void SetZMask4O(void)
   }\r
 }\r
 \r
-__inline void SetZMask4(void)\r
+ void SetZMask4(void)\r
 {\r
  if(iUseMask)\r
   {\r
@@ -877,7 +912,7 @@ __inline void SetZMask4(void)
   }\r
 }\r
 \r
-__inline void SetZMask4NT(void)\r
+ void SetZMask4NT(void)\r
 {\r
  if(iUseMask)\r
   {\r
@@ -891,7 +926,7 @@ __inline void SetZMask4NT(void)
   }\r
 }\r
 \r
-__inline void SetZMask4SP(void)\r
+ void SetZMask4SP(void)\r
 {\r
  if(iUseMask)\r
   {\r
@@ -912,7 +947,7 @@ __inline void SetZMask4SP(void)
 \r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-__inline void SetRenderState(unsigned long DrawAttributes)\r
+ void SetRenderState(unsigned int DrawAttributes)\r
 {\r
  bDrawNonShaded = (SHADETEXBIT(DrawAttributes)) ? TRUE : FALSE;\r
  DrawSemiTrans = (SEMITRANSBIT(DrawAttributes)) ? TRUE : FALSE;\r
@@ -920,7 +955,7 @@ __inline void SetRenderState(unsigned long DrawAttributes)
 \r
 ////////////////////////////////////////////////////////////////////////                                          \r
 \r
-__inline void SetRenderColor(unsigned long DrawAttributes)\r
+ void SetRenderColor(unsigned int DrawAttributes)\r
 {\r
  if(bDrawNonShaded) {g_m1=g_m2=g_m3=128;}\r
  else\r
@@ -933,7 +968,7 @@ __inline void SetRenderColor(unsigned long DrawAttributes)
 \r
 ////////////////////////////////////////////////////////////////////////                                          \r
                                \r
-void SetRenderMode(unsigned long DrawAttributes,BOOL bSCol)\r
+void SetRenderMode(unsigned int DrawAttributes,BOOL bSCol)\r
 {\r
  if((bUseMultiPass) && (bDrawTextured) && !(bDrawNonShaded))\r
       {bDrawMultiPass = TRUE; SetSemiTransMulti(0);}\r
@@ -947,14 +982,14 @@ void SetRenderMode(unsigned long DrawAttributes,BOOL bSCol)
    else                 currTex=SelectSubTextureS(GlobalTextTP,ulClutID);\r
 \r
    if(gTexName!=currTex)\r
-    {gTexName=currTex;glBindTexture(GL_TEXTURE_2D,currTex);}\r
+    {gTexName=currTex;glBindTexture(GL_TEXTURE_2D,currTex); glError();}\r
 \r
    if(!bTexEnabled)                                    // -> turn texturing on\r
-    {bTexEnabled=TRUE;glEnable(GL_TEXTURE_2D);}\r
+    {bTexEnabled=TRUE;glEnable(GL_TEXTURE_2D); glError();}\r
   }\r
  else                                                  // no texture ?\r
  if(bTexEnabled) \r
-  {bTexEnabled=FALSE;glDisable(GL_TEXTURE_2D);}        // -> turn texturing off\r
+  {bTexEnabled=FALSE;glDisable(GL_TEXTURE_2D); glError();} // -> turn texturing off\r
 \r
  if(bSCol)                                             // also set color ?\r
   {\r
@@ -980,6 +1015,7 @@ void SetRenderMode(unsigned long DrawAttributes,BOOL bSCol)
   {\r
    if(bDrawSmoothShaded) glShadeModel(GL_SMOOTH);      // -> set actual shading\r
    else                  glShadeModel(GL_FLAT);\r
+   glError();\r
    bOldSmoothShaded=bDrawSmoothShaded;\r
   }\r
 }\r
@@ -988,7 +1024,7 @@ void SetRenderMode(unsigned long DrawAttributes,BOOL bSCol)
 // Set Opaque multipass color\r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-void SetOpaqueColor(unsigned long DrawAttributes)\r
+void SetOpaqueColor(unsigned int DrawAttributes)\r
 {\r
  if(bDrawNonShaded) return;                            // no shading? bye\r
   \r
@@ -1363,7 +1399,7 @@ BOOL CheckAgainstFrontScreen(short imageX0,short imageY0,short imageX1,short ima
 \r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-void PrepareFullScreenUpload (long Position)\r
+void PrepareFullScreenUpload (int Position)\r
 {\r
  if (Position==-1)                                     // rgb24\r
   {\r
@@ -1445,21 +1481,21 @@ void PrepareFullScreenUpload (long Position)
 \r
 unsigned char * LoadDirectMovieFast(void);\r
 \r
-void UploadScreenEx(long Position)\r
+void UploadScreenEx(int Position)\r
 {\r
  short ya,yb,xa,xb,x, y, YStep, XStep, U, UStep,ux[4],vy[4];\r
 \r
  if(!PSXDisplay.DisplayMode.x) return;\r
  if(!PSXDisplay.DisplayMode.y) return;\r
 \r
- glDisable(GL_SCISSOR_TEST);\r
- glShadeModel(GL_FLAT);\r
+ glDisable(GL_SCISSOR_TEST); glError();\r
+ glShadeModel(GL_FLAT); glError();\r
  bOldSmoothShaded=FALSE;\r
- glDisable(GL_BLEND);\r
+ glDisable(GL_BLEND); glError();\r
  bBlendEnable=FALSE;\r
- glDisable(GL_TEXTURE_2D);\r
+ glDisable(GL_TEXTURE_2D); glError();\r
  bTexEnabled=FALSE;\r
- glDisable(GL_ALPHA_TEST);\r
+ glDisable(GL_ALPHA_TEST); glError();\r
 \r
  //glPixelZoom(((float)rRatioRect.right)/((float)PSXDisplay.DisplayMode.x),\r
  //            -1.0f*(((float)rRatioRect.bottom)/((float)PSXDisplay.DisplayMode.y)));\r
@@ -1523,13 +1559,13 @@ void UploadScreenEx(long Position)
 \r
 // glPixelZoom(1.0F,1.0F);\r
 \r
- glEnable(GL_ALPHA_TEST);\r
- glEnable(GL_SCISSOR_TEST);\r
+ glEnable(GL_ALPHA_TEST); glError();\r
+ glEnable(GL_SCISSOR_TEST); glError();\r
 }\r
 \r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-void UploadScreen(long Position)\r
+void UploadScreen(int Position)\r
 {\r
  short x, y, YStep, XStep, U, s, UStep,ux[4],vy[4];\r
  short xa,xb,ya,yb;\r
@@ -1610,8 +1646,8 @@ void UploadScreen(long Position)
      gl_vy[2] = gl_vy[3] = s;\r
      gl_ux[0] = gl_ux[3] = gl_vy[0] = gl_vy[1] = 0;\r
 \r
-     SetRenderState((unsigned long)0x01000000);\r
-     SetRenderMode((unsigned long)0x01000000, FALSE);  // upload texture data\r
+     SetRenderState((unsigned int)0x01000000);\r
+     SetRenderMode((unsigned int)0x01000000, FALSE);  // upload texture data\r
      offsetScreenUpload(Position);\r
      assignTextureVRAMWrite();\r
 \r
@@ -1676,7 +1712,7 @@ BOOL IsInsideNextScreen(short x, short y, short xoff, short yoff)
 \r
 void cmdSTP(unsigned char * baseAddr)\r
 {\r
- unsigned long gdata = ((unsigned long*)baseAddr)[0];\r
+ unsigned int gdata = ((unsigned int*)baseAddr)[0];\r
 \r
  STATUSREG&=~0x1800;                                   // clear the necessary bits\r
  STATUSREG|=((gdata & 0x03) << 11);                    // set the current bits\r
@@ -1692,13 +1728,13 @@ void cmdSTP(unsigned char * baseAddr)
    bCheckMask=TRUE;\r
    if(iDepthFunc==0) return;\r
    iDepthFunc=0;\r
-   glDepthFunc(GL_LESS);\r
+   glDepthFunc(GL_LESS); glError();\r
   }\r
  else\r
   {\r
    bCheckMask=FALSE;\r
    if(iDepthFunc==1) return;\r
-   glDepthFunc(GL_ALWAYS);\r
+   glDepthFunc(GL_ALWAYS); glError();\r
    iDepthFunc=1;\r
   }\r
 }\r
@@ -1709,7 +1745,7 @@ void cmdSTP(unsigned char * baseAddr)
 \r
 void cmdTexturePage(unsigned char * baseAddr)\r
 {\r
- unsigned long gdata = ((unsigned long*)baseAddr)[0];\r
+ unsigned int gdata = ((unsigned int*)baseAddr)[0];\r
  UpdateGlobalTP((unsigned short)gdata);\r
  GlobalTextREST = (gdata&0x00ffffff)>>9;\r
 }\r
@@ -1720,9 +1756,9 @@ void cmdTexturePage(unsigned char * baseAddr)
 \r
 void cmdTextureWindow(unsigned char *baseAddr)\r
 {\r
- unsigned long gdata = ((unsigned long*)baseAddr)[0];\r
+ unsigned int gdata = ((unsigned int*)baseAddr)[0];\r
 \r
- unsigned long YAlign,XAlign;\r
+ unsigned int YAlign,XAlign;\r
 \r
  ulGPUInfoVals[INFO_TW]=gdata&0xFFFFF;\r
 \r
@@ -1756,8 +1792,8 @@ void cmdTextureWindow(unsigned char *baseAddr)
 \r
  // Re-calculate the bit field, because we can't trust what is passed in the data\r
 \r
- YAlign = (unsigned long)(32 - (TWin.Position.y1 >> 3));\r
- XAlign = (unsigned long)(32 - (TWin.Position.x1 >> 3));\r
+ YAlign = (unsigned int)(32 - (TWin.Position.y1 >> 3));\r
+ XAlign = (unsigned int)(32 - (TWin.Position.x1 >> 3));\r
 \r
  // Absolute position of the start of the texture window\r
 \r
@@ -1929,7 +1965,7 @@ void ClampToPSXScreenOffset(short *x0, short *y0, short *x1, short *y1)
 \r
 void cmdDrawAreaStart(unsigned char * baseAddr)\r
 {\r
- unsigned long gdata = ((unsigned long*)baseAddr)[0];\r
+ unsigned int gdata = ((unsigned int*)baseAddr)[0];\r
 \r
  drawX = gdata & 0x3ff;                                // for soft drawing\r
  if(drawX>=1024) drawX=1023;\r
@@ -1960,7 +1996,7 @@ void cmdDrawAreaStart(unsigned char * baseAddr)
 \r
 void cmdDrawAreaEnd(unsigned char * baseAddr)\r
 {\r
- unsigned long gdata = ((unsigned long*)baseAddr)[0];\r
+ unsigned int gdata = ((unsigned int*)baseAddr)[0];\r
 \r
  drawW = gdata & 0x3ff;                                // for soft drawing\r
  if(drawW>=1024) drawW=1023;\r
@@ -1995,7 +2031,7 @@ void cmdDrawAreaEnd(unsigned char * baseAddr)
 \r
 void cmdDrawOffset(unsigned char * baseAddr)\r
 {\r
- unsigned long gdata = ((unsigned long*)baseAddr)[0];\r
+ unsigned int gdata = ((unsigned int*)baseAddr)[0];\r
 \r
  PreviousPSXDisplay.DrawOffset.x = \r
   PSXDisplay.DrawOffset.x = (short)(gdata & 0x7ff);\r
@@ -2205,7 +2241,7 @@ void primStoreImage(unsigned char * baseAddr)
 \r
 void primBlkFill(unsigned char * baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  iDrawnSomething=1;\r
@@ -2245,9 +2281,9 @@ void primBlkFill(unsigned char * baseAddr)
      b=((GLclampf)BLUE(gpuData[0]))/255.0f;\r
      r=((GLclampf)RED(gpuData[0]))/255.0f;\r
      \r
-     glDisable(GL_SCISSOR_TEST);                       \r
-     glClearColor(r,g,b,1.0f);\r
-     glClear(uiBufferBits); \r
+     //glDisable(GL_SCISSOR_TEST); glError();\r
+     glClearColor(r,g,b,1.0f); glError();\r
+     glClear(uiBufferBits); glError();\r
      gl_z=0.0f;\r
 \r
      if(gpuData[0]!=0x02000000 &&\r
@@ -2256,8 +2292,8 @@ void primBlkFill(unsigned char * baseAddr)
       {\r
        bDrawTextured     = FALSE;\r
        bDrawSmoothShaded = FALSE;\r
-       SetRenderState((unsigned long)0x01000000);\r
-       SetRenderMode((unsigned long)0x01000000, FALSE);\r
+       SetRenderState((unsigned int)0x01000000);\r
+       SetRenderMode((unsigned int)0x01000000, FALSE);\r
        vertex[0].c.lcol=0xff000000;\r
        SETCOL(vertex[0]); \r
        if(ly0>pd->DisplayPosition.y)\r
@@ -2278,19 +2314,19 @@ void primBlkFill(unsigned char * baseAddr)
         }\r
       }\r
 \r
-     glEnable(GL_SCISSOR_TEST);                       \r
+     //glEnable(GL_SCISSOR_TEST); glError();\r
     }\r
    else\r
     {\r
      bDrawTextured     = FALSE;\r
      bDrawSmoothShaded = FALSE;\r
-     SetRenderState((unsigned long)0x01000000);\r
-     SetRenderMode((unsigned long)0x01000000, FALSE);\r
+     SetRenderState((unsigned int)0x01000000);\r
+     SetRenderMode((unsigned int)0x01000000, FALSE);\r
      vertex[0].c.lcol=gpuData[0]|0xff000000;\r
      SETCOL(vertex[0]); \r
-     glDisable(GL_SCISSOR_TEST);                       \r
+     //glDisable(GL_SCISSOR_TEST); glError();\r
      PRIMdrawQuad(&vertex[0], &vertex[1], &vertex[2], &vertex[3]);\r
-     glEnable(GL_SCISSOR_TEST);                       \r
+     //glEnable(GL_SCISSOR_TEST); glError();\r
     }\r
   }\r
 \r
@@ -2455,12 +2491,12 @@ void primMoveImage(unsigned char * baseAddr)
   }\r
  else\r
   {\r
-   unsigned long *SRCPtr, *DSTPtr;\r
+   unsigned int *SRCPtr, *DSTPtr;\r
    unsigned short LineOffset;\r
    int dx=imageSX>>1;\r
 \r
-   SRCPtr = (unsigned long *)(psxVuw + (1024*imageY0) + imageX0);\r
-   DSTPtr = (unsigned long *)(psxVuw + (1024*imageY1) + imageX1);\r
+   SRCPtr = (unsigned int *)(psxVuw + (1024*imageY0) + imageX0);\r
+   DSTPtr = (unsigned int *)(psxVuw + (1024*imageY1) + imageX1);\r
 \r
    LineOffset = 512 - dx;\r
 \r
@@ -2561,7 +2597,7 @@ void primMoveImage(unsigned char * baseAddr)
 \r
 void primTileS(unsigned char * baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long*)baseAddr);\r
+ unsigned int *gpuData = ((unsigned int*)baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  sprtX = sgpuData[2];\r
@@ -2626,7 +2662,7 @@ void primTileS(unsigned char * baseAddr)
 \r
 void primTile1(unsigned char * baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long*)baseAddr);\r
+ unsigned int *gpuData = ((unsigned int*)baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  sprtX = sgpuData[2];\r
@@ -2673,7 +2709,7 @@ void primTile1(unsigned char * baseAddr)
 \r
 void primTile8(unsigned char * baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long*)baseAddr);\r
+ unsigned int *gpuData = ((unsigned int*)baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  sprtX = sgpuData[2];\r
@@ -2720,7 +2756,7 @@ void primTile8(unsigned char * baseAddr)
 \r
 void primTile16(unsigned char * baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long*)baseAddr);\r
+ unsigned int *gpuData = ((unsigned int*)baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  sprtX = sgpuData[2];\r
@@ -2767,7 +2803,7 @@ void primTile16(unsigned char * baseAddr)
 \r
 /*void DrawMultiBlur(void)\r
 {\r
long lABR,lDST;float fx,fy;\r
int lABR,lDST;float fx,fy;\r
 \r
  lABR=GlobalTextABR;\r
  lDST=DrawSemiTrans;\r
@@ -2800,7 +2836,7 @@ void primTile16(unsigned char * baseAddr)
 \r
 void DrawMultiFilterSprite(void)\r
 {\r
long lABR,lDST;\r
int lABR,lDST;\r
 \r
  if(bUseMultiPass || DrawSemiTrans || ubOpaqueDraw) \r
   {\r
@@ -2831,7 +2867,7 @@ void DrawMultiFilterSprite(void)
 \r
 void primSprt8(unsigned char * baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
  short s;\r
 \r
@@ -2952,7 +2988,7 @@ void primSprt8(unsigned char * baseAddr)
 \r
 void primSprt16(unsigned char * baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
  short s;\r
 \r
@@ -3072,7 +3108,7 @@ void primSprt16(unsigned char * baseAddr)
  \r
 void primSprtSRest(unsigned char * baseAddr,unsigned short type)\r
 {\r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
  short s;unsigned short sTypeRest=0;\r
 \r
@@ -3243,7 +3279,7 @@ void primSprtSRest(unsigned char * baseAddr,unsigned short type)
 \r
 void primSprtS(unsigned char * baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  short s;unsigned short sTypeRest=0;\r
@@ -3382,7 +3418,7 @@ void primSprtS(unsigned char * baseAddr)
 \r
 void primPolyF4(unsigned char *baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  lx0 = sgpuData[2];\r
@@ -3477,7 +3513,7 @@ BOOL bCheckFF9G4(unsigned char * baseAddr)
 \r
  if(iFF9Fix==2)\r
   {\r
-   long labr=GlobalTextABR;\r
+   int labr=GlobalTextABR;\r
    GlobalTextABR=1;\r
    primPolyG4(pFF9G4Cache);\r
    GlobalTextABR=labr;\r
@@ -3491,7 +3527,7 @@ BOOL bCheckFF9G4(unsigned char * baseAddr)
 \r
 void primPolyG4(unsigned char * baseAddr)\r
 {\r
- unsigned long *gpuData = (unsigned long *)baseAddr;\r
+ unsigned int *gpuData = (unsigned int *)baseAddr;\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  lx0 = sgpuData[2];\r
@@ -3542,7 +3578,7 @@ void primPolyG4(unsigned char * baseAddr)
 // cmd: flat shaded Texture3\r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-BOOL DoLineCheck(unsigned long * gpuData)\r
+BOOL DoLineCheck(unsigned int * gpuData)\r
 {\r
  BOOL bQuad=FALSE;short dx,dy;\r
 \r
@@ -3709,7 +3745,7 @@ BOOL DoLineCheck(unsigned long * gpuData)
 \r
 void primPolyFT3(unsigned char * baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  lx0 = sgpuData[2];\r
@@ -4145,7 +4181,7 @@ void RectTexAlign(void)
 \r
 void primPolyFT4(unsigned char * baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  lx0 = sgpuData[2];\r
@@ -4233,7 +4269,7 @@ void primPolyFT4(unsigned char * baseAddr)
 \r
 void primPolyGT3(unsigned char *baseAddr)\r
 {    \r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  lx0 = sgpuData[2];\r
@@ -4342,7 +4378,7 @@ void primPolyGT3(unsigned char *baseAddr)
 \r
 void primPolyG3(unsigned char *baseAddr)\r
 {    \r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  lx0 = sgpuData[2];\r
@@ -4387,7 +4423,7 @@ void primPolyG3(unsigned char *baseAddr)
 \r
 void primPolyGT4(unsigned char *baseAddr)\r
 { \r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  lx0 = sgpuData[2];\r
@@ -4507,7 +4543,7 @@ void primPolyGT4(unsigned char *baseAddr)
 \r
 void primPolyF3(unsigned char *baseAddr)\r
 {    \r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  lx0 = sgpuData[2];\r
@@ -4551,7 +4587,7 @@ void primPolyF3(unsigned char *baseAddr)
 \r
 void primLineGSkip(unsigned char *baseAddr)\r
 {    \r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
  int iMax=255;\r
  int i=2;\r
@@ -4576,7 +4612,7 @@ void primLineGSkip(unsigned char *baseAddr)
 \r
 void primLineGEx(unsigned char *baseAddr)\r
 {    \r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  int iMax=255;\r
  short cx0,cx1,cy0,cy1;int i;BOOL bDraw=TRUE;\r
 \r
@@ -4640,7 +4676,7 @@ void primLineGEx(unsigned char *baseAddr)
 \r
 void primLineG2(unsigned char *baseAddr)\r
 {    \r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  lx0 = sgpuData[2];\r
@@ -4685,7 +4721,7 @@ void primLineG2(unsigned char *baseAddr)
 \r
 void primLineFSkip(unsigned char *baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  int i=2,iMax=255;\r
 \r
  ly1 = (short)((gpuData[1]>>16) & 0xffff);\r
@@ -4705,7 +4741,7 @@ void primLineFSkip(unsigned char *baseAddr)
 \r
 void primLineFEx(unsigned char *baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  int iMax;\r
  short cx0,cx1,cy0,cy1;int i;\r
 \r
@@ -4763,7 +4799,7 @@ void primLineFEx(unsigned char *baseAddr)
 \r
 void primLineF2(unsigned char *baseAddr)\r
 {\r
- unsigned long *gpuData = ((unsigned long *) baseAddr);\r
+ unsigned int *gpuData = ((unsigned int *) baseAddr);\r
  short *sgpuData = ((short *) baseAddr);\r
 \r
  lx0 = sgpuData[2];\r