[Project64] Add Write32CartridgeDomain2Address2
This commit is contained in:
parent
a8dacad8bf
commit
e57ddf6181
|
@ -2668,34 +2668,7 @@ bool CMipsMemoryVM::SW_NonMemory(uint32_t PAddr, uint32_t Value)
|
||||||
case 0x04600000: Write32PeripheralInterface(); break;
|
case 0x04600000: Write32PeripheralInterface(); break;
|
||||||
case 0x04700000: Write32RDRAMInterface(); break;
|
case 0x04700000: Write32RDRAMInterface(); break;
|
||||||
case 0x04800000: Write32SerialInterface(); break;
|
case 0x04800000: Write32SerialInterface(); break;
|
||||||
case 0x08000000:
|
case 0x08000000: Write32CartridgeDomain2Address2(); break;
|
||||||
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 0x1FC00000:
|
case 0x1FC00000:
|
||||||
if (PAddr < 0x1FC007C0)
|
if (PAddr < 0x1FC007C0)
|
||||||
{
|
{
|
||||||
|
@ -5774,3 +5747,33 @@ void CMipsMemoryVM::Write32SerialInterface(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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]);
|
||||||
|
}
|
||||||
|
}
|
|
@ -205,6 +205,7 @@ private:
|
||||||
static void Write32PeripheralInterface(void);
|
static void Write32PeripheralInterface(void);
|
||||||
static void Write32RDRAMInterface(void);
|
static void Write32RDRAMInterface(void);
|
||||||
static void Write32SerialInterface(void);
|
static void Write32SerialInterface(void);
|
||||||
|
static void Write32CartridgeDomain2Address2(void);
|
||||||
|
|
||||||
CMipsMemory_CallBack * const m_CBClass;
|
CMipsMemory_CallBack * const m_CBClass;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue