\r
typedef long (CALLBACK *GPUopen)(unsigned long *, char *, char *);\r
typedef long (CALLBACK *SPUopen)(void);\r
-typedef long (CALLBACK *PADopen)(unsigned long *);\r
-typedef long (CALLBACK *NETopen)(unsigned long *);\r
typedef long (CALLBACK *SIO1open)(unsigned long *);\r
\r
#include "spu.h"\r
+#include "gpu.h"\r
#include "decode_xa.h"\r
\r
int LoadPlugins();\r
typedef uint32_t (CALLBACK* GPUreadStatus)(void);\r
typedef uint32_t (CALLBACK* GPUreadData)(void);\r
typedef void (CALLBACK* GPUreadDataMem)(uint32_t *, int);\r
-typedef long (CALLBACK* GPUdmaChain)(uint32_t *,uint32_t, uint32_t *);\r
+typedef long (CALLBACK* GPUdmaChain)(uint32_t *, uint32_t, uint32_t *, int32_t *);\r
typedef void (CALLBACK* GPUupdateLace)(void);\r
-typedef void (CALLBACK* GPUmakeSnapshot)(void);\r
-typedef void (CALLBACK* GPUkeypressed)(int);\r
-typedef void (CALLBACK* GPUdisplayText)(char *);\r
-typedef struct {\r
- uint32_t ulFreezeVersion;\r
- uint32_t ulStatus;\r
- uint32_t ulControl[256];\r
- unsigned char psxVRam[1024*512*2];\r
-} GPUFreeze_t;\r
typedef long (CALLBACK* GPUfreeze)(uint32_t, GPUFreeze_t *);\r
-typedef long (CALLBACK* GPUgetScreenPic)(unsigned char *);\r
-typedef long (CALLBACK* GPUshowScreenPic)(unsigned char *);\r
typedef void (CALLBACK* GPUvBlank)(int, int);\r
typedef void (CALLBACK* GPUgetScreenInfo)(int *, int *);\r
\r
extern GPUwriteData GPU_writeData;\r
extern GPUwriteDataMem GPU_writeDataMem;\r
extern GPUdmaChain GPU_dmaChain;\r
-extern GPUkeypressed GPU_keypressed;\r
-extern GPUdisplayText GPU_displayText;\r
-extern GPUmakeSnapshot GPU_makeSnapshot;\r
extern GPUfreeze GPU_freeze;\r
-extern GPUgetScreenPic GPU_getScreenPic;\r
-extern GPUshowScreenPic GPU_showScreenPic;\r
extern GPUvBlank GPU_vBlank;\r
extern GPUgetScreenInfo GPU_getScreenInfo;\r
\r
-// CD-ROM Functions\r
-typedef long (CALLBACK* CDRinit)(void);\r
-typedef long (CALLBACK* CDRshutdown)(void);\r
-typedef long (CALLBACK* CDRopen)(void);\r
-typedef long (CALLBACK* CDRclose)(void);\r
-typedef long (CALLBACK* CDRgetTN)(unsigned char *);\r
-typedef long (CALLBACK* CDRgetTD)(unsigned char, unsigned char *);\r
-typedef boolean (CALLBACK* CDRreadTrack)(unsigned char *);\r
-typedef unsigned char* (CALLBACK* CDRgetBuffer)(void);\r
-typedef unsigned char* (CALLBACK* CDRgetBufferSub)(int sector);\r
-typedef long (CALLBACK* CDRconfigure)(void);\r
-typedef long (CALLBACK* CDRtest)(void);\r
-typedef void (CALLBACK* CDRabout)(void);\r
-typedef long (CALLBACK* CDRplay)(unsigned char *);\r
-typedef long (CALLBACK* CDRstop)(void);\r
-typedef long (CALLBACK* CDRsetfilename)(char *);\r
+// CD-ROM\r
struct CdrStat {\r
uint32_t Type; // DATA, CDDA\r
uint32_t Status; // same as cdr.StatP\r
unsigned char Time_[3]; // unused\r
};\r
-typedef long (CALLBACK* CDRgetStatus)(struct CdrStat *);\r
-typedef char* (CALLBACK* CDRgetDriveLetter)(void);\r
-struct SubQ {\r
- char res0[12];\r
- unsigned char ControlAndADR;\r
- unsigned char TrackNumber;\r
- unsigned char IndexNumber;\r
- unsigned char TrackRelativeAddress[3];\r
- unsigned char Filler;\r
- unsigned char AbsoluteAddress[3];\r
- unsigned char CRC[2];\r
- char res1[72];\r
-};\r
-typedef long (CALLBACK* CDRreadCDDA)(unsigned char, unsigned char, unsigned char, unsigned char *);\r
-typedef long (CALLBACK* CDRgetTE)(unsigned char, unsigned char *, unsigned char *, unsigned char *);\r
-\r
-// CD-ROM function pointers\r
-extern CDRinit CDR_init;\r
-extern CDRshutdown CDR_shutdown;\r
-extern CDRopen CDR_open;\r
-extern CDRclose CDR_close; \r
-extern CDRtest CDR_test;\r
-extern CDRgetTN CDR_getTN;\r
-extern CDRgetTD CDR_getTD;\r
-extern CDRreadTrack CDR_readTrack;\r
-extern CDRgetBuffer CDR_getBuffer;\r
-extern CDRgetBufferSub CDR_getBufferSub;\r
-extern CDRplay CDR_play;\r
-extern CDRstop CDR_stop;\r
-extern CDRgetStatus CDR_getStatus;\r
-extern CDRgetDriveLetter CDR_getDriveLetter;\r
-extern CDRconfigure CDR_configure;\r
-extern CDRabout CDR_about;\r
-extern CDRsetfilename CDR_setfilename;\r
-extern CDRreadCDDA CDR_readCDDA;\r
-extern CDRgetTE CDR_getTE;\r
\r
-long CALLBACK CDR__getStatus(struct CdrStat *stat);\r
+int CDR__getStatus(struct CdrStat *stat);\r
\r
// SPU Functions\r
typedef long (CALLBACK* SPUinit)(void); \r
extern SPUsetCDvol SPU_setCDvol;\r
\r
// PAD Functions\r
-typedef long (CALLBACK* PADconfigure)(void);\r
-typedef void (CALLBACK* PADabout)(void);\r
-typedef long (CALLBACK* PADinit)(long);\r
-typedef long (CALLBACK* PADshutdown)(void); \r
-typedef long (CALLBACK* PADtest)(void); \r
-typedef long (CALLBACK* PADclose)(void);\r
-typedef long (CALLBACK* PADquery)(void);\r
-typedef long (CALLBACK* PADreadPort1)(PadDataS*);\r
-typedef long (CALLBACK* PADreadPort2)(PadDataS*);\r
-typedef long (CALLBACK* PADkeypressed)(void);\r
-typedef unsigned char (CALLBACK* PADstartPoll)(int);\r
-typedef unsigned char (CALLBACK* PADpoll)(unsigned char, int *);\r
-typedef void (CALLBACK* PADsetSensitive)(int);\r
-\r
-// PAD function pointers\r
-extern PADconfigure PAD1_configure;\r
-extern PADabout PAD1_about;\r
-extern PADinit PAD1_init;\r
-extern PADshutdown PAD1_shutdown;\r
-extern PADtest PAD1_test;\r
-extern PADopen PAD1_open;\r
-extern PADclose PAD1_close;\r
-extern PADquery PAD1_query;\r
-extern PADreadPort1 PAD1_readPort1;\r
-extern PADkeypressed PAD1_keypressed;\r
-extern PADstartPoll PAD1_startPoll;\r
-extern PADpoll PAD1_poll;\r
-extern PADsetSensitive PAD1_setSensitive;\r
-\r
-extern PADconfigure PAD2_configure;\r
-extern PADabout PAD2_about;\r
-extern PADinit PAD2_init;\r
-extern PADshutdown PAD2_shutdown;\r
-extern PADtest PAD2_test;\r
-extern PADopen PAD2_open;\r
-extern PADclose PAD2_close;\r
-extern PADquery PAD2_query;\r
-extern PADreadPort2 PAD2_readPort2;\r
-extern PADkeypressed PAD2_keypressed;\r
-extern PADstartPoll PAD2_startPoll;\r
-extern PADpoll PAD2_poll;\r
-extern PADsetSensitive PAD2_setSensitive;\r
-\r
-// NET Functions\r
-typedef long (CALLBACK* NETinit)(void);\r
-typedef long (CALLBACK* NETshutdown)(void);\r
-typedef long (CALLBACK* NETclose)(void);\r
-typedef long (CALLBACK* NETconfigure)(void);\r
-typedef long (CALLBACK* NETtest)(void);\r
-typedef void (CALLBACK* NETabout)(void);\r
-typedef void (CALLBACK* NETpause)(void);\r
-typedef void (CALLBACK* NETresume)(void);\r
-typedef long (CALLBACK* NETqueryPlayer)(void);\r
-typedef long (CALLBACK* NETsendData)(void *, int, int);\r
-typedef long (CALLBACK* NETrecvData)(void *, int, int);\r
-typedef long (CALLBACK* NETsendPadData)(void *, int);\r
-typedef long (CALLBACK* NETrecvPadData)(void *, int);\r
-\r
-typedef struct {\r
- char EmuName[32];\r
- char CdromID[9]; // ie. 'SCPH12345', no \0 trailing character\r
- char CdromLabel[11];\r
- void *psxMem;\r
- GPUshowScreenPic GPU_showScreenPic;\r
- GPUdisplayText GPU_displayText;\r
- PADsetSensitive PAD_setSensitive;\r
- char GPUpath[256]; // paths must be absolute\r
- char SPUpath[256];\r
- char CDRpath[256];\r
- char MCD1path[256];\r
- char MCD2path[256];\r
- char BIOSpath[256]; // 'HLE' for internal bios\r
- char Unused[1024];\r
-} netInfo;\r
-\r
-typedef long (CALLBACK* NETsetInfo)(netInfo *);\r
-typedef long (CALLBACK* NETkeypressed)(int);\r
+long PAD1_readPort(PadDataS *);\r
+unsigned char PAD1_startPoll(int);\r
+unsigned char PAD1_poll(unsigned char, int *);\r
\r
-// NET function pointers \r
-extern NETinit NET_init;\r
-extern NETshutdown NET_shutdown;\r
-extern NETopen NET_open;\r
-extern NETclose NET_close; \r
-extern NETtest NET_test;\r
-extern NETconfigure NET_configure;\r
-extern NETabout NET_about;\r
-extern NETpause NET_pause;\r
-extern NETresume NET_resume;\r
-extern NETqueryPlayer NET_queryPlayer;\r
-extern NETsendData NET_sendData;\r
-extern NETrecvData NET_recvData;\r
-extern NETsendPadData NET_sendPadData;\r
-extern NETrecvPadData NET_recvPadData;\r
-extern NETsetInfo NET_setInfo;\r
-extern NETkeypressed NET_keypressed;\r
+long PAD2_readPort(PadDataS *);\r
+unsigned char PAD2_startPoll(int);\r
+unsigned char PAD2_poll(unsigned char, int *);\r
\r
#ifdef ENABLE_SIO1API\r
\r
\r
extern void pl_gun_byte2(int port, unsigned char byte);\r
extern void plat_trigger_vibrate(int pad, int low, int high);\r
-extern void plat_get_psx_resolution(int *xres, int *yres);\r
\r
#ifdef __cplusplus\r
}\r