[Project64] Change Pif Ram.cpp to use stdtypes
This commit is contained in:
parent
dc2a4683da
commit
21b80c240f
|
@ -274,175 +274,175 @@ void CPifRam::SI_DMA_READ()
|
||||||
BYTE * PifRamPos = m_PifRam;
|
BYTE * PifRamPos = m_PifRam;
|
||||||
BYTE * RDRAM = g_MMU->Rdram();
|
BYTE * RDRAM = g_MMU->Rdram();
|
||||||
|
|
||||||
DWORD & SI_DRAM_ADDR_REG = g_Reg->SI_DRAM_ADDR_REG;
|
uint32_t & SI_DRAM_ADDR_REG = (uint32_t &)g_Reg->SI_DRAM_ADDR_REG;
|
||||||
if ((int)SI_DRAM_ADDR_REG > (int)g_System->RdramSize())
|
if ((int32_t)SI_DRAM_ADDR_REG > (int32_t)g_System->RdramSize())
|
||||||
{
|
{
|
||||||
if (bShowPifRamErrors())
|
if (bShowPifRamErrors())
|
||||||
{
|
{
|
||||||
g_Notify->DisplayError(L"SI DMA\nSI_DRAM_ADDR_REG not in RDRam space");
|
g_Notify->DisplayError(__FUNCTIONW__ L"\nSI_DRAM_ADDR_REG not in RDRam space");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PifRamRead();
|
|
||||||
SI_DRAM_ADDR_REG &= 0xFFFFFFF8;
|
|
||||||
if ((int)SI_DRAM_ADDR_REG < 0)
|
|
||||||
{
|
|
||||||
int count, RdramPos;
|
|
||||||
|
|
||||||
RdramPos = (int)SI_DRAM_ADDR_REG;
|
PifRamRead();
|
||||||
for (count = 0; count < 0x40; count++, RdramPos++)
|
SI_DRAM_ADDR_REG &= 0xFFFFFFF8;
|
||||||
{
|
if ((int32_t)SI_DRAM_ADDR_REG < 0)
|
||||||
if (RdramPos < 0)
|
{
|
||||||
{
|
int32_t count, RdramPos;
|
||||||
continue;
|
|
||||||
}
|
RdramPos = (int32_t)SI_DRAM_ADDR_REG;
|
||||||
RDRAM[RdramPos ^ 3] = m_PifRam[count];
|
for (count = 0; count < 0x40; count++, RdramPos++)
|
||||||
}
|
{
|
||||||
}
|
if (RdramPos < 0)
|
||||||
else
|
{
|
||||||
{
|
continue;
|
||||||
|
}
|
||||||
|
RDRAM[RdramPos ^ 3] = m_PifRam[count];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
for (size_t i = 0; i < 64; i++)
|
for (size_t i = 0; i < 64; i++)
|
||||||
{
|
{
|
||||||
RDRAM[(SI_DRAM_ADDR_REG + i) ^ 3] = PifRamPos[i];
|
RDRAM[(SI_DRAM_ADDR_REG + i) ^ 3] = PifRamPos[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_LogOptions.LogPRDMAMemStores)
|
|
||||||
{
|
|
||||||
int count;
|
|
||||||
char HexData[100], AsciiData[100], Addon[20];
|
|
||||||
LogMessage("\tData DMAed to RDRAM:");
|
|
||||||
LogMessage("\t--------------------");
|
|
||||||
for (count = 0; count < 16; count ++ )
|
|
||||||
{
|
|
||||||
if ((count % 4) == 0)
|
|
||||||
{
|
|
||||||
sprintf(HexData,"\0");
|
|
||||||
sprintf(AsciiData,"\0");
|
|
||||||
}
|
|
||||||
sprintf(Addon,"%02X %02X %02X %02X",
|
|
||||||
m_PifRam[(count << 2) + 0], m_PifRam[(count << 2) + 1],
|
|
||||||
m_PifRam[(count << 2) + 2], m_PifRam[(count << 2) + 3] );
|
|
||||||
strcat(HexData,Addon);
|
|
||||||
if (((count + 1) % 4) != 0)
|
|
||||||
{
|
|
||||||
sprintf(Addon,"-");
|
|
||||||
strcat(HexData,Addon);
|
|
||||||
}
|
|
||||||
|
|
||||||
sprintf(Addon,"%c%c%c%c",
|
|
||||||
m_PifRam[(count << 2) + 0], m_PifRam[(count << 2) + 1],
|
|
||||||
m_PifRam[(count << 2) + 2], m_PifRam[(count << 2) + 3] );
|
|
||||||
strcat(AsciiData,Addon);
|
|
||||||
|
|
||||||
if (((count + 1) % 4) == 0)
|
|
||||||
{
|
|
||||||
LogMessage("\t%s %s",HexData, AsciiData);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LogMessage("");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_System->bDelaySI())
|
if (g_LogOptions.LogPRDMAMemStores)
|
||||||
{
|
{
|
||||||
g_SystemTimer->SetTimer(CSystemTimer::SiTimer,0x900,false);
|
int32_t count;
|
||||||
}
|
char HexData[100], AsciiData[100], Addon[20];
|
||||||
else
|
LogMessage("\tData DMAed to RDRAM:");
|
||||||
{
|
LogMessage("\t--------------------");
|
||||||
g_Reg->MI_INTR_REG |= MI_INTR_SI;
|
for (count = 0; count < 16; count ++ )
|
||||||
g_Reg->SI_STATUS_REG |= SI_STATUS_INTERRUPT;
|
{
|
||||||
g_Reg->CheckInterrupts();
|
if ((count % 4) == 0)
|
||||||
}
|
{
|
||||||
|
sprintf(HexData,"\0");
|
||||||
|
sprintf(AsciiData,"\0");
|
||||||
|
}
|
||||||
|
sprintf(Addon,"%02X %02X %02X %02X",
|
||||||
|
m_PifRam[(count << 2) + 0], m_PifRam[(count << 2) + 1],
|
||||||
|
m_PifRam[(count << 2) + 2], m_PifRam[(count << 2) + 3] );
|
||||||
|
strcat(HexData,Addon);
|
||||||
|
if (((count + 1) % 4) != 0)
|
||||||
|
{
|
||||||
|
sprintf(Addon,"-");
|
||||||
|
strcat(HexData,Addon);
|
||||||
|
}
|
||||||
|
|
||||||
|
sprintf(Addon,"%c%c%c%c",
|
||||||
|
m_PifRam[(count << 2) + 0], m_PifRam[(count << 2) + 1],
|
||||||
|
m_PifRam[(count << 2) + 2], m_PifRam[(count << 2) + 3] );
|
||||||
|
strcat(AsciiData,Addon);
|
||||||
|
|
||||||
|
if (((count + 1) % 4) == 0)
|
||||||
|
{
|
||||||
|
LogMessage("\t%s %s",HexData, AsciiData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LogMessage("");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_System->bDelaySI())
|
||||||
|
{
|
||||||
|
g_SystemTimer->SetTimer(CSystemTimer::SiTimer, 0x900, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_Reg->MI_INTR_REG |= MI_INTR_SI;
|
||||||
|
g_Reg->SI_STATUS_REG |= SI_STATUS_INTERRUPT;
|
||||||
|
g_Reg->CheckInterrupts();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPifRam::SI_DMA_WRITE()
|
void CPifRam::SI_DMA_WRITE()
|
||||||
{
|
{
|
||||||
BYTE * PifRamPos = m_PifRam;
|
uint8_t * PifRamPos = m_PifRam;
|
||||||
|
|
||||||
DWORD & SI_DRAM_ADDR_REG = g_Reg->SI_DRAM_ADDR_REG;
|
|
||||||
if ((int)SI_DRAM_ADDR_REG > (int)g_System->RdramSize())
|
|
||||||
{
|
|
||||||
if (bShowPifRamErrors())
|
|
||||||
{
|
|
||||||
g_Notify->DisplayError(L"SI DMA\nSI_DRAM_ADDR_REG not in RDRam space");
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
SI_DRAM_ADDR_REG &= 0xFFFFFFF8;
|
|
||||||
BYTE * RDRAM = g_MMU->Rdram();
|
|
||||||
|
|
||||||
if ((int)SI_DRAM_ADDR_REG < 0)
|
uint32_t & SI_DRAM_ADDR_REG = (uint32_t &)g_Reg->SI_DRAM_ADDR_REG;
|
||||||
{
|
if ((int32_t)SI_DRAM_ADDR_REG > (int32_t)g_System->RdramSize())
|
||||||
int RdramPos = (int)SI_DRAM_ADDR_REG;
|
{
|
||||||
|
if (bShowPifRamErrors())
|
||||||
|
{
|
||||||
|
g_Notify->DisplayError(L"SI DMA\nSI_DRAM_ADDR_REG not in RDRam space");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (int count = 0; count < 0x40; count++, RdramPos++)
|
SI_DRAM_ADDR_REG &= 0xFFFFFFF8;
|
||||||
{
|
uint8_t * RDRAM = g_MMU->Rdram();
|
||||||
if (RdramPos < 0)
|
|
||||||
{
|
if ((int32_t)SI_DRAM_ADDR_REG < 0)
|
||||||
m_PifRam[count] = 0; continue;
|
{
|
||||||
}
|
int32_t RdramPos = (int32_t)SI_DRAM_ADDR_REG;
|
||||||
m_PifRam[count] = RDRAM[RdramPos ^3];
|
|
||||||
}
|
for (int32_t count = 0; count < 0x40; count++, RdramPos++)
|
||||||
}
|
{
|
||||||
else
|
if (RdramPos < 0)
|
||||||
{
|
{
|
||||||
|
m_PifRam[count] = 0; continue;
|
||||||
|
}
|
||||||
|
m_PifRam[count] = RDRAM[RdramPos ^ 3];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
for (size_t i = 0; i < 64; i++)
|
for (size_t i = 0; i < 64; i++)
|
||||||
{
|
{
|
||||||
PifRamPos[i] = RDRAM[(SI_DRAM_ADDR_REG + i) ^ 3];
|
PifRamPos[i] = RDRAM[(SI_DRAM_ADDR_REG + i) ^ 3];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_LogOptions.LogPRDMAMemLoads)
|
|
||||||
{
|
|
||||||
int count;
|
|
||||||
char HexData[100], AsciiData[100], Addon[20];
|
|
||||||
LogMessage("");
|
|
||||||
LogMessage("\tData DMAed to the Pif Ram:");
|
|
||||||
LogMessage("\t--------------------------");
|
|
||||||
for (count = 0; count < 16; count ++ )
|
|
||||||
{
|
|
||||||
if ((count % 4) == 0)
|
|
||||||
{
|
|
||||||
sprintf(HexData,"\0");
|
|
||||||
sprintf(AsciiData,"\0");
|
|
||||||
}
|
|
||||||
sprintf(Addon,"%02X %02X %02X %02X",
|
|
||||||
m_PifRam[(count << 2) + 0], m_PifRam[(count << 2) + 1],
|
|
||||||
m_PifRam[(count << 2) + 2], m_PifRam[(count << 2) + 3] );
|
|
||||||
strcat(HexData,Addon);
|
|
||||||
if (((count + 1) % 4) != 0)
|
|
||||||
{
|
|
||||||
sprintf(Addon,"-");
|
|
||||||
strcat(HexData,Addon);
|
|
||||||
}
|
|
||||||
|
|
||||||
sprintf(Addon,"%c%c%c%c",
|
|
||||||
m_PifRam[(count << 2) + 0], m_PifRam[(count << 2) + 1],
|
|
||||||
m_PifRam[(count << 2) + 2], m_PifRam[(count << 2) + 3] );
|
|
||||||
strcat(AsciiData,Addon);
|
|
||||||
|
|
||||||
if (((count + 1) % 4) == 0)
|
|
||||||
{
|
|
||||||
LogMessage("\t%s %s",HexData, AsciiData);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LogMessage("");
|
|
||||||
}
|
|
||||||
|
|
||||||
PifRamWrite();
|
if (g_LogOptions.LogPRDMAMemLoads)
|
||||||
|
{
|
||||||
if (g_System->bDelaySI())
|
int32_t count;
|
||||||
{
|
char HexData[100], AsciiData[100], Addon[20];
|
||||||
g_SystemTimer->SetTimer(CSystemTimer::SiTimer,0x900,false);
|
LogMessage("");
|
||||||
}
|
LogMessage("\tData DMAed to the Pif Ram:");
|
||||||
else
|
LogMessage("\t--------------------------");
|
||||||
{
|
for (count = 0; count < 16; count ++ )
|
||||||
g_Reg->MI_INTR_REG |= MI_INTR_SI;
|
{
|
||||||
g_Reg->SI_STATUS_REG |= SI_STATUS_INTERRUPT;
|
if ((count % 4) == 0)
|
||||||
g_Reg->CheckInterrupts();
|
{
|
||||||
}
|
sprintf(HexData,"\0");
|
||||||
|
sprintf(AsciiData,"\0");
|
||||||
|
}
|
||||||
|
sprintf(Addon,"%02X %02X %02X %02X",
|
||||||
|
m_PifRam[(count << 2) + 0], m_PifRam[(count << 2) + 1],
|
||||||
|
m_PifRam[(count << 2) + 2], m_PifRam[(count << 2) + 3] );
|
||||||
|
strcat(HexData,Addon);
|
||||||
|
if (((count + 1) % 4) != 0)
|
||||||
|
{
|
||||||
|
sprintf(Addon,"-");
|
||||||
|
strcat(HexData,Addon);
|
||||||
|
}
|
||||||
|
|
||||||
|
sprintf(Addon,"%c%c%c%c",
|
||||||
|
m_PifRam[(count << 2) + 0], m_PifRam[(count << 2) + 1],
|
||||||
|
m_PifRam[(count << 2) + 2], m_PifRam[(count << 2) + 3] );
|
||||||
|
strcat(AsciiData,Addon);
|
||||||
|
|
||||||
|
if (((count + 1) % 4) == 0)
|
||||||
|
{
|
||||||
|
LogMessage("\t%s %s",HexData, AsciiData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LogMessage("");
|
||||||
|
}
|
||||||
|
|
||||||
|
PifRamWrite();
|
||||||
|
|
||||||
|
if (g_System->bDelaySI())
|
||||||
|
{
|
||||||
|
g_SystemTimer->SetTimer(CSystemTimer::SiTimer, 0x900, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_Reg->MI_INTR_REG |= MI_INTR_SI;
|
||||||
|
g_Reg->SI_STATUS_REG |= SI_STATUS_INTERRUPT;
|
||||||
|
g_Reg->CheckInterrupts();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPifRam::ProcessControllerCommand ( int Control, BYTE * Command)
|
void CPifRam::ProcessControllerCommand ( int Control, BYTE * Command)
|
||||||
|
|
Loading…
Reference in New Issue