psx_gpu: do enhanced lines
[pcsx_rearmed.git] / plugins / gpu-gles / gpuTexture.c
index d047a62..2f96482 100644 (file)
  \r
 #define _IN_TEXTURE\r
 \r
-#ifdef _WINDOWS\r
-#include "stdafx.h"\r
-\r
-#include "externals.h"\r
-#include "texture.h"\r
-#include "gpu.h"\r
-#include "prim.h"\r
-#else\r
 #include "gpuStdafx.h"\r
-#ifdef __NANOGL__\r
-#include <gl/gl.h>\r
-#include <gl/gl.h>\r
-#else\r
-#ifdef SOFT_LINKAGE\r
-#pragma softfp_linkage\r
-#endif\r
-#ifdef MAEMO_CHANGES\r
-       #include <GLES/glplatform.h>\r
-       #include <GLES/gl.h>\r
-       #include <GLES/glext.h>\r
-       #include <EGL/egl.h>\r
-#else\r
-       #include <gles/gl.h> // for opengl es types \r
-       #include <gles/egltypes.h>\r
-#endif\r
-#ifdef SOFT_LINKAGE\r
-#pragma no_softfp_linkage\r
-#endif\r
-#endif\r
+\r
 #include "gpuDraw.h"\r
 //#include "plugins.h"\r
 #include "gpuExternals.h"\r
 #include "gpuTexture.h"\r
 #include "gpuPlugin.h"\r
 #include "gpuPrim.h"\r
-#endif\r
+\r
 #define CLUTCHK   0x00060000\r
 #define CLUTSHIFT 17\r
 \r
@@ -117,11 +90,7 @@ GLuint        gTexFrameName=0;
 int           iTexGarbageCollection=1;\r
 unsigned long dwTexPageComp=0;\r
 int           iVRamSize=0;\r
-#ifdef _WINDOWS\r
-int           iClampType=GL_CLAMP;\r
-#else\r
 int           iClampType=GL_CLAMP_TO_EDGE;\r
-#endif\r
 int iFilter = GL_LINEAR;\r
 void               (*LoadSubTexFn) (int,int,short,short);\r
 unsigned long      (*PalTexturedColourFn)  (unsigned long);\r
@@ -158,7 +127,7 @@ unsigned long      (*PalTexturedColourFn)  (unsigned long);
 \r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-u8 * CheckTextureInSubSCache(long TextureMode,unsigned long GivenClutId,unsigned short * pCache);\r
+unsigned char * CheckTextureInSubSCache(long TextureMode,unsigned long GivenClutId,unsigned short * pCache);\r
 void            LoadSubTexturePageSort(int pageid, int mode, short cx, short cy);\r
 void            LoadPackedSubTexturePageSort(int pageid, int mode, short cx, short cy);\r
 void            DefineSubTextureSort(void);\r
@@ -185,10 +154,6 @@ unsigned short (*PTCF[2]) (unsigned short);
 // texture cache implementation\r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-#ifdef _WINDOWS\r
-#pragma pack(1)\r
-#endif\r
-\r
 // "texture window" cache entry\r
 \r
 typedef struct textureWndCacheEntryTag\r
@@ -208,15 +173,12 @@ typedef struct textureSubCacheEntryTagS
 {\r
  unsigned long   ClutID;\r
  EXLong          pos;\r
- u8   posTX;\r
- u8   posTY;\r
- u8   cTexID;\r
- u8   Opaque;\r
+ unsigned char   posTX;\r
+ unsigned char   posTY;\r
+ unsigned char   cTexID;\r
+ unsigned char   Opaque;\r
 } textureSubCacheEntryS;\r
 \r
-#ifdef _WINDOWS\r
-#pragma pack()\r
-#endif\r
 \r
 //---------------------------------------------\r
 \r
@@ -239,7 +201,7 @@ int                      iTexWndLimit=MAXWNDTEXCACHE/2;
 GLubyte *                texturepart=NULL;\r
 GLubyte *                texturebuffer=NULL;\r
 unsigned long            g_x1,g_y1,g_x2,g_y2;\r
-u8            ubOpaqueDraw=0;\r
+unsigned char            ubOpaqueDraw=0;\r
 \r
 unsigned short MAXTPAGES     = 32;\r
 unsigned short CLUTMASK      = 0x7fff;\r
