/[pcsx2_0.9.7]/trunk/pcsx2/IPU/IPU.cpp
ViewVC logotype

Diff of /trunk/pcsx2/IPU/IPU.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 273 by william, Fri Nov 12 01:10:22 2010 UTC revision 280 by william, Thu Dec 23 12:02:12 2010 UTC
# Line 26  Line 26 
26  #include "Vif_Dma.h"  #include "Vif_Dma.h"
27  #include <limits.h>  #include <limits.h>
28    
29    #include "Utilities/MemsetFast.inl"
30    
31  // the BP doesn't advance and returns -1 if there is no data to be read  // the BP doesn't advance and returns -1 if there is no data to be read
32  __aligned16 tIPU_cmd ipu_cmd;  __aligned16 tIPU_cmd ipu_cmd;
33  __aligned16 tIPU_BP g_BP;  __aligned16 tIPU_BP g_BP;
# Line 438  static __fi bool ipuVDEC(u32 val) Line 440  static __fi bool ipuVDEC(u32 val)
440                          // very choppy (basically only decoding/updating every 30th frame or so). So yeah,                          // very choppy (basically only decoding/updating every 30th frame or so). So yeah,
441                          // someone with knowledge on the subject please feel free to explain this one. :) --air                          // someone with knowledge on the subject please feel free to explain this one. :) --air
442    
443                          ipuRegs.cmd.DATA &= 0xFFFF;                          // The upper bits are the "length" of the decoded command, where the lower is the address.
444                          ipuRegs.cmd.DATA |= 0x10000;                          // This is due to differences with IPU and the MPEG standard. See get_macroblock_address_increment().
445    
                         //ipuRegs.cmd.DATA = (ipuRegs.cmd.DATA & 0xFFFF) | ((decoder.bitstream_bits + 16) << 16);  
446                          ipuRegs.ctrl.ECD = (ipuRegs.cmd.DATA == 0);                          ipuRegs.ctrl.ECD = (ipuRegs.cmd.DATA == 0);
447    
448                  case 1:                  case 1:
# Line 907  __noinline void IPUWorker() Line 908  __noinline void IPUWorker()
908                          // CHECK!: IPU0dma remains when IDEC is done, so we need to clear it                          // CHECK!: IPU0dma remains when IDEC is done, so we need to clear it
909                          // Check Mana Khemia 1 "off campus" to trigger a GUST IDEC messup.                          // Check Mana Khemia 1 "off campus" to trigger a GUST IDEC messup.
910                          // This hackfixes it :/                          // This hackfixes it :/
911                          if (ipu0dma.qwc > 0 && ipu0dma.chcr.STR) ipu0Interrupt();                          //if (ipu0dma.qwc > 0 && ipu0dma.chcr.STR) ipu0Interrupt();
912                          break;                          break;
913    
914                  case SCE_IPU_BDEC:                  case SCE_IPU_BDEC:

Legend:
Removed from v.273  
changed lines
  Added in v.280

  ViewVC Help
Powered by ViewVC 1.1.22