Fix for MGS3 corruption from r955, i don't know why but where vifRegs was set previously, it was completely ignored, regardless of the fact the code has run through there before doing anything else O_o

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@961 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
refraction 2009-04-12 15:51:24 +00:00
parent a3c1669024
commit 85cf1ab6dc
1 changed files with 5 additions and 5 deletions

View File

@ -351,11 +351,13 @@ static int VIFalign(u32 *data, vifCode *v, int size, const unsigned int VIFdmanu
if (VIFdmanum == 0) if (VIFdmanum == 0)
{ {
VU = &VU0; VU = &VU0;
vifRegs = vif0Regs;
assert(v->addr < memsize); assert(v->addr < memsize);
} }
else else
{ {
VU = &VU1; VU = &VU1;
vifRegs = vif1Regs;
assert(v->addr < memsize); assert(v->addr < memsize);
} }
@ -502,14 +504,14 @@ static void VIFunpack(u32 *data, vifCode *v, int size, const unsigned int VIFdma
if (VIFdmanum == 0) if (VIFdmanum == 0)
{ {
VU = &VU0; VU = &VU0;
//vifRegs = vif0Regs; vifRegs = vif0Regs;
assert(v->addr < memsize); assert(v->addr < memsize);
} }
else else
{ {
VU = &VU1; VU = &VU1;
//vifRegs = vif1Regs; vifRegs = vif1Regs;
assert(v->addr < memsize); assert(v->addr < memsize);
if (vu1MicroIsSkipping()) if (vu1MicroIsSkipping())
@ -544,7 +546,7 @@ static void VIFunpack(u32 *data, vifCode *v, int size, const unsigned int VIFdma
#ifdef VIFUNPACKDEBUG #ifdef VIFUNPACKDEBUG
if()vif->tag.addr + (size / (VIFfuncTable[ vif->cmd & 0xf ].gsize * vifRegs->cycle.wl)) * if((vif->tag.addr + (size / (VIFfuncTable[ vif->cmd & 0xf ].gsize * vifRegs->cycle.wl)) *
((vifRegs->cycle.cl - vifRegs->cycle.wl) * 16)) > (u32)(VIFdmanum ? 0x4000 : 0x1000)) ((vifRegs->cycle.cl - vifRegs->cycle.wl) * 16)) > (u32)(VIFdmanum ? 0x4000 : 0x1000))
{ {
//Sanity Check (memory overflow) //Sanity Check (memory overflow)
@ -820,7 +822,6 @@ static __forceinline void vif0UNPACK(u32 *data)
vif0.tag.size = len; vif0.tag.size = len;
vif0Regs->offset = 0; vif0Regs->offset = 0;
vifRegs = (VIFregisters*)vif0Regs;
vifMaskRegs = g_vif0Masks; vifMaskRegs = g_vif0Masks;
vif = &vif0; vif = &vif0;
vifRow = g_vifRow0; vifRow = g_vifRow0;
@ -1569,7 +1570,6 @@ static __forceinline void vif1UNPACK(u32 *data)
vif1.tag.addr <<= 4; vif1.tag.addr <<= 4;
vif1.tag.cmd = vif1.cmd; vif1.tag.cmd = vif1.cmd;
vifRegs = (VIFregisters*)vif1Regs;
vifMaskRegs = g_vif1Masks; vifMaskRegs = g_vif1Masks;
vif = &vif1; vif = &vif1;
vifRow = g_vifRow1; vifRow = g_vifRow1;