@@ -481,7 +443,7 @@ void CheckTextureMemory(void)
 {\r
  GLboolean b;GLboolean * bDetail;\r
  int i,iCnt,iRam=iVRamSize*1024*1024;\r
- int iTSize;s8 * p;\r
+ int iTSize;char * p;\r
 \r
 \r
  if(iVRamSize)\r
@@ -510,9 +472,12 @@ void CheckTextureMemory(void)
    return;\r
   }\r
 \r
+#if 1\r
+ iSortTexCnt=MAXSORTTEX;\r
+#else // below vram detector supposedly crashes some drivers\r
 \r
         iTSize=256;\r
- p=(s8 *)malloc(iTSize*iTSize*4);\r
+ p=(char *)malloc(iTSize*iTSize*4);\r
 \r
  iCnt=0;\r
  glGenTextures(MAXSORTTEX,uiStexturePage);\r
@@ -546,6 +511,7 @@ void CheckTextureMemory(void)
  else  iSortTexCnt=iCnt-3+min(1,0);       // place for menu&texwnd\r
 \r
  if(iSortTexCnt<8) iSortTexCnt=8;\r
+#endif\r
 } \r
 \r
 ////////////////////////////////////////////////////////////////////////\r
@@ -608,6 +574,7 @@ void CleanupTextureStore()
  int i,j;textureWndCacheEntry * tsx;\r
  //----------------------------------------------------//\r
  glBindTexture(GL_TEXTURE_2D,0);\r
+ glError();\r
  //----------------------------------------------------//\r
  free(texturepart);                                    // free tex part\r
  texturepart=0;\r
@@ -622,34 +589,41 @@ void CleanupTextureStore()
   {\r
    if(tsx->texname)                                    // -> some tex?\r
     glDeleteTextures(1,&tsx->texname);                 // --> delete it\r
+    glError();\r
   }\r
  iMaxTexWnds=0;                                        // no more tex wnds\r
  //----------------------------------------------------//\r
  if(gTexMovieName!=0)                                  // some movie tex?\r
   glDeleteTextures(1, &gTexMovieName);                 // -> delete it\r
+  glError();\r
  gTexMovieName=0;                                      // no more movie tex\r
  //----------------------------------------------------//\r
  if(gTexFrameName!=0)                                  // some 15bit framebuffer tex?\r
   glDeleteTextures(1, &gTexFrameName);                 // -> delete it\r
+  glError();\r
  gTexFrameName=0;                                      // no more movie tex\r
  //----------------------------------------------------//\r
  if(gTexBlurName!=0)                                   // some 15bit framebuffer tex?\r
   glDeleteTextures(1, &gTexBlurName);                  // -> delete it\r
+  glError();\r
  gTexBlurName=0;                                       // no more movie tex\r
  //----------------------------------------------------//\r
  for(i=0;i<3;i++)                                    // -> loop\r
   for(j=0;j<MAXTPAGES;j++)                           // loop tex pages\r
    {\r
     free(pscSubtexStore[i][j]);                      // -> clean mem\r
+    pscSubtexStore[i][j]=0;\r
    }\r
  for(i=0;i<MAXSORTTEX;i++)\r
   {\r
    if(uiStexturePage[i])                             // --> tex used ?\r
     {\r
      glDeleteTextures(1,&uiStexturePage[i]);\r
+     glError();\r
      uiStexturePage[i]=0;                            // --> delete it\r
     }\r
    free(pxSsubtexLeft[i]);                           // -> clean mem\r
+   pxSsubtexLeft[i]=0;\r
   }\r
  //----------------------------------------------------//\r
 }\r
@@ -667,7 +641,7 @@ void ResetTextureArea(BOOL bDelTex)
  dwTexPageComp=0;\r
 \r
  //----------------------------------------------------//\r
- if(bDelTex) {glBindTexture(GL_TEXTURE_2D,0);gTexName=0;}\r
+ if(bDelTex) {glBindTexture(GL_TEXTURE_2D,0); glError();gTexName=0;}\r
  //----------------------------------------------------//\r
  tsx=wcWndtexStore;\r
  for(i=0;i<MAXWNDTEXCACHE;i++,tsx++)\r
@@ -675,7 +649,7 @@ void ResetTextureArea(BOOL bDelTex)
    tsx->used=0;\r
    if(bDelTex && tsx->texname)\r
     {\r
-     glDeleteTextures(1,&tsx->texname);\r
+     glDeleteTextures(1,&tsx->texname); glError();\r
      tsx->texname=0;\r
     }\r
   }\r
