diff --git a/common/include/PS2Edefs.h b/common/include/PS2Edefs.h index f394cf5025..64a98e1016 100644 --- a/common/include/PS2Edefs.h +++ b/common/include/PS2Edefs.h @@ -248,6 +248,7 @@ void CALLBACK GSsetSettingsDir( const char* dir ); void CALLBACK GSsetLogDir( const char* dir ); void CALLBACK GSvsync(int field); +void CALLBACK GSgifTransfer(u32 *pMem, u32 addr); void CALLBACK GSgifTransfer1(u32 *pMem, u32 addr); void CALLBACK GSgifTransfer2(u32 *pMem, u32 size); void CALLBACK GSgifTransfer3(u32 *pMem, u32 size); diff --git a/pcsx2/ps2/GIFpath.cpp b/pcsx2/ps2/GIFpath.cpp index 3b5f477e0e..bb148ac3b4 100644 --- a/pcsx2/ps2/GIFpath.cpp +++ b/pcsx2/ps2/GIFpath.cpp @@ -19,6 +19,7 @@ #include "Gif.h" #include "Vif_Dma.h" #include "Vif.h" +#include // -------------------------------------------------------------------------------------- // GIFpath -- the GIFtag Parser diff --git a/plugins/zzogl-pg/opengl/GS.h b/plugins/zzogl-pg/opengl/GS.h index 3ac73bde9b..8ef2d0175b 100644 --- a/plugins/zzogl-pg/opengl/GS.h +++ b/plugins/zzogl-pg/opengl/GS.h @@ -635,7 +635,7 @@ typedef struct int imageTransfer; int imageWnew, imageHnew, imageX, imageY, imageEndX, imageEndY; - pathInfo path[3]; + pathInfo path[4]; GIFRegDIMX dimx; void setRGBA(u32 r, u32 g, u32 b, u32 a) { diff --git a/plugins/zzogl-pg/opengl/GifTransfer.cpp b/plugins/zzogl-pg/opengl/GifTransfer.cpp index d8776eff13..4939f53dd9 100644 --- a/plugins/zzogl-pg/opengl/GifTransfer.cpp +++ b/plugins/zzogl-pg/opengl/GifTransfer.cpp @@ -265,8 +265,17 @@ void CALLBACK GSgifTransfer3(u32 *pMem, u32 size) _GSgifTransfer<2>(pMem, size); } -void InitPath() +void CALLBACK GSgifTransfer(u32 *pMem, u32 size) { - gs.path[0].mode = gs.path[1].mode = gs.path[2].mode = 0; + FUNCLOG + + //ZZLog::GS_Log("GSgifTransfer3 size = %lx (mode %d, gs.path3.tag.nloop = %d).", size, gs.path[2].mode, gs.path[2].tag.nloop); + + _GSgifTransfer<3>(pMem, size); +} + +void InitPath() +{ + gs.path[0].mode = gs.path[1].mode = gs.path[2].mode = gs.path[3].mode = 0; }