[Project64] Add Write32CartridgeDomain2Address2

This commit is contained in:
zilmar 2015-12-22 17:09:27 +11:00
parent a8dacad8bf
commit e57ddf6181
2 changed files with 32 additions and 28 deletions

View File

@ -2668,34 +2668,7 @@ bool CMipsMemoryVM::SW_NonMemory(uint32_t PAddr, uint32_t Value)
case 0x04600000: Write32PeripheralInterface(); break;
case 0x04700000: Write32RDRAMInterface(); break;
case 0x04800000: Write32SerialInterface(); break;
case 0x08000000:
if (g_System->m_SaveUsing == SaveChip_Sram)
{
//Store Sram
uint8_t tmp[4] = "";
tmp[0] = 0xFF & (Value);
tmp[1] = 0xFF & (Value >> 8);
tmp[2] = 0xFF & (Value >> 16);
tmp[3] = 0xFF & (Value >> 24);
DmaFromSram(tmp, PAddr - 0x08000000, 4);
return true;
}
if (PAddr != 0x08010000)
{
return false;
}
if (g_System->m_SaveUsing == SaveChip_Auto)
{
g_System->m_SaveUsing = SaveChip_FlashRam;
}
if (g_System->m_SaveUsing != SaveChip_FlashRam)
{
return true;
}
WriteToFlashCommand(Value);
return true;
break;
case 0x08000000: Write32CartridgeDomain2Address2(); break;
case 0x1FC00000:
if (PAddr < 0x1FC007C0)
{
@ -5773,4 +5746,34 @@ void CMipsMemoryVM::Write32SerialInterface(void)
g_Notify->BreakPoint(__FILE__, __LINE__);
}
}
}
void CMipsMemoryVM::Write32CartridgeDomain2Address2(void)
{
if (g_System->m_SaveUsing == SaveChip_Sram)
{
//Store Sram
uint8_t tmp[4] = "";
tmp[0] = 0xFF & (m_MemLookupValue.UW[0]);
tmp[1] = 0xFF & (m_MemLookupValue.UW[0] >> 8);
tmp[2] = 0xFF & (m_MemLookupValue.UW[0] >> 16);
tmp[3] = 0xFF & (m_MemLookupValue.UW[0] >> 24);
g_MMU->DmaFromSram(tmp, (m_MemLookupAddress & 0x1FFFFFFF) - 0x08000000, 4);
return;
}
if ((m_MemLookupAddress & 0x1FFFFFFF) != 0x08010000)
{
if (bHaveDebugger())
{
g_Notify->BreakPoint(__FILE__, __LINE__);
}
}
if (g_System->m_SaveUsing == SaveChip_Auto)
{
g_System->m_SaveUsing = SaveChip_FlashRam;
}
if (g_System->m_SaveUsing == SaveChip_FlashRam)
{
g_MMU->WriteToFlashCommand(m_MemLookupValue.UW[0]);
}
}

View File

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