@@ -697,7 +671,7 @@ void ResetTextureArea(BOOL bDelTex)
    lu=pxSsubtexLeft[i];\r
    lu->l=0;\r
    if(bDelTex && uiStexturePage[i])\r
-    {glDeleteTextures(1,&uiStexturePage[i]);uiStexturePage[i]=0;}\r
+    {glDeleteTextures(1,&uiStexturePage[i]); glError();uiStexturePage[i]=0;}\r
   }\r
 }\r
 \r
@@ -771,7 +745,7 @@ void InvalidateWndTextureArea(long X,long Y,long W, long H)
 void MarkFree(textureSubCacheEntryS * tsx)\r
 {\r
  EXLong * ul, * uls;\r
- int j,iMax;u8 x1,y1,dx,dy;\r
+ int j,iMax;unsigned char x1,y1,dx,dy;\r
 \r
  uls=pxSsubtexLeft[tsx->cTexID];\r
  iMax=uls->l;ul=uls+1;\r
@@ -919,21 +893,25 @@ void DefineTextureWnd(void)
 {\r
  if(gTexName==0)\r
   glGenTextures(1, &gTexName);\r
-\r
+ glError();\r
  glBindTexture(GL_TEXTURE_2D, gTexName);\r
-\r
+ glError();\r
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);\r
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);\r
\r
+ glError(); \r
 {\r
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter);\r
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter);\r
+   glError();\r
   }\r
 \r
  glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA, \r
               TWin.Position.x1, \r
               TWin.Position.y1, \r
               0, GL_RGBA, GL_UNSIGNED_BYTE, texturepart);\r
+ glError();\r
+ //LOGE("DefineTextureWnd x:%d y:%d",TWin.Position.x1,TWin.Position.y1);\r
+\r
 }\r
 \r
 ////////////////////////////////////////////////////////////////////////\r
@@ -945,7 +923,7 @@ void LoadStretchPackedWndTexturePage(int pageid, int mode, short cx, short cy)
  unsigned long start,row,column,j,sxh,sxm,ldx,ldy,ldxo;\r
  unsigned int   palstart;\r
  unsigned short *px,*pa,*ta;\r
- u8  *cSRCPtr,*cOSRCPtr;\r
+ unsigned char  *cSRCPtr,*cOSRCPtr;\r
  unsigned short *wSRCPtr,*wOSRCPtr;\r
  unsigned long  LineOffset;unsigned short s;\r
  int pmult=pageid/16;\r
@@ -1137,7 +1115,7 @@ void LoadStretchWndTexturePage(int pageid, int mode, short cx, short cy)
  unsigned long start,row,column,j,sxh,sxm,ldx,ldy,ldxo,s;\r
  unsigned int   palstart;\r
  unsigned long  *px,*pa,*ta;\r
- u8  *cSRCPtr,*cOSRCPtr;\r
+ unsigned char  *cSRCPtr,*cOSRCPtr;\r
  unsigned short *wSRCPtr,*wOSRCPtr;\r
  unsigned long  LineOffset;\r
  int pmult=pageid/16;\r
@@ -1348,7 +1326,7 @@ void LoadPackedWndTexturePage(int pageid, int mode, short cx, short cy)
  unsigned long start,row,column,j,sxh,sxm;\r
  unsigned int   palstart;\r
  unsigned short *px,*pa,*ta;\r
- u8  *cSRCPtr;\r
+ unsigned char  *cSRCPtr;\r
  unsigned short *wSRCPtr;\r
  unsigned long  LineOffset;\r
  int pmult=pageid/16;\r
@@ -1490,7 +1468,7 @@ void LoadWndTexturePage(int pageid, int mode, short cx, short cy)
  unsigned long start,row,column,j,sxh,sxm;\r
  unsigned int   palstart;\r
  unsigned long  *px,*pa,*ta;\r
- u8  *cSRCPtr;\r
+ unsigned char  *cSRCPtr;\r
  unsigned short *wSRCPtr;\r
  unsigned long  LineOffset;\r
  int pmult=pageid/16;\r
@@ -1676,21 +1654,23 @@ void DefinePalTextureWnd(void)
 {\r
  if(gTexName==0)\r
   glGenTextures(1, &gTexName);\r
-\r
+ glError();\r
  glBindTexture(GL_TEXTURE_2D, gTexName);\r
-\r
+ glError();\r
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);\r
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);\r
\r
+ glError();\r
 {\r
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter);\r
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter);\r
   }\r
