if(dwActFixes&0xa0) // -> pc fps calculation fix/old skipping fix
{
- int skip = (skip_advice && *skip_advice) || fps_skip < fFrameRateHz;
+ int skip = (skip_advice && *skip_advice) || UseFrameSkip == 1 || fps_skip < fFrameRateHz;
if(skip && !bSkipNextFrame) // -> skip max one in a row
{bSkipNextFrame = TRUE; fps_skip=fFrameRateHz;}
else bSkipNextFrame = FALSE;
}
lGPUstatusRet|=GPUSTATUS_INTERLACED;
}
- else lGPUstatusRet&=~GPUSTATUS_INTERLACED;
+ else lGPUstatusRet&=~(GPUSTATUS_INTERLACED|0x80000000);
if (PSXDisplay.PAL)
lGPUstatusRet|=GPUSTATUS_PAL;
uint32_t dmaMem;
unsigned char * baseAddrB;
short count;unsigned int DMACommandCounter = 0;
+ long dmaWords = 0;
GPUIsBusy;
if(CheckForEndlessLoop(addr)) break;
count = baseAddrB[addr+3];
+ dmaWords += 1 + count;
dmaMem=addr+4;
GPUIsIdle;
- return 0;
+ return dmaWords;
}
////////////////////////////////////////////////////////////////////////
// rearmed thing
#include "../../frontend/plugin_lib.h"
+const struct rearmed_cbs *rcbs;
+
void GPUrearmedCallbacks(const struct rearmed_cbs *cbs)
{
// sync config
skip_advice = &cbs->fskip_advice;
fps_skip = 100.0f;
+ rcbs = cbs;
}