Commit | Line | Data |
---|---|---|
ef79bbde P |
1 | #ifndef _PSEMU_PLUGIN_DEFS_H |
2 | #define _PSEMU_PLUGIN_DEFS_H | |
3 | ||
4 | #ifdef __cplusplus | |
5 | extern "C" { | |
6 | #endif | |
7 | ||
8 | // header version | |
9 | #define _PPDK_HEADER_VERSION 3 | |
10 | ||
11 | #define PLUGIN_VERSION 1 | |
12 | ||
13 | // plugin type returned by PSEgetLibType (types can be merged if plugin is multi type!) | |
14 | #define PSE_LT_CDR 1 | |
15 | #define PSE_LT_GPU 2 | |
16 | #define PSE_LT_SPU 4 | |
17 | #define PSE_LT_PAD 8 | |
18 | #define PSE_LT_NET 16 | |
19 | ||
20 | // DLL function return codes | |
21 | #define PSE_ERR_SUCCESS 0 // every function in DLL if completed sucessfully should return this value | |
22 | #define PSE_ERR_FATAL -1 // undefined error but fatal one, that kills all functionality | |
23 | ||
24 | // XXX_Init return values | |
25 | // Those return values apply to all libraries | |
26 | // currently obsolete - preserved for compatibilty | |
27 | ||
28 | #define PSE_INIT_ERR_SUCCESS 0 // initialization went OK | |
29 | #define PSE_INIT_ERR_NOTCONFIGURED -2 // this driver is not configured | |
30 | #define PSE_INIT_ERR_NOHARDWARE -3 // this driver can not operate properly on this hardware or hardware is not detected | |
31 | ||
32 | /* GPU PlugIn */ | |
33 | ||
34 | // GPU_Test return values | |
35 | ||
36 | // sucess, everything configured, and went OK. | |
37 | #define PSE_GPU_ERR_SUCCESS 0 | |
38 | ||
39 | // ERRORS | |
40 | // this error might be returned as critical error but none of below | |
41 | #define PSE_GPU_ERR -20 | |
42 | ||
43 | ||
44 | // this driver is not configured | |
45 | #define PSE_GPU_ERR_NOTCONFIGURED PSE_GPU_ERR - 1 | |
46 | // this driver failed Init | |
47 | #define PSE_GPU_ERR_INIT PSE_GPU_ERR - 2 | |
48 | ||
49 | // WARNINGS | |
50 | // this warning might be returned as undefined warning but allowing driver to continue | |
51 | #define PSE_GPU_WARN 20 | |
52 | ||
53 | // GPU_Query - will be implemented soon | |
54 | ||
55 | typedef struct | |
56 | { | |
4c08b9e7 | 57 | unsigned int flags; |
58 | unsigned int status; | |
ef79bbde P |
59 | void* window; |
60 | unsigned char reserved[100]; | |
61 | } gpuQueryS; | |
62 | ||
63 | // gpuQueryS.flags | |
64 | // if driver can operate in both modes it must support GPU_changeMode(); | |
65 | #define PSE_GPU_FLAGS_FULLSCREEN 1 // this driver can operate in fullscreen mode | |
66 | #define PSE_GPU_FLAGS_WINDOWED 2 // this driver can operate in windowed mode | |
67 | ||
68 | // gpuQueryS.status | |
69 | #define PSE_GPU_STATUS_WINDOWWRONG 1 // this driver cannot operate in this windowed mode | |
70 | ||
71 | // GPU_Query End - will be implemented in v2 | |
72 | ||
73 | ||
74 | /* CDR PlugIn */ | |
75 | ||
76 | // CDR_Test return values | |
77 | ||
78 | // sucess, everything configured, and went OK. | |
79 | #define PSE_CDR_ERR_SUCCESS 0 | |
80 | ||
81 | // general failure (error undefined) | |
82 | #define PSE_CDR_ERR_FAILURE -1 | |
83 | ||
84 | // ERRORS | |
85 | #define PSE_CDR_ERR -40 | |
86 | // this driver is not configured | |
87 | #define PSE_CDR_ERR_NOTCONFIGURED PSE_CDR_ERR - 0 | |
88 | // if this driver is unable to read data from medium | |
89 | #define PSE_CDR_ERR_NOREAD PSE_CDR_ERR - 1 | |
90 | ||
91 | // WARNINGS | |
92 | #define PSE_CDR_WARN 40 | |
93 | // if this driver emulates lame mode ie. can read only 2048 tracks and sector header is emulated | |
94 | // this might happen to CDROMS that do not support RAW mode reading - surelly it will kill many games | |
95 | #define PSE_CDR_WARN_LAMECD PSE_CDR_WARN + 0 | |
96 | ||
97 | ||
98 | ||
99 | ||
100 | /* SPU PlugIn */ | |
101 | ||
102 | // some info retricted (now!) | |
103 | ||
104 | // sucess, everything configured, and went OK. | |
105 | #define PSE_SPU_ERR_SUCCESS 0 | |
106 | ||
107 | // ERRORS | |
108 | // this error might be returned as critical error but none of below | |
109 | #define PSE_SPU_ERR -60 | |
110 | ||
111 | // this driver is not configured | |
112 | #define PSE_SPU_ERR_NOTCONFIGURED PSE_SPU_ERR - 1 | |
113 | // this driver failed Init | |
114 | #define PSE_SPU_ERR_INIT PSE_SPU_ERR - 2 | |
115 | ||
116 | ||
117 | // WARNINGS | |
118 | // this warning might be returned as undefined warning but allowing driver to continue | |
119 | #define PSE_SPU_WARN 60 | |
120 | ||
121 | ||
122 | ||
123 | ||
124 | /* PAD PlugIn */ | |
125 | ||
126 | /* | |
127 | ||
128 | functions that must be exported from PAD Plugin | |
129 | ||
130 | long PADinit(long flags); // called only once when PSEmu Starts | |
131 | void PADshutdown(void); // called when PSEmu exits | |
132 | long PADopen(PadInitS *); // called when PSEmu is running program | |
133 | long PADclose(void); | |
134 | long PADconfigure(void); | |
135 | void PADabout(void); | |
136 | long PADtest(void); // called from Configure Dialog and after PADopen(); | |
137 | long PADquery(void); | |
138 | ||
139 | unsigned char PADstartPoll(int); | |
140 | unsigned char PADpoll(unsigned char); | |
141 | ||
142 | */ | |
143 | ||
144 | // PADquery responses (notice - values ORed) | |
145 | // PSEmu will use them also in PADinit to tell Plugin which Ports will use | |
146 | // notice that PSEmu will call PADinit and PADopen only once when they are from | |
147 | // same plugin | |
148 | ||
149 | // might be used in port 1 | |
150 | #define PSE_PAD_USE_PORT1 1 | |
151 | // might be used in port 2 | |
152 | #define PSE_PAD_USE_PORT2 2 | |
153 | ||
154 | ||
155 | ||
156 | // MOUSE SCPH-1030 | |
157 | #define PSE_PAD_TYPE_MOUSE 1 | |
158 | // NEGCON - 16 button analog controller SLPH-00001 | |
159 | #define PSE_PAD_TYPE_NEGCON 2 | |
160 | // GUN CONTROLLER - gun controller SLPH-00014 from Konami | |
161 | #define PSE_PAD_TYPE_GUN 3 | |
162 | // STANDARD PAD SCPH-1080, SCPH-1150 | |
163 | #define PSE_PAD_TYPE_STANDARD 4 | |
164 | // ANALOG JOYSTICK SCPH-1110 | |
165 | #define PSE_PAD_TYPE_ANALOGJOY 5 | |
166 | // GUNCON - gun controller SLPH-00034 from Namco | |
167 | #define PSE_PAD_TYPE_GUNCON 6 | |
168 | // ANALOG CONTROLLER SCPH-1150 | |
169 | #define PSE_PAD_TYPE_ANALOGPAD 7 | |
170 | ||
171 | ||
172 | // sucess, everything configured, and went OK. | |
173 | #define PSE_PAD_ERR_SUCCESS 0 | |
174 | // general plugin failure (undefined error) | |
175 | #define PSE_PAD_ERR_FAILURE -1 | |
176 | ||
177 | ||
178 | // ERRORS | |
179 | // this error might be returned as critical error but none of below | |
180 | #define PSE_PAD_ERR -80 | |
181 | // this driver is not configured | |
182 | #define PSE_PAD_ERR_NOTCONFIGURED PSE_PAD_ERR - 1 | |
183 | // this driver failed Init | |
184 | #define PSE_PAD_ERR_INIT PSE_PAD_ERR - 2 | |
185 | ||
186 | ||
187 | // WARNINGS | |
188 | // this warning might be returned as undefined warning but allowing driver to continue | |
189 | #define PSE_PAD_WARN 80 | |
190 | ||
191 | ||
192 | typedef struct | |
193 | { | |
194 | // controler type - fill it withe predefined values above | |
195 | unsigned char controllerType; | |
196 | ||
197 | // status of buttons - every controller fills this field | |
198 | unsigned short buttonStatus; | |
199 | ||
200 | // for analog pad fill those next 4 bytes | |
201 | // values are analog in range 0-255 where 127 is center position | |
202 | unsigned char rightJoyX, rightJoyY, leftJoyX, leftJoyY; | |
203 | ||
204 | // for mouse fill those next 2 bytes | |
205 | // values are in range -128 - 127 | |
206 | unsigned char moveX, moveY; | |
207 | ||
208 | unsigned char reserved[91]; | |
209 | ||
210 | } PadDataS; | |
211 | ||
212 | /* NET PlugIn v2 */ | |
213 | /* Added by linuzappz@pcsx.net */ | |
214 | ||
215 | /* Modes bits for NETsendData/NETrecvData */ | |
216 | #define PSE_NET_BLOCKING 0x00000000 | |
217 | #define PSE_NET_NONBLOCKING 0x00000001 | |
218 | ||
219 | /* note: unsupported fields should be zeroed. | |
220 | ||
221 | typedef struct { | |
222 | char EmuName[32]; | |
223 | char CdromID[9]; // ie. 'SCPH12345', no \0 trailing character | |
224 | char CdromLabel[11]; | |
225 | void *psxMem; | |
226 | GPUshowScreenPic GPU_showScreenPic; | |
227 | GPUdisplayText GPU_displayText; | |
228 | PADsetSensitive PAD_setSensitive; | |
229 | char GPUpath[256]; | |
230 | char SPUpath[256]; | |
231 | char CDRpath[256]; | |
232 | char MCD1path[256]; | |
233 | char MCD2path[256]; | |
234 | char BIOSpath[256]; // 'HLE' for internal bios | |
235 | char Unused[1024]; | |
236 | } netInfo; | |
237 | ||
238 | */ | |
239 | ||
240 | /* | |
241 | basic funcs: | |
242 | ||
243 | long NETopen(HWND hWnd) | |
244 | opens the connection. | |
245 | shall return 0 on success, else -1. | |
246 | -1 is also returned if the user selects offline mode. | |
247 | ||
248 | long NETclose() | |
249 | closes the connection. | |
250 | shall return 0 on success, else -1. | |
251 | ||
252 | void NETpause() | |
253 | this is called when the user paused the emulator. | |
254 | ||
255 | void NETresume() | |
256 | this is called when the user resumed the emulator. | |
257 | ||
258 | long NETqueryPlayer() | |
259 | returns player number | |
260 | ||
261 | long NETsendPadData(void *pData, int Size) | |
262 | this should be called for the first pad only on each side. | |
263 | ||
264 | long NETrecvPadData(void *pData, int Pad) | |
265 | call this for Pad 1/2 to get the data sent by the above func. | |
266 | ||
267 | extended funcs: | |
268 | ||
269 | long NETsendData(void *pData, int Size, int Mode) | |
270 | sends Size bytes from pData to the other side. | |
271 | ||
272 | long NETrecvData(void *pData, int Size, int Mode) | |
273 | receives Size bytes from pData to the other side. | |
274 | ||
275 | void NETsetInfo(netInfo *info); | |
276 | sets the netInfo struct. | |
277 | ||
278 | void NETkeypressed(int key) (linux only) | |
279 | key is a XK_?? (X11) keycode. | |
280 | */ | |
281 | ||
282 | #ifdef __cplusplus | |
283 | } | |
284 | #endif | |
285 | #endif // _PSEMU_PLUGIN_DEFS_H |