-\r
+ glError();\r
  glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA, \r
               TWin.Position.x1, \r
               TWin.Position.y1, \r
               0, GL_RGBA, GL_UNSIGNED_BYTE,texturepart);\r
+  glError();\r
+  //LOGE("DefinePalTextureWnd x:%d y:%d",TWin.Position.x1,TWin.Position.y1);\r
 }\r
 \r
 ///////////////////////////////////////////////////////\r
@@ -1698,12 +1678,12 @@ void DefinePalTextureWnd(void)
 void LoadPalWndTexturePage(int pageid, int mode, short cx, short cy)\r
 {\r
  unsigned long start,row,column,j,sxh,sxm;\r
- u8  *ta;\r
- u8  *cSRCPtr;\r
+ unsigned char  *ta;\r
+ unsigned char  *cSRCPtr;\r
  unsigned long  LineOffset;\r
  int pmult=pageid/16;\r
 \r
- ta=(u8 *)texturepart;\r
+ ta=(unsigned char *)texturepart;\r
 \r
  switch(mode)\r
   {\r
@@ -1758,15 +1738,15 @@ void LoadPalWndTexturePage(int pageid, int mode, short cx, short cy)
 void LoadStretchPalWndTexturePage(int pageid, int mode, short cx, short cy)\r
 {\r
  unsigned long start,row,column,j,sxh,sxm,ldx,ldy,ldxo;\r
- u8  *ta,s;\r
- u8  *cSRCPtr,*cOSRCPtr;\r
+ unsigned char  *ta,s;\r
+ unsigned char  *cSRCPtr,*cOSRCPtr;\r
  unsigned long  LineOffset;\r
  int pmult=pageid/16;\r
 \r
  ldxo=TWin.Position.x1-TWin.OPosition.x1;\r
  ldy =TWin.Position.y1-TWin.OPosition.y1;\r
 \r
- ta=(u8 *)texturepart;\r
+ ta=(unsigned char *)texturepart;\r
 \r
  switch(mode)\r
   {\r
@@ -1937,31 +1917,32 @@ void DefinePackedTextureMovie(void)
 {\r
  if(gTexMovieName==0)\r
   {\r
-   glGenTextures(1, &gTexMovieName);\r
+   glEnable(GL_TEXTURE_2D);\r
+   glGenTextures(1, &gTexMovieName); glError();\r
    gTexName=gTexMovieName;\r
-   glBindTexture(GL_TEXTURE_2D, gTexName);\r
+   glBindTexture(GL_TEXTURE_2D, gTexName); glError();\r
 \r
-   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType);\r
-   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType);\r
+   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); glError();\r
+   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); glError();\r
 \r
    if(!bUseFastMdec) \r
     {\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glError();\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glError();\r
     }\r
    else\r
     {\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter);\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter);\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glError();\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); glError();\r
     }\r
                                  \r
    glTexImage2D(GL_TEXTURE_2D, 0, //giWantedRGBA, \r
                 GL_RGBA,\r
-                256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturepart);\r
+                256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturepart); glError();\r
   }\r
  else \r
   {\r
-   gTexName=gTexMovieName;glBindTexture(GL_TEXTURE_2D, gTexName);\r
+   gTexName=gTexMovieName;glBindTexture(GL_TEXTURE_2D, gTexName); glError();\r
   }\r
 \r
  glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0,\r
@@ -1969,7 +1950,9 @@ void DefinePackedTextureMovie(void)
                  (xrMovieArea.y1-xrMovieArea.y0), \r
                  GL_RGBA,\r
                  GL_UNSIGNED_SHORT,\r
-                 texturepart);\r
+                 texturepart); glError();\r
+ //LOGE("DefinePackedTextureMovie x:%d y:%d",(xrMovieArea.x1-xrMovieArea.x0),(xrMovieArea.y1-xrMovieArea.y0));\r
+\r
 }\r
 \r
 ////////////////////////////////////////////////////////////////////////\r
@@ -1978,35 +1961,36 @@ void DefineTextureMovie(void)
 {\r
  if(gTexMovieName==0)\r
   {\r
-   glGenTextures(1, &gTexMovieName);\r
+   glGenTextures(1, &gTexMovieName); glError();\r
    gTexName=gTexMovieName;\r
-   glBindTexture(GL_TEXTURE_2D, gTexName);\r
+   glBindTexture(GL_TEXTURE_2D, gTexName); glError();\r
 \r
-   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType);\r
-   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType);\r
+   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); glError();\r
+   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); glError();\r
  \r
    if(!bUseFastMdec) \r
     {\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glError();\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glError();\r
     }\r
    else\r
     {\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter);\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter);\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glError();\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); glError();\r
     }\r
 \r
