mirror of https://github.com/PCSX2/pcsx2.git
IPU Fix for Haunting Grounds (in-game cinemas skipped after 1 second). Bug was caused by the internal buffer of the IPU (2 QWC) not being refilled properly in rare circumstances.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3824 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
5fd2cf97d3
commit
cfca4ccdd0
|
@ -206,8 +206,8 @@ __fi u32 ipuRead32(u32 mem)
|
||||||
if (!ipuRegs.ctrl.BUSY)
|
if (!ipuRegs.ctrl.BUSY)
|
||||||
IPU_LOG("read32: IPU_CTRL=0x%08X", ipuRegs.ctrl._u32);
|
IPU_LOG("read32: IPU_CTRL=0x%08X", ipuRegs.ctrl._u32);
|
||||||
|
|
||||||
return ipuRegs.ctrl._u32;
|
return ipuRegs.ctrl._u32;
|
||||||
}
|
}
|
||||||
|
|
||||||
ipucase(IPU_BP): // IPU_BP
|
ipucase(IPU_BP): // IPU_BP
|
||||||
{
|
{
|
||||||
|
@ -218,7 +218,7 @@ __fi u32 ipuRead32(u32 mem)
|
||||||
ipuRegs.ipubp |= g_BP.FP << 16;
|
ipuRegs.ipubp |= g_BP.FP << 16;
|
||||||
|
|
||||||
IPU_LOG("read32: IPU_BP=0x%08X", ipuRegs.ipubp);
|
IPU_LOG("read32: IPU_BP=0x%08X", ipuRegs.ipubp);
|
||||||
return ipuRegs.ipubp;
|
return ipuRegs.ipubp;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -85,7 +85,7 @@ struct __aligned16 tIPU_BP {
|
||||||
BP += bits;
|
BP += bits;
|
||||||
pxAssume( BP <= 256 );
|
pxAssume( BP <= 256 );
|
||||||
|
|
||||||
if (BP > 127)
|
if (BP >= 128)
|
||||||
{
|
{
|
||||||
BP -= 128;
|
BP -= 128;
|
||||||
|
|
||||||
|
@ -100,8 +100,11 @@ struct __aligned16 tIPU_BP {
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// if FP == 1 then the buffer has been completely drained.
|
// if FP == 1 then the buffer has been completely drained.
|
||||||
// if FP == 0 then an already-drained buffer is being advanced.
|
// if FP == 0 then an already-drained buffer is being advanced, and we need to drop a
|
||||||
// In either case we just assign FP to 0.
|
// quadword from the IPU FIFO.
|
||||||
|
|
||||||
|
if (!FP)
|
||||||
|
ipu_fifo.in.read(&internal_qwc[0]);
|
||||||
|
|
||||||
FP = 0;
|
FP = 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue