+++ /dev/null
-/***************************************************************************\r
- external.h - description\r
- -------------------\r
- begin : Sun Mar 08 2009\r
- copyright : (C) 1999-2009 by Pete Bernert\r
- web : www.pbernert.com \r
- ***************************************************************************/\r
-\r
-/***************************************************************************\r
- * *\r
- * This program is free software; you can redistribute it and/or modify *\r
- * it under the terms of the GNU General Public License as published by *\r
- * the Free Software Foundation; either version 2 of the License, or *\r
- * (at your option) any later version. See also the license.txt file for *\r
- * additional informations. *\r
- * *\r
- ***************************************************************************/\r
-\r
-#define MIRROR_TEST 1\r
-#define SCISSOR_TEST 1\r
-\r
-// for own sow/tow scaling\r
-#define OWNSCALE 1\r
-\r
-#define CLUTUSED 0x80000000\r
-\r
-#define SETCOL(x) if(x.c.lcol!=ulOLDCOL) {ulOLDCOL=x.c.lcol;glColor4ubv(x.c.col);} \r
-#define SETPCOL(x) if(x->c.lcol!=ulOLDCOL) {ulOLDCOL=x->c.lcol;glColor4ubv(x->c.col);}\r
-\r
-#define GL_TO_EDGE_CLAMP 0x812F\r
-\r
-#define INFO_TW 0\r
-#define INFO_DRAWSTART 1\r
-#define INFO_DRAWEND 2\r
-#define INFO_DRAWOFF 3\r
-\r
-#define SIGNSHIFT 21\r
-#define CHKMAX_X 1024\r
-#define CHKMAX_Y 512\r
-\r
-// GPU STATUS REGISTER bit values (c) Lewpy\r
-\r
-#define DR_NORMAL 0\r
-#define DR_VRAMTRANSFER 1\r
-\r
-#define GPUSTATUS_ODDLINES 0x80000000\r
-#define GPUSTATUS_DMABITS 0x60000000 // Two bits\r
-#define GPUSTATUS_READYFORCOMMANDS 0x10000000\r
-#define GPUSTATUS_READYFORVRAM 0x08000000\r
-#define GPUSTATUS_IDLE 0x04000000\r
-#define GPUSTATUS_DISPLAYDISABLED 0x00800000\r
-#define GPUSTATUS_INTERLACED 0x00400000\r
-#define GPUSTATUS_RGB24 0x00200000\r
-#define GPUSTATUS_PAL 0x00100000\r
-#define GPUSTATUS_DOUBLEHEIGHT 0x00080000\r
-#define GPUSTATUS_WIDTHBITS 0x00070000 // Three bits\r
-#define GPUSTATUS_MASKENABLED 0x00001000\r
-#define GPUSTATUS_MASKDRAWN 0x00000800\r
-#define GPUSTATUS_DRAWINGALLOWED 0x00000400\r
-#define GPUSTATUS_DITHER 0x00000200\r
-\r
-#define STATUSREG lGPUstatusRet\r
-\r
-#define GPUIsBusy (STATUSREG &= ~GPUSTATUS_IDLE)\r
-#define GPUIsIdle (STATUSREG |= GPUSTATUS_IDLE)\r
-\r
-#define GPUIsNotReadyForCommands (STATUSREG &= ~GPUSTATUS_READYFORCOMMANDS)\r
-#define GPUIsReadyForCommands (STATUSREG |= GPUSTATUS_READYFORCOMMANDS)\r
-\r
-#define KEY_RESETTEXSTORE 1\r
-#define KEY_SHOWFPS 2\r
-#define KEY_RESETOPAQUE 4\r
-#define KEY_RESETDITHER 8\r
-#define KEY_RESETFILTER 16\r
-#define KEY_RESETADVBLEND 32\r
-#define KEY_BLACKWHITE 64\r
-#define KEY_TOGGLEFBTEXTURE 128\r
-#define KEY_STEPDOWN 256\r
-#define KEY_TOGGLEFBREAD 512\r
-\r
-#define FALSE 0\r
-#define TRUE 1\r
-#define BOOL unsigned short\r
-#define bool unsigned short\r
-#define LOWORD(l) ((unsigned short)(l))\r
-#define HIWORD(l) ((unsigned short)(((uint32_t)(l) >> 16) & 0xFFFF))\r
-#define max(a,b) (((a) > (b)) ? (a) : (b))\r
-#define min(a,b) (((a) < (b)) ? (a) : (b))\r
-#define DWORD uint32_t\r
-\r
-typedef struct RECTTAG\r
-{\r
- int left;\r
- int top;\r
- int right;\r
- int bottom;\r
-}RECT;\r
-\r
-typedef struct VRAMLOADTAG\r
-{\r
- short x;\r
- short y;\r
- short Width;\r
- short Height;\r
- short RowsRemaining;\r
- short ColsRemaining;\r
- unsigned short *ImagePtr;\r
-} VRAMLoad_t;\r
-\r
-typedef struct PSXPOINTTAG\r
-{\r
- int x;\r
- int y;\r
-} PSXPoint_t;\r
-\r
-typedef struct PSXSPOINTTAG\r
-{\r
- short x;\r
- short y;\r
-} PSXSPoint_t;\r
-\r
-typedef struct PSXRECTTAG\r
-{\r
- short x0;\r
- short x1;\r
- short y0;\r
- short y1;\r
-} PSXRect_t;\r
-\r
-typedef struct TWINTAG\r
-{\r
- PSXRect_t Position;\r
- PSXRect_t OPosition;\r
- PSXPoint_t TextureSize;\r
- float UScaleFactor;\r
- float VScaleFactor;\r
-} TWin_t;\r
-\r
-typedef struct PSXDISPLAYTAG\r
-{\r
- PSXPoint_t DisplayModeNew;\r
- PSXPoint_t DisplayMode;\r
- PSXPoint_t DisplayPosition;\r
- PSXPoint_t DisplayEnd;\r
- \r
- int Double;\r
- int Height;\r
- int PAL;\r
- int InterlacedNew;\r
- int Interlaced;\r
- int InterlacedTest;\r
- int RGB24New;\r
- int RGB24;\r
- PSXSPoint_t DrawOffset;\r
- PSXRect_t DrawArea;\r
- PSXPoint_t GDrawOffset;\r
- PSXPoint_t CumulOffset;\r
- int Disabled;\r
- PSXRect_t Range;\r
-} PSXDisplay_t;\r
-\r
-typedef struct OGLVertexTag \r
-{\r
- GLfloat x;\r
- GLfloat y;\r
- GLfloat z;\r
-\r
- GLfloat sow;\r
- GLfloat tow;\r
-\r
- union COLTAG\r
- {\r
- unsigned char col[4];\r
- unsigned int lcol;\r
- } c;\r
-} OGLVertex;\r
-\r
-typedef union EXShortTag\r
-{\r
- unsigned char c[2];\r
- unsigned short s;\r
-} EXShort;\r
-\r
-typedef union EXLongTag\r
-{\r
- unsigned char c[4];\r
- unsigned int l;\r
- EXShort s[2];\r
-} EXLong;\r
-\r
-#ifndef _IN_CFG\r
-\r
-extern char *pConfigFile;\r
-\r
-#endif\r
-\r
-#ifndef _IN_DRAW\r
-\r
-extern int iResX;\r
-extern int iResY;\r
-extern BOOL bKeepRatio;\r
-extern RECT rRatioRect;\r
-extern BOOL bSnapShot;\r
-extern BOOL bSmallAlpha;\r
-extern BOOL bOpaquePass;\r
-extern BOOL bAdvancedBlend;\r
-extern BOOL bUseLines;\r
-extern int iTexQuality;\r
-extern BOOL bUseAntiAlias;\r
-extern BOOL bGLExt;\r
-extern BOOL bGLFastMovie;\r
-extern BOOL bGLSoft;\r
-extern BOOL bGLBlend;\r
-\r
-extern PFNGLBLENDEQU glBlendEquationEXTEx;\r
-extern PFNGLCOLORTABLEEXT glColorTableEXTEx;\r
-\r
-extern unsigned char gl_ux[8];\r
-extern unsigned char gl_vy[8];\r
-extern OGLVertex vertex[4];\r
-extern short sprtY,sprtX,sprtH,sprtW;\r
-extern BOOL bIsFirstFrame;\r
-extern int iWinSize;\r
-extern int iZBufferDepth;\r
-extern GLbitfield uiBufferBits;\r
-extern int iUseMask;\r
-extern int iSetMask;\r
-extern int iDepthFunc;\r
-extern BOOL bCheckMask;\r
-extern unsigned short sSetMask;\r
-extern uint32_t lSetMask;\r
-extern int iShowFPS;\r
-extern BOOL bSetClip;\r
-extern int iForceVSync;\r
-extern int iUseExts;\r
-extern int iUsePalTextures;\r
-extern GLuint gTexScanName;\r
-\r
-#endif\r
-\r
-#ifndef _IN_SOFT\r
-\r
-extern int GlobalTextAddrX,GlobalTextAddrY,GlobalTextTP;\r
-extern int GlobalTextREST,GlobalTextABR,GlobalTextPAGE;\r
-extern short ly0,lx0,ly1,lx1,ly2,lx2,ly3,lx3;\r
-extern short g_m1;\r
-extern short g_m2;\r
-extern short g_m3;\r
-extern short DrawSemiTrans;\r
-\r
-#endif\r
-\r
-#ifndef _IN_PRIMDRAW\r
-\r
-extern BOOL bNeedUploadTest;\r
-extern BOOL bNeedUploadAfter;\r
-extern BOOL bTexEnabled;\r
-extern BOOL bBlendEnable;\r
-extern BOOL bDrawDither;\r
-extern int iFilterType; \r
-extern BOOL bFullVRam;\r
-extern BOOL bUseMultiPass;\r
-extern int iOffscreenDrawing;\r
-extern BOOL bOldSmoothShaded;\r
-extern BOOL bUsingTWin;\r
-extern BOOL bUsingMovie;\r
-extern PSXRect_t xrMovieArea;\r
-extern PSXRect_t xrUploadArea;\r
-extern PSXRect_t xrUploadAreaIL;\r
-extern PSXRect_t xrUploadAreaRGB24;\r
-extern GLuint gTexName;\r
-extern BOOL bDrawNonShaded;\r
-extern BOOL bDrawMultiPass;\r
-extern GLubyte ubGloColAlpha;\r
-extern GLubyte ubGloAlpha;\r
-extern short sSprite_ux2;\r
-extern short sSprite_vy2;\r
-extern BOOL bRenderFrontBuffer;\r
-extern uint32_t ulOLDCOL;\r
-extern uint32_t ulClutID;\r
-extern void (*primTableJ[256])(unsigned char *);\r
-extern void (*primTableSkip[256])(unsigned char *);\r
-extern unsigned short usMirror;\r
-extern uint32_t dwCfgFixes;\r
-extern uint32_t dwActFixes;\r
-extern uint32_t dwEmuFixes;\r
-extern BOOL bUseFixes;\r
-extern int iSpriteTex;\r
-extern int iDrawnSomething;\r
-\r
-extern int drawX;\r
-extern int drawY;\r
-extern int drawW;\r
-extern int drawH;\r
-extern short sxmin;\r
-extern short sxmax;\r
-extern short symin;\r
-extern short symax;\r
-\r
-#endif\r
-\r
-#ifndef _IN_TEXTURE\r
-\r
-extern unsigned char ubOpaqueDraw;\r
-extern GLint giWantedRGBA;\r
-extern GLint giWantedFMT;\r
-extern GLint giWantedTYPE;\r
-extern void (*LoadSubTexFn) (int,int,short,short);\r
-extern int GlobalTexturePage;\r
-extern uint32_t (*TCF[]) (uint32_t);\r
-extern unsigned short (*PTCF[]) (unsigned short);\r
-extern uint32_t (*PalTexturedColourFn) (uint32_t);\r
-extern BOOL bUseFastMdec;\r
-extern BOOL bUse15bitMdec;\r
-extern int iFrameTexType;\r
-extern int iFrameReadType;\r
-extern int iClampType;\r
-extern int iSortTexCnt;\r
-extern BOOL bFakeFrontBuffer; \r
-extern GLuint gTexFrameName;\r
-extern GLuint gTexBlurName;\r
-extern int iVRamSize;\r
-extern int iTexGarbageCollection;\r
-extern int iFTexA;\r
-extern int iFTexB;\r
-extern int iHiResTextures;\r
-extern BOOL bIgnoreNextTile;\r
-\r
-#endif\r
-\r
-#ifndef _IN_GPU\r
-\r
-extern VRAMLoad_t VRAMWrite;\r
-extern VRAMLoad_t VRAMRead;\r
-extern int iDataWriteMode;\r
-extern int iDataReadMode;\r
-extern int iColDepth;\r
-extern BOOL bChangeRes;\r
-extern BOOL bWindowMode;\r
-extern char szDispBuf[];\r
-extern char szGPUKeys[];\r
-extern PSXDisplay_t PSXDisplay;\r
-extern PSXDisplay_t PreviousPSXDisplay;\r
-extern uint32_t ulKeybits;\r
-extern TWin_t TWin;\r
-extern BOOL bDisplayNotSet;\r
-extern int lGPUstatusRet;\r
-extern short imageX0,imageX1;\r
-extern short imageY0,imageY1;\r
-extern int lClearOnSwap,lClearOnSwapColor;\r
-extern unsigned char *psxVub;\r
-extern signed char *psxVsb;\r
-extern unsigned short *psxVuw;\r
-extern signed short *psxVsw;\r
-extern uint32_t *psxVul;\r
-extern signed int *psxVsl;\r
-extern GLfloat gl_z;\r
-extern BOOL bNeedRGB24Update;\r
-extern BOOL bChangeWinMode;\r
-extern GLuint uiScanLine;\r
-extern int iUseScanLines;\r
-extern int lSelectedSlot;\r
-extern int iScanBlend;\r
-extern BOOL bInitCap;\r
-extern int iBlurBuffer;\r
-extern int iLastRGB24;\r
-extern int iRenderFVR;\r
-extern int iNoScreenSaver;\r
-extern uint32_t ulGPUInfoVals[];\r
-extern BOOL bNeedInterlaceUpdate;\r
-extern BOOL bNeedWriteUpload;\r
-extern BOOL bSkipNextFrame;\r
-\r
-extern int bFullScreen;\r
-\r
-#endif\r
-\r
-#ifndef _IN_MENU\r
-\r
-extern uint32_t dwCoreFlags;\r
-extern GLuint gTexPicName;\r
-extern PSXPoint_t ptCursorPoint[];\r
-extern unsigned short usCursorActive;\r
-\r
-#endif\r
-\r
-#ifndef _IN_FPS\r
-\r
-extern BOOL bUseFrameLimit;\r
-extern BOOL bUseFrameSkip;\r
-extern float fFrameRate;\r
-extern float fFrameRateHz;\r
-extern int iFrameLimit;\r
-extern float fps_skip;\r
-extern float fps_cur;\r
-\r
-#endif\r
-\r
-#ifndef _IN_KEY\r
-\r
-extern uint32_t ulKeybits;\r
-\r
-#endif\r
-\r
-#ifndef _IN_ZN\r
-\r
-extern uint32_t dwGPUVersion;\r
-extern int iGPUHeight;\r
-extern int iGPUHeightMask;\r
-extern int GlobalTextIL;\r
-extern int iTileCheat;\r
-\r
-#endif\r