Commit | Line | Data |
---|---|---|
ef79bbde P |
1 | /***************************************************************************\r |
2 | external.h - description\r | |
3 | -------------------\r | |
4 | begin : Sun Mar 08 2009\r | |
5 | copyright : (C) 1999-2009 by Pete Bernert\r | |
6 | web : www.pbernert.com \r | |
7 | ***************************************************************************/\r | |
8 | \r | |
9 | /***************************************************************************\r | |
10 | * *\r | |
11 | * This program is free software; you can redistribute it and/or modify *\r | |
12 | * it under the terms of the GNU General Public License as published by *\r | |
13 | * the Free Software Foundation; either version 2 of the License, or *\r | |
14 | * (at your option) any later version. See also the license.txt file for *\r | |
15 | * additional informations. *\r | |
16 | * *\r | |
17 | ***************************************************************************/\r | |
18 | \r | |
19 | #define MIRROR_TEST 1\r | |
20 | #define SCISSOR_TEST 1\r | |
21 | \r | |
22 | // for own sow/tow scaling\r | |
23 | #define OWNSCALE 1\r | |
24 | \r | |
25 | #define CLUTUSED 0x80000000\r | |
26 | \r | |
27 | #define SETCOL(x) if(x.c.lcol!=ulOLDCOL) {ulOLDCOL=x.c.lcol;glColor4ubv(x.c.col);} \r | |
28 | #define SETPCOL(x) if(x->c.lcol!=ulOLDCOL) {ulOLDCOL=x->c.lcol;glColor4ubv(x->c.col);}\r | |
29 | \r | |
30 | #define GL_TO_EDGE_CLAMP 0x812F\r | |
31 | \r | |
32 | #define INFO_TW 0\r | |
33 | #define INFO_DRAWSTART 1\r | |
34 | #define INFO_DRAWEND 2\r | |
35 | #define INFO_DRAWOFF 3\r | |
36 | \r | |
37 | #define SIGNSHIFT 21\r | |
38 | #define CHKMAX_X 1024\r | |
39 | #define CHKMAX_Y 512\r | |
40 | \r | |
41 | // GPU STATUS REGISTER bit values (c) Lewpy\r | |
42 | \r | |
43 | #define DR_NORMAL 0\r | |
44 | #define DR_VRAMTRANSFER 1\r | |
45 | \r | |
46 | #define GPUSTATUS_ODDLINES 0x80000000\r | |
47 | #define GPUSTATUS_DMABITS 0x60000000 // Two bits\r | |
48 | #define GPUSTATUS_READYFORCOMMANDS 0x10000000\r | |
49 | #define GPUSTATUS_READYFORVRAM 0x08000000\r | |
50 | #define GPUSTATUS_IDLE 0x04000000\r | |
51 | #define GPUSTATUS_DISPLAYDISABLED 0x00800000\r | |
52 | #define GPUSTATUS_INTERLACED 0x00400000\r | |
53 | #define GPUSTATUS_RGB24 0x00200000\r | |
54 | #define GPUSTATUS_PAL 0x00100000\r | |
55 | #define GPUSTATUS_DOUBLEHEIGHT 0x00080000\r | |
56 | #define GPUSTATUS_WIDTHBITS 0x00070000 // Three bits\r | |
57 | #define GPUSTATUS_MASKENABLED 0x00001000\r | |
58 | #define GPUSTATUS_MASKDRAWN 0x00000800\r | |
59 | #define GPUSTATUS_DRAWINGALLOWED 0x00000400\r | |
60 | #define GPUSTATUS_DITHER 0x00000200\r | |
61 | \r | |
62 | #define STATUSREG lGPUstatusRet\r | |
63 | \r | |
64 | #define GPUIsBusy (STATUSREG &= ~GPUSTATUS_IDLE)\r | |
65 | #define GPUIsIdle (STATUSREG |= GPUSTATUS_IDLE)\r | |
66 | \r | |
67 | #define GPUIsNotReadyForCommands (STATUSREG &= ~GPUSTATUS_READYFORCOMMANDS)\r | |
68 | #define GPUIsReadyForCommands (STATUSREG |= GPUSTATUS_READYFORCOMMANDS)\r | |
69 | \r | |
70 | #define KEY_RESETTEXSTORE 1\r | |
71 | #define KEY_SHOWFPS 2\r | |
72 | #define KEY_RESETOPAQUE 4\r | |
73 | #define KEY_RESETDITHER 8\r | |
74 | #define KEY_RESETFILTER 16\r | |
75 | #define KEY_RESETADVBLEND 32\r | |
76 | #define KEY_BLACKWHITE 64\r | |
77 | #define KEY_TOGGLEFBTEXTURE 128\r | |
78 | #define KEY_STEPDOWN 256\r | |
79 | #define KEY_TOGGLEFBREAD 512\r | |
80 | \r | |
81 | #define FALSE 0\r | |
82 | #define TRUE 1\r | |
83 | #define BOOL unsigned short\r | |
84 | #define bool unsigned short\r | |
85 | #define LOWORD(l) ((unsigned short)(l))\r | |
86 | #define HIWORD(l) ((unsigned short)(((uint32_t)(l) >> 16) & 0xFFFF))\r | |
87 | #define max(a,b) (((a) > (b)) ? (a) : (b))\r | |
88 | #define min(a,b) (((a) < (b)) ? (a) : (b))\r | |
89 | #define DWORD uint32_t\r | |
90 | \r | |
91 | typedef struct RECTTAG\r | |
92 | {\r | |
93 | int left;\r | |
94 | int top;\r | |
95 | int right;\r | |
96 | int bottom;\r | |
97 | }RECT;\r | |
98 | \r | |
99 | typedef struct VRAMLOADTAG\r | |
100 | {\r | |
101 | short x;\r | |
102 | short y;\r | |
103 | short Width;\r | |
104 | short Height;\r | |
105 | short RowsRemaining;\r | |
106 | short ColsRemaining;\r | |
107 | unsigned short *ImagePtr;\r | |
108 | } VRAMLoad_t;\r | |
109 | \r | |
110 | typedef struct PSXPOINTTAG\r | |
111 | {\r | |
112 | int x;\r | |
113 | int y;\r | |
114 | } PSXPoint_t;\r | |
115 | \r | |
116 | typedef struct PSXSPOINTTAG\r | |
117 | {\r | |
118 | short x;\r | |
119 | short y;\r | |
120 | } PSXSPoint_t;\r | |
121 | \r | |
122 | typedef struct PSXRECTTAG\r | |
123 | {\r | |
124 | short x0;\r | |
125 | short x1;\r | |
126 | short y0;\r | |
127 | short y1;\r | |
128 | } PSXRect_t;\r | |
129 | \r | |
130 | typedef struct TWINTAG\r | |
131 | {\r | |
132 | PSXRect_t Position;\r | |
133 | PSXRect_t OPosition;\r | |
134 | PSXPoint_t TextureSize;\r | |
135 | float UScaleFactor;\r | |
136 | float VScaleFactor;\r | |
137 | } TWin_t;\r | |
138 | \r | |
139 | typedef struct PSXDISPLAYTAG\r | |
140 | {\r | |
141 | PSXPoint_t DisplayModeNew;\r | |
142 | PSXPoint_t DisplayMode;\r | |
143 | PSXPoint_t DisplayPosition;\r | |
144 | PSXPoint_t DisplayEnd;\r | |
145 | \r | |
146 | int Double;\r | |
147 | int Height;\r | |
148 | int PAL;\r | |
149 | int InterlacedNew;\r | |
150 | int Interlaced;\r | |
151 | int InterlacedTest;\r | |
152 | int RGB24New;\r | |
153 | int RGB24;\r | |
154 | PSXSPoint_t DrawOffset;\r | |
155 | PSXRect_t DrawArea;\r | |
156 | PSXPoint_t GDrawOffset;\r | |
157 | PSXPoint_t CumulOffset;\r | |
158 | int Disabled;\r | |
159 | PSXRect_t Range;\r | |
160 | } PSXDisplay_t;\r | |
161 | \r | |
162 | typedef struct OGLVertexTag \r | |
163 | {\r | |
164 | GLfloat x;\r | |
165 | GLfloat y;\r | |
166 | GLfloat z;\r | |
167 | \r | |
168 | GLfloat sow;\r | |
169 | GLfloat tow;\r | |
170 | \r | |
171 | union COLTAG\r | |
172 | {\r | |
173 | unsigned char col[4];\r | |
174 | unsigned int lcol;\r | |
175 | } c;\r | |
176 | } OGLVertex;\r | |
177 | \r | |
178 | typedef union EXShortTag\r | |
179 | {\r | |
180 | unsigned char c[2];\r | |
181 | unsigned short s;\r | |
182 | } EXShort;\r | |
183 | \r | |
184 | typedef union EXLongTag\r | |
185 | {\r | |
186 | unsigned char c[4];\r | |
187 | unsigned int l;\r | |
188 | EXShort s[2];\r | |
189 | } EXLong;\r | |
190 | \r | |
191 | #ifndef _IN_CFG\r | |
192 | \r | |
193 | extern char *pConfigFile;\r | |
194 | \r | |
195 | #endif\r | |
196 | \r | |
197 | #ifndef _IN_DRAW\r | |
198 | \r | |
199 | extern int iResX;\r | |
200 | extern int iResY;\r | |
201 | extern BOOL bKeepRatio;\r | |
202 | extern RECT rRatioRect;\r | |
203 | extern BOOL bSnapShot;\r | |
204 | extern BOOL bSmallAlpha;\r | |
205 | extern BOOL bOpaquePass;\r | |
206 | extern BOOL bAdvancedBlend;\r | |
207 | extern BOOL bUseLines;\r | |
208 | extern int iTexQuality;\r | |
209 | extern BOOL bUseAntiAlias;\r | |
210 | extern BOOL bGLExt;\r | |
211 | extern BOOL bGLFastMovie;\r | |
212 | extern BOOL bGLSoft;\r | |
213 | extern BOOL bGLBlend;\r | |
214 | \r | |
215 | extern PFNGLBLENDEQU glBlendEquationEXTEx;\r | |
216 | extern PFNGLCOLORTABLEEXT glColorTableEXTEx;\r | |
217 | \r | |
218 | extern unsigned char gl_ux[8];\r | |
219 | extern unsigned char gl_vy[8];\r | |
220 | extern OGLVertex vertex[4];\r | |
221 | extern short sprtY,sprtX,sprtH,sprtW;\r | |
222 | extern BOOL bIsFirstFrame;\r | |
223 | extern int iWinSize;\r | |
224 | extern int iZBufferDepth;\r | |
225 | extern GLbitfield uiBufferBits;\r | |
226 | extern int iUseMask;\r | |
227 | extern int iSetMask;\r | |
228 | extern int iDepthFunc;\r | |
229 | extern BOOL bCheckMask;\r | |
230 | extern unsigned short sSetMask;\r | |
231 | extern uint32_t lSetMask;\r | |
232 | extern int iShowFPS;\r | |
233 | extern BOOL bSetClip;\r | |
234 | extern int iForceVSync;\r | |
235 | extern int iUseExts;\r | |
236 | extern int iUsePalTextures;\r | |
237 | extern GLuint gTexScanName;\r | |
238 | \r | |
239 | #endif\r | |
240 | \r | |
241 | #ifndef _IN_SOFT\r | |
242 | \r | |
243 | extern int GlobalTextAddrX,GlobalTextAddrY,GlobalTextTP;\r | |
244 | extern int GlobalTextREST,GlobalTextABR,GlobalTextPAGE;\r | |
245 | extern short ly0,lx0,ly1,lx1,ly2,lx2,ly3,lx3;\r | |
246 | extern short g_m1;\r | |
247 | extern short g_m2;\r | |
248 | extern short g_m3;\r | |
249 | extern short DrawSemiTrans;\r | |
250 | \r | |
251 | #endif\r | |
252 | \r | |
253 | #ifndef _IN_PRIMDRAW\r | |
254 | \r | |
255 | extern BOOL bNeedUploadTest;\r | |
256 | extern BOOL bNeedUploadAfter;\r | |
257 | extern BOOL bTexEnabled;\r | |
258 | extern BOOL bBlendEnable;\r | |
259 | extern BOOL bDrawDither;\r | |
260 | extern int iFilterType; \r | |
261 | extern BOOL bFullVRam;\r | |
262 | extern BOOL bUseMultiPass;\r | |
263 | extern int iOffscreenDrawing;\r | |
264 | extern BOOL bOldSmoothShaded;\r | |
265 | extern BOOL bUsingTWin;\r | |
266 | extern BOOL bUsingMovie;\r | |
267 | extern PSXRect_t xrMovieArea;\r | |
268 | extern PSXRect_t xrUploadArea;\r | |
269 | extern PSXRect_t xrUploadAreaIL;\r | |
270 | extern PSXRect_t xrUploadAreaRGB24;\r | |
271 | extern GLuint gTexName;\r | |
272 | extern BOOL bDrawNonShaded;\r | |
273 | extern BOOL bDrawMultiPass;\r | |
274 | extern GLubyte ubGloColAlpha;\r | |
275 | extern GLubyte ubGloAlpha;\r | |
276 | extern short sSprite_ux2;\r | |
277 | extern short sSprite_vy2;\r | |
278 | extern BOOL bRenderFrontBuffer;\r | |
279 | extern uint32_t ulOLDCOL;\r | |
280 | extern uint32_t ulClutID;\r | |
281 | extern void (*primTableJ[256])(unsigned char *);\r | |
282 | extern void (*primTableSkip[256])(unsigned char *);\r | |
283 | extern unsigned short usMirror;\r | |
284 | extern uint32_t dwCfgFixes;\r | |
285 | extern uint32_t dwActFixes;\r | |
286 | extern uint32_t dwEmuFixes;\r | |
287 | extern BOOL bUseFixes;\r | |
288 | extern int iSpriteTex;\r | |
289 | extern int iDrawnSomething;\r | |
290 | \r | |
291 | extern int drawX;\r | |
292 | extern int drawY;\r | |
293 | extern int drawW;\r | |
294 | extern int drawH;\r | |
295 | extern short sxmin;\r | |
296 | extern short sxmax;\r | |
297 | extern short symin;\r | |
298 | extern short symax;\r | |
299 | \r | |
300 | #endif\r | |
301 | \r | |
302 | #ifndef _IN_TEXTURE\r | |
303 | \r | |
304 | extern unsigned char ubOpaqueDraw;\r | |
305 | extern GLint giWantedRGBA;\r | |
306 | extern GLint giWantedFMT;\r | |
307 | extern GLint giWantedTYPE;\r | |
308 | extern void (*LoadSubTexFn) (int,int,short,short);\r | |
309 | extern int GlobalTexturePage;\r | |
310 | extern uint32_t (*TCF[]) (uint32_t);\r | |
311 | extern unsigned short (*PTCF[]) (unsigned short);\r | |
312 | extern uint32_t (*PalTexturedColourFn) (uint32_t);\r | |
313 | extern BOOL bUseFastMdec;\r | |
314 | extern BOOL bUse15bitMdec;\r | |
315 | extern int iFrameTexType;\r | |
316 | extern int iFrameReadType;\r | |
317 | extern int iClampType;\r | |
318 | extern int iSortTexCnt;\r | |
319 | extern BOOL bFakeFrontBuffer; \r | |
320 | extern GLuint gTexFrameName;\r | |
321 | extern GLuint gTexBlurName;\r | |
322 | extern int iVRamSize;\r | |
323 | extern int iTexGarbageCollection;\r | |
324 | extern int iFTexA;\r | |
325 | extern int iFTexB;\r | |
326 | extern int iHiResTextures;\r | |
327 | extern BOOL bIgnoreNextTile;\r | |
328 | \r | |
329 | #endif\r | |
330 | \r | |
331 | #ifndef _IN_GPU\r | |
332 | \r | |
333 | extern VRAMLoad_t VRAMWrite;\r | |
334 | extern VRAMLoad_t VRAMRead;\r | |
335 | extern int iDataWriteMode;\r | |
336 | extern int iDataReadMode;\r | |
337 | extern int iColDepth;\r | |
338 | extern BOOL bChangeRes;\r | |
339 | extern BOOL bWindowMode;\r | |
340 | extern char szDispBuf[];\r | |
341 | extern char szGPUKeys[];\r | |
342 | extern PSXDisplay_t PSXDisplay;\r | |
343 | extern PSXDisplay_t PreviousPSXDisplay;\r | |
344 | extern uint32_t ulKeybits;\r | |
345 | extern TWin_t TWin;\r | |
346 | extern BOOL bDisplayNotSet;\r | |
347 | extern int lGPUstatusRet;\r | |
348 | extern short imageX0,imageX1;\r | |
349 | extern short imageY0,imageY1;\r | |
350 | extern int lClearOnSwap,lClearOnSwapColor;\r | |
351 | extern unsigned char *psxVub;\r | |
352 | extern signed char *psxVsb;\r | |
353 | extern unsigned short *psxVuw;\r | |
354 | extern signed short *psxVsw;\r | |
355 | extern uint32_t *psxVul;\r | |
356 | extern signed int *psxVsl;\r | |
357 | extern GLfloat gl_z;\r | |
358 | extern BOOL bNeedRGB24Update;\r | |
359 | extern BOOL bChangeWinMode;\r | |
360 | extern GLuint uiScanLine;\r | |
361 | extern int iUseScanLines;\r | |
362 | extern int lSelectedSlot;\r | |
363 | extern int iScanBlend;\r | |
364 | extern BOOL bInitCap;\r | |
365 | extern int iBlurBuffer;\r | |
366 | extern int iLastRGB24;\r | |
367 | extern int iRenderFVR;\r | |
368 | extern int iNoScreenSaver;\r | |
369 | extern uint32_t ulGPUInfoVals[];\r | |
370 | extern BOOL bNeedInterlaceUpdate;\r | |
371 | extern BOOL bNeedWriteUpload;\r | |
372 | extern BOOL bSkipNextFrame;\r | |
373 | \r | |
374 | extern int bFullScreen;\r | |
375 | \r | |
376 | #endif\r | |
377 | \r | |
378 | #ifndef _IN_MENU\r | |
379 | \r | |
380 | extern uint32_t dwCoreFlags;\r | |
381 | extern GLuint gTexPicName;\r | |
382 | extern PSXPoint_t ptCursorPoint[];\r | |
383 | extern unsigned short usCursorActive;\r | |
384 | \r | |
385 | #endif\r | |
386 | \r | |
387 | #ifndef _IN_FPS\r | |
388 | \r | |
389 | extern BOOL bUseFrameLimit;\r | |
390 | extern BOOL bUseFrameSkip;\r | |
391 | extern float fFrameRate;\r | |
392 | extern float fFrameRateHz;\r | |
393 | extern int iFrameLimit;\r | |
394 | extern float fps_skip;\r | |
395 | extern float fps_cur;\r | |
396 | \r | |
397 | #endif\r | |
398 | \r | |
399 | #ifndef _IN_KEY\r | |
400 | \r | |
401 | extern uint32_t ulKeybits;\r | |
402 | \r | |
403 | #endif\r | |
404 | \r | |
405 | #ifndef _IN_ZN\r | |
406 | \r | |
407 | extern uint32_t dwGPUVersion;\r | |
408 | extern int iGPUHeight;\r | |
409 | extern int iGPUHeightMask;\r | |
410 | extern int GlobalTextIL;\r | |
411 | extern int iTileCheat;\r | |
412 | \r | |
413 | #endif\r |