Fix for my earlier mistake causing green blocks on videos, remind me its never good to alter memory that you arent suppose to alter ^_^

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@612 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
refraction 2009-02-26 11:39:55 +00:00
parent edc418d0e4
commit 7dc9138d04
1 changed files with 6 additions and 8 deletions

View File

@ -270,12 +270,11 @@ void dmaSPR0() { // fromSPR
SPR_LOG("dmaSPR0 chcr = %lx, madr = %lx, qwc = %lx, sadr = %lx\n",
spr0->chcr, spr0->madr, spr0->qwc, spr0->sadr);
if ((spr0->chcr & 0xc) == 0x4){
if ((spr0->chcr & 0xc) == 0x4 && spr0->qwc == 0){
u32 *ptag;
ptag = (u32*)&PS2MEM_SCRATCH[spr0->sadr & 0x3fff]; //Set memory pointer to SADR
spr0->qwc = (u16)ptag[0]; //QWC set to lower 16bits of the tag
CPU_INT(8, spr0->qwc / BIAS);
spr0->qwc = 0;
CPU_INT(8, (ptag[0] & 0xffff) / BIAS);
// spr0->qwc = 0;
return;
}
// COMPLETE HACK!!! For now at least.. FFX Videos dont rely on interrupts or reading DMA values
@ -429,12 +428,11 @@ void dmaSPR1() { // toSPR
spr1->tadr, spr1->sadr);
#endif
if ((spr1->chcr & 0xc) == 0x4){
if ((spr1->chcr & 0xc) == 0x4 && spr1->qwc == 0){
u32 *ptag;
ptag = (u32*)dmaGetAddr(spr1->tadr); //Set memory pointer to TADR
spr1->qwc = (u16)ptag[0]; //QWC set to lower 16bits of the tag
CPU_INT(9, spr1->qwc / BIAS);
spr1->qwc = 0;
CPU_INT(9, (ptag[0] & 0xffff) / BIAS);
//spr1->qwc = 0;
return;
}
// COMPLETE HACK!!! For now at least.. FFX Videos dont rely on interrupts or reading DMA values