[Project64] Add Write32PifRam

This commit is contained in:
zilmar 2015-12-22 19:04:55 +11:00
parent e57ddf6181
commit 379cff09ae
2 changed files with 22 additions and 17 deletions

View File

@ -2669,23 +2669,7 @@ bool CMipsMemoryVM::SW_NonMemory(uint32_t PAddr, uint32_t Value)
case 0x04700000: Write32RDRAMInterface(); break;
case 0x04800000: Write32SerialInterface(); break;
case 0x08000000: Write32CartridgeDomain2Address2(); break;
case 0x1FC00000:
if (PAddr < 0x1FC007C0)
{
return false;
}
else if (PAddr < 0x1FC00800)
{
Value = swap32by8(Value);
*(uint32_t *)(&m_PifRam[PAddr - 0x1FC007C0]) = Value;
if (PAddr == 0x1FC007FC)
{
PifRamWrite();
}
return true;
}
return false;
break;
case 0x1FC00000: Write32PifRam(); break;
default:
return false;
break;
@ -5776,4 +5760,24 @@ void CMipsMemoryVM::Write32CartridgeDomain2Address2(void)
{
g_MMU->WriteToFlashCommand(m_MemLookupValue.UW[0]);
}
}
void CMipsMemoryVM::Write32PifRam(void)
{
if ((m_MemLookupAddress & 0x1FFFFFFF) < 0x1FC007C0)
{
if (bHaveDebugger())
{
g_Notify->BreakPoint(__FILE__, __LINE__);
}
}
else if ((m_MemLookupAddress & 0x1FFFFFFF) < 0x1FC00800)
{
uint32_t Value = swap32by8(m_MemLookupValue.UW[0]);
*(uint32_t *)(&g_MMU->m_PifRam[(m_MemLookupAddress & 0x1FFFFFFF) - 0x1FC007C0]) = Value;
if ((m_MemLookupAddress & 0x1FFFFFFF) == 0x1FC007FC)
{
g_MMU->PifRamWrite();
}
}
}

View File

@ -206,6 +206,7 @@ private:
static void Write32RDRAMInterface(void);
static void Write32SerialInterface(void);
static void Write32CartridgeDomain2Address2(void);
static void Write32PifRam(void);
CMipsMemory_CallBack * const m_CBClass;