From 7dc9138d04bb7f9890a883bf255a6f16d2b5b62b Mon Sep 17 00:00:00 2001 From: refraction Date: Thu, 26 Feb 2009 11:39:55 +0000 Subject: [PATCH] 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 --- pcsx2/SPR.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/pcsx2/SPR.cpp b/pcsx2/SPR.cpp index 1426b7af61..2a1b943b01 100644 --- a/pcsx2/SPR.cpp +++ b/pcsx2/SPR.cpp @@ -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