-   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturepart);\r
+   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturepart); glError();\r
   }\r
  else \r
   {\r
-   gTexName=gTexMovieName;glBindTexture(GL_TEXTURE_2D, gTexName);\r
+   gTexName=gTexMovieName;glBindTexture(GL_TEXTURE_2D, gTexName); glError();\r
   }\r
 \r
  glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0,\r
                  (xrMovieArea.x1-xrMovieArea.x0), \r
                  (xrMovieArea.y1-xrMovieArea.y0), \r
-                 GL_RGBA, GL_UNSIGNED_BYTE, texturepart);\r
+                 GL_RGBA, GL_UNSIGNED_BYTE, texturepart); glError();\r
+ //LOGE("DefineTextureMovie x:%d y:%d",(xrMovieArea.x1-xrMovieArea.x0),(xrMovieArea.y1-xrMovieArea.y0));\r
 }\r
 \r
 ////////////////////////////////////////////////////////////////////////\r
@@ -2025,7 +2009,7 @@ void DefineTextureMovie(void)
 // movie texture: load\r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-u8 * LoadDirectMovieFast(void)\r
+unsigned char * LoadDirectMovieFast(void)\r
 {\r
  long row,column;\r
  unsigned int startxy;\r
@@ -2034,13 +2018,13 @@ u8 * LoadDirectMovieFast(void)
 \r
  if(PSXDisplay.RGB24)\r
   {\r
-   u8 * pD;\r
+   unsigned char * pD;\r
 \r
    startxy=((1024)*xrMovieArea.y0)+xrMovieArea.x0;\r
 \r
    for(column=xrMovieArea.y0;column<xrMovieArea.y1;column++,startxy+=1024)\r
     {\r
-     pD=(u8 *)&psxVuw[startxy];\r
+     pD=(unsigned char *)&psxVuw[startxy];\r
      for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)\r
       {\r
        *ta++=*((unsigned long *)pD)|0xff000000;\r
@@ -2077,7 +2061,7 @@ GLuint LoadTextureMovieFast(void)
 {\r
    if(PSXDisplay.RGB24)\r
     {\r
-     u8 * pD;\r
+     unsigned char * pD;\r
      unsigned long * ta=(unsigned long *)texturepart;\r
 \r
      startxy=((1024)*xrMovieArea.y0)+xrMovieArea.x0;\r
@@ -2085,7 +2069,7 @@ GLuint LoadTextureMovieFast(void)
      for(column=xrMovieArea.y0;column<xrMovieArea.y1;column++,startxy+=1024)\r
       {\r
        //startxy=((1024)*column)+xrMovieArea.x0;\r
-       pD=(u8 *)&psxVuw[startxy];\r
+       pD=(unsigned char *)&psxVuw[startxy];\r
        for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)\r
         {\r
          *ta++=*((unsigned long *)pD)|0xff000000;\r
@@ -2133,7 +2117,7 @@ GLuint LoadTextureMovie(void)
 {\r
    if(PSXDisplay.RGB24)\r
     {\r
-     u8 * pD;\r
+     unsigned char * pD;\r
      unsigned long * ta=(unsigned long *)texturepart;\r
 \r
      if(b_X)\r
@@ -2141,7 +2125,7 @@ GLuint LoadTextureMovie(void)
        for(column=xrMovieArea.y0;column<xrMovieArea.y1;column++)\r
         {\r
          startxy=((1024)*column)+xrMovieArea.x0;\r
-         pD=(u8 *)&psxVuw[startxy];\r
+         pD=(unsigned char *)&psxVuw[startxy];\r
          for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)\r
           {\r
            *ta++=*((unsigned long *)pD)|0xff000000;\r
@@ -2162,7 +2146,7 @@ GLuint LoadTextureMovie(void)
        for(column=xrMovieArea.y0;column<xrMovieArea.y1;column++)\r
         {\r
          startxy=((1024)*column)+xrMovieArea.x0;\r
-         pD=(u8 *)&psxVuw[startxy];\r
+         pD=(unsigned char *)&psxVuw[startxy];\r
          for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)\r
           {\r
            *ta++=*((unsigned long *)pD)|0xff000000;\r
@@ -2260,14 +2244,14 @@ GLuint BlackFake15BitTexture(void)
   {\r
    if(!gTexFrameName)\r
     {\r
-     glGenTextures(1, &gTexFrameName);\r
+     glGenTextures(1, &gTexFrameName); glError();\r
      gTexName=gTexFrameName;\r
-     glBindTexture(GL_TEXTURE_2D, gTexName);\r
+     glBindTexture(GL_TEXTURE_2D, gTexName); glError();\r
 \r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType);\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType);\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter);\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter);\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); glError();\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); glError();\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glError();\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); glError();\r
  \r
      {\r
        unsigned long * ta=(unsigned long *)texturepart;\r
@@ -2275,14 +2259,15 @@ GLuint BlackFake15BitTexture(void)
         for(x1=0;x1<=4;x1++)\r
          *ta++=0xff000000;\r
       }\r
-     glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturepart);\r
+     glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturepart); glError();\r
+\r
     }\r
    else\r
     {\r
      gTexName=gTexFrameName;\r
-     glBindTexture(GL_TEXTURE_2D, gTexName);\r
+     glBindTexture(GL_TEXTURE_2D, gTexName); glError();\r
     }\r
-\r
+      //LOGE("BlackFake15BitTexture x:%d y:%d",4,4);\r
    ubOpaqueDraw=0;\r
 \r
    return (GLuint)gTexName;\r
@@ -2346,25 +2331,25 @@ GLuint Fake15BitTexture(void)
 \r
  if(!gTexFrameName)\r
   {\r
-   s8 * p;\r
+   char * p;\r
 \r
    if(iResX>1280 || iResY>1024) iFTex=2048;\r
    else\r
    if(iResX>640  || iResY>480)  iFTex=1024;\r
    else                         iFTex=512; \r
 \r
-   glGenTextures(1, &gTexFrameName);\r
+   glGenTextures(1, &gTexFrameName); glError();\r
    gTexName=gTexFrameName;\r
-   glBindTexture(GL_TEXTURE_2D, gTexName);\r
+   glBindTexture(GL_TEXTURE_2D, gTexName); glError();\r
 \r
-   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType);\r
-   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType);\r
-   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter);\r
-   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter);\r
+   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); glError();\r
+   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); glError();\r
+   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glError();\r
+   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); glError();\r
 \r
