1 /***************************************************************************
2 externals.h - description
4 begin : Sun Oct 28 2001
5 copyright : (C) 2001 by Pete Bernert
6 email : BlackDove@addcom.de
7 ***************************************************************************/
8 /***************************************************************************
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. See also the license.txt file for *
14 * additional informations. *
16 ***************************************************************************/
19 #define INFO_DRAWSTART 1
20 #define INFO_DRAWEND 2
21 #define INFO_DRAWOFF 3
23 #define SHADETEXBIT(x) ((x>>24) & 0x1)
24 #define SEMITRANSBIT(x) ((x>>25) & 0x1)
25 #define PSXRGB(r,g,b) ((g<<10)|(b<<5)|r)
27 #define DATAREGISTERMODES unsigned short
30 #define DR_VRAMTRANSFER 1
33 #define GPUSTATUS_ODDLINES 0x80000000
34 #define GPUSTATUS_DMABITS 0x60000000 // Two bits
35 #define GPUSTATUS_READYFORCOMMANDS 0x10000000
36 #define GPUSTATUS_READYFORVRAM 0x08000000
37 #define GPUSTATUS_IDLE 0x04000000
38 #define GPUSTATUS_DISPLAYDISABLED 0x00800000
39 #define GPUSTATUS_INTERLACED 0x00400000
40 #define GPUSTATUS_RGB24 0x00200000
41 #define GPUSTATUS_PAL 0x00100000
42 #define GPUSTATUS_DOUBLEHEIGHT 0x00080000
43 #define GPUSTATUS_WIDTHBITS 0x00070000 // Three bits
44 #define GPUSTATUS_MASKENABLED 0x00001000
45 #define GPUSTATUS_MASKDRAWN 0x00000800
46 #define GPUSTATUS_DRAWINGALLOWED 0x00000400
47 #define GPUSTATUS_DITHER 0x00000200
49 #define GPUIsBusy (lGPUstatusRet &= ~GPUSTATUS_IDLE)
50 #define GPUIsIdle (lGPUstatusRet |= GPUSTATUS_IDLE)
52 #define GPUIsNotReadyForCommands (lGPUstatusRet &= ~GPUSTATUS_READYFORCOMMANDS)
53 #define GPUIsReadyForCommands (lGPUstatusRet |= GPUSTATUS_READYFORCOMMANDS)
57 #define __inline inline
66 #include <X11/Xutil.h>
67 #include <X11/cursorfont.h>
72 /////////////////////////////////////////////////////////////////////////////
74 typedef struct VRAMLOADTTAG
82 unsigned short *ImagePtr;
85 /////////////////////////////////////////////////////////////////////////////
87 typedef struct PSXPOINTTAG
93 typedef struct PSXSPOINTTAG
99 typedef struct PSXRECTTAG
107 // linux defines for some windows stuff
111 #define BOOL unsigned short
112 #define LOWORD(l) ((unsigned short)(l))
113 #define HIWORD(l) ((unsigned short)(((uint32_t)(l) >> 16) & 0xFFFF))
114 #define max(a,b) (((a) > (b)) ? (a) : (b))
115 #define min(a,b) (((a) < (b)) ? (a) : (b))
116 #define DWORD uint32_t
117 #define __int64 long long int
119 typedef struct RECTTAG
129 /////////////////////////////////////////////////////////////////////////////
131 typedef struct TWINTAG
136 /////////////////////////////////////////////////////////////////////////////
138 typedef struct PSXDISPLAYTAG
140 PSXPoint_t DisplayModeNew;
141 PSXPoint_t DisplayMode;
142 PSXPoint_t DisplayPosition;
143 PSXPoint_t DisplayEnd;
148 int32_t InterlacedNew;
152 PSXSPoint_t DrawOffset;
158 /////////////////////////////////////////////////////////////////////////////
164 extern char * pCaptionText;
168 extern int32_t GlobalTextAddrX,GlobalTextAddrY,GlobalTextTP;
169 extern int32_t GlobalTextREST,GlobalTextABR,GlobalTextPAGE;
170 extern short ly0,lx0,ly1,lx1,ly2,lx2,ly3,lx3;
171 extern long lLowerpart;
172 extern BOOL bIsFirstFrame;
174 extern BOOL bCheckMask;
175 extern unsigned short sSetMask;
176 extern unsigned long lSetMask;
177 extern BOOL bDeviceOK;
181 extern short DrawSemiTrans;
182 extern int iUseGammaVal;
183 extern int iMaintainAspect;
184 extern int iDesktopCol;
185 extern int iUseNoStretchBlt;
188 extern int iDebugMode;
189 extern int iFVDisplay;
190 extern PSXPoint_t ptCursorPoint[];
191 extern unsigned short usCursorActive;
200 extern BOOL bUsingTWin;
202 //extern unsigned long clutid;
203 extern void (*primTableJ[256])(unsigned char *);
204 extern void (*primTableSkip[256])(unsigned char *);
205 extern unsigned short usMirror;
207 extern uint32_t dwCfgFixes;
208 extern uint32_t dwActFixes;
209 extern uint32_t dwEmuFixes;
210 extern int iUseFixes;
211 extern int iUseDither;
212 extern BOOL bDoVSyncUpdate;
213 extern int32_t drawX;
214 extern int32_t drawY;
215 extern int32_t drawW;
216 extern int32_t drawH;
224 extern VRAMLoad_t VRAMWrite;
225 extern VRAMLoad_t VRAMRead;
226 extern DATAREGISTERMODES DataWriteMode;
227 extern DATAREGISTERMODES DataReadMode;
228 extern int iColDepth;
229 extern int iWindowMode;
230 extern char szDispBuf[];
231 extern char szMenuBuf[];
232 extern char szDebugText[];
233 extern short sDispWidths[];
234 extern BOOL bDebugText;
235 //extern unsigned int iMaxDMACommandCounter;
236 //extern unsigned long dwDMAChainStop;
237 extern PSXDisplay_t PSXDisplay;
238 extern PSXDisplay_t PreviousPSXDisplay;
239 extern BOOL bSkipNextFrame;
240 extern long lGPUstatusRet;
241 //extern long drawingLines;
242 extern unsigned char * psxVSecure;
243 extern unsigned char * psxVub;
244 extern signed char * psxVsb;
245 extern unsigned short * psxVuw;
246 extern signed short * psxVsw;
247 extern uint32_t * psxVul;
248 extern int32_t * psxVsl;
249 extern unsigned short * psxVuw_eom;
250 extern BOOL bChangeWinMode;
251 extern long lSelectedSlot;
252 extern BOOL bInitCap;
253 extern DWORD dwLaceCnt;
254 extern uint32_t lGPUInfoVals[];
255 extern uint32_t ulStatusControl[];
263 extern uint32_t dwCoreFlags;
271 extern unsigned long ulKeybits;
279 extern int UseFrameLimit;
280 extern int UseFrameSkip;
281 extern float fFrameRate;
282 extern int iFrameLimit;
283 extern float fFrameRateHz;
284 extern float fps_skip;
285 extern float fps_cur;
299 extern char * pConfigFile;
307 extern uint32_t dwGPUVersion;
308 extern int iGPUHeight;
309 extern int iGPUHeightMask;
310 extern int GlobalTextIL;
311 extern int iTileCheat;