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:
parent
db35fe4100
commit
0c5ccf7156
|
@ -798,7 +798,8 @@ void Update()
|
||||||
{
|
{
|
||||||
// Progressive
|
// Progressive
|
||||||
NewVBeamPos = s_lineCount + 1;
|
NewVBeamPos = s_lineCount + 1;
|
||||||
BeginField(FIELD_PROGRESSIVE);
|
if (m_VBeamPos == 1)
|
||||||
|
BeginField(FIELD_PROGRESSIVE);
|
||||||
}
|
}
|
||||||
else if (m_VBeamPos == s_upperFieldBegin)
|
else if (m_VBeamPos == s_upperFieldBegin)
|
||||||
{
|
{
|
||||||
|
@ -830,17 +831,15 @@ void Update()
|
||||||
EndField();
|
EndField();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (++m_VBeamPos > s_lineCount)
|
||||||
|
m_VBeamPos = (NewVBeamPos > s_lineCount) ? 1 : NewVBeamPos;
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++)
|
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;
|
m_InterruptRegister[i].IR_INT = 1;
|
||||||
}
|
}
|
||||||
UpdateInterrupts();
|
UpdateInterrupts();
|
||||||
|
|
||||||
if (++m_VBeamPos > s_lineCount)
|
|
||||||
{
|
|
||||||
m_VBeamPos = (NewVBeamPos > s_lineCount) ? 1 : NewVBeamPos;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
Loading…
Reference in New Issue