mirror of https://github.com/PCSX2/pcsx2.git
Preliminary work on a new version of the plugin api. Not hooked up, and very subject to change. Mainly committed both for backup, and for other devs to mess with...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@766 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
43d7191927
commit
c15b3129d4
|
@ -0,0 +1,99 @@
|
||||||
|
/* Pcsx2 - Pc Ps2 Emulator
|
||||||
|
* Copyright (C) 2002-2009 Pcsx2 Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __PCSX2API_H__
|
||||||
|
#define __PCSX2API_H__
|
||||||
|
|
||||||
|
// Note; this header is experimental, and will be a shifting target. Only use this if you are willing to repeatedly fix breakage.
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Based on PS2E Definitions by
|
||||||
|
linuzappz@hotmail.com,
|
||||||
|
* shadowpcsx2@yahoo.gr,
|
||||||
|
* and florinsasu@hotmail.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Pcsx2Types.h"
|
||||||
|
#include "Pcsx2Defs.h"
|
||||||
|
|
||||||
|
// Indicate to use the new versions.
|
||||||
|
#define NEW_PLUGIN_APIS
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define EXPORT_C(type) extern "C" __declspec(dllexport) type CALLBACK
|
||||||
|
#else
|
||||||
|
#define EXPORT_C(type) extern "C" type
|
||||||
|
#endif
|
||||||
|
|
||||||
|
EXPORT_C(u32) PS2EgetLibType(void);
|
||||||
|
EXPORT_C(u32) PS2EgetLibVersion2(u32 type);
|
||||||
|
EXPORT_C(char*) PS2EgetLibName(void);
|
||||||
|
|
||||||
|
// PS2EgetLibType returns (may be OR'd)
|
||||||
|
enum {
|
||||||
|
PS2E_LT_GS = 0x01,
|
||||||
|
PS2E_LT_PAD = 0x02, // -=[ OBSOLETE ]=-
|
||||||
|
PS2E_LT_SPU2 = 0x04,
|
||||||
|
PS2E_LT_CDVD = 0x08,
|
||||||
|
PS2E_LT_DEV9 = 0x10,
|
||||||
|
PS2E_LT_USB = 0x20,
|
||||||
|
PS2E_LT_FW = 0x40,
|
||||||
|
PS2E_LT_SIO = 0x80
|
||||||
|
} PluginLibType;
|
||||||
|
|
||||||
|
// PS2EgetLibVersion2 (high 16 bits)
|
||||||
|
enum {
|
||||||
|
PS2E_GS_VERSION = 0x0006,
|
||||||
|
PS2E_PAD_VERSION = 0x0002, // -=[ OBSOLETE ]=-
|
||||||
|
PS2E_SPU2_VERSION = 0x0005,
|
||||||
|
PS2E_CDVD_VERSION = 0x0005,
|
||||||
|
PS2E_DEV9_VERSION = 0x0003,
|
||||||
|
PS2E_USB_VERSION = 0x0003,
|
||||||
|
PS2E_FW_VERSION = 0x0002,
|
||||||
|
PS2E_SIO_VERSION = 0x0001
|
||||||
|
} PluginLibVersion;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SIO_TYPE_PAD = 0x00000001,
|
||||||
|
SIO_TYPE_MTAP = 0x00000004,
|
||||||
|
SIO_TYPE_RM = 0x00000040,
|
||||||
|
SIO_TYPE_MC = 0x00000100
|
||||||
|
} SioTypes;
|
||||||
|
|
||||||
|
// freeze modes:
|
||||||
|
enum {
|
||||||
|
FREEZE_LOAD = 0,
|
||||||
|
FREEZE_SAVE = 1,
|
||||||
|
FREEZE_SIZE = 2
|
||||||
|
} FreezeModes;
|
||||||
|
|
||||||
|
typedef struct _GSdriverInfo {
|
||||||
|
char name[8];
|
||||||
|
void *common;
|
||||||
|
} GSdriverInfo;
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
typedef struct _winInfo { // unsupported values must be set to zero
|
||||||
|
HWND hWnd;
|
||||||
|
HMENU hMenu;
|
||||||
|
HWND hStatusWnd;
|
||||||
|
} winInfo;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // __PCSX2API_H__
|
|
@ -0,0 +1,394 @@
|
||||||
|
/* Pcsx2 - Pc Ps2 Emulator
|
||||||
|
* Copyright (C) 2002-2009 Pcsx2 Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __PLUGINCALLBACKS_H__
|
||||||
|
#define __PLUGINCALLBACKS_H__
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
typedef u32 (CALLBACK* _PS2EgetLibType)(void);
|
||||||
|
typedef u32 (CALLBACK* _PS2EgetLibVersion2)(u32 type);
|
||||||
|
typedef char*(CALLBACK* _PS2EgetLibName)(void);
|
||||||
|
|
||||||
|
// GS
|
||||||
|
// NOTE: GSreadFIFOX/GSwriteCSR functions CANNOT use XMM/MMX regs
|
||||||
|
// If you want to use them, need to save and restore current ones
|
||||||
|
typedef s32 (CALLBACK* _GSinit)(char *configpath);
|
||||||
|
typedef s32 (CALLBACK* _GSopen)(char *Title, bool multithread);
|
||||||
|
typedef void (CALLBACK* _GSclose)();
|
||||||
|
typedef void (CALLBACK* _GSshutdown)();
|
||||||
|
typedef void (CALLBACK* _GSvsync)(int field);
|
||||||
|
typedef void (CALLBACK* _GSgifTransfer1)(u32 *pMem, u32 addr);
|
||||||
|
typedef void (CALLBACK* _GSgifTransfer2)(u32 *pMem, u32 size);
|
||||||
|
typedef void (CALLBACK* _GSgifTransfer3)(u32 *pMem, u32 size);
|
||||||
|
typedef void (CALLBACK* _GSgetLastTag)(u64* ptag); // returns the last tag processed (64 bits)
|
||||||
|
typedef void (CALLBACK* _GSgifSoftReset)(u32 mask);
|
||||||
|
typedef void (CALLBACK* _GSreadFIFO)(u64 *pMem);
|
||||||
|
typedef void (CALLBACK* _GSreadFIFO2)(u64 *pMem, int qwc);
|
||||||
|
|
||||||
|
typedef void (CALLBACK* _GSkeyEvent)(keyEvent* ev);
|
||||||
|
typedef void (CALLBACK* _GSchangeSaveState)(s32 state, const char* filename);
|
||||||
|
typedef void (CALLBACK* _GSirqCallback)(void (*callback)());
|
||||||
|
typedef void (CALLBACK* _GSprintf)(s32 timeout, char *fmt, ...);
|
||||||
|
typedef void (CALLBACK* _GSsetBaseMem)(void*);
|
||||||
|
typedef void (CALLBACK* _GSsetGameCRC)(s32 crc, s32 gameoptions);
|
||||||
|
|
||||||
|
typedef void (CALLBACK* _GSsetFrameSkip)(int frameskip);
|
||||||
|
typedef bool (CALLBACK* _GSsetupRecording)(bool start);
|
||||||
|
typedef void (CALLBACK* _GSreset)();
|
||||||
|
typedef void (CALLBACK* _GSwriteCSR)(u32 value);
|
||||||
|
typedef void (CALLBACK* _GSgetDriverInfo)(GSdriverInfo *info);
|
||||||
|
#ifdef _WINDOWS_
|
||||||
|
typedef s32 (CALLBACK* _GSsetWindowInfo)(winInfo *info);
|
||||||
|
#endif
|
||||||
|
typedef void (CALLBACK* _GSmakeSnapshot)(const char *path);
|
||||||
|
typedef void (CALLBACK* _GSmakeSnapshot2)(const char *path, int*, int);
|
||||||
|
typedef s32 (CALLBACK* _GSfreeze)(u8 mode, freezeData *data);
|
||||||
|
typedef void (CALLBACK* _GSconfigure)();
|
||||||
|
typedef s32 (CALLBACK* _GStest)();
|
||||||
|
typedef void (CALLBACK* _GSabout)();
|
||||||
|
|
||||||
|
// PAD
|
||||||
|
typedef s32 (CALLBACK* _PADinit)(char *configpath, u32 flags);
|
||||||
|
typedef s32 (CALLBACK* _PADopen)();
|
||||||
|
typedef void (CALLBACK* _PADclose)();
|
||||||
|
typedef void (CALLBACK* _PADshutdown)();
|
||||||
|
typedef keyEvent* (CALLBACK* _PADkeyEvent)();
|
||||||
|
typedef u8 (CALLBACK* _PADstartPoll)(u8 pad);
|
||||||
|
typedef u8 (CALLBACK* _PADpoll)(u8 value);
|
||||||
|
typedef u32 (CALLBACK* _PADquery)();
|
||||||
|
typedef void (CALLBACK* _PADupdate)(u8 pad);
|
||||||
|
|
||||||
|
typedef void (CALLBACK* _PADgsDriverInfo)(GSdriverInfo *info);
|
||||||
|
typedef void (CALLBACK* _PADconfigure)();
|
||||||
|
typedef s32 (CALLBACK* _PADtest)();
|
||||||
|
typedef void (CALLBACK* _PADabout)();
|
||||||
|
|
||||||
|
// SIO
|
||||||
|
typedef s32 (CALLBACK* _SIOinit)(char *configpath, u32 port, u32 slot, SIOchangeSlotCB f);
|
||||||
|
typedef s32 (CALLBACK* _SIOopen)();
|
||||||
|
typedef void (CALLBACK* _SIOclose)();
|
||||||
|
typedef void (CALLBACK* _SIOshutdown)();
|
||||||
|
typedef u8 (CALLBACK* _SIOstartPoll)(u8 value);
|
||||||
|
typedef u8 (CALLBACK* _SIOpoll)(u8 value);
|
||||||
|
typedef u32 (CALLBACK* _SIOquery)();
|
||||||
|
|
||||||
|
typedef void (CALLBACK* _SIOconfigure)();
|
||||||
|
typedef s32 (CALLBACK* _SIOtest)();
|
||||||
|
typedef void (CALLBACK* _SIOabout)();
|
||||||
|
|
||||||
|
// SPU2
|
||||||
|
// NOTE: The read/write functions CANNOT use XMM/MMX regs
|
||||||
|
// If you want to use them, need to save and restore current ones
|
||||||
|
typedef s32 (CALLBACK* _SPU2init)(char *configpath);
|
||||||
|
typedef s32 (CALLBACK* _SPU2open)();
|
||||||
|
typedef void (CALLBACK* _SPU2close)();
|
||||||
|
typedef void (CALLBACK* _SPU2shutdown)();
|
||||||
|
typedef void (CALLBACK* _SPU2write)(u32 mem, u16 value);
|
||||||
|
typedef u16 (CALLBACK* _SPU2read)(u32 mem);
|
||||||
|
typedef void (CALLBACK* _SPU2readDMAMem)(u16 *pMem, u32 size, u8 core);
|
||||||
|
typedef void (CALLBACK* _SPU2writeDMAMem)(u16 *pMem, u32 size, u8 core);
|
||||||
|
typedef void (CALLBACK* _SPU2interruptDMA)(u8 core);
|
||||||
|
typedef void (CALLBACK* _SPU2setDMABaseAddr)(uptr baseaddr);
|
||||||
|
typedef void (CALLBACK* _SPU2irqCallback)(void (*SPU2callback)(),void (*DMA4callback)(),void (*DMA7callback)());
|
||||||
|
typedef bool (CALLBACK* _SPU2setupRecording)(bool start);
|
||||||
|
|
||||||
|
typedef void (CALLBACK* _SPU2setClockPtr)(u32*ptr);
|
||||||
|
typedef void (CALLBACK* _SPU2setTimeStretcher)(short int enable);
|
||||||
|
|
||||||
|
typedef u32 (CALLBACK* _SPU2ReadMemAddr)(u8 core);
|
||||||
|
typedef void (CALLBACK* _SPU2WriteMemAddr)(u8 core,u32 value);
|
||||||
|
typedef void (CALLBACK* _SPU2async)(u32 cycles);
|
||||||
|
typedef s32 (CALLBACK* _SPU2freeze)(int mode, freezeData *data);
|
||||||
|
typedef void (CALLBACK* _SPU2configure)();
|
||||||
|
typedef s32 (CALLBACK* _SPU2test)();
|
||||||
|
typedef void (CALLBACK* _SPU2about)();
|
||||||
|
|
||||||
|
// CDVD
|
||||||
|
// NOTE: The read/write functions CANNOT use XMM/MMX regs
|
||||||
|
// If you want to use them, need to save and restore current ones
|
||||||
|
typedef s32 (CALLBACK* _CDVDinit)(char *configpath);
|
||||||
|
typedef s32 (CALLBACK* _CDVDopen)(const char* pTitleFilename);
|
||||||
|
typedef void (CALLBACK* _CDVDclose)();
|
||||||
|
typedef void (CALLBACK* _CDVDshutdown)();
|
||||||
|
typedef s32 (CALLBACK* _CDVDreadTrack)(u32 lsn, int mode);
|
||||||
|
typedef u8* (CALLBACK* _CDVDgetBuffer)();
|
||||||
|
typedef s32 (CALLBACK* _CDVDreadSubQ)(u32 lsn, cdvdSubQ* subq);
|
||||||
|
typedef s32 (CALLBACK* _CDVDgetTN)(cdvdTN *Buffer);
|
||||||
|
typedef s32 (CALLBACK* _CDVDgetTD)(u8 Track, cdvdTD *Buffer);
|
||||||
|
typedef s32 (CALLBACK* _CDVDgetTOC)(void* toc);
|
||||||
|
typedef s32 (CALLBACK* _CDVDgetDiskType)();
|
||||||
|
typedef s32 (CALLBACK* _CDVDgetTrayStatus)();
|
||||||
|
typedef s32 (CALLBACK* _CDVDctrlTrayOpen)();
|
||||||
|
typedef s32 (CALLBACK* _CDVDctrlTrayClose)();
|
||||||
|
|
||||||
|
typedef void (CALLBACK* _CDVDconfigure)();
|
||||||
|
typedef s32 (CALLBACK* _CDVDtest)();
|
||||||
|
typedef void (CALLBACK* _CDVDabout)();
|
||||||
|
typedef void (CALLBACK* _CDVDnewDiskCB)(void (*callback)());
|
||||||
|
|
||||||
|
// DEV9
|
||||||
|
// NOTE: The read/write functions CANNOT use XMM/MMX regs
|
||||||
|
// If you want to use them, need to save and restore current ones
|
||||||
|
typedef s32 (CALLBACK* _DEV9init)(char *configpath);
|
||||||
|
typedef s32 (CALLBACK* _DEV9open)();
|
||||||
|
typedef void (CALLBACK* _DEV9close)();
|
||||||
|
typedef void (CALLBACK* _DEV9shutdown)();
|
||||||
|
typedef u8 (CALLBACK* _DEV9read8)(u32 mem);
|
||||||
|
typedef u16 (CALLBACK* _DEV9read16)(u32 mem);
|
||||||
|
typedef u32 (CALLBACK* _DEV9read32)(u32 mem);
|
||||||
|
typedef void (CALLBACK* _DEV9write8)(u32 mem, u8 value);
|
||||||
|
typedef void (CALLBACK* _DEV9write16)(u32 mem, u16 value);
|
||||||
|
typedef void (CALLBACK* _DEV9write32)(u32 mem, u32 value);
|
||||||
|
typedef void (CALLBACK* _DEV9readDMA8Mem)(u32 *pMem, int size);
|
||||||
|
typedef void (CALLBACK* _DEV9writeDMA8Mem)(u32 *pMem, int size);
|
||||||
|
typedef void (CALLBACK* _DEV9irqCallback)(DEV9callback callback);
|
||||||
|
typedef DEV9handler (CALLBACK* _DEV9irqHandler)(void);
|
||||||
|
|
||||||
|
typedef s32 (CALLBACK* _DEV9freeze)(int mode, freezeData *data);
|
||||||
|
typedef void (CALLBACK* _DEV9configure)();
|
||||||
|
typedef s32 (CALLBACK* _DEV9test)();
|
||||||
|
typedef void (CALLBACK* _DEV9about)();
|
||||||
|
|
||||||
|
// USB
|
||||||
|
// NOTE: The read/write functions CANNOT use XMM/MMX regs
|
||||||
|
// If you want to use them, need to save and restore current ones
|
||||||
|
typedef s32 (CALLBACK* _USBinit)(char *configpath);
|
||||||
|
typedef s32 (CALLBACK* _USBopen)();
|
||||||
|
typedef void (CALLBACK* _USBclose)();
|
||||||
|
typedef void (CALLBACK* _USBshutdown)();
|
||||||
|
typedef u8 (CALLBACK* _USBread8)(u32 mem);
|
||||||
|
typedef u16 (CALLBACK* _USBread16)(u32 mem);
|
||||||
|
typedef u32 (CALLBACK* _USBread32)(u32 mem);
|
||||||
|
typedef void (CALLBACK* _USBwrite8)(u32 mem, u8 value);
|
||||||
|
typedef void (CALLBACK* _USBwrite16)(u32 mem, u16 value);
|
||||||
|
typedef void (CALLBACK* _USBwrite32)(u32 mem, u32 value);
|
||||||
|
typedef void (CALLBACK* _USBasync)(u32 cycles);
|
||||||
|
|
||||||
|
|
||||||
|
typedef void (CALLBACK* _USBirqCallback)(USBcallback callback);
|
||||||
|
typedef USBhandler (CALLBACK* _USBirqHandler)(void);
|
||||||
|
typedef void (CALLBACK* _USBsetRAM)(void *mem);
|
||||||
|
|
||||||
|
typedef s32 (CALLBACK* _USBfreeze)(int mode, freezeData *data);
|
||||||
|
typedef void (CALLBACK* _USBconfigure)();
|
||||||
|
typedef s32 (CALLBACK* _USBtest)();
|
||||||
|
typedef void (CALLBACK* _USBabout)();
|
||||||
|
|
||||||
|
//FW
|
||||||
|
typedef s32 (CALLBACK* _FWinit)(char *configpath);
|
||||||
|
typedef s32 (CALLBACK* _FWopen)();
|
||||||
|
typedef void (CALLBACK* _FWclose)();
|
||||||
|
typedef void (CALLBACK* _FWshutdown)();
|
||||||
|
typedef u32 (CALLBACK* _FWread32)(u32 mem);
|
||||||
|
typedef void (CALLBACK* _FWwrite32)(u32 mem, u32 value);
|
||||||
|
typedef void (CALLBACK* _FWirqCallback)(void (*callback)());
|
||||||
|
|
||||||
|
typedef s32 (CALLBACK* _FWfreeze)(int mode, freezeData *data);
|
||||||
|
typedef void (CALLBACK* _FWconfigure)();
|
||||||
|
typedef s32 (CALLBACK* _FWtest)();
|
||||||
|
typedef void (CALLBACK* _FWabout)();
|
||||||
|
|
||||||
|
// GS
|
||||||
|
extern _GSinit GSinit;
|
||||||
|
extern _GSopen GSopen;
|
||||||
|
extern _GSclose GSclose;
|
||||||
|
extern _GSshutdown GSshutdown;
|
||||||
|
extern _GSvsync GSvsync;
|
||||||
|
extern _GSgifTransfer1 GSgifTransfer1;
|
||||||
|
extern _GSgifTransfer2 GSgifTransfer2;
|
||||||
|
extern _GSgifTransfer3 GSgifTransfer3;
|
||||||
|
extern _GSgetLastTag GSgetLastTag;
|
||||||
|
extern _GSgifSoftReset GSgifSoftReset;
|
||||||
|
extern _GSreadFIFO GSreadFIFO;
|
||||||
|
extern _GSreadFIFO2 GSreadFIFO2;
|
||||||
|
|
||||||
|
extern _GSkeyEvent GSkeyEvent;
|
||||||
|
extern _GSchangeSaveState GSchangeSaveState;
|
||||||
|
extern _GSmakeSnapshot GSmakeSnapshot;
|
||||||
|
extern _GSmakeSnapshot2 GSmakeSnapshot2;
|
||||||
|
extern _GSirqCallback GSirqCallback;
|
||||||
|
extern _GSprintf GSprintf;
|
||||||
|
extern _GSsetBaseMem GSsetBaseMem;
|
||||||
|
extern _GSsetGameCRC GSsetGameCRC;
|
||||||
|
extern _GSsetFrameSkip GSsetFrameSkip;
|
||||||
|
extern _GSsetupRecording GSsetupRecording;
|
||||||
|
extern _GSreset GSreset;
|
||||||
|
extern _GSwriteCSR GSwriteCSR;
|
||||||
|
extern _GSgetDriverInfo GSgetDriverInfo;
|
||||||
|
#ifdef _WINDOWS_
|
||||||
|
extern _GSsetWindowInfo GSsetWindowInfo;
|
||||||
|
#endif
|
||||||
|
extern _GSfreeze GSfreeze;
|
||||||
|
extern _GSconfigure GSconfigure;
|
||||||
|
extern _GStest GStest;
|
||||||
|
extern _GSabout GSabout;
|
||||||
|
|
||||||
|
// PAD1
|
||||||
|
extern _PADinit PAD1init;
|
||||||
|
extern _PADopen PAD1open;
|
||||||
|
extern _PADclose PAD1close;
|
||||||
|
extern _PADshutdown PAD1shutdown;
|
||||||
|
extern _PADkeyEvent PAD1keyEvent;
|
||||||
|
extern _PADstartPoll PAD1startPoll;
|
||||||
|
extern _PADpoll PAD1poll;
|
||||||
|
extern _PADquery PAD1query;
|
||||||
|
extern _PADupdate PAD1update;
|
||||||
|
|
||||||
|
extern _PADgsDriverInfo PAD1gsDriverInfo;
|
||||||
|
extern _PADconfigure PAD1configure;
|
||||||
|
extern _PADtest PAD1test;
|
||||||
|
extern _PADabout PAD1about;
|
||||||
|
|
||||||
|
// PAD2
|
||||||
|
extern _PADinit PAD2init;
|
||||||
|
extern _PADopen PAD2open;
|
||||||
|
extern _PADclose PAD2close;
|
||||||
|
extern _PADshutdown PAD2shutdown;
|
||||||
|
extern _PADkeyEvent PAD2keyEvent;
|
||||||
|
extern _PADstartPoll PAD2startPoll;
|
||||||
|
extern _PADpoll PAD2poll;
|
||||||
|
extern _PADquery PAD2query;
|
||||||
|
extern _PADupdate PAD2update;
|
||||||
|
|
||||||
|
extern _PADgsDriverInfo PAD2gsDriverInfo;
|
||||||
|
extern _PADconfigure PAD2configure;
|
||||||
|
extern _PADtest PAD2test;
|
||||||
|
extern _PADabout PAD2about;
|
||||||
|
|
||||||
|
// SIO[2]
|
||||||
|
extern _SIOinit SIOinit[2][9];
|
||||||
|
extern _SIOopen SIOopen[2][9];
|
||||||
|
extern _SIOclose SIOclose[2][9];
|
||||||
|
extern _SIOshutdown SIOshutdown[2][9];
|
||||||
|
extern _SIOstartPoll SIOstartPoll[2][9];
|
||||||
|
extern _SIOpoll SIOpoll[2][9];
|
||||||
|
extern _SIOquery SIOquery[2][9];
|
||||||
|
|
||||||
|
extern _SIOconfigure SIOconfigure[2][9];
|
||||||
|
extern _SIOtest SIOtest[2][9];
|
||||||
|
extern _SIOabout SIOabout[2][9];
|
||||||
|
|
||||||
|
// SPU2
|
||||||
|
extern _SPU2init SPU2init;
|
||||||
|
extern _SPU2open SPU2open;
|
||||||
|
extern _SPU2close SPU2close;
|
||||||
|
extern _SPU2shutdown SPU2shutdown;
|
||||||
|
extern _SPU2write SPU2write;
|
||||||
|
extern _SPU2read SPU2read;
|
||||||
|
extern _SPU2readDMA4Mem SPU2readDMA4Mem;
|
||||||
|
extern _SPU2writeDMA4Mem SPU2writeDMA4Mem;
|
||||||
|
extern _SPU2interruptDMA4 SPU2interruptDMA4;
|
||||||
|
extern _SPU2readDMA7Mem SPU2readDMA7Mem;
|
||||||
|
extern _SPU2writeDMA7Mem SPU2writeDMA7Mem;
|
||||||
|
extern _SPU2setDMABaseAddr SPU2setDMABaseAddr;
|
||||||
|
extern _SPU2interruptDMA7 SPU2interruptDMA7;
|
||||||
|
extern _SPU2ReadMemAddr SPU2ReadMemAddr;
|
||||||
|
extern _SPU2setupRecording SPU2setupRecording;
|
||||||
|
extern _SPU2WriteMemAddr SPU2WriteMemAddr;
|
||||||
|
extern _SPU2irqCallback SPU2irqCallback;
|
||||||
|
|
||||||
|
extern _SPU2setClockPtr SPU2setClockPtr;
|
||||||
|
extern _SPU2setTimeStretcher SPU2setTimeStretcher;
|
||||||
|
|
||||||
|
extern _SPU2async SPU2async;
|
||||||
|
extern _SPU2freeze SPU2freeze;
|
||||||
|
extern _SPU2configure SPU2configure;
|
||||||
|
extern _SPU2test SPU2test;
|
||||||
|
extern _SPU2about SPU2about;
|
||||||
|
|
||||||
|
// CDVD
|
||||||
|
extern _CDVDinit CDVDinit;
|
||||||
|
extern _CDVDopen CDVDopen;
|
||||||
|
extern _CDVDclose CDVDclose;
|
||||||
|
extern _CDVDshutdown CDVDshutdown;
|
||||||
|
extern _CDVDreadTrack CDVDreadTrack;
|
||||||
|
extern _CDVDgetBuffer CDVDgetBuffer;
|
||||||
|
extern _CDVDreadSubQ CDVDreadSubQ;
|
||||||
|
extern _CDVDgetTN CDVDgetTN;
|
||||||
|
extern _CDVDgetTD CDVDgetTD;
|
||||||
|
extern _CDVDgetTOC CDVDgetTOC;
|
||||||
|
extern _CDVDgetDiskType CDVDgetDiskType;
|
||||||
|
extern _CDVDgetTrayStatus CDVDgetTrayStatus;
|
||||||
|
extern _CDVDctrlTrayOpen CDVDctrlTrayOpen;
|
||||||
|
extern _CDVDctrlTrayClose CDVDctrlTrayClose;
|
||||||
|
|
||||||
|
extern _CDVDconfigure CDVDconfigure;
|
||||||
|
extern _CDVDtest CDVDtest;
|
||||||
|
extern _CDVDabout CDVDabout;
|
||||||
|
extern _CDVDnewDiskCB CDVDnewDiskCB;
|
||||||
|
|
||||||
|
// DEV9
|
||||||
|
extern _DEV9init DEV9init;
|
||||||
|
extern _DEV9open DEV9open;
|
||||||
|
extern _DEV9close DEV9close;
|
||||||
|
extern _DEV9shutdown DEV9shutdown;
|
||||||
|
extern _DEV9read8 DEV9read8;
|
||||||
|
extern _DEV9read16 DEV9read16;
|
||||||
|
extern _DEV9read32 DEV9read32;
|
||||||
|
extern _DEV9write8 DEV9write8;
|
||||||
|
extern _DEV9write16 DEV9write16;
|
||||||
|
extern _DEV9write32 DEV9write32;
|
||||||
|
extern _DEV9readDMA8Mem DEV9readDMA8Mem;
|
||||||
|
extern _DEV9writeDMA8Mem DEV9writeDMA8Mem;
|
||||||
|
extern _DEV9irqCallback DEV9irqCallback;
|
||||||
|
extern _DEV9irqHandler DEV9irqHandler;
|
||||||
|
|
||||||
|
extern _DEV9configure DEV9configure;
|
||||||
|
extern _DEV9freeze DEV9freeze;
|
||||||
|
extern _DEV9test DEV9test;
|
||||||
|
extern _DEV9about DEV9about;
|
||||||
|
|
||||||
|
// USB
|
||||||
|
extern _USBinit USBinit;
|
||||||
|
extern _USBopen USBopen;
|
||||||
|
extern _USBclose USBclose;
|
||||||
|
extern _USBshutdown USBshutdown;
|
||||||
|
extern _USBread8 USBread8;
|
||||||
|
extern _USBread16 USBread16;
|
||||||
|
extern _USBread32 USBread32;
|
||||||
|
extern _USBwrite8 USBwrite8;
|
||||||
|
extern _USBwrite16 USBwrite16;
|
||||||
|
extern _USBwrite32 USBwrite32;
|
||||||
|
extern _USBasync USBasync;
|
||||||
|
|
||||||
|
extern _USBirqCallback USBirqCallback;
|
||||||
|
extern _USBirqHandler USBirqHandler;
|
||||||
|
extern _USBsetRAM USBsetRAM;
|
||||||
|
|
||||||
|
extern _USBconfigure USBconfigure;
|
||||||
|
extern _USBfreeze USBfreeze;
|
||||||
|
extern _USBtest USBtest;
|
||||||
|
extern _USBabout USBabout;
|
||||||
|
|
||||||
|
// FW
|
||||||
|
extern _FWinit FWinit;
|
||||||
|
extern _FWopen FWopen;
|
||||||
|
extern _FWclose FWclose;
|
||||||
|
extern _FWshutdown FWshutdown;
|
||||||
|
extern _FWread32 FWread32;
|
||||||
|
extern _FWwrite32 FWwrite32;
|
||||||
|
extern _FWirqCallback FWirqCallback;
|
||||||
|
|
||||||
|
extern _FWconfigure FWconfigure;
|
||||||
|
extern _FWfreeze FWfreeze;
|
||||||
|
extern _FWtest FWtest;
|
||||||
|
extern _FWabout FWabout;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // __PLUGINCALLBACKS_H__
|
|
@ -0,0 +1,133 @@
|
||||||
|
/* Pcsx2 - Pc Ps2 Emulator
|
||||||
|
* Copyright (C) 2002-2009 Pcsx2 Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __CDVDAPI_H__
|
||||||
|
#define __CDVDAPI_H__
|
||||||
|
|
||||||
|
// Note; this header is experimental, and will be a shifting target. Only use this if you are willing to repeatedly fix breakage.
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Based on PS2E Definitions by
|
||||||
|
linuzappz@hotmail.com,
|
||||||
|
* shadowpcsx2@yahoo.gr,
|
||||||
|
* and florinsasu@hotmail.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Pcsx2Api.h"
|
||||||
|
|
||||||
|
/* CDVD plugin API */
|
||||||
|
|
||||||
|
// Basic functions.
|
||||||
|
|
||||||
|
EXPORT_C_(s32) CDVDinit(char *configpath);
|
||||||
|
EXPORT_C_(s32) CDVDopen(const char* pTitleFilename);
|
||||||
|
EXPORT_C_(void) CDVDclose();
|
||||||
|
EXPORT_C_(void) CDVDshutdown();
|
||||||
|
EXPORT_C_(s32) CDVDreadTrack(u32 lsn, int mode);
|
||||||
|
|
||||||
|
// return can be NULL (for async modes)
|
||||||
|
EXPORT_C_(u8*) CDVDgetBuffer();
|
||||||
|
|
||||||
|
EXPORT_C_(s32) CDVDreadSubQ(u32 lsn, cdvdSubQ* subq);//read subq from disc (only cds have subq data)
|
||||||
|
EXPORT_C_(s32) CDVDgetTN(cdvdTN *Buffer); //disk information
|
||||||
|
EXPORT_C_(s32) CDVDgetTD(u8 Track, cdvdTD *Buffer); //track info: min,sec,frame,type
|
||||||
|
EXPORT_C_(s32) CDVDgetTOC(void* toc); //gets ps2 style toc from disc
|
||||||
|
EXPORT_C_(s32) CDVDgetDiskType(); //CDVD_TYPE_xxxx
|
||||||
|
EXPORT_C_(s32) CDVDgetTrayStatus(); //CDVD_TRAY_xxxx
|
||||||
|
EXPORT_C_(s32) CDVDctrlTrayOpen(); //open disc tray
|
||||||
|
EXPORT_C_(s32) CDVDctrlTrayClose(); //close disc tray
|
||||||
|
|
||||||
|
// Extended functions
|
||||||
|
|
||||||
|
EXPORT_C_(void) CDVDconfigure();
|
||||||
|
EXPORT_C_(void) CDVDabout();
|
||||||
|
EXPORT_C_(s32) CDVDtest();
|
||||||
|
EXPORT_C_(void) CDVDnewDiskCB(void (*callback)());
|
||||||
|
|
||||||
|
typedef struct _cdvdSubQ {
|
||||||
|
u8 ctrl:4; // control and mode bits
|
||||||
|
u8 mode:4; // control and mode bits
|
||||||
|
u8 trackNum; // current track number (1 to 99)
|
||||||
|
u8 trackIndex; // current index within track (0 to 99)
|
||||||
|
u8 trackM; // current minute location on the disc (BCD encoded)
|
||||||
|
u8 trackS; // current sector location on the disc (BCD encoded)
|
||||||
|
u8 trackF; // current frame location on the disc (BCD encoded)
|
||||||
|
u8 pad; // unused
|
||||||
|
u8 discM; // current minute offset from first track (BCD encoded)
|
||||||
|
u8 discS; // current sector offset from first track (BCD encoded)
|
||||||
|
u8 discF; // current frame offset from first track (BCD encoded)
|
||||||
|
} cdvdSubQ;
|
||||||
|
|
||||||
|
typedef struct _cdvdTD { // NOT bcd coded
|
||||||
|
u32 lsn;
|
||||||
|
u8 type;
|
||||||
|
} cdvdTD;
|
||||||
|
|
||||||
|
typedef struct _cdvdTN {
|
||||||
|
u8 strack; //number of the first track (usually 1)
|
||||||
|
u8 etrack; //number of the last track
|
||||||
|
} cdvdTN;
|
||||||
|
|
||||||
|
// CDVDreadTrack mode values:
|
||||||
|
enum {
|
||||||
|
CDVD_MODE_2352 0, // full 2352 bytes
|
||||||
|
CDVD_MODE_2340 1, // skip sync (12) bytes
|
||||||
|
CDVD_MODE_2328 2, // skip sync+head+sub (24) bytes
|
||||||
|
CDVD_MODE_2048 3, // skip sync+head+sub (24) bytes
|
||||||
|
CDVD_MODE_2368 4 // full 2352 bytes + 16 subq
|
||||||
|
} TrackModes
|
||||||
|
|
||||||
|
// CDVDgetDiskType returns:
|
||||||
|
enum {
|
||||||
|
CDVD_TYPE_ILLEGAL = 0xff, // Illegal Disc
|
||||||
|
CDVD_TYPE_DVDV = 0xfe, // DVD Video
|
||||||
|
CDVD_TYPE_CDDA = 0xfd, // Audio CD
|
||||||
|
CDVD_TYPE_PS2DVD = 0x14, // PS2 DVD
|
||||||
|
CDVD_TYPE_PS2CDDA = 0x13, // PS2 CD (with audio)
|
||||||
|
CDVD_TYPE_PS2CD = 0x12, // PS2 CD
|
||||||
|
CDVD_TYPE_PSCDDA = 0x11, // PS CD (with audio)
|
||||||
|
CDVD_TYPE_PSCD = 0x10, // PS CD
|
||||||
|
CDVD_TYPE_UNKNOWN = 0x05, // Unknown
|
||||||
|
CDVD_TYPE_DETCTDVDD = 0x04, // Detecting Dvd Dual Sided
|
||||||
|
CDVD_TYPE_DETCTDVDS = 0x03, // Detecting Dvd Single Sided
|
||||||
|
CDVD_TYPE_DETCTCD = 0x02, // Detecting Cd
|
||||||
|
CDVD_TYPE_DETCT = 0x01, // Detecting
|
||||||
|
CDVD_TYPE_NODISC = 0x00 // No Disc
|
||||||
|
} DiskType;
|
||||||
|
|
||||||
|
// CDVDgetTrayStatus returns:
|
||||||
|
enum {
|
||||||
|
CDVD_TRAY_CLOSE = 0x00,
|
||||||
|
CDVD_TRAY_OPEN = 0x01
|
||||||
|
} TrayStatus;
|
||||||
|
|
||||||
|
// cdvdTD.type (track types for cds)
|
||||||
|
enum {
|
||||||
|
CDVD_AUDIO_TRACK = 0x01,
|
||||||
|
CDVD_MODE1_TRACK = 0x41,
|
||||||
|
CDVD_MODE2_TRACK = 0x61
|
||||||
|
} CDVDTDType;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
CDVD_AUDIO_MASK = 0x00,
|
||||||
|
CDVD_DATA_MASK = 0x40
|
||||||
|
// CDROM_DATA_TRACK 0x04 //do not enable this! (from linux kernel)
|
||||||
|
} CDVD_Masks;
|
||||||
|
|
||||||
|
#endif // __CDVDAPI_H__
|
|
@ -0,0 +1,65 @@
|
||||||
|
/* Pcsx2 - Pc Ps2 Emulator
|
||||||
|
* Copyright (C) 2002-2009 Pcsx2 Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __DEV9API_H__
|
||||||
|
#define __DEV9API_H__
|
||||||
|
|
||||||
|
// Note; this header is experimental, and will be a shifting target. Only use this if you are willing to repeatedly fix breakage.
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Based on PS2E Definitions by
|
||||||
|
* linuzappz@hotmail.com,
|
||||||
|
* shadowpcsx2@yahoo.gr,
|
||||||
|
* and florinsasu@hotmail.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Pcsx2Api.h"
|
||||||
|
|
||||||
|
typedef void (*DEV9callback)(int cycles);
|
||||||
|
typedef int (*DEV9handler)(void);
|
||||||
|
|
||||||
|
// Basic functions.
|
||||||
|
// NOTE: The read/write functions CANNOT use XMM/MMX regs
|
||||||
|
// If you want to use them, need to save and restore current ones
|
||||||
|
EXPORT_C_(s32) DEV9init(char *configpath);
|
||||||
|
EXPORT_C_(s32) DEV9open();
|
||||||
|
EXPORT_C_(void) DEV9close();
|
||||||
|
EXPORT_C_(void) DEV9shutdown();
|
||||||
|
EXPORT_C_(u8) DEV9read8(u32 addr);
|
||||||
|
EXPORT_C_(u16) DEV9read16(u32 addr);
|
||||||
|
EXPORT_C_(u32) DEV9read32(u32 addr);
|
||||||
|
EXPORT_C_(void) DEV9write8(u32 addr, u8 value);
|
||||||
|
EXPORT_C_(void) DEV9write16(u32 addr, u16 value);
|
||||||
|
EXPORT_C_(void) DEV9write32(u32 addr, u32 value);
|
||||||
|
EXPORT_C_(void) DEV9readDMA8Mem(u32 *pMem, int size);
|
||||||
|
EXPORT_C_(void) DEV9writeDMA8Mem(u32 *pMem, int size);
|
||||||
|
|
||||||
|
// cycles = IOP cycles before calling callback,
|
||||||
|
// if callback returns 1 the irq is triggered, else not
|
||||||
|
EXPORT_C_(void) DEV9irqCallback(DEV9callback callback);
|
||||||
|
EXPORT_C_(DEV9handler) DEV9irqHandler(void);
|
||||||
|
|
||||||
|
// Extended functions
|
||||||
|
|
||||||
|
EXPORT_C_(s32) DEV9freeze(int mode, freezeData *data);
|
||||||
|
EXPORT_C_(void) DEV9configure();
|
||||||
|
EXPORT_C_(void) DEV9about();
|
||||||
|
EXPORT_C_(s32) DEV9test();
|
||||||
|
|
||||||
|
#endif // __DEV9API_H__
|
|
@ -0,0 +1,56 @@
|
||||||
|
/* Pcsx2 - Pc Ps2 Emulator
|
||||||
|
* Copyright (C) 2002-2009 Pcsx2 Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __FWAPI_H__
|
||||||
|
#define __FWAPI_H__
|
||||||
|
|
||||||
|
// Note; this header is experimental, and will be a shifting target. Only use this if you are willing to repeatedly fix breakage.
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Based on PS2E Definitions by
|
||||||
|
linuzappz@hotmail.com,
|
||||||
|
* shadowpcsx2@yahoo.gr,
|
||||||
|
* and florinsasu@hotmail.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Pcsx2Api.h"
|
||||||
|
|
||||||
|
/* FW plugin API */
|
||||||
|
|
||||||
|
// Basic functions.
|
||||||
|
|
||||||
|
// NOTE: The read/write functions CANNOT use XMM/MMX regs
|
||||||
|
// If you want to use them, need to save and restore current ones
|
||||||
|
EXPORT_C_(s32) CALLBACK FWinit(char *configpath);
|
||||||
|
EXPORT_C_(s32) CALLBACK FWopen();
|
||||||
|
EXPORT_C_(void) CALLBACK FWclose();
|
||||||
|
EXPORT_C_(void) CALLBACK FWshutdown();
|
||||||
|
EXPORT_C_(u32) CALLBACK FWread32(u32 addr);
|
||||||
|
EXPORT_C_(void) CALLBACK FWwrite32(u32 addr, u32 value);
|
||||||
|
EXPORT_C_(void) CALLBACK FWirqCallback(void (*callback)());
|
||||||
|
|
||||||
|
// Extended functions
|
||||||
|
|
||||||
|
EXPORT_C_(s32) CALLBACK FWfreeze(int mode, freezeData *data);
|
||||||
|
EXPORT_C_(void) CALLBACK FWconfigure();
|
||||||
|
EXPORT_C_(void) CALLBACK FWabout();
|
||||||
|
EXPORT_C_(s32) CALLBACK FWtest();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // __USBAPI_H__
|
|
@ -0,0 +1,84 @@
|
||||||
|
/* Pcsx2 - Pc Ps2 Emulator
|
||||||
|
* Copyright (C) 2002-2009 Pcsx2 Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __GSAPI_H__
|
||||||
|
#define __GSAPI_H__
|
||||||
|
|
||||||
|
// Note; this header is experimental, and will be a shifting target. Only use this if you are willing to repeatedly fix breakage.
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Based on PS2E Definitions by
|
||||||
|
linuzappz@hotmail.com,
|
||||||
|
* shadowpcsx2@yahoo.gr,
|
||||||
|
* and florinsasu@hotmail.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Pcsx2Api.h"
|
||||||
|
|
||||||
|
typedef struct _GSdriverInfo {
|
||||||
|
char name[8];
|
||||||
|
void *common;
|
||||||
|
} GSdriverInfo;
|
||||||
|
|
||||||
|
// Basic functions.
|
||||||
|
EXPORT_C_(s32) GSinit(char *configpath);
|
||||||
|
EXPORT_C_(s32) GSopen(char *Title, bool multithread);
|
||||||
|
EXPORT_C_(void) GSclose();
|
||||||
|
EXPORT_C_(void) GSshutdown();
|
||||||
|
EXPORT_C_(void) GSvsync(int field);
|
||||||
|
EXPORT_C_(void) GSgifTransfer1(u32 *pMem, u32 addr);
|
||||||
|
EXPORT_C_(void) GSgifTransfer2(u32 *pMem, u32 size);
|
||||||
|
EXPORT_C_(void) GSgifTransfer3(u32 *pMem, u32 size);
|
||||||
|
EXPORT_C_(void) GSgetLastTag(u64* ptag); // returns the last tag processed (64 bits)
|
||||||
|
EXPORT_C_(void) GSgifSoftReset(u32 mask);
|
||||||
|
EXPORT_C_(void) GSreadFIFO(u64 *mem);
|
||||||
|
EXPORT_C_(void) GSreadFIFO2(u64 *mem, int qwc);
|
||||||
|
|
||||||
|
// Extended functions
|
||||||
|
|
||||||
|
// GSkeyEvent gets called when there is a keyEvent from the PAD plugin
|
||||||
|
EXPORT_C_(void) GSkeyEvent(keyEvent *ev);
|
||||||
|
EXPORT_C_(void) GSchangeSaveState(s32 state, const char* filename);
|
||||||
|
EXPORT_C_(void) GSmakeSnapshot(char *path);
|
||||||
|
EXPORT_C_(void) GSmakeSnapshot2(char *pathname, int* snapdone, int savejpg);
|
||||||
|
EXPORT_C_(void) GSirqCallback(void (*callback)());
|
||||||
|
EXPORT_C_(void) CALLBACK GSprintf(s32 timeout, char *fmt, ...);
|
||||||
|
EXPORT_C_(void) GSsetBaseMem(void*);
|
||||||
|
EXPORT_C_(void) GSsetGameCRC(s32 crc, s32 gameoptions);
|
||||||
|
|
||||||
|
// controls frame skipping in the GS, if this routine isn't present, frame skipping won't be done
|
||||||
|
EXPORT_C_(void) GSsetFrameSkip(int frameskip);
|
||||||
|
|
||||||
|
// if start is true, starts recording spu2 data, else stops
|
||||||
|
// returns true if successful
|
||||||
|
// for now, pData is not used
|
||||||
|
EXPORT_C_(bool) GSsetupRecording(bool start);
|
||||||
|
|
||||||
|
EXPORT_C_(void) GSreset();
|
||||||
|
EXPORT_C_(void) GSwriteCSR(u32 value);
|
||||||
|
EXPORT_C_(void ) GSgetDriverInfo(GSdriverInfo *info);
|
||||||
|
#ifdef _WIN32
|
||||||
|
EXPORT_C_(s32) CALLBACK GSsetWindowInfo(winInfo *info);
|
||||||
|
#endif
|
||||||
|
EXPORT_C_(s32) GSfreeze(u8 mode, freezeData *data);
|
||||||
|
EXPORT_C_(void) GSconfigure();
|
||||||
|
EXPORT_C_(void) GSabout();
|
||||||
|
EXPORT_C_(s32) GStest();
|
||||||
|
|
||||||
|
#endif // __GSAPI_H__
|
|
@ -0,0 +1,66 @@
|
||||||
|
/* Pcsx2 - Pc Ps2 Emulator
|
||||||
|
* Copyright (C) 2002-2009 Pcsx2 Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __PADAPI_H__
|
||||||
|
#define __PADAPI_H__
|
||||||
|
|
||||||
|
// Note; this header is experimental, and will be a shifting target. Only use this if you are willing to repeatedly fix breakage.
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Based on PS2E Definitions by
|
||||||
|
linuzappz@hotmail.com,
|
||||||
|
* shadowpcsx2@yahoo.gr,
|
||||||
|
* and florinsasu@hotmail.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Pcsx2Api.h"
|
||||||
|
|
||||||
|
/* PAD plugin API */
|
||||||
|
/* So obsolete that everyone uses it. */
|
||||||
|
|
||||||
|
// Basic functions.
|
||||||
|
EXPORT_C_(s32) CALLBACK PADinit(char *configpath, u32 flags);
|
||||||
|
EXPORT_C_(s32) CALLBACK PADopen();
|
||||||
|
EXPORT_C_(void) CALLBACK PADclose();
|
||||||
|
EXPORT_C_(void) CALLBACK PADshutdown();
|
||||||
|
// PADkeyEvent is called every vsync (return NULL if no event)
|
||||||
|
EXPORT_C_(keyEvent*) CALLBACK PADkeyEvent();
|
||||||
|
EXPORT_C_(u8) CALLBACK PADstartPoll(u8 pad);
|
||||||
|
EXPORT_C_(u8) CALLBACK PADpoll(u8 value);
|
||||||
|
// returns: 1 if supported pad1
|
||||||
|
// 2 if supported pad2
|
||||||
|
// 3 if both are supported
|
||||||
|
EXPORT_C_(u8) CALLBACK PADquery();
|
||||||
|
|
||||||
|
// call to give a hint to the PAD plugin to query for the keyboard state. A
|
||||||
|
// good plugin will query the OS for keyboard state ONLY in this function.
|
||||||
|
// This function is necessary when multithreading because otherwise
|
||||||
|
// the PAD plugin can get into deadlocks with the thread that really owns
|
||||||
|
// the window (and input). Note that PADupdate can be called from a different
|
||||||
|
// thread than the other functions, so mutex or other multithreading primitives
|
||||||
|
// have to be added to maintain data integrity.
|
||||||
|
EXPORT_C_(void) CALLBACK PADupdate(u8 pad);
|
||||||
|
|
||||||
|
// Extended functions
|
||||||
|
EXPORT_C_(void) CALLBACK PADgsDriverInfo(GSdriverInfo *info);
|
||||||
|
EXPORT_C_(void) CALLBACK PADconfigure();
|
||||||
|
EXPORT_C_(void) CALLBACK PADabout();
|
||||||
|
EXPORT_C_(s32) CALLBACK PADtest();
|
||||||
|
|
||||||
|
#endif // __PADAPI_H__
|
|
@ -0,0 +1,56 @@
|
||||||
|
/* Pcsx2 - Pc Ps2 Emulator
|
||||||
|
* Copyright (C) 2002-2009 Pcsx2 Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __SIOAPI_H__
|
||||||
|
#define __SIOAPI_H__
|
||||||
|
|
||||||
|
// Note; this header is experimental, and will be a shifting target. Only use this if you are willing to repeatedly fix breakage.
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Based on PS2E Definitions by
|
||||||
|
linuzappz@hotmail.com,
|
||||||
|
* shadowpcsx2@yahoo.gr,
|
||||||
|
* and florinsasu@hotmail.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Pcsx2Api.h"
|
||||||
|
|
||||||
|
/* SIO plugin API */
|
||||||
|
|
||||||
|
// basic funcs
|
||||||
|
|
||||||
|
s32 CALLBACK SIOinit(char *configpath, u32 port, u32 slot, SIOchangeSlotCB f);
|
||||||
|
s32 CALLBACK SIOopen();
|
||||||
|
void CALLBACK SIOclose();
|
||||||
|
void CALLBACK SIOshutdown();
|
||||||
|
u8 CALLBACK SIOstartPoll(u8 value);
|
||||||
|
u8 CALLBACK SIOpoll(u8 value);
|
||||||
|
|
||||||
|
// returns: SIO_TYPE_{PAD,MTAP,RM,MC}
|
||||||
|
u32 CALLBACK SIOquery();
|
||||||
|
|
||||||
|
// extended funcs
|
||||||
|
|
||||||
|
void CALLBACK SIOconfigure();
|
||||||
|
void CALLBACK SIOabout();
|
||||||
|
s32 CALLBACK SIOtest();
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // __SIOAPI_H__
|
|
@ -0,0 +1,65 @@
|
||||||
|
/* Pcsx2 - Pc Ps2 Emulator
|
||||||
|
* Copyright (C) 2002-2009 Pcsx2 Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __SPU2API_H__
|
||||||
|
#define __SPU2API_H__
|
||||||
|
|
||||||
|
// Note; this header is experimental, and will be a shifting target. Only use this if you are willing to repeatedly fix breakage.
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Based on PS2E Definitions by
|
||||||
|
linuzappz@hotmail.com,
|
||||||
|
* shadowpcsx2@yahoo.gr,
|
||||||
|
* and florinsasu@hotmail.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Pcsx2Api.h"
|
||||||
|
|
||||||
|
EXPORT_C_(s32) SPU2init(char *configpath);
|
||||||
|
EXPORT_C_(s32) SPU2open();
|
||||||
|
EXPORT_C_(void) SPU2close();
|
||||||
|
EXPORT_C_(void) SPU2shutdown();
|
||||||
|
EXPORT_C_(void) SPU2write(u32 mem, u16 value);
|
||||||
|
EXPORT_C_(u16) SPU2read(u32 mem);
|
||||||
|
EXPORT_C_(void) SPU2readDMAMem(u16 *pMem, u32 size, u8 core);
|
||||||
|
EXPORT_C_(void) SPU2writeDMAMem(u16 *pMem, u32 size, u8 core);
|
||||||
|
EXPORT_C_(void) SPU2interruptDMA(u8 core);
|
||||||
|
|
||||||
|
// all addresses passed by dma will be pointers to the array starting at baseaddr
|
||||||
|
// This function is necessary to successfully save and reload the spu2 state
|
||||||
|
EXPORT_C_(void) SPU2setDMABaseAddr(uptr baseaddr);
|
||||||
|
|
||||||
|
EXPORT_C_(u32) SPU2ReadMemAddr(u8 core);
|
||||||
|
EXPORT_C_(void) SPU2WriteMemAddr(u8 core,u32 value);
|
||||||
|
EXPORT_C_(void) SPU2irqCallback(void (*SPU2callback)(),void (*DMA4callback)(),void (*DMA7callback)());
|
||||||
|
|
||||||
|
// extended funcs
|
||||||
|
// if start is true, starts recording spu2 data, else stops
|
||||||
|
// returns true if successful
|
||||||
|
EXPORT_C_(bool) SPU2setupRecording(bool start);
|
||||||
|
|
||||||
|
EXPORT_C_(void) SPU2setClockPtr(u32* ptr);
|
||||||
|
|
||||||
|
EXPORT_C_(void) SPU2async(u32 cycles);
|
||||||
|
EXPORT_C_(s32) SPU2freeze(u8 mode, freezeData *data);
|
||||||
|
EXPORT_C_(void) SPU2configure();
|
||||||
|
EXPORT_C_(void) SPU2about();
|
||||||
|
EXPORT_C_(s32) SPU2test();
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,63 @@
|
||||||
|
/* Pcsx2 - Pc Ps2 Emulator
|
||||||
|
* Copyright (C) 2002-2009 Pcsx2 Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __USBAPI_H__
|
||||||
|
#define __USBAPI_H__
|
||||||
|
|
||||||
|
// Note; this header is experimental, and will be a shifting target. Only use this if you are willing to repeatedly fix breakage.
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Based on PS2E Definitions by
|
||||||
|
linuzappz@hotmail.com,
|
||||||
|
* shadowpcsx2@yahoo.gr,
|
||||||
|
* and florinsasu@hotmail.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Pcsx2Api.h"
|
||||||
|
|
||||||
|
typedef void (*USBcallback)(int cycles);
|
||||||
|
typedef int (*USBhandler)(void);
|
||||||
|
|
||||||
|
// Basic functions.
|
||||||
|
EXPORT_C_(s32) CALLBACK USBinit(char *configpath);
|
||||||
|
EXPORT_C_(s32) CALLBACK USBopen();
|
||||||
|
EXPORT_C_(void) CALLBACK USBclose();
|
||||||
|
EXPORT_C_(void) CALLBACK USBshutdown();
|
||||||
|
EXPORT_C_(u8) CALLBACK USBread8(u32 addr);
|
||||||
|
EXPORT_C_(u16) CALLBACK USBread16(u32 addr);
|
||||||
|
EXPORT_C_(u32) CALLBACK USBread32(u32 addr);
|
||||||
|
EXPORT_C_(void) CALLBACK USBwrite8(u32 addr, u8 value);
|
||||||
|
EXPORT_C_(void) CALLBACK USBwrite16(u32 addr, u16 value);
|
||||||
|
EXPORT_C_(void) CALLBACK USBwrite32(u32 addr, u32 value);
|
||||||
|
EXPORT_C_(void) CALLBACK USBasync(u32 cycles);
|
||||||
|
|
||||||
|
// cycles = IOP cycles before calling callback,
|
||||||
|
// if callback returns 1 the irq is triggered, else not
|
||||||
|
EXPORT_C_(void) CALLBACK USBirqCallback(USBcallback callback);
|
||||||
|
EXPORT_C_(USBhandler) CALLBACK USBirqHandler(void);
|
||||||
|
EXPORT_C_(void) CALLBACK USBsetRAM(void *mem);
|
||||||
|
|
||||||
|
// Extended functions
|
||||||
|
|
||||||
|
EXPORT_C_(s32) CALLBACK USBfreeze(int mode, freezeData *data);
|
||||||
|
EXPORT_C_(void) CALLBACK USBconfigure();
|
||||||
|
EXPORT_C_(void) CALLBACK USBabout();
|
||||||
|
EXPORT_C_(s32) CALLBACK USBtest();
|
||||||
|
|
||||||
|
#endif // __USBAPI_H__
|
Loading…
Reference in New Issue