cdrom: change pause timing again
[pcsx_rearmed.git] / plugins / gpu-gles / gpuTexture.c
index 98f8c9c..5136682 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
 \r
 #include "gpuDraw.h"\r
@@ -83,7 +75,7 @@
 #include "gpuTexture.h"\r
 #include "gpuPlugin.h"\r
 #include "gpuPrim.h"\r
-#endif\r
+\r
 #define CLUTCHK   0x00060000\r
 #define CLUTSHIFT 17\r
 \r
@@ -96,16 +88,12 @@ GLuint        gTexMovieName=0;
 GLuint        gTexBlurName=0;\r
 GLuint        gTexFrameName=0;\r
 int           iTexGarbageCollection=1;\r
-unsigned long dwTexPageComp=0;\r
+unsigned int  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
+unsigned int       (*PalTexturedColourFn)  (unsigned int);\r
 \r
 ////////////////////////////////////////////////////////////////////////\r
 // defines\r
@@ -139,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(int TextureMode,unsigned int 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
@@ -148,7 +136,7 @@ void            DefineSubTextureSort(void);
 // some globals\r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-long  GlobalTexturePage;\r
+int  GlobalTexturePage;\r
 GLint XTexS;\r
 GLint YTexS;\r
 GLint DXTexS;\r
@@ -159,22 +147,18 @@ BOOL  bUse15bitMdec=FALSE;
 int   iFrameTexType=0;\r
 int   iFrameReadType=0;\r
 \r
-unsigned long  (*TCF[2]) (unsigned long);\r
+unsigned int  (*TCF[2]) (unsigned int);\r
 unsigned short (*PTCF[2]) (unsigned short);\r
 \r
 ////////////////////////////////////////////////////////////////////////\r
 // 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
 {\r
- unsigned long  ClutID;\r
+ unsigned int  ClutID;\r
  short          pageid;\r
  short          textureMode;\r
  short          Opaque;\r
@@ -187,17 +171,14 @@ typedef struct textureWndCacheEntryTag
 \r
 typedef struct textureSubCacheEntryTagS \r
 {\r
- unsigned long   ClutID;\r
+ unsigned int    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
@@ -219,8 +200,8 @@ int                      iTexWndLimit=MAXWNDTEXCACHE/2;
 \r
 GLubyte *                texturepart=NULL;\r
 GLubyte *                texturebuffer=NULL;\r
-unsigned long            g_x1,g_y1,g_x2,g_y2;\r
-u8            ubOpaqueDraw=0;\r
+unsigned int             g_x1,g_y1,g_x2,g_y2;\r
+unsigned char            ubOpaqueDraw=0;\r
 \r
 unsigned short MAXTPAGES     = 32;\r
 unsigned short CLUTMASK      = 0x7fff;\r
@@ -232,7 +213,7 @@ unsigned short MAXSORTTEX    = 196;
 // porting... and honestly: nowadays the speed gain would be pointless \r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-unsigned long XP8RGBA(unsigned long BGR)\r
+unsigned int XP8RGBA(unsigned int BGR)\r
 {\r
  if(!(BGR&0xffff)) return 0x50000000;\r
  if(DrawSemiTrans && !(BGR&0x8000)) \r
@@ -240,7 +221,7 @@ unsigned long XP8RGBA(unsigned long BGR)
  return ((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff)|0xff000000;\r
 }\r
 \r
-unsigned long XP8RGBAEx(unsigned long BGR)\r
+unsigned int XP8RGBAEx(unsigned int BGR)\r
 {\r
  if(!(BGR&0xffff)) return 0x03000000;\r
  if(DrawSemiTrans && !(BGR&0x8000)) \r
@@ -248,9 +229,9 @@ unsigned long XP8RGBAEx(unsigned long BGR)
  return ((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff)|0xff000000;\r
 }\r
 \r
-unsigned long CP8RGBA(unsigned long BGR)\r
+unsigned int CP8RGBA(unsigned int BGR)\r
 {\r
- unsigned long l;\r
+ unsigned int l;\r
  if(!(BGR&0xffff)) return 0x50000000;\r
  if(DrawSemiTrans && !(BGR&0x8000)) \r
   {ubOpaqueDraw=1;return ((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff);}\r
@@ -259,9 +240,9 @@ unsigned long CP8RGBA(unsigned long BGR)
  return l;\r
 }\r
 \r
-unsigned long CP8RGBAEx(unsigned long BGR)\r
+unsigned int CP8RGBAEx(unsigned int BGR)\r
 {\r
- unsigned long l;\r
+ unsigned int l;\r
  if(!(BGR&0xffff)) return 0x03000000;\r
  if(DrawSemiTrans && !(BGR&0x8000)) \r
   {ubOpaqueDraw=1;return ((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff);}\r
@@ -270,33 +251,33 @@ unsigned long CP8RGBAEx(unsigned long BGR)
  return l;\r
 }\r
 \r
-unsigned long XP8RGBA_0(unsigned long BGR)\r
+unsigned int XP8RGBA_0(unsigned int BGR)\r
 {\r
  if(!(BGR&0xffff)) return 0x50000000;\r
  return ((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff)|0xff000000;\r
 }\r
 \r
-unsigned long XP8RGBAEx_0(unsigned long BGR)\r
+unsigned int XP8RGBAEx_0(unsigned int BGR)\r
 {\r
  if(!(BGR&0xffff)) return 0x03000000;\r
  return ((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff)|0xff000000;\r
 }\r
 \r
-unsigned long XP8BGRA_0(unsigned long BGR)\r
+unsigned int XP8BGRA_0(unsigned int BGR)\r
 {\r
  if(!(BGR&0xffff)) return 0x50000000;\r
  return ((((BGR>>7)&0xf8)|((BGR<<6)&0xf800)|((BGR<<19)&0xf80000))&0xffffff)|0xff000000;\r
 }\r
 \r
-unsigned long XP8BGRAEx_0(unsigned long BGR)\r
+unsigned int XP8BGRAEx_0(unsigned int BGR)\r
 {\r
  if(!(BGR&0xffff)) return 0x03000000;\r
  return ((((BGR>>7)&0xf8)|((BGR<<6)&0xf800)|((BGR<<19)&0xf80000))&0xffffff)|0xff000000;\r
 }\r
 \r
-unsigned long CP8RGBA_0(unsigned long BGR)\r
+unsigned int CP8RGBA_0(unsigned int BGR)\r
 {\r
- unsigned long l;\r
+ unsigned int l;\r
 \r
  if(!(BGR&0xffff)) return 0x50000000;\r
  l=((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff)|0xff000000;\r
@@ -304,9 +285,9 @@ unsigned long CP8RGBA_0(unsigned long BGR)
  return l;\r
 }\r
 \r
-unsigned long CP8RGBAEx_0(unsigned long BGR)\r
+unsigned int CP8RGBAEx_0(unsigned int BGR)\r
 {\r
- unsigned long l;\r
+ unsigned int l;\r
 \r
  if(!(BGR&0xffff)) return 0x03000000;\r
  l=((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff)|0xff000000;\r
@@ -314,9 +295,9 @@ unsigned long CP8RGBAEx_0(unsigned long BGR)
  return l;\r
 }\r
 \r
-unsigned long CP8BGRA_0(unsigned long BGR)\r
+unsigned int CP8BGRA_0(unsigned int BGR)\r
 {\r
- unsigned long l;\r
+ unsigned int l;\r
 \r
  if(!(BGR&0xffff)) return 0x50000000;\r
  l=((((BGR>>7)&0xf8)|((BGR<<6)&0xf800)|((BGR<<19)&0xf80000))&0xffffff)|0xff000000;\r
@@ -324,9 +305,9 @@ unsigned long CP8BGRA_0(unsigned long BGR)
  return l;\r
 }\r
 \r
-unsigned long CP8BGRAEx_0(unsigned long BGR)\r
+unsigned int CP8BGRAEx_0(unsigned int BGR)\r
 {\r
- unsigned long l;\r
+ unsigned int l;\r
 \r
  if(!(BGR&0xffff)) return 0x03000000;\r
  l=((((BGR>>7)&0xf8)|((BGR<<6)&0xf800)|((BGR<<19)&0xf80000))&0xffffff)|0xff000000;\r
@@ -334,41 +315,41 @@ unsigned long CP8BGRAEx_0(unsigned long BGR)
  return l;\r
 }\r
 \r
-unsigned long XP8RGBA_1(unsigned long BGR)\r
+unsigned int XP8RGBA_1(unsigned int BGR)\r
 {\r
  if(!(BGR&0xffff)) return 0x50000000;\r
  if(!(BGR&0x8000)) {ubOpaqueDraw=1;return ((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff);}\r
  return ((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff)|0xff000000;\r
 }\r
 \r
-unsigned long XP8RGBAEx_1(unsigned long BGR)\r
+unsigned int XP8RGBAEx_1(unsigned int BGR)\r
 {\r
  if(!(BGR&0xffff)) return 0x03000000;\r
  if(!(BGR&0x8000)) {ubOpaqueDraw=1;return ((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff);}\r
  return ((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff)|0xff000000;\r
 }\r
 \r
-unsigned long XP8BGRA_1(unsigned long BGR)\r
+unsigned int XP8BGRA_1(unsigned int BGR)\r
 {\r
  if(!(BGR&0xffff)) return 0x50000000;\r
  if(!(BGR&0x8000)) {ubOpaqueDraw=1;return ((((BGR>>7)&0xf8)|((BGR<<6)&0xf800)|((BGR<<19)&0xf80000))&0xffffff);}\r
  return ((((BGR>>7)&0xf8)|((BGR<<6)&0xf800)|((BGR<<19)&0xf80000))&0xffffff)|0xff000000;\r
 }\r
 \r
-unsigned long XP8BGRAEx_1(unsigned long BGR)\r
+unsigned int XP8BGRAEx_1(unsigned int BGR)\r
 {\r
  if(!(BGR&0xffff)) return 0x03000000;\r
  if(!(BGR&0x8000)) {ubOpaqueDraw=1;return ((((BGR>>7)&0xf8)|((BGR<<6)&0xf800)|((BGR<<19)&0xf80000))&0xffffff);}\r
  return ((((BGR>>7)&0xf8)|((BGR<<6)&0xf800)|((BGR<<19)&0xf80000))&0xffffff)|0xff000000;\r
 }\r
 \r
-unsigned long P8RGBA(unsigned long BGR)\r
+unsigned int P8RGBA(unsigned int BGR)\r
 {\r
  if(!(BGR&0xffff)) return 0;\r
  return ((((BGR<<3)&0xf8)|((BGR<<6)&0xf800)|((BGR<<9)&0xf80000))&0xffffff)|0xff000000;\r
 }\r
 \r
-unsigned long P8BGRA(unsigned long BGR)\r
+unsigned int P8BGRA(unsigned int BGR)\r
 {\r
  if(!(BGR&0xffff)) return 0;\r
  return ((((BGR>>7)&0xf8)|((BGR<<6)&0xf800)|((BGR<<19)&0xf80000))&0xffffff)|0xff000000;\r
@@ -462,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
@@ -491,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
@@ -527,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
@@ -589,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
@@ -603,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
@@ -648,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
@@ -656,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
@@ -678,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
@@ -687,7 +680,7 @@ void ResetTextureArea(BOOL bDelTex)
 // Invalidate tex windows\r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-void InvalidateWndTextureArea(long X,long Y,long W, long H)\r
+void InvalidateWndTextureArea(int X,int Y,int W, int H)\r
 {\r
  int i,px1,px2,py1,py2,iYM=1;\r
  textureWndCacheEntry * tsw=wcWndtexStore;\r
@@ -752,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
@@ -778,11 +771,11 @@ void MarkFree(textureSubCacheEntryS * tsx)
   }\r
 }\r
 \r
-void InvalidateSubSTextureArea(long X,long Y,long W, long H)\r
+void InvalidateSubSTextureArea(int X,int Y,int W, int H)\r
 {\r
  int i,j,k,iMax,px,py,px1,px2,py1,py2,iYM=1;\r
  EXLong npos;textureSubCacheEntryS * tsb;\r
long x1,x2,y1,y2,xa,sw;\r
int x1,x2,y1,y2,xa,sw;\r
 \r
  W+=X-1;      \r
  H+=Y-1;\r
@@ -882,7 +875,7 @@ void InvalidateTextureAreaEx(void)
 \r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-void InvalidateTextureArea(long X,long Y,long W, long H)\r
+void InvalidateTextureArea(int X,int Y,int W, int H)\r
 {\r
  if(W==0 && H==0) return;\r
 \r
@@ -900,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
@@ -923,12 +920,12 @@ void DefineTextureWnd(void)
 \r
 void LoadStretchPackedWndTexturePage(int pageid, int mode, short cx, short cy)\r
 {\r
- unsigned long start,row,column,j,sxh,sxm,ldx,ldy,ldxo;\r
+ unsigned int 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
+ unsigned int  LineOffset;unsigned short s;\r
  int pmult=pageid/16;\r
  unsigned short (*LPTCOL)(unsigned short);\r
 \r
@@ -1115,22 +1112,22 @@ void LoadStretchPackedWndTexturePage(int pageid, int mode, short cx, short cy)
 \r
 void LoadStretchWndTexturePage(int pageid, int mode, short cx, short cy)\r
 {\r
- unsigned long start,row,column,j,sxh,sxm,ldx,ldy,ldxo,s;\r
+ unsigned int 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 int  *px,*pa,*ta;\r
+ unsigned char  *cSRCPtr,*cOSRCPtr;\r
  unsigned short *wSRCPtr,*wOSRCPtr;\r
- unsigned long  LineOffset;\r
+ unsigned int  LineOffset;\r
  int pmult=pageid/16;\r
- unsigned long (*LTCOL)(unsigned long);\r
+ unsigned int (*LTCOL)(unsigned int);\r
  \r
  LTCOL=TCF[DrawSemiTrans];\r
 \r
  ldxo=TWin.Position.x1-TWin.OPosition.x1;\r
  ldy =TWin.Position.y1-TWin.OPosition.y1;\r
 \r
- pa=px=(unsigned long *)ubPaletteBuffer;\r
- ta=(unsigned long *)texturepart;\r
+ pa=px=(unsigned int *)ubPaletteBuffer;\r
+ ta=(unsigned int *)texturepart;\r
  palstart=cx+(cy*1024);\r
 \r
  ubOpaqueDraw=0;\r
@@ -1326,12 +1323,12 @@ void LoadStretchWndTexturePage(int pageid, int mode, short cx, short cy)
 \r
 void LoadPackedWndTexturePage(int pageid, int mode, short cx, short cy)\r
 {\r
- unsigned long start,row,column,j,sxh,sxm;\r
+ unsigned int 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 int  LineOffset;\r
  int pmult=pageid/16;\r
  unsigned short (*LPTCOL)(unsigned short);\r
 \r
@@ -1468,19 +1465,19 @@ void LoadPackedWndTexturePage(int pageid, int mode, short cx, short cy)
 \r
 void LoadWndTexturePage(int pageid, int mode, short cx, short cy)\r
 {\r
- unsigned long start,row,column,j,sxh,sxm;\r
+ unsigned int start,row,column,j,sxh,sxm;\r
  unsigned int   palstart;\r
- unsigned long  *px,*pa,*ta;\r
- u8  *cSRCPtr;\r
+ unsigned int  *px,*pa,*ta;\r
+ unsigned char  *cSRCPtr;\r
  unsigned short *wSRCPtr;\r
- unsigned long  LineOffset;\r
+ unsigned int  LineOffset;\r
  int pmult=pageid/16;\r
- unsigned long (*LTCOL)(unsigned long);\r
+ unsigned int (*LTCOL)(unsigned int);\r
  \r
  LTCOL=TCF[DrawSemiTrans];\r
 \r
- pa=px=(unsigned long *)ubPaletteBuffer;\r
- ta=(unsigned long *)texturepart;\r
+ pa=px=(unsigned int *)ubPaletteBuffer;\r
+ ta=(unsigned int *)texturepart;\r
  palstart=cx+(cy*1024);\r
 \r
  ubOpaqueDraw=0;\r
@@ -1630,7 +1627,7 @@ void UploadTexWndPal(int mode,short cx,short cy)
 {\r
  unsigned int i,iSize;\r
  unsigned short * wSrcPtr;\r
- unsigned long * ta=(unsigned long *)texturepart;\r
+ unsigned int * ta=(unsigned int *)texturepart;\r
 \r
  wSrcPtr=psxVuw+cx+(cy*1024);\r
  if(mode==0) i=4; else i=64;\r
@@ -1657,34 +1654,36 @@ 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
 \r
 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 long  LineOffset;\r
+ unsigned int start,row,column,j,sxh,sxm;\r
+ unsigned char  *ta;\r
+ unsigned char  *cSRCPtr;\r
+ unsigned int  LineOffset;\r
  int pmult=pageid/16;\r
 \r
- ta=(u8 *)texturepart;\r
+ ta=(unsigned char *)texturepart;\r
 \r
  switch(mode)\r
   {\r
@@ -1738,16 +1737,16 @@ void LoadPalWndTexturePage(int pageid, int mode, short cx, short cy)
 \r
 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 long  LineOffset;\r
+ unsigned int start,row,column,j,sxh,sxm,ldx,ldy,ldxo;\r
+ unsigned char  *ta,s;\r
+ unsigned char  *cSRCPtr,*cOSRCPtr;\r
+ unsigned int  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
@@ -1816,7 +1815,7 @@ void LoadStretchPalWndTexturePage(int pageid, int mode, short cx, short cy)
 // tex window: main selecting, cache handler included\r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-GLuint LoadTextureWnd(long pageid,long TextureMode,unsigned long GivenClutId)\r
+GLuint LoadTextureWnd(int pageid,int TextureMode,unsigned int GivenClutId)\r
 {\r
  textureWndCacheEntry * ts, * tsx=NULL;\r
  int i;short cx,cy;\r
@@ -1838,8 +1837,8 @@ GLuint LoadTextureWnd(long pageid,long TextureMode,unsigned long GivenClutId)
 \r
    // palette check sum\r
     {\r
-     unsigned long l=0,row;\r
-     unsigned long * lSRCPtr=(unsigned long *)(psxVuw+cx+(cy*1024));\r
+     unsigned int l=0,row;\r
+     unsigned int * lSRCPtr=(unsigned int *)(psxVuw+cx+(cy*1024));\r
      if(TextureMode==1) for(row=1;row<129;row++) l+=((*lSRCPtr++)-1)*row;\r
      else               for(row=1;row<9;row++)   l+=((*lSRCPtr++)-1)<<row;\r
      l=(l+HIWORD(l))&0x3fffL;\r
@@ -1918,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
@@ -1950,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
@@ -1959,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
@@ -2006,32 +2009,32 @@ void DefineTextureMovie(void)
 // movie texture: load\r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-u8 * LoadDirectMovieFast(void)\r
+unsigned char * LoadDirectMovieFast(void)\r
 {\r
long row,column;\r
int row,column;\r
  unsigned int startxy;\r
 \r
- unsigned long * ta=(unsigned long *)texturepart;\r
+ unsigned int * ta=(unsigned int *)texturepart;\r
 \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
+       *ta++=*((unsigned int *)pD)|0xff000000;\r
        pD+=3;\r
       }\r
     }\r
   }\r
  else\r
   {\r
-   unsigned long (*LTCOL)(unsigned long);\r
+   unsigned int (*LTCOL)(unsigned int);\r
 \r
    LTCOL=XP8RGBA_0;//TCF[0];\r
 \r
@@ -2052,37 +2055,37 @@ u8 * LoadDirectMovieFast(void)
 \r
 GLuint LoadTextureMovieFast(void)\r
 {\r
long row,column;\r
int row,column;\r
  unsigned int start,startxy;\r
 \r
 {\r
    if(PSXDisplay.RGB24)\r
     {\r
-     u8 * pD;\r
-     unsigned long * ta=(unsigned long *)texturepart;\r
+     unsigned char * pD;\r
+     unsigned int * ta=(unsigned int *)texturepart;\r
 \r
      startxy=((1024)*xrMovieArea.y0)+xrMovieArea.x0;\r
 \r
      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
+         *ta++=*((unsigned int *)pD)|0xff000000;\r
          pD+=3;\r
         }\r
       }\r
     }\r
    else\r
     {\r
-     unsigned long (*LTCOL)(unsigned long);\r
-     unsigned long *ta;\r
+     unsigned int (*LTCOL)(unsigned int);\r
+     unsigned int *ta;\r
 \r
      LTCOL=XP8RGBA_0;//TCF[0];\r
 \r
      ubOpaqueDraw=0;\r
-     ta=(unsigned long *)texturepart;\r
+     ta=(unsigned int *)texturepart;\r
 \r
      for(column=xrMovieArea.y0;column<xrMovieArea.y1;column++)\r
       {\r
@@ -2114,18 +2117,18 @@ GLuint LoadTextureMovie(void)
 {\r
    if(PSXDisplay.RGB24)\r
     {\r
-     u8 * pD;\r
-     unsigned long * ta=(unsigned long *)texturepart;\r
+     unsigned char * pD;\r
+     unsigned int * ta=(unsigned int *)texturepart;\r
 \r
      if(b_X)\r
       {\r
        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
+           *ta++=*((unsigned int *)pD)|0xff000000;\r
            pD+=3;\r
           }\r
          *ta++=*(ta-1);\r
@@ -2143,10 +2146,10 @@ 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
+           *ta++=*((unsigned int *)pD)|0xff000000;\r
            pD+=3;\r
           }\r
         }\r
@@ -2160,13 +2163,13 @@ GLuint LoadTextureMovie(void)
     }\r
    else\r
     {\r
-     unsigned long (*LTCOL)(unsigned long);\r
-     unsigned long *ta;\r
+     unsigned int (*LTCOL)(unsigned int);\r
+     unsigned int *ta;\r
 \r
      LTCOL=XP8RGBA_0;//TCF[0];\r
 \r
      ubOpaqueDraw=0;\r
-     ta=(unsigned long *)texturepart;\r
+     ta=(unsigned int *)texturepart;\r
 \r
      if(b_X)\r
       {\r
@@ -2217,7 +2220,7 @@ GLuint LoadTextureMovie(void)
 \r
 GLuint BlackFake15BitTexture(void)\r
 {\r
long pmult;short x1,x2,y1,y2;\r
int pmult;short x1,x2,y1,y2;\r
 \r
  if(PSXDisplay.InterlacedTest) return 0;\r
  \r
@@ -2241,29 +2244,30 @@ 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
+       unsigned int * ta=(unsigned int *)texturepart;\r
        for(y1=0;y1<=4;y1++)\r
         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
@@ -2280,7 +2284,7 @@ int iFTex=512;
 \r
 GLuint Fake15BitTexture(void)\r
 {\r
long pmult;short x1,x2,y1,y2;int iYAdjust;\r
int pmult;short x1,x2,y1,y2;int iYAdjust;\r
  float ScaleX,ScaleY;RECT rSrc;\r
 \r
  if(iFrameTexType==1) return BlackFake15BitTexture();\r
@@ -2327,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
@@ -2353,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
@@ -2427,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
@@ -2462,28 +2466,28 @@ GLuint Fake15BitTexture(void)
 \r
 void LoadSubTexturePageSort(int pageid, int mode, short cx, short cy)\r
 {\r
- unsigned long  start,row,column,j,sxh,sxm;\r
+ unsigned int  start,row,column,j,sxh,sxm;\r
  unsigned int   palstart;\r
- unsigned long  *px,*pa,*ta;\r
- u8  *cSRCPtr;\r
+ unsigned int  *px,*pa,*ta;\r
+ unsigned char  *cSRCPtr;\r
  unsigned short *wSRCPtr;\r
- unsigned long  LineOffset;\r
- unsigned long  x2a,xalign=0;\r
- unsigned long  x1=gl_ux[7];\r
- unsigned long  x2=gl_ux[6];\r
- unsigned long  y1=gl_ux[5];\r
- unsigned long  y2=gl_ux[4];\r
- unsigned long  dx=x2-x1+1;\r
- unsigned long  dy=y2-y1+1;\r
+ unsigned int  LineOffset;\r
+ unsigned int  x2a,xalign=0;\r
+ unsigned int  x1=gl_ux[7];\r
+ unsigned int  x2=gl_ux[6];\r
+ unsigned int  y1=gl_ux[5];\r
+ unsigned int  y2=gl_ux[4];\r
+ unsigned int  dx=x2-x1+1;\r
+ unsigned int  dy=y2-y1+1;\r
  int pmult=pageid/16;\r
- unsigned long (*LTCOL)(unsigned long);\r
+ unsigned int (*LTCOL)(unsigned int);\r
  unsigned int a,r,g,b,cnt,h;\r
- unsigned long scol[8];\r
+ unsigned int scol[8];\r
  \r
  LTCOL=TCF[DrawSemiTrans];\r
 \r
- pa=px=(unsigned long *)ubPaletteBuffer;\r
- ta=(unsigned long *)texturepart;\r
+ pa=px=(unsigned int *)ubPaletteBuffer;\r
+ ta=(unsigned int *)texturepart;\r
  palstart=cx+(cy<<10);\r
 \r
  ubOpaqueDraw=0;\r
@@ -2670,10 +2674,10 @@ void LoadSubTexturePageSort(int pageid, int mode, short cx, short cy)
 \r
  if(YTexS)\r
   {\r
-   ta=(unsigned long *)texturepart;\r
-   pa=(unsigned long *)texturepart+x2a;\r
+   ta=(unsigned int *)texturepart;\r
+   pa=(unsigned int *)texturepart+x2a;\r
    row=x2a;do {*ta++=*pa++;row--;} while(row);        \r
-   pa=(unsigned long *)texturepart+dy*x2a;\r
+   pa=(unsigned int *)texturepart+dy*x2a;\r
    ta=pa+x2a;\r
    row=x2a;do {*ta++=*pa++;row--;} while(row);\r
    YTexS--;\r
@@ -2682,10 +2686,10 @@ void LoadSubTexturePageSort(int pageid, int mode, short cx, short cy)
 \r
  if(XTexS)\r
   {\r
-   ta=(unsigned long *)texturepart;\r
+   ta=(unsigned int *)texturepart;\r
    pa=ta+1;\r
    row=dy;do {*ta=*pa;ta+=x2a;pa+=x2a;row--;} while(row);\r
-   pa=(unsigned long *)texturepart+dx;\r
+   pa=(unsigned int *)texturepart+dx;\r
    ta=pa+1;\r
    row=dy;do {*ta=*pa;ta+=x2a;pa+=x2a;row--;} while(row);\r
    XTexS--;\r
@@ -2699,7 +2703,7 @@ void LoadSubTexturePageSort(int pageid, int mode, short cx, short cy)
  if((iFilterType==4 || iFilterType==6) && ly0==ly1 && ly2==ly3 && lx0==lx3 && lx1==lx2)\r
   {DefineSubTextureSort();return;}\r
 \r
- ta=(unsigned long *)texturepart;\r
+ ta=(unsigned int *)texturepart;\r
  x1=dx-1;\r
  y1=dy-1;\r
 \r
@@ -2790,19 +2794,19 @@ void LoadSubTexturePageSort(int pageid, int mode, short cx, short cy)
 \r
 void LoadPackedSubTexturePageSort(int pageid, int mode, short cx, short cy)\r
 {\r
- unsigned long  start,row,column,j,sxh,sxm;\r
+ unsigned int  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
- unsigned long  x1=gl_ux[7];\r
- unsigned long  x2=gl_ux[6];\r
- unsigned long  y1=gl_ux[5];\r
- unsigned long  y2=gl_ux[4];\r
- unsigned long  dx=x2-x1+1;\r
- unsigned long  dy=y2-y1+1;\r
+ unsigned int  LineOffset;\r
+ unsigned int  x2a,xalign=0;\r
+ unsigned int  x1=gl_ux[7];\r
+ unsigned int  x2=gl_ux[6];\r
+ unsigned int  y1=gl_ux[5];\r
+ unsigned int  y2=gl_ux[4];\r
+ unsigned int  dx=x2-x1+1;\r
+ unsigned int  dy=y2-y1+1;\r
  int pmult=pageid/16;\r
  unsigned short (*LPTCOL)(unsigned short);\r
  unsigned int a,r,g,b,cnt,h;\r
@@ -3109,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
@@ -3254,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
@@ -3433,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
@@ -3465,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
@@ -3548,17 +3554,17 @@ void DoTexGarbageCollection(void)
 /////////////////////////////////////////////////////////////////////////////\r
 /////////////////////////////////////////////////////////////////////////////\r
 \r
-u8 * CheckTextureInSubSCache(long TextureMode,unsigned long GivenClutId,unsigned short * pCache)\r
+unsigned char * CheckTextureInSubSCache(int TextureMode,unsigned int GivenClutId,unsigned short * pCache)\r
 {\r
  textureSubCacheEntryS * tsx, * tsb, *tsg;//, *tse=NULL;\r
  int i,iMax;EXLong npos;\r
- u8 cx,cy;\r
- int iC,j,k;unsigned long rx,ry,mx,my;\r
+ unsigned char cx,cy;\r
+ int iC,j,k;unsigned int 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
+ npos.l=*((unsigned int *)&gl_ux[4]);\r
 \r
  //--------------------------------------------------------------//\r
  // find matching texturepart first... speed up...\r
@@ -3644,7 +3650,7 @@ u8 * CheckTextureInSubSCache(long TextureMode,unsigned long GivenClutId,unsigned
 \r
        if(tsx)                                         // 3. if one or more found, create a new rect with bigger size\r
         {\r
-         *((unsigned long *)&gl_ux[4])=npos.l=rfree.l;\r
+         *((unsigned int *)&gl_ux[4])=npos.l=rfree.l;\r
          rx=(int)rfree.c[2]-(int)rfree.c[3];\r
          ry=(int)rfree.c[0]-(int)rfree.c[1];\r
          DoTexGarbageCollection();\r
@@ -3858,9 +3864,9 @@ ENDLOOP:
 \r
 BOOL GetCompressTexturePlace(textureSubCacheEntryS * tsx)\r
 {\r
- int i,j,k,iMax,iC;unsigned long rx,ry,mx,my;\r
+ int i,j,k,iMax,iC;unsigned int 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
@@ -3996,11 +4002,11 @@ void CompressTextureSpace(void)
  textureSubCacheEntryS * tsx, * tsg, * tsb;\r
  int i,j,k,m,n,iMax;EXLong * ul, r,opos;\r
  short sOldDST=DrawSemiTrans,cx,cy;\r
long  lOGTP=GlobalTexturePage;\r
- unsigned long l,row;\r
- unsigned long * lSRCPtr;\r
int  lOGTP=GlobalTexturePage;\r
+ unsigned int l,row;\r
+ unsigned int * lSRCPtr;\r
 \r
- opos.l=*((unsigned long *)&gl_ux[4]);\r
+ opos.l=*((unsigned int *)&gl_ux[4]);\r
 \r
  // 1. mark all textures as free\r
  for(i=0;i<iSortTexCnt;i++)\r
@@ -4053,7 +4059,7 @@ void CompressTextureSpace(void)
              if(j!=2)\r
               {\r
                // palette check sum\r
-               l=0;lSRCPtr=(unsigned long *)(psxVuw+cx+(cy*1024));\r
+               l=0;lSRCPtr=(unsigned int *)(psxVuw+cx+(cy*1024));\r
                if(j==1) for(row=1;row<129;row++) l+=((*lSRCPtr++)-1)*row;\r
                else     for(row=1;row<9;row++)   l+=((*lSRCPtr++)-1)<<row;\r
                l=((l+HIWORD(l))&0x3fffL)<<16;\r
@@ -4080,7 +4086,7 @@ void CompressTextureSpace(void)
                usLRUTexPage=0;\r
                DrawSemiTrans=sOldDST;\r
                GlobalTexturePage=lOGTP;\r
-               *((unsigned long *)&gl_ux[4])=opos.l;\r
+               *((unsigned int *)&gl_ux[4])=opos.l;\r
                dwTexPageComp=0;\r
 \r
                return;\r
@@ -4088,7 +4094,7 @@ void CompressTextureSpace(void)
 \r
              if(tsx->ClutID&(1<<30)) DrawSemiTrans=1;\r
              else                    DrawSemiTrans=0;\r
-             *((unsigned long *)&gl_ux[4])=r.l;\r
+             *((unsigned int *)&gl_ux[4])=r.l;\r
    \r
              gTexName=uiStexturePage[tsx->cTexID];\r
              LoadSubTexFn(k,j,cx,cy);\r
@@ -4111,7 +4117,7 @@ void CompressTextureSpace(void)
 \r
  if(dwTexPageComp==0xffffffff) dwTexPageComp=0;\r
 \r
- *((unsigned long *)&gl_ux[4])=opos.l;\r
+ *((unsigned int *)&gl_ux[4])=opos.l;\r
  GlobalTexturePage=lOGTP;\r
  DrawSemiTrans=sOldDST;\r
 }\r
@@ -4126,13 +4132,13 @@ void CompressTextureSpace(void)
 /////////////////////////////////////////////////////////////////////////////\r
 /////////////////////////////////////////////////////////////////////////////\r
 \r
-GLuint SelectSubTextureS(long TextureMode, unsigned long GivenClutId) \r
+GLuint SelectSubTextureS(int TextureMode, unsigned int 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
@@ -4168,9 +4174,9 @@ GLuint SelectSubTextureS(long TextureMode, unsigned long GivenClutId)
 \r
    // palette check sum.. removed MMX asm, this easy func works as well\r
     {\r
-     unsigned long l=0,row;\r
+     unsigned int l=0,row;\r
 \r
-     unsigned long * lSRCPtr=(unsigned long *)(psxVuw+cx+(cy*1024));\r
+     unsigned int * lSRCPtr=(unsigned int *)(psxVuw+cx+(cy*1024));\r
      if(TextureMode==1) for(row=1;row<129;row++) l+=((*lSRCPtr++)-1)*row;\r
      else               for(row=1;row<9;row++)   l+=((*lSRCPtr++)-1)<<row;\r
      l=(l+HIWORD(l))&0x3fffL;\r