Core: Add masking around DPC_START_REG/DPC_END_REG
This commit is contained in:
parent
4e71221147
commit
a6405cfa2d
|
@ -85,11 +85,19 @@ bool DisplayControlRegHandler::Write32(uint32_t Address, uint32_t Value, uint32_
|
||||||
switch (Address & 0x1FFFFFFF)
|
switch (Address & 0x1FFFFFFF)
|
||||||
{
|
{
|
||||||
case 0x04100000:
|
case 0x04100000:
|
||||||
DPC_START_REG = MaskedValue;
|
if ((DPC_STATUS_REG & DPC_STATUS_START_VALID) == 0)
|
||||||
DPC_CURRENT_REG = MaskedValue;
|
{
|
||||||
|
DPC_START_REG = MaskedValue & 0xFFFFF8;
|
||||||
|
DPC_STATUS_REG |= DPC_STATUS_START_VALID;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 0x04100004:
|
case 0x04100004:
|
||||||
DPC_END_REG = MaskedValue;
|
DPC_END_REG = MaskedValue & 0xFFFFF8;
|
||||||
|
if (DPC_STATUS_REG & DPC_STATUS_START_VALID)
|
||||||
|
{
|
||||||
|
DPC_CURRENT_REG = DPC_START_REG;
|
||||||
|
DPC_STATUS_REG &= ~DPC_STATUS_START_VALID;
|
||||||
|
}
|
||||||
if (m_Plugins->Gfx()->ProcessRDPList)
|
if (m_Plugins->Gfx()->ProcessRDPList)
|
||||||
{
|
{
|
||||||
m_Plugins->Gfx()->ProcessRDPList();
|
m_Plugins->Gfx()->ProcessRDPList();
|
||||||
|
|
Loading…
Reference in New Issue