-   p=(s8 *)malloc(iFTex*iFTex*4);\r
+   p=(char *)malloc(iFTex*iFTex*4);\r
    memset(p,0,iFTex*iFTex*4);\r
-   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, iFTex, iFTex, 0, GL_RGBA, GL_UNSIGNED_BYTE, p);\r
+   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, iFTex, iFTex, 0, GL_RGBA, GL_UNSIGNED_BYTE, p); glError();\r
    free(p);\r
 \r
    glGetError();\r
@@ -2372,9 +2357,9 @@ GLuint Fake15BitTexture(void)
  else \r
   {\r
    gTexName=gTexFrameName;\r
-   glBindTexture(GL_TEXTURE_2D, gTexName);\r
+   glBindTexture(GL_TEXTURE_2D, gTexName); glError();\r
   }\r
-\r
+      //LOGE("Fake15BitTexture x:%d y:%d",iFTex,iFTex);\r
  x1+=PreviousPSXDisplay.Range.x0;\r
  y1+=PreviousPSXDisplay.Range.y0;\r
 \r
@@ -2446,14 +2431,14 @@ GLuint Fake15BitTexture(void)
                       iYAdjust,\r
                       rSrc.left+rRatioRect.left,\r
                       iResY-rSrc.bottom-rRatioRect.top,\r
-                      x1,y1);\r
+                      x1,y1); glError();\r
 \r
  if(glGetError()) \r
   {\r
-   s8 * p=(s8 *)malloc(iFTex*iFTex*4);\r
+   char * p=(char *)malloc(iFTex*iFTex*4);\r
    memset(p,0,iFTex*iFTex*4);\r
    glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, iFTex, iFTex,\r
-                   GL_RGBA, GL_UNSIGNED_BYTE, p);\r
+                   GL_RGBA, GL_UNSIGNED_BYTE, p); glError();\r
    free(p);\r
   }\r
 \r
