mirror of https://github.com/PCSX2/pcsx2.git
Sif: Limit/Mask transfer size to 1mb-16, thanks to jpd002 (Play!) for the fix!
Fixes #643 Gregory Horror Show, which seems to be playable (from nothing!)
This commit is contained in:
parent
9b988ee12d
commit
31ee576d6a
|
@ -134,7 +134,9 @@ static __fi bool ProcessIOPTag()
|
|||
|
||||
// We're only copying the first 24 bits. Bits 30 and 31 (checked below) are Stop/IRQ bits.
|
||||
hw_dma9.madr = sif0data & 0xFFFFFF;
|
||||
sif0.iop.counter = sif0words;
|
||||
if (sif0words > 0xFFFFC) DevCon.Warning("SIF0 Overrun %x", sif0words);
|
||||
//Maximum transfer amount 1mb-16 also masking out top part which is a "Mode" cache stuff, we don't care :)
|
||||
sif0.iop.counter = sif0words & 0xFFFFC;
|
||||
|
||||
// IOP tags have an IRQ bit and an End of Transfer bit:
|
||||
if (sif0tag.IRQ || (sif0tag.ID & 4)) sif0.iop.end = true;
|
||||
|
|
|
@ -125,7 +125,11 @@ static __fi bool SIFIOPReadTag()
|
|||
// Only use the first 24 bits.
|
||||
hw_dma10.madr = sif1data & 0xffffff;
|
||||
|
||||
sif1.iop.counter = sif1words;
|
||||
|
||||
if (sif1words > 0xFFFFC) DevCon.Warning("SIF1 Overrun %x", sif1words);
|
||||
//Maximum transfer amount 1mb-16 also masking out top part which is a "Mode" cache stuff, we don't care :)
|
||||
sif1.iop.counter = sif1words & 0xFFFFC;
|
||||
|
||||
if (sif1tag.IRQ || (sif1tag.ID & 4)) sif1.iop.end = true;
|
||||
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue