Tweaked the VBeam logic enough to fix Endless Ocean 2. This might also fix a few other games that have been black screening on boot recently.

Fixes issue 3472.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6423 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
skidau 2010-11-15 11:32:30 +00:00
parent db35fe4100
commit 0c5ccf7156
1 changed files with 6 additions and 7 deletions

View File

@ -798,7 +798,8 @@ void Update()
{
// Progressive
NewVBeamPos = s_lineCount + 1;
BeginField(FIELD_PROGRESSIVE);
if (m_VBeamPos == 1)
BeginField(FIELD_PROGRESSIVE);
}
else if (m_VBeamPos == s_upperFieldBegin)
{
@ -830,17 +831,15 @@ void Update()
EndField();
}
if (++m_VBeamPos > s_lineCount)
m_VBeamPos = (NewVBeamPos > s_lineCount) ? 1 : NewVBeamPos;
for (int i = 0; i < 4; i++)
{
if (m_VBeamPos <= m_InterruptRegister[i].VCT && m_InterruptRegister[i].VCT < NewVBeamPos)
if (m_VBeamPos == m_InterruptRegister[i].VCT)
m_InterruptRegister[i].IR_INT = 1;
}
UpdateInterrupts();
if (++m_VBeamPos > s_lineCount)
{
m_VBeamPos = (NewVBeamPos > s_lineCount) ? 1 : NewVBeamPos;
}
}
} // namespace