mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-10 08:09:26 +01:00
Corrected the FIFO breakpoint clause in the FIFO loop. This fixes Super Monkey Ball: Banana Blitz, Super Monkey Ball: Step & Roll and Pokemon XD.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6470 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
d36ede020c
commit
2808f75f74
@ -568,7 +568,7 @@ bool AllowIdleSkipping()
|
||||
return !g_VideoInitialize.bOnThread || !m_CPCtrlReg.BPEnable;
|
||||
}
|
||||
|
||||
// Check every FAKE_GP_WATCHDOG_PERIOD if a PE-frame-finish occured
|
||||
// Check every FAKE_GP_WATCHDOG_PERIOD if a PE-frame-finish occurred
|
||||
// if not then lock CPUThread until GP finish a frame.
|
||||
void WaitForFrameFinish()
|
||||
{
|
||||
@ -696,10 +696,10 @@ void SetFifoIdleFromVideoPlugin()
|
||||
s_fifoIdleEvent.Set();
|
||||
}
|
||||
|
||||
// This is called by the ProcessorInterface when PI_FIFO_RESET is writed,
|
||||
// the general idea is abort all commands in the FIFO.
|
||||
// This prevent Negative fifo.CPReadWriteDistance because when PI_FIFO_RESET happens
|
||||
// the fifo.CPReadWriteDistance is writed to 0
|
||||
// This is called by the ProcessorInterface when PI_FIFO_RESET is written to.
|
||||
// The general idea is abort all commands in the FIFO.
|
||||
// This prevents negative fifo.CPReadWriteDistance by changing fifo.CPReadWriteDistance
|
||||
// to 0 when PI_FIFO_RESET occurs.
|
||||
void AbortFrame()
|
||||
{
|
||||
Fifo_SetRendering(false);
|
||||
|
@ -146,7 +146,7 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize)
|
||||
|
||||
// check if we are able to run this buffer
|
||||
|
||||
while (_fifo.bFF_GPReadEnable && (_fifo.CPReadWriteDistance || (_fifo.bFF_BPEnable && !_fifo.bFF_Breakpoint)))
|
||||
while (_fifo.bFF_GPReadEnable && (_fifo.CPReadWriteDistance || (_fifo.bFF_BPEnable && ((_fifo.CPReadPointer <= _fifo.CPBreakpoint) && (_fifo.CPReadPointer + 32 > _fifo.CPBreakpoint)))))
|
||||
{
|
||||
// while the FIFO is processing data we activate this for sync with emulator thread.
|
||||
CommandProcessor::isFifoBusy = true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user