X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=plugins%2Fdfxvideo%2Fgpu.c;h=6af6447d4ba17d9f7f32ed285c3b64e8ec839261;hb=8dd855cd6cdab41d1e38637a020681137eceb457;hp=9a614de2171425dbb1aca9d2212de49c28f43df5;hpb=e64dc4c54e96643522dc4b8c205d143c7d9b2f1d;p=pcsx_rearmed.git diff --git a/plugins/dfxvideo/gpu.c b/plugins/dfxvideo/gpu.c index 9a614de2..6af6447d 100644 --- a/plugins/dfxvideo/gpu.c +++ b/plugins/dfxvideo/gpu.c @@ -649,7 +649,7 @@ void CALLBACK GPUwriteStatus(uint32_t gdata) // WRITE STATUS } lGPUstatusRet|=GPUSTATUS_INTERLACED; } - else lGPUstatusRet&=~GPUSTATUS_INTERLACED; + else lGPUstatusRet&=~(GPUSTATUS_INTERLACED|0x80000000); if (PSXDisplay.PAL) lGPUstatusRet|=GPUSTATUS_PAL; @@ -1042,6 +1042,7 @@ long CALLBACK GPUdmaChain(uint32_t * baseAddrL, uint32_t addr) uint32_t dmaMem; unsigned char * baseAddrB; short count;unsigned int DMACommandCounter = 0; + long dmaWords = 0; GPUIsBusy; @@ -1056,6 +1057,7 @@ long CALLBACK GPUdmaChain(uint32_t * baseAddrL, uint32_t addr) if(CheckForEndlessLoop(addr)) break; count = baseAddrB[addr+3]; + dmaWords += 1 + count; dmaMem=addr+4; @@ -1067,7 +1069,7 @@ long CALLBACK GPUdmaChain(uint32_t * baseAddrL, uint32_t addr) GPUIsIdle; - return 0; + return dmaWords; } //////////////////////////////////////////////////////////////////////// @@ -1137,6 +1139,8 @@ void CALLBACK GPUvBlank(int val) // rearmed thing #include "../../frontend/plugin_lib.h" +const struct rearmed_cbs *rcbs; + void GPUrearmedCallbacks(const struct rearmed_cbs *cbs) { // sync config @@ -1148,4 +1152,5 @@ void GPUrearmedCallbacks(const struct rearmed_cbs *cbs) skip_advice = &cbs->fskip_advice; fps_skip = 100.0f; + rcbs = cbs; }