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);
|
||||
}
|
||||
else if ((addr >= 0x11004000) && (addr < 0x11010000))
|
||||
else if ((addr >= 0x11000000) && (addr < 0x11010000))
|
||||
{
|
||||
if (THREAD_VU1) {
|
||||
DevCon.Error("MTVU: SPRdmaGetAddr Accessing VU Memory!");
|
||||
//DevCon.Error("MTVU: SPRdmaGetAddr Accessing VU Memory!");
|
||||
vu1Thread.WaitVU();
|
||||
}
|
||||
//Access for VU Memory
|
||||
|
||||
if((addr >= 0x1100c000) && (addr < 0x11010000))
|
||||
{
|
||||
DevCon.Warning("VU1 Mem %x", addr);
|
||||
return (tDMA_TAG*)VU1.Mem + (addr & 0x3ff0);
|
||||
}
|
||||
|
||||
//Possibly not needed but the manual doesn't say SPR cannot access it.
|
||||
if((addr >= 0x11008000) && (addr < 0x1100c000))
|
||||
{
|
||||
DevCon.Warning("VU1 Micro %x", addr);
|
||||
return (tDMA_TAG*)VU1.Micro + (addr & 0x3ff0);
|
||||
}
|
||||
|
||||
if ((addr >= 0x11000000) && (addr < 0x11004000))
|
||||
return (tDMA_TAG*)VU0.Micro + (addr & 0xff0);
|
||||
|
||||
if ((addr >= 0x11004000) && (addr < 0x11008000))
|
||||
return (tDMA_TAG*)VU0.Mem + (addr & 0xff0);
|
||||
if ((addr >= 0x11000000) && (addr < 0x11008000))
|
||||
{
|
||||
//VU0 is still mapped directly to physical memory, you cant just
|
||||
//Access it like above (it doesn't work lol) CSI 3 - Dimensions of Murder
|
||||
return (tDMA_TAG*)vtlb_GetPhyPtr(addr & 0x1FFFFFF0);
|
||||
}
|
||||
|
||||
// Unreachable
|
||||
return NULL;
|
||||
|
|
Loading…
Reference in New Issue