frontend: refactor plugin_lib for maemo
[pcsx_rearmed.git] / plugins / dfxvideo / gpu.c
index 9a614de..6af6447 100644 (file)
@@ -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;
 }