@@ -2484,7 +2469,7 @@ void LoadSubTexturePageSort(int pageid, int mode, short cx, short cy)
  unsigned long  start,row,column,j,sxh,sxm;\r
  unsigned int   palstart;\r
  unsigned long  *px,*pa,*ta;\r
- u8  *cSRCPtr;\r
+ unsigned char  *cSRCPtr;\r
  unsigned short *wSRCPtr;\r
  unsigned long  LineOffset;\r
  unsigned long  x2a,xalign=0;\r
@@ -2812,7 +2797,7 @@ void LoadPackedSubTexturePageSort(int pageid, int mode, short cx, short cy)
  unsigned long  start,row,column,j,sxh,sxm;\r
  unsigned int   palstart;\r
  unsigned short *px,*pa,*ta;\r
- u8  *cSRCPtr;\r
+ unsigned char  *cSRCPtr;\r
  unsigned short *wSRCPtr;\r
  unsigned long  LineOffset;\r
  unsigned long  x2a,xalign=0;\r
@@ -3128,8 +3113,8 @@ void LoadPackedSubTexturePageSort(int pageid, int mode, short cx, short cy)
 \r
 #define Q_INTERPOLATE8(A, B, C, D) (((((A & qcolorMask8) >> 2) + ((B & qcolorMask8) >> 2) + ((C & qcolorMask8) >> 2) + ((D & qcolorMask8) >> 2) + ((((A & qlowpixelMask8) + (B & qlowpixelMask8) + (C & qlowpixelMask8) + (D & qlowpixelMask8)) >> 2) & qlowpixelMask8))|((((A&0xFF000000)==0x50000000)?0x50000000:(((B&0xFF000000)==0x50000000)?0x50000000:(((C&0xFF000000)==0x50000000)?0x50000000:(((D&0xFF000000)==0x50000000)?0x50000000:(((A&0xFF000000)==0x00000000)?0x00000000:(((B&0xFF000000)==0x00000000)?0x00000000:(((C&0xFF000000)==0x00000000)?0x00000000:(((D&0xFF000000)==0x00000000)?0x00000000:0xFF000000)))))))))))\r
 \r
-void Super2xSaI_ex8_Ex(u8 *srcPtr, DWORD srcPitch,\r
-                   u8  *dstBitmap, int width, int height)\r
+void Super2xSaI_ex8_Ex(unsigned char *srcPtr, DWORD srcPitch,\r
+                   unsigned char  *dstBitmap, int width, int height)\r
 {\r
  DWORD dstPitch = srcPitch * 2;\r
  DWORD line;\r
@@ -3273,8 +3258,8 @@ void Super2xSaI_ex8_Ex(u8 *srcPtr, DWORD srcPitch,
 }\r
 \r
 \r
-void Super2xSaI_ex8(u8 *srcPtr, DWORD srcPitch,\r
-                   u8  *dstBitmap, int width, int height)\r
+void Super2xSaI_ex8(unsigned char *srcPtr, DWORD srcPitch,\r
+                   unsigned char  *dstBitmap, int width, int height)\r
 {\r
  DWORD dstPitch = srcPitch * 2;\r
  DWORD line;\r
@@ -3452,29 +3437,30 @@ void DefineSubTextureSortHiRes(void)
 \r
  if(!gTexName)             \r
   {\r
-   glGenTextures(1, &gTexName);\r
-   glBindTexture(GL_TEXTURE_2D, gTexName);\r
+   glGenTextures(1, &gTexName); glError();\r
+   glBindTexture(GL_TEXTURE_2D, gTexName); glError();\r
 \r
-   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType);\r
-   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType);\r
+   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); glError();\r
+   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); glError();\r
 \r
    if(iFilterType)\r
     {\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glError();\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glError();\r
     }\r
    else\r
     {            \r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter);\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter);\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glError();\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); glError();\r
     }   \r
-   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 512, 512, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturebuffer);\r
+   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 512, 512, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturebuffer); glError();\r
   }\r
- else glBindTexture(GL_TEXTURE_2D, gTexName);\r
+ else glBindTexture(GL_TEXTURE_2D, gTexName); glError();\r
 \r
  glTexSubImage2D(GL_TEXTURE_2D, 0, XTexS<<1, YTexS<<1,\r
                  DXTexS<<1, DYTexS<<1,\r
-                 GL_RGBA, GL_UNSIGNED_BYTE, texturebuffer);\r
+                 GL_RGBA, GL_UNSIGNED_BYTE, texturebuffer); glError();\r
+ //LOGE("DefineSubTextureSortHiRes x:%d y:%d",XTexS<<1,YTexS<<1);\r
 }\r
 \r
 /////////////////////////////////////////////////////////////////////////////\r
