mirror of https://github.com/PCSX2/pcsx2.git
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:
parent
a3c1669024
commit
85cf1ab6dc
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue