diff --git a/cmake/SelectPcsx2Plugins.cmake b/cmake/SelectPcsx2Plugins.cmake index a8e8b4c0c5..21d8457ea5 100644 --- a/cmake/SelectPcsx2Plugins.cmake +++ b/cmake/SelectPcsx2Plugins.cmake @@ -82,14 +82,6 @@ endif() #------------------------------------------------------------------------------- -#--------------------------------------- -# GSnull -#--------------------------------------- -if(GTKn_FOUND AND EXTRA_PLUGINS) - set(GSnull TRUE) -endif() -#--------------------------------------- - #--------------------------------------- # GSdx #--------------------------------------- diff --git a/debian-packager/copyright b/debian-packager/copyright index 3bf92292d1..b537809e67 100644 --- a/debian-packager/copyright +++ b/debian-packager/copyright @@ -8,11 +8,11 @@ Copyright: 2010-2012 Miguel Colon License: LGPL-3 -Files: pcsx2/* common/* plugins/GSnull/* +Files: pcsx2/* common/* Copyright: 2002-2012 PCSX2 Dev Team License: LGPL-3+ -Files: pcsx2/Mdec.cpp pcsx2/Mdec.h pcsx2/RDebug/deci2_drfp.cpp pcsx2/IPU/mpeg2lib/* pcsx2/cheatscpp.h common/include/api/* plugins/GSnull/Registers.h plugins/GSnull/Linux/Linux* plugins/GSnull/Linux/Config* +Files: pcsx2/Mdec.cpp pcsx2/Mdec.h pcsx2/RDebug/deci2_drfp.cpp pcsx2/IPU/mpeg2lib/* pcsx2/cheatscpp.h common/include/api/* Copyright: 2002-2012 PCSX2 Dev Team License: GPL-2+ diff --git a/linux_various/pre-commit b/linux_various/pre-commit index 3ddc43f080..a28ce68d7d 100755 --- a/linux_various/pre-commit +++ b/linux_various/pre-commit @@ -28,7 +28,7 @@ PARSE_EXTS=true # file types to parse. Only effective when PARSE_EXTS is true. FILE_EXTS=".c .h .cpp .hpp .inl" -ALLOWED_ROOT_DIR="./plugins/GSnull ./common" +ALLOWED_ROOT_DIR="./common" ################################################################## # There should be no need to change anything below this line. diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index b175990f45..e49e024d87 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -10,6 +10,3 @@ if(EXISTS "${CMAKE_SOURCE_DIR}/plugins/GSdx" AND GSdx) add_subdirectory(GSdx) endif() -if(EXISTS "${CMAKE_SOURCE_DIR}/plugins/GSnull" AND GSnull) - add_subdirectory(GSnull) -endif() diff --git a/plugins/GSnull/CMakeLists.txt b/plugins/GSnull/CMakeLists.txt deleted file mode 100644 index 34ed650e7b..0000000000 --- a/plugins/GSnull/CMakeLists.txt +++ /dev/null @@ -1,78 +0,0 @@ -# Check that people use the good file -if(NOT TOP_CMAKE_WAS_SOURCED) - message(FATAL_ERROR " - You did not 'cmake' the good CMakeLists.txt file. Use the one in the top dir. - It is advice to delete all wrongly generated cmake stuff => CMakeFiles & CMakeCache.txt") -endif() - - -# plugin name -set(Output GSnull) - -set(GSnullFinalFlags - -fvisibility=hidden - -Wall - -Wno-parentheses - ) - -# GSnull sources -set(GSnullSources - GifTransfer.cpp - GS.cpp - GSLog.cpp - Registers.cpp) - -# GSnull headers -set(GSnullHeaders - GifTransfer.h - GS.h - Registers.h) - -# GSnull Linux sources -set(GSnullLinuxSources - Linux/Config.cpp - Linux/GSLinux.cpp - Linux/Linux.cpp) - -# GSnull Linux headers -set(GSnullLinuxHeaders - Linux/Config.h - Linux/GSLinux.h - Linux/Linux.h) - -# GSnull null sources -set(GSnullnullSources - null/GSnull.cpp) - -# GSnull null headers -set(GSnullnullHeaders - null/GSnull.h) - -# GSnull Windows sources -set(GSnullWindowsSources - Windows/Config.cpp - Windows/GS.def - Windows/GS.rc - Windows/GSwin.cpp - Windows/Win32.cpp) - -# GSnull Windows headers -set(GSnullWindowsHeaders - ) - -set(GSnullFinalSources - ${GSnullSources} - ${GSnullHeaders} - ${GSnullnullSources} - ${GSnullnullHeaders} - ${GSnullLinuxSources} - ${GSnullLinuxHeaders} -) - -set(GSnullFinalLibs - ${GTK2_LIBRARIES} - ${X11_LIBRARIES} -) - -add_pcsx2_plugin(${Output} "${GSnullFinalSources}" "${GSnullFinalLibs}" "${GSnullFinalFlags}") -target_compile_features(${Output} PRIVATE cxx_std_17) \ No newline at end of file diff --git a/plugins/GSnull/GS.cpp b/plugins/GSnull/GS.cpp deleted file mode 100644 index 2b026a8e7f..0000000000 --- a/plugins/GSnull/GS.cpp +++ /dev/null @@ -1,290 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - - -#include -#include -#include -#include - -#include -#include - -using namespace std; - -#include "GS.h" -#include "GifTransfer.h" -#include "null/GSnull.h" -#ifdef _MSC_VER -#include "svnrev.h" -#endif - -const unsigned char version = PS2E_GS_VERSION; -const unsigned char revision = 0; -const unsigned char build = 1; // increase that with each version - -Config conf; -u32 GSKeyEvent = 0; -bool GSShift = false, GSAlt = false; - -string s_strIniPath = "inis"; -extern std::string s_strLogPath; -const char *s_iniFilename = "GSnull.ini"; -GSVars gs; - -// Because I haven't bothered to get GSOpen2 working in Windows yet in GSNull. -#ifdef __linux__ -#define USE_GSOPEN2 -#endif - -void (*GSirq)(); -extern void ResetRegs(); -extern void SetMultithreaded(); -extern void SetFrameSkip(bool skip); -extern void InitPath(); - -EXPORT_C_(u32) -PS2EgetLibType() -{ - return PS2E_LT_GS; -} - -#ifdef _MSC_VER -static char libraryName[256]; -#endif - -EXPORT_C_(const char *) -PS2EgetLibName() -{ -#ifdef _MSC_VER - sprintf_s(libraryName, "GSnull Driver %lld%s", SVN_REV, SVN_MODS ? "m" : ""); - return libraryName; -#else - return "GSnull Driver"; -#endif -} - -EXPORT_C_(u32) -PS2EgetLibVersion2(u32 type) -{ - return (version << 16) | (revision << 8) | build; -} - -// basic funcs -EXPORT_C_(void) -GSsetSettingsDir(const char *dir) -{ - s_strIniPath = (dir == NULL) ? "inis" : dir; -} - -EXPORT_C_(void) -GSsetLogDir(const char *dir) -{ - // Get the path to the log directory. - s_strLogPath = (dir == NULL) ? "logs" : dir; - - // Reload the log file after updated the path - GSLog::Close(); - GSLog::Open(); -} - -EXPORT_C_(s32) -GSinit() -{ - LoadConfig(); - - GSLog::Open(); - - GSLog::WriteLn("Initializing GSnull."); - return 0; -} - -EXPORT_C_(void) -GSshutdown() -{ - GSLog::WriteLn("Shutting down GSnull."); - GSCloseWindow(); - GSLog::Close(); -} - -EXPORT_C_(s32) -GSopen(void *pDsp, const char *Title, int multithread) -{ - int err = 0; - GSLog::WriteLn("GS open."); - //assert( GSirq != NULL ); - - err = GSOpenWindow(pDsp, Title); - gs.MultiThreaded = multithread; - - ResetRegs(); - SetMultithreaded(); - InitPath(); - GSLog::WriteLn("Opening GSnull."); - return err; -} - -#ifdef USE_GSOPEN2 -EXPORT_C_(s32) -GSopen2(void *pDsp, u32 flags) -{ - GSLog::WriteLn("GS open2."); - - GSOpenWindow2(pDsp, flags); - - gs.MultiThreaded = true; - - ResetRegs(); - SetMultithreaded(); - InitPath(); - GSLog::WriteLn("Opening GSnull (2)."); - return 0; -} -#endif - -EXPORT_C_(void) -GSclose() -{ - GSLog::WriteLn("Closing GSnull."); - - // Better to only close the window on Shutdown. All the other plugins - // pretty much worked that way, and all old PCSX2 versions expect it as well. - //GSCloseWindow(); -} - -EXPORT_C_(void) -GSirqCallback(void (*callback)()) -{ - GSirq = callback; -} - -EXPORT_C_(s32) -GSfreeze(int mode, freezeData *data) -{ - return 0; -} - -EXPORT_C_(s32) -GStest() -{ - GSLog::WriteLn("Testing GSnull."); - return 0; -} - -EXPORT_C_(void) -GSvsync(int field) -{ - GSProcessMessages(); -} - -// returns the last tag processed (64 bits) -EXPORT_C_(void) -GSgetLastTag(u64 *ptag) -{ - *(u32 *)ptag = gs.nPath3Hack; - gs.nPath3Hack = 0; -} - -EXPORT_C_(void) -GSgifSoftReset(u32 mask) -{ - GSLog::WriteLn("Doing a soft reset of the GS plugin."); -} - -EXPORT_C_(void) -GSreadFIFO(u64 *mem) -{ -} - -EXPORT_C_(void) -GSreadFIFO2(u64 *mem, int qwc) -{ -} - -// extended funcs - -// GSkeyEvent gets called when there is a keyEvent from the PAD plugin -EXPORT_C_(void) -GSkeyEvent(keyEvent *ev) -{ - HandleKeyEvent(ev); -} - -EXPORT_C_(void) -GSchangeSaveState(int, const char *filename) -{ -} - -EXPORT_C_(void) -GSmakeSnapshot(char *path) -{ - - GSLog::WriteLn("Taking a snapshot."); -} - -EXPORT_C_(void) -GSmakeSnapshot2(char *pathname, int *snapdone, int savejpg) -{ - GSLog::WriteLn("Taking a snapshot to %s.", pathname); -} - -EXPORT_C_(void) -GSsetBaseMem(void *) -{ -} - -EXPORT_C_(void) -GSsetGameCRC(int crc, int gameoptions) -{ - GSLog::WriteLn("Setting the crc to '%x' with 0x%x for options.", crc, 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) -{ - SetFrameSkip(frameskip != 0); - GSLog::WriteLn("Frameskip set to %d.", frameskip); -} - -// if start is 1, starts recording spu2 data, else stops -// returns a non zero value if successful -// for now, pData is not used -EXPORT_C_(int) -GSsetupRecording(int start, void *pData) -{ - if (start) - GSLog::WriteLn("Pretending to record."); - else - GSLog::WriteLn("Pretending to stop recording."); - - return 1; -} - -EXPORT_C_(void) -GSreset() -{ - GSLog::WriteLn("Doing a reset of the GS plugin."); -} - -EXPORT_C_(void) -GSwriteCSR(u32 value) -{ -} - -EXPORT_C_(void) -GSgetDriverInfo(GSdriverInfo *info) -{ -} diff --git a/plugins/GSnull/GS.h b/plugins/GSnull/GS.h deleted file mode 100644 index bcb2bbeaac..0000000000 --- a/plugins/GSnull/GS.h +++ /dev/null @@ -1,93 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - -#ifndef __GS_H__ -#define __GS_H__ - -struct _keyEvent; -typedef struct _keyEvent keyEvent; - -#include -#include "Pcsx2Defs.h" - -#ifdef _WIN32 -#include "Windows/GSwin.h" -#endif - -#ifdef __linux__ -#include "Linux/GSLinux.h" -#endif - -#define GSdefs -#include "PS2Edefs.h" -#include "PS2Eext.h" - -#include "GifTransfer.h" -#include "null/GSnull.h" - -#ifdef _MSC_VER -#define EXPORT_C_(type) extern "C" type CALLBACK -#else -#define EXPORT_C_(type) extern "C" __attribute__((stdcall, externally_visible, visibility("default"))) type -#endif - -//#define GS_LOG GSLog::Log - -extern const unsigned char version; -extern const unsigned char revision; -extern const unsigned char build; - -typedef struct -{ - int Log; - bool path3; -} Config; - -typedef struct -{ - u32 CSRw; - pathInfo path[4]; - bool Path3transfer; - float q; - u32 imageTransfer; - int MultiThreaded; - int nPath3Hack; - - GIFReg regs; - GIFCTXTReg ctxt_regs[2]; -} GSVars; - -extern GSVars gs; - -extern Config conf; -extern u32 GSKeyEvent; -extern bool GSShift, GSAlt; - -extern void (*GSirq)(); - -namespace GSLog -{ -extern bool Open(); -extern void Close(); -extern void Log(const char *fmt, ...); -extern void Message(const char *fmt, ...); -extern void Print(const char *fmt, ...); -extern void WriteLn(const char *fmt, ...); -}; - -extern void SaveConfig(); -extern void LoadConfig(); - -#endif diff --git a/plugins/GSnull/GSLog.cpp b/plugins/GSnull/GSLog.cpp deleted file mode 100644 index 81c77c6f59..0000000000 --- a/plugins/GSnull/GSLog.cpp +++ /dev/null @@ -1,116 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - - -#include -#include -#include -#include - -#include -#include - -using namespace std; - -#include "GS.h" -#include "GifTransfer.h" -#include "null/GSnull.h" - -std::string s_strLogPath("logs"); - -namespace GSLog -{ -FILE *gsLog; - -bool Open() -{ - bool result = true; - - const std::string LogFile(s_strLogPath + "/GSnull.log"); - - gsLog = fopen(LogFile.c_str(), "w"); - - if (gsLog != NULL) { - setvbuf(gsLog, NULL, _IONBF, 0); - } else { - Message("Can't create log file %s.", LogFile.c_str()); - result = false; - } - - WriteLn("GSnull plugin version %d,%d", revision, build); - WriteLn("GS init."); - - return result; -} - -void Close() -{ - if (gsLog) { - fclose(gsLog); - gsLog = NULL; - } -} - -void Log(const char *fmt, ...) -{ - va_list list; - - if (!conf.Log || gsLog == NULL) - return; - - va_start(list, fmt); - vfprintf(gsLog, fmt, list); - va_end(list); -} - -void Message(const char *fmt, ...) -{ - va_list list; - char msg[512]; - - va_start(list, fmt); - vsprintf(msg, fmt, list); - va_end(list); - - SysMessage("%s\n", msg); -} - -void Print(const char *fmt, ...) -{ - va_list list; - char msg[512]; - - va_start(list, fmt); - vsprintf(msg, fmt, list); - va_end(list); - - Log(msg); - fprintf(stderr, "GSnull:%s", msg); -} - - -void WriteLn(const char *fmt, ...) -{ - va_list list; - char msg[512]; - - va_start(list, fmt); - vsprintf(msg, fmt, list); - va_end(list); - - Log("%s\n", msg); - fprintf(stderr, "GSnull:%s\n", msg); -} -}; diff --git a/plugins/GSnull/GifTransfer.cpp b/plugins/GSnull/GifTransfer.cpp deleted file mode 100644 index 5721d9f6b7..0000000000 --- a/plugins/GSnull/GifTransfer.cpp +++ /dev/null @@ -1,187 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - - -// Processes a GIFtag & packet, and throws out some gsIRQs as needed. -// Used to keep interrupts in sync with the EE, while the GS itself -// runs potentially several frames behind. -// size - size of the packet in simd128's - -#include "GS.h" -#include "GifTransfer.h" - -using namespace std; - -extern GSVars gs; - -PCSX2_ALIGNED16(u8 g_RealGSMem[0x2000]); - -template -void _GSgifTransfer(const u32 *pMem, u32 size) -{ - // FUNCLOG - - pathInfo *path = &gs.path[index]; - - while (size > 0) { - //GSLog::Writeln(_T("Transfer(%08x, %d) START\n"), pMem, size); - if (path->nloop == 0) { - path->setTag(pMem); - pMem += 4; - size--; - - // eeuser 7.2.2. GIFtag: "... when NLOOP is 0, the GIF does not output anything, and - // values other than the EOP field are disregarded." - if (path->nloop > 0) { - gs.q = 1.0f; - - if (path->tag.PRE && (path->tag.FLG == GIF_FLG_PACKED)) { - u32 tagprim = path->tag.PRIM; - GIFRegHandlerPRIM((u32 *)&tagprim); - } - } - } else { - switch (path->mode) { - case GIF_FLG_PACKED: { - // first try a shortcut for a very common case - - if (path->adonly && size >= path->nloop) { - size -= path->nloop; - - do { - GIFPackedRegHandlerA_D(pMem); - - pMem += 4; //sizeof(GIFPackedReg)/4; - } while (--path->nloop > 0); - break; - } - - do { - u32 reg = path->GetReg(); - GIFPackedRegHandlers[reg](pMem); - - pMem += 4; //sizeof(GIFPackedReg)/4; - size--; - } while (path->StepReg() && (size > 0)); - - break; - } - - case GIF_FLG_REGLIST: { - //GSLog::Writeln("%8.8x%8.8x %d L", ((u32*)&gs.regs)[1], *(u32*)&gs.regs, path->tag.nreg/4); - - size *= 2; - - do { - GIFRegHandlers[path->GetReg()](pMem); - - pMem += 2; - size--; - } while (path->StepReg() && (size > 0)); - - if (size & 1) - pMem += 2; - size /= 2; - break; - } - - case GIF_FLG_IMAGE: // FROM_VFRAM - case GIF_FLG_IMAGE2: // Used in the DirectX version, so we'll use it here too. - { - int len = min(size, path->nloop); - //GSLog::Writeln("GIF_FLG_IMAGE(%d)=%d", gs.imageTransfer, len); - - switch (gs.imageTransfer) { - case 0: - //TransferHostLocal(pMem, len * 4); - break; - - case 1: - // This can't happen; downloads can not be started or performed as part of - // a GIFtag operation. They're an entirely separate process that can only be - // done through the ReverseFIFO transfer (aka ReadFIFO). --air - assert(0); - break; - - case 2: - // //TransferLocalLocal(); - break; - - case 3: - //assert(0); - break; - - default: - //assert(0); - break; - } - - pMem += len * 4; - - path->nloop -= len; - size -= len; - - break; - } - - default: // GIF_IMAGE - GSLog::WriteLn("*** WARNING **** Unexpected GIFTag flag."); - assert(0); - path->nloop = 0; - break; - } - } - } -} - -#define DO_GIF_TRANSFERS - -// Obsolete. Included because it's still in GSdef. -EXPORT_C_(void) -GSgifTransfer1(u32 *pMem, u32 addr) -{ -#ifdef DO_GIF_TRANSFERS - _GSgifTransfer<0>((u32 *)((u8 *)pMem + addr), (0x4000 - addr) / 16); -#endif -} - -EXPORT_C_(void) -GSgifTransfer(const u32 *pMem, u32 size) -{ -#ifdef DO_GIF_TRANSFERS - _GSgifTransfer<3>(const_cast(pMem), size); -#endif -} - -EXPORT_C_(void) -GSgifTransfer2(u32 *pMem, u32 size) -{ -#ifdef DO_GIF_TRANSFERS - _GSgifTransfer<1>(const_cast(pMem), size); -#endif -} - -EXPORT_C_(void) -GSgifTransfer3(u32 *pMem, u32 size) -{ -#ifdef DO_GIF_TRANSFERS - _GSgifTransfer<2>(const_cast(pMem), size); -#endif -} - -void InitPath() -{ - gs.path[0].mode = gs.path[1].mode = gs.path[2].mode = gs.path[3].mode = 0; -} diff --git a/plugins/GSnull/GifTransfer.h b/plugins/GSnull/GifTransfer.h deleted file mode 100644 index e7ae969d77..0000000000 --- a/plugins/GSnull/GifTransfer.h +++ /dev/null @@ -1,132 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - -#ifndef __GIF_TRANSFER_H__ -#define __GIF_TRANSFER_H__ - -#include -#include -#include "Registers.h" - -enum GIF_FLG { - GIF_FLG_PACKED = 0, - GIF_FLG_REGLIST = 1, - GIF_FLG_IMAGE = 2, - GIF_FLG_IMAGE2 = 3 -}; - -// -// GIFTag -union GIFTag -{ - u64 ai64[2]; - u32 ai32[4]; - - struct - { - u32 NLOOP : 15; - u32 EOP : 1; - u32 _PAD1 : 16; - u32 _PAD2 : 14; - u32 PRE : 1; - u32 PRIM : 11; - u32 FLG : 2; // enum GIF_FLG - u32 NREG : 4; - u64 REGS : 64; - }; - - void set(const u32 *data) - { - for (int i = 0; i <= 3; i++) { - ai32[i] = data[i]; - } - } - - GIFTag(u32 *data) - { - set(data); - } - - GIFTag() - { - ai64[0] = 0; - ai64[1] = 0; - } -}; - -// EE part. Data transfer packet description - -typedef struct -{ - u32 mode; - int reg; - u64 regs; - u32 nloop; - int eop; - int nreg; - u32 adonly; - GIFTag tag; - - void setTag(const u32 *data) - { - tag.set(data); - - nloop = tag.NLOOP; - eop = tag.EOP; - mode = tag.FLG; - //adonly = false; - - // Hmm.... - nreg = tag.NREG << 2; - if (nreg == 0) - nreg = 64; - regs = tag.REGS; - reg = 0; - //if ((nreg == 4) && (regs == GIF_REG_A_D)) adonly = true; - - // GSLog::Writeln"GIFtag: %8.8lx_%8.8lx_%8.8lx_%8.8lx: EOP=%d, NLOOP=%x, FLG=%x, NREG=%d, PRE=%d", - // data[3], data[2], data[1], data[0], - // path->eop, path->nloop, mode, path->nreg, tag.PRE); - } - - u32 GetReg() - { - return (regs >> reg) & 0xf; - } - - bool StepReg() - { - reg += 4; - - if (reg == nreg) { - reg = 0; - nloop--; - - if (nloop == 0) - return false; - } - - return true; - } - -} pathInfo; - -extern void _GSgifPacket(pathInfo *path, const u32 *pMem); -extern void _GSgifRegList(pathInfo *path, const u32 *pMem); -template -extern void _GSgifTransfer(const u32 *pMem, u32 size); -extern GIFRegHandler GIFPackedRegHandlers[]; -extern GIFRegHandler GIFRegHandlers[]; -#endif // GIFTRANSFER_H_INCLUDED diff --git a/plugins/GSnull/License.txt b/plugins/GSnull/License.txt deleted file mode 100644 index 1bcc46f53a..0000000000 --- a/plugins/GSnull/License.txt +++ /dev/null @@ -1,342 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. - - diff --git a/plugins/GSnull/Linux/Config.cpp b/plugins/GSnull/Linux/Config.cpp deleted file mode 100644 index e56398307d..0000000000 --- a/plugins/GSnull/Linux/Config.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* GSnull - * Copyright (C) 2004-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 - */ - -#include -using namespace std; - -#include "GS.h" -#include "Config.h" -#include "null/config.inl" - -extern string s_strIniPath; -PluginConf Ini; - -void CFGabout() -{ - SysMessage("GSnull: A simple null plugin."); -} - -void CFGconfigure() -{ - LoadConfig(); - ConfigureLogging(); - SaveConfig(); -} - -void LoadConfig() -{ - const std::string iniFile(s_strIniPath + "/GSNull.ini"); - - if (!Ini.Open(iniFile, READ_FILE)) { - g_plugin_log.WriteLn("failed to open %s", iniFile.c_str()); - SaveConfig(); //save and return - return; - } - - conf.Log = Ini.ReadInt("logging", 0); - Ini.Close(); -} - -void SaveConfig() -{ - const std::string iniFile(s_strIniPath + "/GSNull.ini"); - - if (!Ini.Open(iniFile, WRITE_FILE)) { - g_plugin_log.WriteLn("failed to open %s", iniFile.c_str()); - return; - } - - Ini.WriteInt("logging", conf.Log); - Ini.Close(); -} diff --git a/plugins/GSnull/Linux/Config.h b/plugins/GSnull/Linux/Config.h deleted file mode 100644 index 5b691e066f..0000000000 --- a/plugins/GSnull/Linux/Config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* GSnull - * Copyright (C) 2004-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 - */ - -void SaveConf(); -void LoadConf(); - -extern long CFGmessage(char *msg); -extern void CFGconfigure(); -extern void CFGabout(); diff --git a/plugins/GSnull/Linux/GSLinux.cpp b/plugins/GSnull/Linux/GSLinux.cpp deleted file mode 100644 index 192af93a03..0000000000 --- a/plugins/GSnull/Linux/GSLinux.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - -#include "GS.h" -#include "GSLinux.h" - -Display *display; -int screen; -GtkScrolledWindow *win; - -int GSOpenWindow(void *pDsp, const char *Title) -{ - display = XOpenDisplay(0); - screen = DefaultScreen(display); - - if (pDsp != NULL) - *(Display **)pDsp = display; - else - return -1; - - return 0; -} - -int GSOpenWindow2(void *pDsp, u32 flags) -{ - if (pDsp != NULL) - win = *(GtkScrolledWindow **)pDsp; - else - return -1; - - return 0; -} - -void GSCloseWindow() -{ - if (display != NULL) - XCloseDisplay(display); -} - -void GSProcessMessages() -{ - if (GSKeyEvent) { - int myKeyEvent = GSKeyEvent; - bool myShift = GSShift; - GSKeyEvent = 0; - - switch (myKeyEvent) { - case XK_F5: - OnKeyboardF5(myShift); - break; - case XK_F6: - OnKeyboardF6(myShift); - break; - case XK_F7: - OnKeyboardF7(myShift); - break; - case XK_F9: - OnKeyboardF9(myShift); - break; - } - } -} - - -void HandleKeyEvent(keyEvent *ev) -{ - switch (ev->evt) { - case KEYPRESS: - switch (ev->key) { - case XK_F5: - case XK_F6: - case XK_F7: - case XK_F9: - GSKeyEvent = ev->key; - break; - case XK_Escape: - break; - case XK_Shift_L: - case XK_Shift_R: - GSShift = true; - break; - case XK_Alt_L: - case XK_Alt_R: - GSAlt = true; - break; - } - break; - case KEYRELEASE: - switch (ev->key) { - case XK_Shift_L: - case XK_Shift_R: - GSShift = false; - break; - case XK_Alt_L: - case XK_Alt_R: - GSAlt = false; - break; - } - } -} diff --git a/plugins/GSnull/Linux/GSLinux.h b/plugins/GSnull/Linux/GSLinux.h deleted file mode 100644 index 5b872ef223..0000000000 --- a/plugins/GSnull/Linux/GSLinux.h +++ /dev/null @@ -1,29 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - -#ifndef __GSLINUX_H__ -#define __GSLINUX_H__ - -#include -#include -#include - -extern int GSOpenWindow(void *pDsp, const char *Title); -extern int GSOpenWindow2(void *pDsp, u32 flags); -extern void GSCloseWindow(); -extern void GSProcessMessages(); -extern void HandleKeyEvent(keyEvent *ev); - -#endif diff --git a/plugins/GSnull/Linux/Linux.cpp b/plugins/GSnull/Linux/Linux.cpp deleted file mode 100644 index 23c9cd431a..0000000000 --- a/plugins/GSnull/Linux/Linux.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/* GSnull - * Copyright (C) 2004-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 - */ - -#include "GS.h" -#include "Config.h" - -EXPORT_C_(void) -GSconfigure() -{ - CFGconfigure(); -} - -EXPORT_C_(void) -GSabout() -{ - CFGabout(); -} diff --git a/plugins/GSnull/Linux/Linux.h b/plugins/GSnull/Linux/Linux.h deleted file mode 100644 index dd2e726f66..0000000000 --- a/plugins/GSnull/Linux/Linux.h +++ /dev/null @@ -1,17 +0,0 @@ -/* GSnull - * Copyright (C) 2004-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 - */ \ No newline at end of file diff --git a/plugins/GSnull/ReadMe.txt b/plugins/GSnull/ReadMe.txt deleted file mode 100644 index 481b219cc0..0000000000 --- a/plugins/GSnull/ReadMe.txt +++ /dev/null @@ -1,27 +0,0 @@ -GSnull v0.1 -------------- - - This is an extension to use with play station2 emulators - as PCSX2 (only one right now). - The plugin is free open source code. - - Usage: - ----- - Place the file "GSnull.so.x.x.x" (linux) or "GSnull.dll" (win32) - at the Plugin directory of the Emulator to use it. - - Changes: - ------- - - v0.1: -* First Release -* Tested with Pcsx2 -* Based off of FWnull. - - Authors: - ------- -arcum42 - -based off work by: - shadow - linuzappz diff --git a/plugins/GSnull/Registers.cpp b/plugins/GSnull/Registers.cpp deleted file mode 100644 index 3e24b620ba..0000000000 --- a/plugins/GSnull/Registers.cpp +++ /dev/null @@ -1,538 +0,0 @@ -/* GSnull - * Copyright (C) 2004-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 - */ - -#include "GS.h" -#include "Registers.h" - -GIFRegHandler GIFPackedRegHandlers[16]; -GIFRegHandler GIFRegHandlers[256]; - -// For now, I'm just rigging this up to store all the register information coming in, without doing -// any of the normal processing. - -void __gifCall GIFPackedRegHandlerNull(const u32 *data) -{ -} - -// All these just call their non-packed equivalent. -void __gifCall GIFPackedRegHandlerPRIM(const u32 *data) { GIFRegHandlerPRIM(data); } - -template -void __gifCall GIFPackedRegHandlerTEX0(const u32 *data) -{ - GIFRegHandlerTEX0(data); -} - -template -void __gifCall GIFPackedRegHandlerCLAMP(const u32 *data) -{ - GIFRegHandlerCLAMP(data); -} - -void __gifCall GIFPackedRegHandlerTEX0_1(const u32 *data) { GIFRegHandlerTEX0<0>(data); } -void __gifCall GIFPackedRegHandlerTEX0_2(const u32 *data) { GIFRegHandlerTEX0<1>(data); } -void __gifCall GIFPackedRegHandlerCLAMP_1(const u32 *data) { GIFRegHandlerCLAMP<0>(data); } -void __gifCall GIFPackedRegHandlerCLAMP_2(const u32 *data) { GIFRegHandlerCLAMP<1>(data); } -void __gifCall GIFPackedRegHandlerXYZF3(const u32 *data) { GIFRegHandlerXYZF3(data); } -void __gifCall GIFPackedRegHandlerXYZ3(const u32 *data) { GIFRegHandlerXYZ3(data); } - -void __gifCall GIFPackedRegHandlerRGBA(const u32 *data) -{ - GIFPackedRGBA *r = (GIFPackedRGBA *)(data); - gs.regs.RGBAQ.R = r->R; - gs.regs.RGBAQ.G = r->G; - gs.regs.RGBAQ.B = r->B; - gs.regs.RGBAQ.A = r->A; - gs.regs.RGBAQ.Q = gs.q; -} - -void __gifCall GIFPackedRegHandlerSTQ(const u32 *data) -{ - GIFPackedSTQ *r = (GIFPackedSTQ *)(data); - gs.regs.ST.S = r->S; - gs.regs.ST.T = r->T; - gs.q = r->Q; -} - -void __gifCall GIFPackedRegHandlerUV(const u32 *data) -{ - GIFPackedUV *r = (GIFPackedUV *)(data); - gs.regs.UV.U = r->U; - gs.regs.UV.V = r->V; -} - -void __gifCall KickVertex(bool adc) -{ -} - -void __gifCall GIFPackedRegHandlerXYZF2(const u32 *data) -{ - GIFPackedXYZF2 *r = (GIFPackedXYZF2 *)(data); - gs.regs.XYZ.X = r->X; - gs.regs.XYZ.Y = r->Y; - gs.regs.XYZ.Z = r->Z; - gs.regs.FOG.F = r->F; -} - -void __gifCall GIFPackedRegHandlerXYZ2(const u32 *data) -{ - GIFPackedXYZ2 *r = (GIFPackedXYZ2 *)(data); - gs.regs.XYZ.X = r->X; - gs.regs.XYZ.Y = r->Y; - gs.regs.XYZ.Z = r->Z; -} - -void __gifCall GIFPackedRegHandlerFOG(const u32 *data) -{ - GIFPackedFOG *r = (GIFPackedFOG *)(data); - gs.regs.FOG.F = r->F; -} - -void __gifCall GIFPackedRegHandlerA_D(const u32 *data) -{ - GIFPackedA_D *r = (GIFPackedA_D *)(data); - - GIFRegHandlers[r->ADDR](data); -} - -void __gifCall GIFPackedRegHandlerNOP(const u32 *data) -{ -} - -void __gifCall GIFRegHandlerNull(const u32 *data) -{ -} - -void __gifCall GIFRegHandlerRGBAQ(const u32 *data) -{ - GIFRegRGBAQ *r = (GIFRegRGBAQ *)(data); - gs.regs.RGBAQ._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerST(const u32 *data) -{ - GIFRegST *r = (GIFRegST *)(data); - gs.regs.ST._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerUV(const u32 *data) -{ - GIFRegUV *r = (GIFRegUV *)(data); - gs.regs.UV._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerXYZF2(const u32 *data) -{ - GIFRegXYZF *r = (GIFRegXYZF *)(data); - gs.regs.XYZF._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerXYZ2(const u32 *data) -{ - GIFRegXYZ *r = (GIFRegXYZ *)(data); - gs.regs.XYZ._u64 = r->_u64; -} - -template -void __gifCall GIFRegHandlerTEX0(const u32 *data) -{ - GIFRegTEX0 *r = (GIFRegTEX0 *)(data); - gs.ctxt_regs[i].TEX0._u64 = r->_u64; -} - -template -void __gifCall GIFRegHandlerCLAMP(const u32 *data) -{ - GIFRegCLAMP *r = (GIFRegCLAMP *)(data); - gs.ctxt_regs[i].CLAMP._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerFOG(const u32 *data) -{ - GIFRegFOG *r = (GIFRegFOG *)(data); - gs.regs.FOG.F = r->F; -} - -void __gifCall GIFRegHandlerXYZF3(const u32 *data) -{ - GIFRegXYZF *r = (GIFRegXYZF *)(data); - gs.regs.XYZF._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerXYZ3(const u32 *data) -{ - GIFRegXYZ *r = (GIFRegXYZ *)(data); - gs.regs.XYZ._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerNOP(const u32 *data) -{ -} - -template -void __fastcall GIFRegHandlerTEX1(const u32 *data) -{ - GIFRegTEX1 *r = (GIFRegTEX1 *)(data); - gs.ctxt_regs[i].TEX1._u64 = r->_u64; -} - -template -void __gifCall GIFRegHandlerTEX2(const u32 *data) -{ - GIFRegTEX2 *r = (GIFRegTEX2 *)(data); - gs.ctxt_regs[i].TEX2._u64 = r->_u64; -} - -template -void __gifCall GIFRegHandlerXYOFFSET(const u32 *data) -{ - GIFRegXYOFFSET *r = (GIFRegXYOFFSET *)(data); - gs.ctxt_regs[i].XYOFFSET.OFX = r->OFX; - gs.ctxt_regs[i].XYOFFSET.OFY = r->OFY; -} - -// Fill out the vertex queue(prim) and the attributes. -void __gifCall GIFRegHandlerPRIM(const u32 *data) -{ - GIFRegPRIM *r = (GIFRegPRIM *)(data); - gs.regs.PRIM._u64 = r->_u64; -} - -// Fill out an alternate set of attributes. -void __gifCall GIFRegHandlerPRMODE(const u32 *data) -{ - GIFRegPRMODE *r = (GIFRegPRMODE *)(data); - gs.regs.PRMODE._u64 = r->_u64; -} - -// Switch between the primary set of attributes and the secondary. -void __gifCall GIFRegHandlerPRMODECONT(const u32 *data) -{ - GIFRegPRMODECONT *r = (GIFRegPRMODECONT *)(data); - gs.regs.PRMODECONT._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerTEXCLUT(const u32 *data) -{ - GIFRegTEXCLUT *r = (GIFRegTEXCLUT *)(data); - gs.regs.TEXCLUT._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerSCANMSK(const u32 *data) -{ - GIFRegSCANMSK *r = (GIFRegSCANMSK *)(data); - gs.regs.SCANMSK._u64 = r->_u64; -} - -template -void __gifCall GIFRegHandlerMIPTBP1(const u32 *data) -{ - GIFRegMIPTBP1 *r = (GIFRegMIPTBP1 *)(data); - gs.ctxt_regs[i].MIPTBP1._u64 = r->_u64; -} - -template -void __gifCall GIFRegHandlerMIPTBP2(const u32 *data) -{ - GIFRegMIPTBP2 *r = (GIFRegMIPTBP2 *)(data); - gs.ctxt_regs[i].MIPTBP2._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerTEXA(const u32 *data) -{ - GIFRegTEXA *r = (GIFRegTEXA *)(data); - gs.regs.TEXA._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerFOGCOL(const u32 *data) -{ - GIFRegFOGCOL *r = (GIFRegFOGCOL *)(data); - gs.regs.FOGCOL._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerTEXFLUSH(const u32 *data) -{ - GIFRegTEXFLUSH *r = (GIFRegTEXFLUSH *)(data); - gs.regs.TEXFLUSH._u64 = r->_u64; -} - -template -void __gifCall GIFRegHandlerSCISSOR(const u32 *data) -{ - GIFRegSCISSOR *r = (GIFRegSCISSOR *)(data); - gs.ctxt_regs[i].SCISSOR._u64 = r->_u64; -} - -template -void __gifCall GIFRegHandlerALPHA(const u32 *data) -{ - GIFRegALPHA *r = (GIFRegALPHA *)(data); - gs.ctxt_regs[i].ALPHA._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerDIMX(const u32 *data) -{ - GIFRegDIMX *r = (GIFRegDIMX *)(data); - gs.regs.DIMX._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerDTHE(const u32 *data) -{ - GIFRegDTHE *r = (GIFRegDTHE *)(data); - gs.regs.DTHE._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerCOLCLAMP(const u32 *data) -{ - GIFRegCOLCLAMP *r = (GIFRegCOLCLAMP *)(data); - gs.regs.COLCLAMP._u64 = r->_u64; -} - -template -void __gifCall GIFRegHandlerTEST(const u32 *data) -{ - GIFRegTEST *r = (GIFRegTEST *)(data); - gs.ctxt_regs[i].TEST._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerPABE(const u32 *data) -{ - GIFRegPABE *r = (GIFRegPABE *)(data); - gs.regs.PABE._u64 = r->_u64; -} - -template -void __gifCall GIFRegHandlerFBA(const u32 *data) -{ - GIFRegFBA *r = (GIFRegFBA *)(data); - gs.ctxt_regs[i].FBA._u64 = r->_u64; -} - -template -void __gifCall GIFRegHandlerFRAME(const u32 *data) -{ - GIFRegFRAME *r = (GIFRegFRAME *)(data); - gs.ctxt_regs[i].FRAME._u64 = r->_u64; -} - -template -void __gifCall GIFRegHandlerZBUF(const u32 *data) -{ - GIFRegZBUF *r = (GIFRegZBUF *)(data); - gs.ctxt_regs[i].ZBUF._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerBITBLTBUF(const u32 *data) -{ - GIFRegBITBLTBUF *r = (GIFRegBITBLTBUF *)(data); - gs.regs.BITBLTBUF._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerTRXPOS(const u32 *data) -{ - GIFRegTRXPOS *r = (GIFRegTRXPOS *)(data); - gs.regs.TRXPOS._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerTRXREG(const u32 *data) -{ - GIFRegTRXREG *r = (GIFRegTRXREG *)(data); - gs.regs.TRXREG._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerTRXDIR(const u32 *data) -{ - GIFRegTRXDIR *r = (GIFRegTRXDIR *)(data); - gs.regs.TRXDIR._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerHWREG(const u32 *data) -{ - GIFRegHWREG *r = (GIFRegHWREG *)(data); - gs.regs.HWREG._u64 = r->_u64; -} - - -void __gifCall GIFRegHandlerSIGNAL(const u32 *data) -{ - GIFRegSIGNAL *r = (GIFRegSIGNAL *)(data); - gs.regs.SIGNAL._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerFINISH(const u32 *data) -{ - GIFRegFINISH *r = (GIFRegFINISH *)(data); - gs.regs.FINISH._u64 = r->_u64; -} - -void __gifCall GIFRegHandlerLABEL(const u32 *data) -{ - GIFRegLABEL *r = (GIFRegLABEL *)(data); - gs.regs.LABEL._u64 = r->_u64; -} - - -void SetMultithreaded() -{ - // Some older versions of PCSX2 didn't properly set the irq callback to NULL - // in multithreaded mode (possibly because ZeroGS itself would assert in such - // cases), and didn't bind them to a dummy callback either. PCSX2 handles all - // IRQs internally when multithreaded anyway -- so let's ignore them here: - - if (gs.MultiThreaded) { - GIFRegHandlers[GIF_A_D_REG_SIGNAL] = &GIFRegHandlerNull; - GIFRegHandlers[GIF_A_D_REG_FINISH] = &GIFRegHandlerNull; - GIFRegHandlers[GIF_A_D_REG_LABEL] = &GIFRegHandlerNull; - } else { - GIFRegHandlers[GIF_A_D_REG_SIGNAL] = &GIFRegHandlerSIGNAL; - GIFRegHandlers[GIF_A_D_REG_FINISH] = &GIFRegHandlerFINISH; - GIFRegHandlers[GIF_A_D_REG_LABEL] = &GIFRegHandlerLABEL; - } -} - -void ResetRegs() -{ - for (int i = 0; i < 16; i++) { - GIFPackedRegHandlers[i] = &GIFPackedRegHandlerNull; - } - - GIFPackedRegHandlers[GIF_REG_PRIM] = &GIFPackedRegHandlerPRIM; - GIFPackedRegHandlers[GIF_REG_RGBA] = &GIFPackedRegHandlerRGBA; - GIFPackedRegHandlers[GIF_REG_STQ] = &GIFPackedRegHandlerSTQ; - GIFPackedRegHandlers[GIF_REG_UV] = &GIFPackedRegHandlerUV; - GIFPackedRegHandlers[GIF_REG_XYZF2] = &GIFPackedRegHandlerXYZF2; - GIFPackedRegHandlers[GIF_REG_XYZ2] = &GIFPackedRegHandlerXYZ2; - GIFPackedRegHandlers[GIF_REG_TEX0_1] = &GIFPackedRegHandlerTEX0<0>; - GIFPackedRegHandlers[GIF_REG_TEX0_2] = &GIFPackedRegHandlerTEX0<1>; - GIFPackedRegHandlers[GIF_REG_CLAMP_1] = &GIFPackedRegHandlerCLAMP<0>; - GIFPackedRegHandlers[GIF_REG_CLAMP_2] = &GIFPackedRegHandlerCLAMP<1>; - GIFPackedRegHandlers[GIF_REG_FOG] = &GIFPackedRegHandlerFOG; - GIFPackedRegHandlers[GIF_REG_XYZF3] = &GIFPackedRegHandlerXYZF3; - GIFPackedRegHandlers[GIF_REG_XYZ3] = &GIFPackedRegHandlerXYZ3; - GIFPackedRegHandlers[GIF_REG_A_D] = &GIFPackedRegHandlerA_D; - GIFPackedRegHandlers[GIF_REG_NOP] = &GIFPackedRegHandlerNOP; - - for (int i = 0; i < 256; i++) { - GIFRegHandlers[i] = &GIFRegHandlerNull; - } - - GIFRegHandlers[GIF_A_D_REG_PRIM] = &GIFRegHandlerPRIM; - GIFRegHandlers[GIF_A_D_REG_RGBAQ] = &GIFRegHandlerRGBAQ; - GIFRegHandlers[GIF_A_D_REG_ST] = &GIFRegHandlerST; - GIFRegHandlers[GIF_A_D_REG_UV] = &GIFRegHandlerUV; - GIFRegHandlers[GIF_A_D_REG_XYZF2] = &GIFRegHandlerXYZF2; - GIFRegHandlers[GIF_A_D_REG_XYZ2] = &GIFRegHandlerXYZ2; - GIFRegHandlers[GIF_A_D_REG_TEX0_1] = &GIFRegHandlerTEX0<0>; - GIFRegHandlers[GIF_A_D_REG_TEX0_2] = &GIFRegHandlerTEX0<1>; - GIFRegHandlers[GIF_A_D_REG_CLAMP_1] = &GIFRegHandlerCLAMP<0>; - GIFRegHandlers[GIF_A_D_REG_CLAMP_2] = &GIFRegHandlerCLAMP<1>; - GIFRegHandlers[GIF_A_D_REG_FOG] = &GIFRegHandlerFOG; - GIFRegHandlers[GIF_A_D_REG_XYZF3] = &GIFRegHandlerXYZF3; - GIFRegHandlers[GIF_A_D_REG_XYZ3] = &GIFRegHandlerXYZ3; - GIFRegHandlers[GIF_A_D_REG_NOP] = &GIFRegHandlerNOP; - GIFRegHandlers[GIF_A_D_REG_TEX1_1] = &GIFRegHandlerTEX1<0>; - GIFRegHandlers[GIF_A_D_REG_TEX1_2] = &GIFRegHandlerTEX1<1>; - GIFRegHandlers[GIF_A_D_REG_TEX2_1] = &GIFRegHandlerTEX2<0>; - GIFRegHandlers[GIF_A_D_REG_TEX2_2] = &GIFRegHandlerTEX2<1>; - GIFRegHandlers[GIF_A_D_REG_XYOFFSET_1] = &GIFRegHandlerXYOFFSET<0>; - GIFRegHandlers[GIF_A_D_REG_XYOFFSET_2] = &GIFRegHandlerXYOFFSET<1>; - GIFRegHandlers[GIF_A_D_REG_PRMODECONT] = &GIFRegHandlerPRMODECONT; - GIFRegHandlers[GIF_A_D_REG_PRMODE] = &GIFRegHandlerPRMODE; - GIFRegHandlers[GIF_A_D_REG_TEXCLUT] = &GIFRegHandlerTEXCLUT; - GIFRegHandlers[GIF_A_D_REG_SCANMSK] = &GIFRegHandlerSCANMSK; - GIFRegHandlers[GIF_A_D_REG_MIPTBP1_1] = &GIFRegHandlerMIPTBP1<0>; - GIFRegHandlers[GIF_A_D_REG_MIPTBP1_2] = &GIFRegHandlerMIPTBP1<1>; - GIFRegHandlers[GIF_A_D_REG_MIPTBP2_1] = &GIFRegHandlerMIPTBP2<0>; - GIFRegHandlers[GIF_A_D_REG_MIPTBP2_2] = &GIFRegHandlerMIPTBP2<1>; - GIFRegHandlers[GIF_A_D_REG_TEXA] = &GIFRegHandlerTEXA; - GIFRegHandlers[GIF_A_D_REG_FOGCOL] = &GIFRegHandlerFOGCOL; - GIFRegHandlers[GIF_A_D_REG_TEXFLUSH] = &GIFRegHandlerTEXFLUSH; - GIFRegHandlers[GIF_A_D_REG_SCISSOR_1] = &GIFRegHandlerSCISSOR<0>; - GIFRegHandlers[GIF_A_D_REG_SCISSOR_2] = &GIFRegHandlerSCISSOR<1>; - GIFRegHandlers[GIF_A_D_REG_ALPHA_1] = &GIFRegHandlerALPHA<0>; - GIFRegHandlers[GIF_A_D_REG_ALPHA_2] = &GIFRegHandlerALPHA<1>; - GIFRegHandlers[GIF_A_D_REG_DIMX] = &GIFRegHandlerDIMX; - GIFRegHandlers[GIF_A_D_REG_DTHE] = &GIFRegHandlerDTHE; - GIFRegHandlers[GIF_A_D_REG_COLCLAMP] = &GIFRegHandlerCOLCLAMP; - GIFRegHandlers[GIF_A_D_REG_TEST_1] = &GIFRegHandlerTEST<0>; - GIFRegHandlers[GIF_A_D_REG_TEST_2] = &GIFRegHandlerTEST<1>; - GIFRegHandlers[GIF_A_D_REG_PABE] = &GIFRegHandlerPABE; - GIFRegHandlers[GIF_A_D_REG_FBA_1] = &GIFRegHandlerFBA<0>; - GIFRegHandlers[GIF_A_D_REG_FBA_2] = &GIFRegHandlerFBA<1>; - GIFRegHandlers[GIF_A_D_REG_FRAME_1] = &GIFRegHandlerFRAME<0>; - GIFRegHandlers[GIF_A_D_REG_FRAME_2] = &GIFRegHandlerFRAME<1>; - GIFRegHandlers[GIF_A_D_REG_ZBUF_1] = &GIFRegHandlerZBUF<0>; - GIFRegHandlers[GIF_A_D_REG_ZBUF_2] = &GIFRegHandlerZBUF<1>; - GIFRegHandlers[GIF_A_D_REG_BITBLTBUF] = &GIFRegHandlerBITBLTBUF; - GIFRegHandlers[GIF_A_D_REG_TRXPOS] = &GIFRegHandlerTRXPOS; - GIFRegHandlers[GIF_A_D_REG_TRXREG] = &GIFRegHandlerTRXREG; - GIFRegHandlers[GIF_A_D_REG_TRXDIR] = &GIFRegHandlerTRXDIR; - GIFRegHandlers[GIF_A_D_REG_HWREG] = &GIFRegHandlerHWREG; - SetMultithreaded(); -} - -void SetFrameSkip(bool skip) -{ - if (skip) { - GIFPackedRegHandlers[GIF_REG_PRIM] = &GIFPackedRegHandlerNOP; - GIFPackedRegHandlers[GIF_REG_RGBA] = &GIFPackedRegHandlerNOP; - GIFPackedRegHandlers[GIF_REG_STQ] = &GIFPackedRegHandlerNOP; - GIFPackedRegHandlers[GIF_REG_UV] = &GIFPackedRegHandlerNOP; - GIFPackedRegHandlers[GIF_REG_XYZF2] = &GIFPackedRegHandlerNOP; - GIFPackedRegHandlers[GIF_REG_XYZ2] = &GIFPackedRegHandlerNOP; - GIFPackedRegHandlers[GIF_REG_CLAMP_1] = &GIFPackedRegHandlerNOP; - GIFPackedRegHandlers[GIF_REG_CLAMP_2] = &GIFPackedRegHandlerNOP; - GIFPackedRegHandlers[GIF_REG_FOG] = &GIFPackedRegHandlerNOP; - GIFPackedRegHandlers[GIF_REG_XYZF3] = &GIFPackedRegHandlerNOP; - GIFPackedRegHandlers[GIF_REG_XYZ3] = &GIFPackedRegHandlerNOP; - - GIFRegHandlers[GIF_A_D_REG_PRIM] = &GIFRegHandlerNOP; - GIFRegHandlers[GIF_A_D_REG_RGBAQ] = &GIFRegHandlerNOP; - GIFRegHandlers[GIF_A_D_REG_ST] = &GIFRegHandlerNOP; - GIFRegHandlers[GIF_A_D_REG_UV] = &GIFRegHandlerNOP; - GIFRegHandlers[GIF_A_D_REG_XYZF2] = &GIFRegHandlerNOP; - GIFRegHandlers[GIF_A_D_REG_XYZ2] = &GIFRegHandlerNOP; - GIFRegHandlers[GIF_A_D_REG_XYZF3] = &GIFRegHandlerNOP; - GIFRegHandlers[GIF_A_D_REG_XYZ3] = &GIFRegHandlerNOP; - GIFRegHandlers[GIF_A_D_REG_PRMODECONT] = &GIFRegHandlerNOP; - GIFRegHandlers[GIF_A_D_REG_PRMODE] = &GIFRegHandlerNOP; - } else { - GIFPackedRegHandlers[GIF_REG_PRIM] = &GIFPackedRegHandlerPRIM; - GIFPackedRegHandlers[GIF_REG_RGBA] = &GIFPackedRegHandlerRGBA; - GIFPackedRegHandlers[GIF_REG_STQ] = &GIFPackedRegHandlerSTQ; - GIFPackedRegHandlers[GIF_REG_UV] = &GIFPackedRegHandlerUV; - GIFPackedRegHandlers[GIF_REG_XYZF2] = &GIFPackedRegHandlerXYZF2; - GIFPackedRegHandlers[GIF_REG_XYZ2] = &GIFPackedRegHandlerXYZ2; - GIFPackedRegHandlers[GIF_REG_CLAMP_1] = &GIFPackedRegHandlerCLAMP<0>; - GIFPackedRegHandlers[GIF_REG_CLAMP_2] = &GIFPackedRegHandlerCLAMP<1>; - GIFPackedRegHandlers[GIF_REG_FOG] = &GIFPackedRegHandlerFOG; - GIFPackedRegHandlers[GIF_REG_XYZF3] = &GIFPackedRegHandlerXYZF3; - GIFPackedRegHandlers[GIF_REG_XYZ3] = &GIFPackedRegHandlerXYZ3; - - GIFRegHandlers[GIF_A_D_REG_PRIM] = &GIFRegHandlerPRIM; - GIFRegHandlers[GIF_A_D_REG_RGBAQ] = &GIFRegHandlerRGBAQ; - GIFRegHandlers[GIF_A_D_REG_ST] = &GIFRegHandlerST; - GIFRegHandlers[GIF_A_D_REG_UV] = &GIFRegHandlerUV; - GIFRegHandlers[GIF_A_D_REG_XYZF2] = &GIFRegHandlerXYZF2; - GIFRegHandlers[GIF_A_D_REG_XYZ2] = &GIFRegHandlerXYZ2; - GIFRegHandlers[GIF_A_D_REG_XYZF3] = &GIFRegHandlerXYZF3; - GIFRegHandlers[GIF_A_D_REG_XYZ3] = &GIFRegHandlerXYZ3; - GIFRegHandlers[GIF_A_D_REG_PRMODECONT] = &GIFRegHandlerPRMODECONT; - GIFRegHandlers[GIF_A_D_REG_PRMODE] = &GIFRegHandlerPRMODE; - } -} diff --git a/plugins/GSnull/Registers.h b/plugins/GSnull/Registers.h deleted file mode 100644 index 23f90e8a95..0000000000 --- a/plugins/GSnull/Registers.h +++ /dev/null @@ -1,1218 +0,0 @@ -/* GSnull - * Copyright (C) 2004-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 __REGISTERS_H__ -#define __REGISTERS_H__ - -#ifdef __cplusplus -extern "C" { -#endif -#define GSdefs -#include "PS2Edefs.h" -#include "Pcsx2Defs.h" -#ifdef __cplusplus -} -#endif - -#include "emmintrin.h" - -#pragma pack(push, 1) - - -enum GIF_REG { - GIF_REG_PRIM = 0x00, - GIF_REG_RGBA = 0x01, - GIF_REG_STQ = 0x02, - GIF_REG_UV = 0x03, - GIF_REG_XYZF2 = 0x04, - GIF_REG_XYZ2 = 0x05, - GIF_REG_TEX0_1 = 0x06, - GIF_REG_TEX0_2 = 0x07, - GIF_REG_CLAMP_1 = 0x08, - GIF_REG_CLAMP_2 = 0x09, - GIF_REG_FOG = 0x0a, - GIF_REG_XYZF3 = 0x0c, - GIF_REG_XYZ3 = 0x0d, - GIF_REG_A_D = 0x0e, - GIF_REG_NOP = 0x0f, -}; - -enum GIF_A_D_REG { - GIF_A_D_REG_PRIM = 0x00, - GIF_A_D_REG_RGBAQ = 0x01, - GIF_A_D_REG_ST = 0x02, - GIF_A_D_REG_UV = 0x03, - GIF_A_D_REG_XYZF2 = 0x04, - GIF_A_D_REG_XYZ2 = 0x05, - GIF_A_D_REG_TEX0_1 = 0x06, - GIF_A_D_REG_TEX0_2 = 0x07, - GIF_A_D_REG_CLAMP_1 = 0x08, - GIF_A_D_REG_CLAMP_2 = 0x09, - GIF_A_D_REG_FOG = 0x0a, - GIF_A_D_REG_XYZF3 = 0x0c, - GIF_A_D_REG_XYZ3 = 0x0d, - GIF_A_D_REG_NOP = 0x0f, - GIF_A_D_REG_TEX1_1 = 0x14, - GIF_A_D_REG_TEX1_2 = 0x15, - GIF_A_D_REG_TEX2_1 = 0x16, - GIF_A_D_REG_TEX2_2 = 0x17, - GIF_A_D_REG_XYOFFSET_1 = 0x18, - GIF_A_D_REG_XYOFFSET_2 = 0x19, - GIF_A_D_REG_PRMODECONT = 0x1a, - GIF_A_D_REG_PRMODE = 0x1b, - GIF_A_D_REG_TEXCLUT = 0x1c, - GIF_A_D_REG_SCANMSK = 0x22, - GIF_A_D_REG_MIPTBP1_1 = 0x34, - GIF_A_D_REG_MIPTBP1_2 = 0x35, - GIF_A_D_REG_MIPTBP2_1 = 0x36, - GIF_A_D_REG_MIPTBP2_2 = 0x37, - GIF_A_D_REG_TEXA = 0x3b, - GIF_A_D_REG_FOGCOL = 0x3d, - GIF_A_D_REG_TEXFLUSH = 0x3f, - GIF_A_D_REG_SCISSOR_1 = 0x40, - GIF_A_D_REG_SCISSOR_2 = 0x41, - GIF_A_D_REG_ALPHA_1 = 0x42, - GIF_A_D_REG_ALPHA_2 = 0x43, - GIF_A_D_REG_DIMX = 0x44, - GIF_A_D_REG_DTHE = 0x45, - GIF_A_D_REG_COLCLAMP = 0x46, - GIF_A_D_REG_TEST_1 = 0x47, - GIF_A_D_REG_TEST_2 = 0x48, - GIF_A_D_REG_PABE = 0x49, - GIF_A_D_REG_FBA_1 = 0x4a, - GIF_A_D_REG_FBA_2 = 0x4b, - GIF_A_D_REG_FRAME_1 = 0x4c, - GIF_A_D_REG_FRAME_2 = 0x4d, - GIF_A_D_REG_ZBUF_1 = 0x4e, - GIF_A_D_REG_ZBUF_2 = 0x4f, - GIF_A_D_REG_BITBLTBUF = 0x50, - GIF_A_D_REG_TRXPOS = 0x51, - GIF_A_D_REG_TRXREG = 0x52, - GIF_A_D_REG_TRXDIR = 0x53, - GIF_A_D_REG_HWREG = 0x54, - GIF_A_D_REG_SIGNAL = 0x60, - GIF_A_D_REG_FINISH = 0x61, - GIF_A_D_REG_LABEL = 0x62, -}; - -// In case we want to change to/from __fastcall for GIF register handlers: -#define __gifCall __fastcall - -typedef void __gifCall FnType_GIFRegHandler(const u32 *data); -typedef FnType_GIFRegHandler *GIFRegHandler; - -extern FnType_GIFRegHandler GIFPackedRegHandlerNull; -extern FnType_GIFRegHandler GIFPackedRegHandlerRGBA; -extern FnType_GIFRegHandler GIFPackedRegHandlerSTQ; -extern FnType_GIFRegHandler GIFPackedRegHandlerUV; -extern FnType_GIFRegHandler GIFPackedRegHandlerXYZF2; -extern FnType_GIFRegHandler GIFPackedRegHandlerXYZ2; -extern FnType_GIFRegHandler GIFPackedRegHandlerFOG; -extern FnType_GIFRegHandler GIFPackedRegHandlerA_D; -extern FnType_GIFRegHandler GIFPackedRegHandlerNOP; - -// These are unimplemented, and fall back on the non-packed versions. -extern FnType_GIFRegHandler GIFPackedRegHandlerPRIM; - -template -extern FnType_GIFRegHandler GIFPackedRegHandlerTEX0; - -template -extern FnType_GIFRegHandler GIFPackedRegHandlerCLAMP; - -extern FnType_GIFRegHandler GIFPackedRegHandlerXYZF3; -extern FnType_GIFRegHandler GIFPackedRegHandlerXYZ3; - -extern FnType_GIFRegHandler GIFRegHandlerNull; -extern FnType_GIFRegHandler GIFRegHandlerPRIM; -extern FnType_GIFRegHandler GIFRegHandlerRGBAQ; -extern FnType_GIFRegHandler GIFRegHandlerST; -extern FnType_GIFRegHandler GIFRegHandlerUV; -extern FnType_GIFRegHandler GIFRegHandlerXYZF2; -extern FnType_GIFRegHandler GIFRegHandlerXYZ2; - -template -extern FnType_GIFRegHandler GIFRegHandlerTEX0; - -template -extern FnType_GIFRegHandler GIFRegHandlerCLAMP; - -extern FnType_GIFRegHandler GIFRegHandlerFOG; -extern FnType_GIFRegHandler GIFRegHandlerXYZF3; -extern FnType_GIFRegHandler GIFRegHandlerXYZ3; -extern FnType_GIFRegHandler GIFRegHandlerNOP; - -template -extern FnType_GIFRegHandler GIFRegHandlerTEX1; - -template -extern FnType_GIFRegHandler GIFRegHandlerTEX2; - -template -extern FnType_GIFRegHandler GIFRegHandlerXYOFFSET; - -extern FnType_GIFRegHandler GIFRegHandlerPRMODECONT; -extern FnType_GIFRegHandler GIFRegHandlerPRMODE; -extern FnType_GIFRegHandler GIFRegHandlerTEXCLUT; -extern FnType_GIFRegHandler GIFRegHandlerSCANMSK; -template -extern FnType_GIFRegHandler GIFRegHandlerMIPTBP1; -template -extern FnType_GIFRegHandler GIFRegHandlerMIPTBP2; -extern FnType_GIFRegHandler GIFRegHandlerTEXA; -extern FnType_GIFRegHandler GIFRegHandlerFOGCOL; -extern FnType_GIFRegHandler GIFRegHandlerTEXFLUSH; - -template -extern FnType_GIFRegHandler GIFRegHandlerSCISSOR; -template -extern FnType_GIFRegHandler GIFRegHandlerALPHA; - -extern FnType_GIFRegHandler GIFRegHandlerDIMX; -extern FnType_GIFRegHandler GIFRegHandlerDTHE; -extern FnType_GIFRegHandler GIFRegHandlerCOLCLAMP; -template -extern FnType_GIFRegHandler GIFRegHandlerTEST; -extern FnType_GIFRegHandler GIFRegHandlerPABE; -template -extern FnType_GIFRegHandler GIFRegHandlerFBA; -template -extern FnType_GIFRegHandler GIFRegHandlerFRAME; -template -extern FnType_GIFRegHandler GIFRegHandlerZBUF; -extern FnType_GIFRegHandler GIFRegHandlerBITBLTBUF; -extern FnType_GIFRegHandler GIFRegHandlerTRXPOS; -extern FnType_GIFRegHandler GIFRegHandlerTRXREG; -extern FnType_GIFRegHandler GIFRegHandlerTRXDIR; -extern FnType_GIFRegHandler GIFRegHandlerHWREG; -extern FnType_GIFRegHandler GIFRegHandlerSIGNAL; -extern FnType_GIFRegHandler GIFRegHandlerFINISH; -extern FnType_GIFRegHandler GIFRegHandlerLABEL; - -enum GS_PRIM { - GS_POINTLIST = 0, - GS_LINELIST = 1, - GS_LINESTRIP = 2, - GS_TRIANGLELIST = 3, - GS_TRIANGLESTRIP = 4, - GS_TRIANGLEFAN = 5, - GS_SPRITE = 6, - GS_INVALID = 7, -}; - -enum GS_PRIM_CLASS { - GS_POINT_CLASS = 0, - GS_LINE_CLASS = 1, - GS_TRIANGLE_CLASS = 2, - GS_SPRITE_CLASS = 3, - GS_INVALID_CLASS = 7, -}; - -enum GS_PSM { - PSM_PSMCT32 = 0, // 0000-0000 - PSM_PSMCT24 = 1, // 0000-0001 - PSM_PSMCT16 = 2, // 0000-0010 - PSM_PSMCT16S = 10, // 0000-1010 - PSM_PSMT8 = 19, // 0001-0011 - PSM_PSMT4 = 20, // 0001-0100 - PSM_PSMT8H = 27, // 0001-1011 - PSM_PSMT4HL = 36, // 0010-0100 - PSM_PSMT4HH = 44, // 0010-1100 - PSM_PSMZ32 = 48, // 0011-0000 - PSM_PSMZ24 = 49, // 0011-0001 - PSM_PSMZ16 = 50, // 0011-0010 - PSM_PSMZ16S = 58, // 0011-1010 -}; - -enum GS_TFX { - TFX_MODULATE = 0, - TFX_DECAL = 1, - TFX_HIGHLIGHT = 2, - TFX_HIGHLIGHT2 = 3, - TFX_NONE = 4, -}; - -enum GS_CLAMP { - CLAMP_REPEAT = 0, - CLAMP_CLAMP = 1, - CLAMP_REGION_CLAMP = 2, - CLAMP_REGION_REPEAT = 3, -}; - -enum GS_ZTST { - ZTST_NEVER = 0, - ZTST_ALWAYS = 1, - ZTST_GEQUAL = 2, - ZTST_GREATER = 3, -}; - -enum GS_ATST { - ATST_NEVER = 0, - ATST_ALWAYS = 1, - ATST_LESS = 2, - ATST_LEQUAL = 3, - ATST_EQUAL = 4, - ATST_GEQUAL = 5, - ATST_GREATER = 6, - ATST_NOTEQUAL = 7, -}; - -enum GS_AFAIL { - AFAIL_KEEP = 0, - AFAIL_FB_ONLY = 1, - AFAIL_ZB_ONLY = 2, - AFAIL_RGB_ONLY = 3, -}; - -#define REG32(name) \ - union name \ - { \ - u32 _u32; \ - struct \ - { - -#define REG64(name) \ - union name \ - { \ - u64 _u64; \ - u32 _u32[2]; \ - /*void operator = (const GSVector4i& v) {GSVector4i::storel(this, v);} \ - bool operator == (const union name& r) const {return ((GSVector4i)r).eq(*this);} \ - bool operator != (const union name& r) const {return !((GSVector4i)r).eq(*this);} \ - operator GSVector4i() const {return GSVector4i::loadl(this);}*/ \ - struct \ - { - -#define REG128(name) \ - union name \ - { \ - u64 _u64[2]; \ - u32 _u32[4]; \ - struct \ - { - -#define REG32_(prefix, name) REG32(prefix##name) -#define REG64_(prefix, name) REG64(prefix##name) -#define REG128_(prefix, name) REG128(prefix##name) - -#define REG_END \ - } \ - ; \ - } \ - ; -#define REG_END2 \ - } \ - ; - -#define REG32_SET(name) \ - struct name \ - { - -#define REG64_SET(name) \ - struct name \ - { - -#define REG128_SET(name) \ - struct name \ - { - -#define REG_SET_END \ - } \ - ; - -REG64_(GSReg, BGCOLOR) -u32 R : 8; -u32 G : 8; -u32 B : 8; -u32 _PAD1 : 8; -u32 _PAD2 : 32; -REG_END - -REG64_(GSReg, BUSDIR) -u32 DIR : 1; -u32 _PAD1 : 31; -u32 _PAD2 : 32; -REG_END - -REG64_(GSReg, CSR) -u32 rSIGNAL : 1; -u32 rFINISH : 1; -u32 rHSINT : 1; -u32 rVSINT : 1; -u32 rEDWINT : 1; -u32 rZERO1 : 1; -u32 rZERO2 : 1; -u32 r_PAD1 : 1; -u32 rFLUSH : 1; -u32 rRESET : 1; -u32 r_PAD2 : 2; -u32 rNFIELD : 1; -u32 rFIELD : 1; -u32 rFIFO : 2; -u32 rREV : 8; -u32 rID : 8; -u32 wSIGNAL : 1; -u32 wFINISH : 1; -u32 wHSINT : 1; -u32 wVSINT : 1; -u32 wEDWINT : 1; -u32 wZERO1 : 1; -u32 wZERO2 : 1; -u32 w_PAD1 : 1; -u32 wFLUSH : 1; -u32 wRESET : 1; -u32 w_PAD2 : 2; -u32 wNFIELD : 1; -u32 wFIELD : 1; -u32 wFIFO : 2; -u32 wREV : 8; -u32 wID : 8; -REG_END - -REG64_(GSReg, DISPFB) // (-1/2) -u32 FBP : 9; -u32 FBW : 6; -u32 PSM : 5; -u32 _PAD : 12; -u32 DBX : 11; -u32 DBY : 11; -u32 _PAD2 : 10; -REG_END2 -u32 Block() const { return FBP << 5; } -REG_END2 - -REG64_(GSReg, DISPLAY) // (-1/2) -u32 DX : 12; -u32 DY : 11; -u32 MAGH : 4; -u32 MAGV : 2; -u32 _PAD : 3; -u32 DW : 12; -u32 DH : 11; -u32 _PAD2 : 9; -REG_END - -REG64_(GSReg, EXTBUF) -u32 EXBP : 14; -u32 EXBW : 6; -u32 FBIN : 2; -u32 WFFMD : 1; -u32 EMODA : 2; -u32 EMODC : 2; -u32 _PAD1 : 5; -u32 WDX : 11; -u32 WDY : 11; -u32 _PAD2 : 10; -REG_END - -REG64_(GSReg, EXTDATA) -u32 SX : 12; -u32 SY : 11; -u32 SMPH : 4; -u32 SMPV : 2; -u32 _PAD1 : 3; -u32 WW : 12; -u32 WH : 11; -u32 _PAD2 : 9; -REG_END - -REG64_(GSReg, EXTWRITE) -u32 WRITE : 1; -u32 _PAD1 : 31; -u32 _PAD2 : 32; -REG_END - -REG64_(GSReg, IMR) -u32 _PAD1 : 8; -u32 SIGMSK : 1; -u32 FINISHMSK : 1; -u32 HSMSK : 1; -u32 VSMSK : 1; -u32 EDWMSK : 1; -u32 _PAD2 : 19; -u32 _PAD3 : 32; -REG_END - -REG64_(GSReg, PMODE) -union -{ - struct - { - u32 EN1 : 1; - u32 EN2 : 1; - u32 CRTMD : 3; - u32 MMOD : 1; - u32 AMOD : 1; - u32 SLBG : 1; - u32 ALP : 8; - u32 _PAD : 16; - u32 _PAD1 : 32; - }; - - struct - { - u32 EN : 2; - u32 _PAD2 : 30; - u32 _PAD3 : 32; - }; -}; -REG_END - -REG64_(GSReg, SIGLBLID) -u32 SIGID : 32; -u32 LBLID : 32; -REG_END - -REG64_(GSReg, SMODE1) -u32 RC : 3; -u32 LC : 7; -u32 T1248 : 2; -u32 SLCK : 1; -u32 CMOD : 2; -u32 EX : 1; -u32 PRST : 1; -u32 SINT : 1; -u32 XPCK : 1; -u32 PCK2 : 2; -u32 SPML : 4; -u32 GCONT : 1; // YCrCb -u32 PHS : 1; -u32 PVS : 1; -u32 PEHS : 1; -u32 PEVS : 1; -u32 CLKSEL : 2; -u32 NVCK : 1; -u32 SLCK2 : 1; -u32 VCKSEL : 2; -u32 VHP : 1; -u32 _PAD1 : 27; -REG_END - -/* - -// pal - -CLKSEL=1 CMOD=3 EX=0 GCONT=0 LC=32 NVCK=1 PCK2=0 PEHS=0 PEVS=0 PHS=0 PRST=1 PVS=0 RC=4 SINT=0 SLCK=0 SLCK2=1 SPML=4 T1248=1 VCKSEL=1 VHP=0 XPCK=0 - -// ntsc - -CLKSEL=1 CMOD=2 EX=0 GCONT=0 LC=32 NVCK=1 PCK2=0 PEHS=0 PEVS=0 PHS=0 PRST=1 PVS=0 RC=4 SINT=0 SLCK=0 SLCK2=1 SPML=4 T1248=1 VCKSEL=1 VHP=0 XPCK=0 - -// ntsc progressive (SoTC) - -CLKSEL=1 CMOD=0 EX=0 GCONT=0 LC=32 NVCK=1 PCK2=0 PEHS=0 PEVS=0 PHS=0 PRST=1 PVS=0 RC=4 SINT=0 SLCK=0 SLCK2=1 SPML=2 T1248=1 VCKSEL=1 VHP=1 XPCK=0 - -*/ - -REG64_(GSReg, SMODE2) -u32 INT : 1; -u32 FFMD : 1; -u32 DPMS : 2; -u32 _PAD2 : 28; -u32 _PAD3 : 32; -REG_END - -REG64_(GSReg, SRFSH) -u32 _DUMMY; -// TODO -REG_END - -REG64_(GSReg, SYNCH1) -u32 _DUMMY; -// TODO -REG_END - -REG64_(GSReg, SYNCH2) -u32 _DUMMY; -// TODO -REG_END - -REG64_(GSReg, SYNCV) -u64 _DUMMY; -// TODO -REG_END - -REG64_SET(GSReg) -GSRegBGCOLOR BGCOLOR; -GSRegBUSDIR BUSDIR; -GSRegCSR CSR; -GSRegDISPFB DISPFB; -GSRegDISPLAY DISPLAY; -GSRegEXTBUF EXTBUF; -GSRegEXTDATA EXTDATA; -GSRegEXTWRITE EXTWRITE; -GSRegIMR IMR; -GSRegPMODE PMODE; -GSRegSIGLBLID SIGLBLID; -GSRegSMODE1 SMODE1; -GSRegSMODE2 SMODE2; -REG_SET_END - -// -// GIFTag - -/*REG128(GIFTag) - u32 NLOOP:15; - u32 EOP:1; - u32 _PAD1:16; - u32 _PAD2:14; - u32 PRE:1; - u32 PRIM:11; - u32 FLG:2; // enum GIF_FLG - u32 NREG:4; - u64 REGS:64; -REG_END*/ - -// GIFReg - -REG64_(GIFReg, ALPHA) -u32 A : 2; -u32 B : 2; -u32 C : 2; -u32 D : 2; -u32 _PAD1 : 24; -u32 FIX : 8; -u32 _PAD2 : 24; -REG_END2 -// opaque => output will be Cs/As -//__forceinline bool IsOpaque() const {return (A == B || C == 2 && FIX == 0) && D == 0 || (A == 0 && B == D && C == 2 && FIX == 0x80);} -//__forceinline bool IsOpaque(int amin, int amax) const {return (A == B || amax == 0) && D == 0 || A == 0 && B == D && amin == 0x80 && amax == 0x80;} -REG_END2 - -REG64_(GIFReg, BITBLTBUF) -u32 SBP : 14; -u32 _PAD1 : 2; -u32 SBW : 6; -u32 _PAD2 : 2; -u32 SPSM : 6; -u32 _PAD3 : 2; -u32 DBP : 14; -u32 _PAD4 : 2; -u32 DBW : 6; -u32 _PAD5 : 2; -u32 DPSM : 6; -u32 _PAD6 : 2; -REG_END - -REG64_(GIFReg, CLAMP) -union -{ - struct - { - u32 WMS : 2; - u32 WMT : 2; - u32 MINU : 10; - u32 MAXU : 10; - u32 _PAD1 : 8; - u32 _PAD2 : 2; - u32 MAXV : 10; - u32 _PAD3 : 20; - }; - - struct - { - u64 _PAD4 : 24; - u64 MINV : 10; - u64 _PAD5 : 30; - }; -}; -REG_END - -REG64_(GIFReg, COLCLAMP) -u32 CLAMP : 1; -u32 _PAD1 : 31; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, DIMX) -s32 DM00 : 3; -s32 _PAD00 : 1; -s32 DM01 : 3; -s32 _PAD01 : 1; -s32 DM02 : 3; -s32 _PAD02 : 1; -s32 DM03 : 3; -s32 _PAD03 : 1; -s32 DM10 : 3; -s32 _PAD10 : 1; -s32 DM11 : 3; -s32 _PAD11 : 1; -s32 DM12 : 3; -s32 _PAD12 : 1; -s32 DM13 : 3; -s32 _PAD13 : 1; -s32 DM20 : 3; -s32 _PAD20 : 1; -s32 DM21 : 3; -s32 _PAD21 : 1; -s32 DM22 : 3; -s32 _PAD22 : 1; -s32 DM23 : 3; -s32 _PAD23 : 1; -s32 DM30 : 3; -s32 _PAD30 : 1; -s32 DM31 : 3; -s32 _PAD31 : 1; -s32 DM32 : 3; -s32 _PAD32 : 1; -s32 DM33 : 3; -s32 _PAD33 : 1; -REG_END - -REG64_(GIFReg, DTHE) -u32 DTHE : 1; -u32 _PAD1 : 31; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, FBA) -u32 FBA : 1; -u32 _PAD1 : 31; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, FINISH) -u32 _PAD1 : 32; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, FOG) -u32 _PAD1 : 32; -u32 _PAD2 : 24; -u32 F : 8; -REG_END - -REG64_(GIFReg, FOGCOL) -u32 FCR : 8; -u32 FCG : 8; -u32 FCB : 8; -u32 _PAD1 : 8; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, FRAME) -u32 FBP : 9; -u32 _PAD1 : 7; -u32 FBW : 6; -u32 _PAD2 : 2; -u32 PSM : 6; -u32 _PAD3 : 2; -u32 FBMSK : 32; -REG_END2 -u32 Block() const { return FBP << 5; } -REG_END2 - -REG64_(GIFReg, HWREG) -u32 DATA_LOWER : 32; -u32 DATA_UPPER : 32; -REG_END - -REG64_(GIFReg, LABEL) -u32 ID : 32; -u32 IDMSK : 32; -REG_END - -REG64_(GIFReg, MIPTBP1) -u64 TBP1 : 14; -u64 TBW1 : 6; -u64 TBP2 : 14; -u64 TBW2 : 6; -u64 TBP3 : 14; -u64 TBW3 : 6; -u64 _PAD : 4; -REG_END - -REG64_(GIFReg, MIPTBP2) -u64 TBP4 : 14; -u64 TBW4 : 6; -u64 TBP5 : 14; -u64 TBW5 : 6; -u64 TBP6 : 14; -u64 TBW6 : 6; -u64 _PAD : 4; -REG_END - -REG64_(GIFReg, NOP) -u32 _PAD1 : 32; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, PABE) -u32 PABE : 1; -u32 _PAD1 : 31; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, PRIM) -u32 PRIM : 3; -u32 IIP : 1; -u32 TME : 1; -u32 FGE : 1; -u32 ABE : 1; -u32 AA1 : 1; -u32 FST : 1; -u32 CTXT : 1; -u32 FIX : 1; -u32 _PAD1 : 21; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, PRMODE) -u32 _PRIM : 3; -u32 IIP : 1; -u32 TME : 1; -u32 FGE : 1; -u32 ABE : 1; -u32 AA1 : 1; -u32 FST : 1; -u32 CTXT : 1; -u32 FIX : 1; -u32 _PAD2 : 21; -u32 _PAD3 : 32; -REG_END - -REG64_(GIFReg, PRMODECONT) -u32 AC : 1; -u32 _PAD1 : 31; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, RGBAQ) -u32 R : 8; -u32 G : 8; -u32 B : 8; -u32 A : 8; -float Q; -REG_END - -REG64_(GIFReg, SCANMSK) -u32 MSK : 2; -u32 _PAD1 : 30; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, SCISSOR) -u32 SCAX0 : 11; -u32 _PAD1 : 5; -u32 SCAX1 : 11; -u32 _PAD2 : 5; -u32 SCAY0 : 11; -u32 _PAD3 : 5; -u32 SCAY1 : 11; -u32 _PAD4 : 5; -REG_END - -REG64_(GIFReg, SIGNAL) -u32 ID : 32; -u32 IDMSK : 32; -REG_END - -REG64_(GIFReg, ST) -float S; -float T; -REG_END - -REG64_(GIFReg, TEST) -u32 ATE : 1; -u32 ATST : 3; -u32 AREF : 8; -u32 AFAIL : 2; -u32 DATE : 1; -u32 DATM : 1; -u32 ZTE : 1; -u32 ZTST : 2; -u32 _PAD1 : 13; -u32 _PAD2 : 32; -REG_END2 -__forceinline bool DoFirstPass() { return !ATE || ATST != ATST_NEVER; } // not all pixels fail automatically -__forceinline bool DoSecondPass() { return ATE && ATST != ATST_ALWAYS && AFAIL != AFAIL_KEEP; } // pixels may fail, write fb/z -__forceinline bool NoSecondPass() { return ATE && ATST != ATST_ALWAYS && AFAIL == AFAIL_KEEP; } // pixels may fail, no output -REG_END2 - -REG64_(GIFReg, TEX0) -union -{ - struct - { - u32 TBP0 : 14; - u32 TBW : 6; - u32 PSM : 6; - u32 TW : 4; - u32 _PAD1 : 2; - u32 _PAD2 : 2; - u32 TCC : 1; - u32 TFX : 2; - u32 CBP : 14; - u32 CPSM : 4; - u32 CSM : 1; - u32 CSA : 5; - u32 CLD : 3; - }; - - struct - { - u64 _PAD3 : 30; - u64 TH : 4; - u64 _PAD4 : 30; - }; -}; -REG_END2 -//__forceinline bool IsRepeating() {return ((u32)1 << TW) > (TBW << 6);} -REG_END2 - -REG64_(GIFReg, TEX1) -u32 LCM : 1; -u32 _PAD1 : 1; -u32 MXL : 3; -u32 MMAG : 1; -u32 MMIN : 3; -u32 MTBA : 1; -u32 _PAD2 : 9; -u32 L : 2; -u32 _PAD3 : 11; -s32 K : 12; // 1:7:4 -u32 _PAD4 : 20; -REG_END2 -bool IsMinLinear() const { return (MMIN == 1) || (MMIN & 4); } -bool IsMagLinear() const { return MMAG; } -REG_END2 - -REG64_(GIFReg, TEX2) -u32 _PAD1 : 20; -u32 PSM : 6; -u32 _PAD2 : 6; -u32 _PAD3 : 5; -u32 CBP : 14; -u32 CPSM : 4; -u32 CSM : 1; -u32 CSA : 5; -u32 CLD : 3; -REG_END - -REG64_(GIFReg, TEXA) -u32 TA0 : 8; -u32 _PAD1 : 7; -u32 AEM : 1; -u32 _PAD2 : 16; -u32 TA1 : 8; -u32 _PAD3 : 24; -REG_END - -REG64_(GIFReg, TEXCLUT) -u32 CBW : 6; -u32 COU : 6; -u32 COV : 10; -u32 _PAD1 : 10; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, TEXFLUSH) -u32 _PAD1 : 32; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, TRXDIR) -u32 XDIR : 2; -u32 _PAD1 : 30; -u32 _PAD2 : 32; -REG_END - -REG64_(GIFReg, TRXPOS) -u32 SSAX : 11; -u32 _PAD1 : 5; -u32 SSAY : 11; -u32 _PAD2 : 5; -u32 DSAX : 11; -u32 _PAD3 : 5; -u32 DSAY : 11; -u32 DIRY : 1; -u32 DIRX : 1; -u32 _PAD4 : 3; -REG_END - -REG64_(GIFReg, TRXREG) -u32 RRW : 12; -u32 _PAD1 : 20; -u32 RRH : 12; -u32 _PAD2 : 20; -REG_END - -// GSState::GIFPackedRegHandlerUV and GSState::GIFRegHandlerUV will make sure that the _PAD1/2 bits are set to zero - -REG64_(GIFReg, UV) -u32 U : 16; -// u32 _PAD1:2; -u32 V : 16; -// u32 _PAD2:2; -u32 _PAD3 : 32; -REG_END - -// GSState::GIFRegHandlerXYOFFSET will make sure that the _PAD1/2 bits are set to zero - -REG64_(GIFReg, XYOFFSET) -u32 OFX; // :16; u32 _PAD1:16; -u32 OFY; // :16; u32 _PAD2:16; -REG_END - -REG64_(GIFReg, XYZ) -u32 X : 16; -u32 Y : 16; -u32 Z : 32; -REG_END - -REG64_(GIFReg, XYZF) -u32 X : 16; -u32 Y : 16; -u32 Z : 24; -u32 F : 8; -REG_END - -REG64_(GIFReg, ZBUF) -u32 ZBP : 9; -u32 _PAD1 : 15; -// u32 PSM:4; -// u32 _PAD2:4; -u32 PSM : 6; -u32 _PAD2 : 2; -u32 ZMSK : 1; -u32 _PAD3 : 31; -REG_END2 -u32 Block() const { return ZBP << 5; } -REG_END2 - -REG64_SET(GIFReg) -GIFRegALPHA ALPHA; -GIFRegBITBLTBUF BITBLTBUF; -GIFRegCLAMP CLAMP; -GIFRegCOLCLAMP COLCLAMP; -GIFRegDIMX DIMX; -GIFRegDTHE DTHE; -GIFRegFBA FBA; -GIFRegFINISH FINISH; -GIFRegFOG FOG; -GIFRegFOGCOL FOGCOL; -GIFRegFRAME FRAME; -GIFRegHWREG HWREG; -GIFRegLABEL LABEL; -GIFRegMIPTBP1 MIPTBP1; -GIFRegMIPTBP2 MIPTBP2; -GIFRegNOP NOP; -GIFRegPABE PABE; -GIFRegPRIM PRIM; -GIFRegPRMODE PRMODE; -GIFRegPRMODECONT PRMODECONT; -GIFRegRGBAQ RGBAQ; -GIFRegSCANMSK SCANMSK; -GIFRegSCISSOR SCISSOR; -GIFRegSIGNAL SIGNAL; -GIFRegST ST; -GIFRegTEST TEST; -GIFRegTEX0 TEX0; -GIFRegTEX1 TEX1; -GIFRegTEX2 TEX2; -GIFRegTEXA TEXA; -GIFRegTEXCLUT TEXCLUT; -GIFRegTEXFLUSH TEXFLUSH; -GIFRegTRXDIR TRXDIR; -GIFRegTRXPOS TRXPOS; -GIFRegTRXREG TRXREG; -GIFRegUV UV; -GIFRegXYOFFSET XYOFFSET; -GIFRegXYZ XYZ; -GIFRegXYZF XYZF; -GIFRegZBUF ZBUF; -REG_SET_END - -REG64_SET(GIFCTXTReg) -GIFRegTEX0 TEX0; -GIFRegCLAMP CLAMP; -GIFRegTEX1 TEX1; -GIFRegTEX2 TEX2; -GIFRegXYOFFSET XYOFFSET; -GIFRegMIPTBP1 MIPTBP1; -GIFRegMIPTBP2 MIPTBP2; -GIFRegSCISSOR SCISSOR; -GIFRegALPHA ALPHA; -GIFRegTEST TEST; -GIFRegFBA FBA; -GIFRegFRAME FRAME; -GIFRegZBUF ZBUF; -REG_SET_END - -// GIFPacked - -REG128_(GIFPacked, PRIM) -u32 PRIM : 11; -u32 _PAD1 : 21; -u32 _PAD2 : 32; -u32 _PAD3 : 32; -u32 _PAD4 : 32; -REG_END - -REG128_(GIFPacked, RGBA) -u32 R : 8; -u32 _PAD1 : 24; -u32 G : 8; -u32 _PAD2 : 24; -u32 B : 8; -u32 _PAD3 : 24; -u32 A : 8; -u32 _PAD4 : 24; -REG_END - -REG128_(GIFPacked, STQ) -float S; -float T; -float Q; -u32 _PAD1 : 32; -REG_END - -REG128_(GIFPacked, UV) -u32 U : 14; -u32 _PAD1 : 18; -u32 V : 14; -u32 _PAD2 : 18; -u32 _PAD3 : 32; -u32 _PAD4 : 32; -REG_END - -REG128_(GIFPacked, XYZF2) -u32 X : 16; -u32 _PAD1 : 16; -u32 Y : 16; -u32 _PAD2 : 16; -u32 _PAD3 : 4; -u32 Z : 24; -u32 _PAD4 : 4; -u32 _PAD5 : 4; -u32 F : 8; -u32 _PAD6 : 3; -u32 ADC : 1; -u32 _PAD7 : 16; -REG_END - -REG128_(GIFPacked, XYZ2) -u32 X : 16; -u32 _PAD1 : 16; -u32 Y : 16; -u32 _PAD2 : 16; -u32 Z : 32; -u32 _PAD3 : 15; -u32 ADC : 1; -u32 _PAD4 : 16; -REG_END - -REG128_(GIFPacked, FOG) -u32 _PAD1 : 32; -u32 _PAD2 : 32; -u32 _PAD3 : 32; -u32 _PAD4 : 4; -u32 F : 8; -u32 _PAD5 : 20; -REG_END - -REG128_(GIFPacked, A_D) -u64 DATA : 64; -u32 ADDR : 8; // enum GIF_A_D_REG -u32 _PAD1 : 24; -u32 _PAD2 : 32; -REG_END - -REG128_(GIFPacked, NOP) -u32 _PAD1 : 32; -u32 _PAD2 : 32; -u32 _PAD3 : 32; -u32 _PAD4 : 32; -REG_END - -REG128_SET(GIFPackedReg) -GIFReg r; -GIFPackedPRIM PRIM; -GIFPackedRGBA RGBA; -GIFPackedSTQ STQ; -GIFPackedUV UV; -GIFPackedXYZF2 XYZF2; -GIFPackedXYZ2 XYZ2; -GIFPackedFOG FOG; -GIFPackedA_D A_D; -GIFPackedNOP NOP; -REG_SET_END - -struct GSPrivRegSet -{ - union - { - struct - { - GSRegPMODE PMODE; - u64 _pad1; - GSRegSMODE1 SMODE1; - u64 _pad2; - GSRegSMODE2 SMODE2; - u64 _pad3; - GSRegSRFSH SRFSH; - u64 _pad4; - GSRegSYNCH1 SYNCH1; - u64 _pad5; - GSRegSYNCH2 SYNCH2; - u64 _pad6; - GSRegSYNCV SYNCV; - u64 _pad7; - struct - { - GSRegDISPFB DISPFB; - u64 _pad1; - GSRegDISPLAY DISPLAY; - u64 _pad2; - } DISP[2]; - GSRegEXTBUF EXTBUF; - u64 _pad8; - GSRegEXTDATA EXTDATA; - u64 _pad9; - GSRegEXTWRITE EXTWRITE; - u64 _pad10; - GSRegBGCOLOR BGCOLOR; - u64 _pad11; - }; - - u8 _pad12[0x1000]; - }; - - union - { - struct - { - GSRegCSR CSR; - u64 _pad13; - GSRegIMR IMR; - u64 _pad14; - u64 _unk1[4]; - GSRegBUSDIR BUSDIR; - u64 _pad15; - u64 _unk2[6]; - GSRegSIGLBLID SIGLBLID; - u64 _pad16; - }; - - u8 _pad17[0x1000]; - }; -}; - -#pragma pack(pop) -#endif diff --git a/plugins/GSnull/Windows/Config.cpp b/plugins/GSnull/Windows/Config.cpp deleted file mode 100644 index f7d90cbd9d..0000000000 --- a/plugins/GSnull/Windows/Config.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - -#include - -#include "../GS.h" - -extern HINSTANCE hInst; -void SaveConfig() -{ - - Config *Conf1 = &conf; - char *szTemp; - char szIniFile[256], szValue[256]; - - GetModuleFileName(GetModuleHandle((LPCSTR)hInst), szIniFile, 256); - szTemp = strrchr(szIniFile, '\\'); - - if (!szTemp) - return; - strcpy(szTemp, "\\inis\\gsnull.ini"); - sprintf(szValue, "%u", Conf1->Log); - WritePrivateProfileString("Interface", "Logging", szValue, szIniFile); -} - -void LoadConfig() -{ - FILE *fp; - - - Config *Conf1 = &conf; - char *szTemp; - char szIniFile[256], szValue[256]; - - GetModuleFileName(GetModuleHandle((LPCSTR)hInst), szIniFile, 256); - szTemp = strrchr(szIniFile, '\\'); - - if (!szTemp) - return; - strcpy(szTemp, "\\inis\\gsnull.ini"); - fp = fopen("inis\\gsnull.ini", "rt"); //check if gsnull.ini really exists - - if (!fp) { - CreateDirectory("inis", NULL); - memset(&conf, 0, sizeof(conf)); - conf.Log = 0; //default value - SaveConfig(); //save and return - return; - } - - fclose(fp); - GetPrivateProfileString("Interface", "Logging", NULL, szValue, 20, szIniFile); - Conf1->Log = strtoul(szValue, NULL, 10); - return; -} diff --git a/plugins/GSnull/Windows/GS.def b/plugins/GSnull/Windows/GS.def deleted file mode 100644 index ed123aa204..0000000000 --- a/plugins/GSnull/Windows/GS.def +++ /dev/null @@ -1,40 +0,0 @@ -; GS.def : Declares the module parameters for the DLL. - -;LIBRARY "GSnull" - -EXPORTS - ; Explicit exports can go here - PS2EgetLibType @2 - PS2EgetLibName @3 - PS2EgetLibVersion2 @4 - GSinit @5 - GSopen @6 - GSclose @7 - GSshutdown @8 - GSvsync @9 - GSgifTransfer @10 - GSgifTransfer1 @11 - GSgifTransfer2 @12 - GSgifTransfer3 @13 - GSgetLastTag @14 - GSgifSoftReset @15 - GSreadFIFO @16 - GSreadFIFO2 @17 - GSkeyEvent @18 - GSchangeSaveState @19 - GSmakeSnapshot @20 - GSmakeSnapshot2 @21 - GSirqCallback @22 - GSsetBaseMem @24 - GSsetGameCRC @25 - GSsetFrameSkip @26 - GSsetupRecording @27 - GSreset @28 - GSwriteCSR @29 - GSgetDriverInfo @30 - GSfreeze @32 - GSconfigure @33 - GSabout @34 - GStest @35 - - diff --git a/plugins/GSnull/Windows/GS.rc b/plugins/GSnull/Windows/GS.rc deleted file mode 100644 index a1add9768d..0000000000 --- a/plugins/GSnull/Windows/GS.rc +++ /dev/null @@ -1,116 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxresmw.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// Spanish (Argentina) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ESS) -#ifdef _WIN32 -LANGUAGE LANG_SPANISH, SUBLANG_SPANISH_ARGENTINA -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""afxresmw.h""\r\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_CONFIG DIALOGEX 0, 0, 212, 121 -STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "GSNull Configuration" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "OK",IDOK,48,100,50,14 - PUSHBUTTON "Cancel",IDCANCEL,113,100,50,14 - CONTROL "Enable Logging (for develop use only)",IDC_LOGGING, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,187,13 -END - -IDD_ABOUT DIALOGEX 0, 0, 177, 106 -STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "GSNull About" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "OK",IDOK,65,85,50,14 - LTEXT "GS Driver",IDC_NAME,70,10,48,8 - GROUPBOX "",IDC_STATIC,5,35,170,40 - LTEXT "Author: Shadow and linuzappz",IDC_STATIC,29,19,141,10 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_CONFIG, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 205 - TOPMARGIN, 7 - BOTTOMMARGIN, 114 - END - - IDD_ABOUT, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 170 - TOPMARGIN, 7 - BOTTOMMARGIN, 99 - END -END -#endif // APSTUDIO_INVOKED - -#endif // Spanish (Argentina) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/plugins/GSnull/Windows/GSnull.vcxproj b/plugins/GSnull/Windows/GSnull.vcxproj deleted file mode 100644 index f0b7316cbe..0000000000 --- a/plugins/GSnull/Windows/GSnull.vcxproj +++ /dev/null @@ -1,107 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - GSnull - {5FCBD521-5A0B-4D97-A823-A97E6BAB9101} - GSnull - Win32Proj - - - - DynamicLibrary - MultiByte - true - $(DefaultPlatformToolset) - - - DynamicLibrary - MultiByte - $(DefaultPlatformToolset) - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(ProjectName)-dbg - - - - - - - - $(OutDir)$(TargetName)$(TargetExt) - GS.def - MachineX86 - - - - - - - - - GS.def - MachineX86 - - - - - - - - - - true - true - - - - - - - - - - true - true - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/plugins/GSnull/Windows/GSnull.vcxproj.filters b/plugins/GSnull/Windows/GSnull.vcxproj.filters deleted file mode 100644 index 03f6158b25..0000000000 --- a/plugins/GSnull/Windows/GSnull.vcxproj.filters +++ /dev/null @@ -1,78 +0,0 @@ - - - - - {c3be7c7d-acc0-4d04-87e2-d8c905f5623d} - cpp;c;cxx;def;odl;idl;hpj;bat;asm - - - {d049a6c7-ffed-4403-8697-c32b110473ec} - h;hpp;hxx;hm;inl;inc - - - {43d885bc-a996-4dc7-935e-c5511250143e} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Resource Files - - - - - Resource Files - - - - - Header Files - - - \ No newline at end of file diff --git a/plugins/GSnull/Windows/GSnull_vc2008.sln b/plugins/GSnull/Windows/GSnull_vc2008.sln deleted file mode 100644 index 7585d366d7..0000000000 --- a/plugins/GSnull/Windows/GSnull_vc2008.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C++ Express 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GSnull", "GSnull_vc2008.vcproj", "{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Debug|Win32.ActiveCfg = Debug|Win32 - {3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Debug|Win32.Build.0 = Debug|Win32 - {3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Release|Win32.ActiveCfg = Release|Win32 - {3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/plugins/GSnull/Windows/GSwin.cpp b/plugins/GSnull/Windows/GSwin.cpp deleted file mode 100644 index c5c18c0935..0000000000 --- a/plugins/GSnull/Windows/GSwin.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - -#include "../GS.h" - -HINSTANCE HInst; -HWND GShwnd = NULL; - -LRESULT CALLBACK MsgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - switch (msg) { - case WM_CLOSE: - DestroyWindow(hwnd); - break; - case WM_DESTROY: - PostQuitMessage(0); - break; - default: - return DefWindowProc(hwnd, msg, wParam, lParam); - } - return 0; -} - -int GSOpenWindow(void *pDsp, const char *Title) -{ - WNDCLASSEX wc = {sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, - GetModuleHandle(NULL), NULL, NULL, NULL, NULL, - "PS2EMU_GSNULL", NULL}; - RegisterClassEx(&wc); - - GShwnd = CreateWindowEx(WS_EX_CLIENTEDGE, "PS2EMU_GSNULL", Title, - WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, wc.hInstance, NULL); - - if (GShwnd == NULL) { - GSLog::WriteLn("Failed to create window. Exiting..."); - return -1; - } - - if (pDsp != NULL) - *(uptr *)pDsp = (uptr)GShwnd; - - return 0; -} - -void GSCloseWindow() -{ - DestroyWindow(GShwnd); -} - -void GSProcessMessages() -{ -} - -// GSkeyEvent gets called when there is a keyEvent from the PAD plugin -void HandleKeyEvent(keyEvent *ev) -{ -} diff --git a/plugins/GSnull/Windows/GSwin.h b/plugins/GSnull/Windows/GSwin.h deleted file mode 100644 index 1b991df475..0000000000 --- a/plugins/GSnull/Windows/GSwin.h +++ /dev/null @@ -1,24 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - -#pragma once - -#include -#include - -extern int GSOpenWindow(void *pDsp, const char *Title); -extern void GSCloseWindow(); -extern void GSProcessMessages(); -extern void HandleKeyEvent(keyEvent *ev); diff --git a/plugins/GSnull/Windows/ProjectRootDir.props b/plugins/GSnull/Windows/ProjectRootDir.props deleted file mode 100644 index 423e907385..0000000000 --- a/plugins/GSnull/Windows/ProjectRootDir.props +++ /dev/null @@ -1,15 +0,0 @@ - - - - $(ProjectRootDir)\..\.. - $(SvnRootDir)\common - - - <_ProjectFileVersion>10.0.30128.1 - - - - $(SvnRootDir) - - - \ No newline at end of file diff --git a/plugins/GSnull/Windows/Win32.cpp b/plugins/GSnull/Windows/Win32.cpp deleted file mode 100644 index 90edbc0c69..0000000000 --- a/plugins/GSnull/Windows/Win32.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - -#include -#include -#include - - -#include "resource.h" -#include "../GS.h" - -HINSTANCE hInst; -extern HWND GShwnd; - -void SysMessage(char *fmt, ...) -{ - va_list list; - char tmp[512]; - - va_start(list, fmt); - vsprintf(tmp, fmt, list); - va_end(list); - MessageBox((GShwnd != NULL) ? GShwnd : GetActiveWindow(), tmp, "GS Plugin Msg", 0); -} - -BOOL CALLBACK ConfigureDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - - switch (uMsg) { - case WM_INITDIALOG: - LoadConfig(); - if (conf.Log) - CheckDlgButton(hW, IDC_LOGGING, TRUE); - return TRUE; - - case WM_COMMAND: - switch (LOWORD(wParam)) { - case IDCANCEL: - EndDialog(hW, TRUE); - return TRUE; - case IDOK: - if (IsDlgButtonChecked(hW, IDC_LOGGING)) - conf.Log = 1; - else - conf.Log = 0; - SaveConfig(); - EndDialog(hW, FALSE); - return TRUE; - } - } - return FALSE; -} - -BOOL CALLBACK AboutDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - switch (uMsg) { - case WM_INITDIALOG: - return TRUE; - - case WM_COMMAND: - switch (LOWORD(wParam)) { - case IDOK: - EndDialog(hW, FALSE); - return TRUE; - } - } - return FALSE; -} - -EXPORT_C_(void) -GSconfigure() -{ - DialogBox(hInst, - MAKEINTRESOURCE(IDD_CONFIG), - GetActiveWindow(), - (DLGPROC)ConfigureDlgProc); -} - -EXPORT_C_(void) -GSabout() -{ - DialogBox(hInst, - MAKEINTRESOURCE(IDD_ABOUT), - GetActiveWindow(), - (DLGPROC)AboutDlgProc); -} - -BOOL APIENTRY DllMain(HANDLE hModule, // DLL INIT - DWORD dwReason, - LPVOID lpReserved) -{ - hInst = (HINSTANCE)hModule; - return TRUE; // very quick :) -} diff --git a/plugins/GSnull/Windows/resource.h b/plugins/GSnull/Windows/resource.h deleted file mode 100644 index b6c5b9f2ec..0000000000 --- a/plugins/GSnull/Windows/resource.h +++ /dev/null @@ -1,21 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by GS.rc -// -#define IDD_CONFDLG 101 -#define IDD_CONFIG 101 -#define IDD_ABOUT 103 -#define IDC_NAME 1000 -#define IDC_CHECK1 1007 -#define IDC_LOGGING 1007 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 105 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1008 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/plugins/GSnull/null/GSnull.cpp b/plugins/GSnull/null/GSnull.cpp deleted file mode 100644 index 8c62bbcabe..0000000000 --- a/plugins/GSnull/null/GSnull.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - -#include "../GS.h" - -void OnKeyboardF5(int myShift) -{ - GSLog::WriteLn("F5 pressed!"); -} - -void OnKeyboardF6(int myShift) -{ - GSLog::WriteLn("F6 pressed!"); -} - -void OnKeyboardF7(int myShift) -{ - GSLog::WriteLn("F7 pressed!"); -} - -void OnKeyboardF9(int myShift) -{ - GSLog::WriteLn("F9 pressed!"); -} diff --git a/plugins/GSnull/null/GSnull.h b/plugins/GSnull/null/GSnull.h deleted file mode 100644 index e0ad70bc70..0000000000 --- a/plugins/GSnull/null/GSnull.h +++ /dev/null @@ -1,21 +0,0 @@ -/* GSnull - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 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 PCSX2. - * If not, see . - */ - -#pragma once - -extern void OnKeyboardF5(int myShift); -extern void OnKeyboardF6(int myShift); -extern void OnKeyboardF7(int myShift); -extern void OnKeyboardF9(int myShift);