mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Skip loading unknown XF registers in the FIFO player
This avoids some warnings, which were originally fixed by ignoring loads with a value of zero (see 636bedb207
/ #3242).
Note that FifoCI will report some changes, but only on the first frame; these seem to be timing related as they don't happen if a different write is used to replace skipped ones.
This commit is contained in:
@ -491,7 +491,10 @@ void FifoPlayer::LoadRegisters()
|
||||
|
||||
regs = m_File->GetXFRegs();
|
||||
for (int i = 0; i < FifoDataFile::XF_REGS_SIZE; ++i)
|
||||
LoadXFReg(i, regs[i]);
|
||||
{
|
||||
if (ShouldLoadXF(i))
|
||||
LoadXFReg(i, regs[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void FifoPlayer::LoadTextureMemory()
|
||||
@ -571,6 +574,16 @@ bool FifoPlayer::ShouldLoadBP(u8 address)
|
||||
}
|
||||
}
|
||||
|
||||
bool FifoPlayer::ShouldLoadXF(u8 reg)
|
||||
{
|
||||
// Ignore unknown addresses
|
||||
u16 address = reg + 0x1000;
|
||||
return !(address == XFMEM_UNKNOWN_1007 ||
|
||||
(address >= XFMEM_UNKNOWN_GROUP_1_START && address <= XFMEM_UNKNOWN_GROUP_1_END) ||
|
||||
(address >= XFMEM_UNKNOWN_GROUP_2_START && address <= XFMEM_UNKNOWN_GROUP_2_END) ||
|
||||
(address >= XFMEM_UNKNOWN_GROUP_3_START && address <= XFMEM_UNKNOWN_GROUP_3_END));
|
||||
}
|
||||
|
||||
bool FifoPlayer::IsIdleSet()
|
||||
{
|
||||
CommandProcessor::UCPStatusReg status =
|
||||
|
@ -134,6 +134,7 @@ private:
|
||||
void LoadXFMem16(u16 address, const u32* data);
|
||||
|
||||
bool ShouldLoadBP(u8 address);
|
||||
bool ShouldLoadXF(u8 address);
|
||||
|
||||
static bool IsIdleSet();
|
||||
static bool IsHighWatermarkSet();
|
||||
|
Reference in New Issue
Block a user