LIBRARY PSXMEM.DLL
EXPORTS
_DLL_Count @1 ; _DLL_Count
_Game_About @5 ; _Game_About
_Game_Author @7 ; _Game_Author
_Game_Close @9 ; _Game_Close
_Game_Count @2 ; _Game_Count
_Game_Edit @4 ; _Game_Edit
_Game_Init @8 ; _Game_Init
_Game_List @3 ; _Game_List
_Game_Name @6 ; _Game_Name
_Get_Game @10 ; _Get_Game
_Get_Status @13 ; _Get_Status
_Set_Game @11 ; _Set_Game
_Set_RegGame @12 ; _Set_RegGame
___CPPdebugHook @14 ; ___CPPdebugHook
#ifndef _PI_UNIT_H_
#define _PI_UNIT_H_
#include "PSEmu Plugin Defs.h"
#include "GPU_Unit.h"
#ifdef __BUILDING_THE_DLL
#define __EXPORT_TYPE(DEF) extern "C" DEF __export CALLBACK
#else
#define __EXPORT_TYPE(DEF) extern "C" DEF __import CALLBACK
#endif
typedef struct
{
unsigned long ulFreezeVersion; // should be always 1 for now (set by main emu)
unsigned long ulStatus; // current gpu status
unsigned long ulControl[256]; // latest control register values
unsigned char psxVRam[1024*512*2]; // current VRam image
} GPUFreeze_t;
__EXPORT_TYPE(char *) PSEgetLibName(void);
__EXPORT_TYPE(unsigned long) PSEgetLibType(void);
__EXPORT_TYPE(unsigned long) PSEgetLibVersion(void);
__EXPORT_TYPE(long) GPUinit();
__EXPORT_TYPE(long) GPUshutdown();
__EXPORT_TYPE(void) GPUmakeSnapshot(void);
__EXPORT_TYPE(long) GPUopen(HWND hwndGPU);
__EXPORT_TYPE(long) GPUclose();
__EXPORT_TYPE(void) GPUupdateLace(void);
__EXPORT_TYPE(unsigned long) GPUreadStatus(void);
__EXPORT_TYPE(void) GPUwriteStatus(unsigned long gdata);
__EXPORT_TYPE(unsigned long) GPUreadData(void);
__EXPORT_TYPE(void) GPUreadDataMem(unsigned long * pMem, int iSize);
__EXPORT_TYPE(void) GPUwriteData(unsigned long gdata);
__EXPORT_TYPE(void) GPUwriteDataMem(unsigned long * pMem, int iSize);
__EXPORT_TYPE(void) GPUsetMode(unsigned long gdata);
__EXPORT_TYPE(long) GPUgetMode(void);
__EXPORT_TYPE(long) GPUdmaChain(unsigned long * baseAddrL, unsigned long addr);
__EXPORT_TYPE(long) GPUconfigure(void);
__EXPORT_TYPE(void) GPUabout(void);
__EXPORT_TYPE(long) GPUtest(void);
__EXPORT_TYPE(void) GPUdisplayText(char * pText);
__EXPORT_TYPE(void) GPUdisplayFlags(unsigned long dwFlags);
__EXPORT_TYPE(long) GPUfreeze(unsigned long ulGetFreezeData,GPUFreeze_t * pF);
#endif
////////////////////////////////////////////////////////////////////////
// stuff to make this a true PDK module
////////////////////////////////////////////////////////////////////////
char * CALLBACK PSEgetLibName(void)
{
return libraryName;
}
unsigned long CALLBACK PSEgetLibType(void)
{
return PSE_LT_GPU;
}
unsigned long CALLBACK PSEgetLibVersion(void)
{
return version<<16|revision<<8|build;
}
////////////////////////////////////////////////////////////////////////
// Init/shutdown, will be called just once on emu start/close
////////////////////////////////////////////////////////////////////////
long CALLBACK GPUinit() // GPU INIT
{
// load configuration information here
CFG_LoadGPU_Settings();
return 0;
}
long CALLBACK GPUshutdown() // GPU SHUTDOWN
{
return 0;
}