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
|
@ -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