From a4059b45b5e506918d3cbed70f21619874e8c681 Mon Sep 17 00:00:00 2001 From: cottonvibes Date: Wed, 27 Jul 2011 08:16:51 +0000 Subject: [PATCH] Bring back GSnull, zzogl, and old plugins from the dead! (they were crashing with the new Gif rewrite... shouldn't anymore) Although Jake had added the new "GSgifTransfer" callback to these plugins in the past, he forgot to modify the .def files so pcsx2 can actually use them :p git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4832 96395faa-99c1-11dd-bbfe-3dabce05a288 --- pcsx2/PluginManager.cpp | 12 ++++- plugins/GSnull/Windows/GS.def | 53 ++++++++++--------- plugins/zzogl-pg/opengl/HostMemory.cpp | 4 +- plugins/zzogl-pg/opengl/Win32/zerogs.def | 1 + .../opengl/Win32/zerogsogl_2008.vcproj | 8 ++- 5 files changed, 47 insertions(+), 31 deletions(-) diff --git a/pcsx2/PluginManager.cpp b/pcsx2/PluginManager.cpp index 92b91306b7..f780e5c78f 100644 --- a/pcsx2/PluginManager.cpp +++ b/pcsx2/PluginManager.cpp @@ -20,6 +20,7 @@ #include #include "GS.h" +#include "Gif.h" #include "CDVD/CDVDisoReader.h" #include "Utilities/ScopedPtr.h" @@ -196,6 +197,7 @@ void CALLBACK GS_getTitleInfo2( char* dest, size_t length ) dest[2] = 0; } +#if COPY_GS_PACKET_TO_MTGS == 1 // This legacy passthrough function is needed because the old GS plugins tended to assume that // a PATH1 transfer that didn't EOP needed an automatic EOP (which was needed to avoid a crash // in the BIOS when it starts an XGKICK prior to having an EOP written to VU1 memory). The new @@ -240,7 +242,15 @@ static void CALLBACK GS_gifTransferLegacy( const u32* src, u32 data ) } } } - +#else +// In this case the MTGS thread will only be using the "GSgifTransfer" +// callback, which falls back to this function if its an old plugin. +// Since GSgifTransfer2 is the least hacky old call-back, and MTGS will +// just be using a single gif path, we'll just solely use path 2... +static void CALLBACK GS_gifTransferLegacy(const u32* src, u32 data) { + GSgifTransfer2((u32*)src, data); +} +#endif // PAD _PADinit PADinit; diff --git a/plugins/GSnull/Windows/GS.def b/plugins/GSnull/Windows/GS.def index c3b518948e..3834690536 100644 --- a/plugins/GSnull/Windows/GS.def +++ b/plugins/GSnull/Windows/GS.def @@ -1,4 +1,4 @@ -; FireWire.def : Declares the module parameters for the DLL. +; GS.def : Declares the module parameters for the DLL. ;LIBRARY "GSnull" @@ -12,30 +12,31 @@ EXPORTS GSclose @7 GSshutdown @8 GSvsync @9 - GSgifTransfer1 @10 - GSgifTransfer2 @11 - GSgifTransfer3 @12 - GSgetLastTag @13 - GSgifSoftReset @14 - GSreadFIFO @15 - GSreadFIFO2 @16 - GSkeyEvent @17 - GSchangeSaveState @18 - GSmakeSnapshot @19 - GSmakeSnapshot2 @20 - GSirqCallback @21 - GSprintf @22 - GSsetBaseMem @23 - GSsetGameCRC @24 - GSsetFrameSkip @25 - GSsetupRecording @26 - GSreset @27 - GSwriteCSR @28 - GSgetDriverInfo @29 - GSsetWindowInfo @30 - GSfreeze @31 - GSconfigure @32 - GSabout @33 - GStest @34 + 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 + GSprintf @23 + GSsetBaseMem @24 + GSsetGameCRC @25 + GSsetFrameSkip @26 + GSsetupRecording @27 + GSreset @28 + GSwriteCSR @29 + GSgetDriverInfo @30 + GSsetWindowInfo @31 + GSfreeze @32 + GSconfigure @33 + GSabout @34 + GStest @35 diff --git a/plugins/zzogl-pg/opengl/HostMemory.cpp b/plugins/zzogl-pg/opengl/HostMemory.cpp index e6bc5820ea..9b762e9437 100644 --- a/plugins/zzogl-pg/opengl/HostMemory.cpp +++ b/plugins/zzogl-pg/opengl/HostMemory.cpp @@ -417,9 +417,9 @@ __forceinline void _TransferLocalLocal() if (PSMT_BITMODE(gs.srcbuf.psm) == 0) widthlimit = 2; if ((gs.imageWnew & widthlimit) != 0) return; - for(int i = gs.trxpos.sy, i2 = gs.trxpos.dy; i < maxY; i++, i2++) + for(u32 i = gs.trxpos.sy, i2 = gs.trxpos.dy; i < maxY; i++, i2++) { - for(int j = gs.trxpos.sx, j2 = gs.trxpos.dx; j < maxX; j += widthlimit, j2 += widthlimit) + for(u32 j = gs.trxpos.sx, j2 = gs.trxpos.dx; j < maxX; j += widthlimit, j2 += widthlimit) { wp(pDstBuf, j2%2048, i2%2048, rp(pSrcBuf, j%2048, i%2048, gs.srcbuf.bw), gs.dstbuf.bw); diff --git a/plugins/zzogl-pg/opengl/Win32/zerogs.def b/plugins/zzogl-pg/opengl/Win32/zerogs.def index e03455c0fa..c97c92f65b 100644 --- a/plugins/zzogl-pg/opengl/Win32/zerogs.def +++ b/plugins/zzogl-pg/opengl/Win32/zerogs.def @@ -12,6 +12,7 @@ EXPORTS GSshutdown @6 GSopen @7 GSclose @8 + GSgifTransfer @12 GSgifTransfer1 @13 GSgifTransfer2 @14 GSgifTransfer3 @15 diff --git a/plugins/zzogl-pg/opengl/Win32/zerogsogl_2008.vcproj b/plugins/zzogl-pg/opengl/Win32/zerogsogl_2008.vcproj index d7e14e7ff4..f90d71f5d0 100644 --- a/plugins/zzogl-pg/opengl/Win32/zerogsogl_2008.vcproj +++ b/plugins/zzogl-pg/opengl/Win32/zerogsogl_2008.vcproj @@ -558,6 +558,10 @@ RelativePath=".\zerogs.bmp" > + + @@ -572,11 +576,11 @@