@@ -3484,29 +3470,30 @@ void DefineSubTextureSort(void)
 \r
  if(!gTexName)\r
   {\r
-   glGenTextures(1, &gTexName);\r
-   glBindTexture(GL_TEXTURE_2D, gTexName);\r
+   glGenTextures(1, &gTexName); glError();\r
+   glBindTexture(GL_TEXTURE_2D, gTexName); glError();\r
 \r
-   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType);\r
-   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType);\r
+   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); glError();\r
+   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); glError();\r
 \r
    if(iFilterType)\r
     {\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glError();\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glError();\r
     }\r
    else\r
     {\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter);\r
-     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter);\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glError();\r
+     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); glError();\r
     }\r
-   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0,GL_RGBA, GL_UNSIGNED_BYTE, texturepart);\r
+   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0,GL_RGBA, GL_UNSIGNED_BYTE, texturepart); glError();\r
   }\r
- else glBindTexture(GL_TEXTURE_2D, gTexName);\r
+ else glBindTexture(GL_TEXTURE_2D, gTexName); glError();\r
 \r
  glTexSubImage2D(GL_TEXTURE_2D, 0, XTexS, YTexS,\r
                  DXTexS, DYTexS,\r
-                 GL_RGBA, GL_UNSIGNED_BYTE, texturepart);\r
+                 GL_RGBA, GL_UNSIGNED_BYTE, texturepart); glError();\r
+                                        //LOGE("DefineSubTextureSort x:%d y:%d w:%d h:%d",XTexS,YTexS,DXTexS,DYTexS);\r
 }\r
 \r
 /////////////////////////////////////////////////////////////////////////////\r
@@ -3567,15 +3554,15 @@ void DoTexGarbageCollection(void)
 /////////////////////////////////////////////////////////////////////////////\r
 /////////////////////////////////////////////////////////////////////////////\r
 \r
-u8 * CheckTextureInSubSCache(long TextureMode,unsigned long GivenClutId,unsigned short * pCache)\r
+unsigned char * CheckTextureInSubSCache(long TextureMode,unsigned long GivenClutId,unsigned short * pCache)\r
 {\r
  textureSubCacheEntryS * tsx, * tsb, *tsg;//, *tse=NULL;\r
  int i,iMax;EXLong npos;\r
- u8 cx,cy;\r
+ unsigned char cx,cy;\r
  int iC,j,k;unsigned long rx,ry,mx,my;\r
  EXLong * ul=0, * uls;\r
  EXLong rfree;\r
- u8 cXAdj,cYAdj;\r
+ unsigned char cXAdj,cYAdj;\r
 \r
  npos.l=*((unsigned long *)&gl_ux[4]);\r
 \r
@@ -3879,7 +3866,7 @@ BOOL GetCompressTexturePlace(textureSubCacheEntryS * tsx)
 {\r
  int i,j,k,iMax,iC;unsigned long rx,ry,mx,my;\r
  EXLong * ul=0, * uls, rfree;\r
- u8 cXAdj=1,cYAdj=1;\r
+ unsigned char cXAdj=1,cYAdj=1;\r
 \r
  rx=(int)tsx->pos.c[2]-(int)tsx->pos.c[3];\r
  ry=(int)tsx->pos.c[0]-(int)tsx->pos.c[1];\r
@@ -4147,11 +4134,11 @@ void CompressTextureSpace(void)
 \r
 GLuint SelectSubTextureS(long TextureMode, unsigned long GivenClutId) \r
 {\r
- u8 * OPtr;unsigned short iCache;short cx,cy;\r
+ unsigned char * OPtr;unsigned short iCache;short cx,cy;\r
 \r
  // sort sow/tow infos for fast access\r
 \r
- u8 ma1,ma2,mi1,mi2;\r
+ unsigned char ma1,ma2,mi1,mi2;\r
  if(gl_ux[0]>gl_ux[1]) {mi1=gl_ux[1];ma1=gl_ux[0];}\r
  else                  {mi1=gl_ux[0];ma1=gl_ux[1];}\r
  if(gl_ux[2]>gl_ux[3]) {mi2=gl_ux[3];ma2=gl_ux[2];}\r