mirror of https://github.com/PCSX2/pcsx2.git
SPR VU Access: Changed VU0 back to using physical memory map addresses, Doesn't seem to work the other way. Fixes CSI 3 - Dimensions of Murder SPS
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5480 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
7f45b21be1
commit
f3844f026a
|
@ -113,26 +113,33 @@ __fi tDMA_TAG* SPRdmaGetAddr(u32 addr, bool write)
|
||||||
{
|
{
|
||||||
return (tDMA_TAG*)(write ? eeMem->ZeroWrite : eeMem->ZeroRead);
|
return (tDMA_TAG*)(write ? eeMem->ZeroWrite : eeMem->ZeroRead);
|
||||||
}
|
}
|
||||||
else if ((addr >= 0x11004000) && (addr < 0x11010000))
|
else if ((addr >= 0x11000000) && (addr < 0x11010000))
|
||||||
{
|
{
|
||||||
if (THREAD_VU1) {
|
if (THREAD_VU1) {
|
||||||
DevCon.Error("MTVU: SPRdmaGetAddr Accessing VU Memory!");
|
//DevCon.Error("MTVU: SPRdmaGetAddr Accessing VU Memory!");
|
||||||
vu1Thread.WaitVU();
|
vu1Thread.WaitVU();
|
||||||
}
|
}
|
||||||
//Access for VU Memory
|
//Access for VU Memory
|
||||||
|
|
||||||
if((addr >= 0x1100c000) && (addr < 0x11010000))
|
if((addr >= 0x1100c000) && (addr < 0x11010000))
|
||||||
|
{
|
||||||
|
DevCon.Warning("VU1 Mem %x", addr);
|
||||||
return (tDMA_TAG*)VU1.Mem + (addr & 0x3ff0);
|
return (tDMA_TAG*)VU1.Mem + (addr & 0x3ff0);
|
||||||
|
}
|
||||||
|
|
||||||
//Possibly not needed but the manual doesn't say SPR cannot access it.
|
//Possibly not needed but the manual doesn't say SPR cannot access it.
|
||||||
if((addr >= 0x11008000) && (addr < 0x1100c000))
|
if((addr >= 0x11008000) && (addr < 0x1100c000))
|
||||||
|
{
|
||||||
|
DevCon.Warning("VU1 Micro %x", addr);
|
||||||
return (tDMA_TAG*)VU1.Micro + (addr & 0x3ff0);
|
return (tDMA_TAG*)VU1.Micro + (addr & 0x3ff0);
|
||||||
|
}
|
||||||
|
|
||||||
if ((addr >= 0x11000000) && (addr < 0x11004000))
|
if ((addr >= 0x11000000) && (addr < 0x11008000))
|
||||||
return (tDMA_TAG*)VU0.Micro + (addr & 0xff0);
|
{
|
||||||
|
//VU0 is still mapped directly to physical memory, you cant just
|
||||||
if ((addr >= 0x11004000) && (addr < 0x11008000))
|
//Access it like above (it doesn't work lol) CSI 3 - Dimensions of Murder
|
||||||
return (tDMA_TAG*)VU0.Mem + (addr & 0xff0);
|
return (tDMA_TAG*)vtlb_GetPhyPtr(addr & 0x1FFFFFF0);
|
||||||
|
}
|
||||||
|
|
||||||
// Unreachable
|
// Unreachable
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Reference in New Issue