diff options
author | PCSX* teams | 2010-11-16 14:15:22 +0200 |
---|---|---|
committer | Grazvydas Ignotas | 2010-11-16 14:15:22 +0200 |
commit | ef79bbde537d6b9c745a7d86cb9df1d04c35590d (patch) | |
tree | ef8d2520dbb9e1e345b41b12c9959f300ca8fd10 /plugins/dfxvideo/zn.c | |
download | pcsx_rearmed-ef79bbde537d6b9c745a7d86cb9df1d04c35590d.tar.gz pcsx_rearmed-ef79bbde537d6b9c745a7d86cb9df1d04c35590d.tar.bz2 pcsx_rearmed-ef79bbde537d6b9c745a7d86cb9df1d04c35590d.zip |
pcsxr-1.9.92
Diffstat (limited to 'plugins/dfxvideo/zn.c')
-rw-r--r-- | plugins/dfxvideo/zn.c | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/plugins/dfxvideo/zn.c b/plugins/dfxvideo/zn.c new file mode 100644 index 0000000..ea8537b --- /dev/null +++ b/plugins/dfxvideo/zn.c @@ -0,0 +1,255 @@ +/*************************************************************************** + zn.c - description + ------------------- + begin : Sat Jan 31 2004 + copyright : (C) 2004 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ +/*************************************************************************** + * * + * 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. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +#define _IN_ZN + +#include "externals.h" + +// --------------------------------------------------- // +// - psx gpu plugin interface prototypes-------------- // +// --------------------------------------------------- // + +long GPUopen(unsigned long *disp, const char *CapText, const char *CfgFile); + +void CALLBACK GPUdisplayText(char * pText); +void CALLBACK GPUdisplayFlags(uint32_t dwFlags); +void CALLBACK GPUmakeSnapshot(void); +long CALLBACK GPUinit(); +long CALLBACK GPUclose(); +long CALLBACK GPUshutdown(); +void CALLBACK GPUcursor(int iPlayer,int x,int y); +void CALLBACK GPUupdateLace(void); +uint32_t CALLBACK GPUreadStatus(void); +void CALLBACK GPUwriteStatus(uint32_t gdata); +void CALLBACK GPUreadDataMem(uint32_t * pMem, int iSize); +uint32_t CALLBACK GPUreadData(void); +void CALLBACK GPUwriteDataMem(uint32_t * pMem, int iSize); +void CALLBACK GPUwriteData(uint32_t gdata); +void CALLBACK GPUsetMode(uint32_t gdata); +long CALLBACK GPUgetMode(void); +long CALLBACK GPUdmaChain(uint32_t * baseAddrL, uint32_t addr); +long CALLBACK GPUconfigure(void); +void CALLBACK GPUabout(void); +long CALLBACK GPUtest(void); +long CALLBACK GPUfreeze(uint32_t ulGetFreezeData,void * pF); +void CALLBACK GPUgetScreenPic(unsigned char * pMem); +void CALLBACK GPUshowScreenPic(unsigned char * pMem); + +void CALLBACK GPUkeypressed(int keycode); + + +// --------------------------------------------------- // +// - zn gpu interface -------------------------------- // +// --------------------------------------------------- // + +uint32_t dwGPUVersion=0; +int iGPUHeight=512; +int iGPUHeightMask=511; +int GlobalTextIL=0; +int iTileCheat=0; + +// --------------------------------------------------- // +// --------------------------------------------------- // +// --------------------------------------------------- // + +typedef struct GPUOTAG + { + uint32_t Version; // Version of structure - currently 1 + long hWnd; // Window handle + uint32_t ScreenRotation; // 0 = 0CW, 1 = 90CW, 2 = 180CW, 3 = 270CW = 90CCW + uint32_t GPUVersion; // 0 = a, 1 = b, 2 = c + const char* GameName; // NULL terminated string + const char* CfgFile; // NULL terminated string + } GPUConfiguration_t; + +// --------------------------------------------------- // +// --------------------------------------------------- // +// --------------------------------------------------- // + +void CALLBACK ZN_GPUdisplayFlags(uint32_t dwFlags) +{ + GPUdisplayFlags(dwFlags); +} + +// --------------------------------------------------- // + +void CALLBACK ZN_GPUmakeSnapshot(void) +{ + GPUmakeSnapshot(); +} + +// --------------------------------------------------- // + +long CALLBACK ZN_GPUinit() +{ // we always set the vram size to 2MB, if the ZN interface is used + iGPUHeight=1024; + iGPUHeightMask=1023; + + return GPUinit(); +} + +// --------------------------------------------------- // + +long CALLBACK ZN_GPUopen(void * vcfg) +{ + GPUConfiguration_t * cfg=(GPUConfiguration_t *)vcfg; + long lret; + + if(!cfg) return -1; + if(cfg->Version!=1) return -1; + + lret = GPUopen(&cfg->hWnd, cfg->GameName, cfg->CfgFile); + + +/* + if(!lstrcmp(cfg->GameName,"kikaioh") || + !lstrcmp(cfg->GameName,"sr2j") || + !lstrcmp(cfg->GameName,"rvschool_a")) + iTileCheat=1; +*/ + + // some ZN games seem to erase the cluts with a 'white' TileS... strange.. + // I've added a cheat to avoid this issue. We can set it globally (for + // all ZiNc games) without much risk + + iTileCheat=1; + + dwGPUVersion=cfg->GPUVersion; + + return lret; +} + +// --------------------------------------------------- // + +long CALLBACK ZN_GPUclose() +{ + return GPUclose(); +} + +// --------------------------------------------------- // + +long CALLBACK ZN_GPUshutdown() +{ + return GPUshutdown(); +} + +// --------------------------------------------------- // + +void CALLBACK ZN_GPUupdateLace(void) +{ + GPUupdateLace(); +} + +// --------------------------------------------------- // + +uint32_t CALLBACK ZN_GPUreadStatus(void) +{ + return GPUreadStatus(); +} + +// --------------------------------------------------- // + +void CALLBACK ZN_GPUwriteStatus(uint32_t gdata) +{ + GPUwriteStatus(gdata); +} + +// --------------------------------------------------- // + +long CALLBACK ZN_GPUdmaSliceOut(uint32_t *baseAddrL, uint32_t addr, uint32_t iSize) +{ + GPUreadDataMem(baseAddrL+addr,iSize); + return 0; +} + +// --------------------------------------------------- // + +uint32_t CALLBACK ZN_GPUreadData(void) +{ + return GPUreadData(); +} + +// --------------------------------------------------- // + +void CALLBACK ZN_GPUsetMode(uint32_t gdata) +{ + GPUsetMode(gdata); +} + +// --------------------------------------------------- // + +long CALLBACK ZN_GPUgetMode(void) +{ + return GPUgetMode(); +} + +// --------------------------------------------------- // + +long CALLBACK ZN_GPUdmaSliceIn(uint32_t *baseAddrL, uint32_t addr, uint32_t iSize) +{ + GPUwriteDataMem(baseAddrL+addr,iSize); + return 0; +} +// --------------------------------------------------- // + +void CALLBACK ZN_GPUwriteData(uint32_t gdata) +{ + GPUwriteDataMem(&gdata,1); +} + +// --------------------------------------------------- // + +long CALLBACK ZN_GPUdmaChain(uint32_t * baseAddrL, uint32_t addr) +{ + return GPUdmaChain(baseAddrL,addr); +} + +// --------------------------------------------------- // + +long CALLBACK ZN_GPUtest(void) +{ + return GPUtest(); +} + +// --------------------------------------------------- // + +long CALLBACK ZN_GPUfreeze(uint32_t ulGetFreezeData,void * pF) +{ + return GPUfreeze(ulGetFreezeData,pF); +} + +// --------------------------------------------------- // + +void CALLBACK ZN_GPUgetScreenPic(unsigned char * pMem) +{ + GPUgetScreenPic(pMem); +} + +// --------------------------------------------------- // + +void CALLBACK ZN_GPUshowScreenPic(unsigned char * pMem) +{ + GPUshowScreenPic(pMem); +} + +// --------------------------------------------------- // + +void CALLBACK ZN_GPUkeypressed(int keycode) +{ + GPUkeypressed(keycode); +} + |