Backport Move S9xMovieUpdate to start of next frame.

This commit is contained in:
bladeoner 2018-12-13 18:23:39 +01:00
parent 7fd74e91a4
commit d33626467e
2 changed files with 16 additions and 13 deletions

View File

@ -3322,8 +3322,6 @@ void S9xControlEOF (void)
do_polling(POLL_ALL); do_polling(POLL_ALL);
S9xMovieUpdate();
pad_read_last = pad_read; pad_read_last = pad_read;
pad_read = false; pad_read = false;
} }

View File

@ -12,6 +12,7 @@
#include "apu/apu.h" #include "apu/apu.h"
#include "fxemu.h" #include "fxemu.h"
#include "snapshot.h" #include "snapshot.h"
#include "movie.h"
#ifdef DEBUGGER #ifdef DEBUGGER
#include "debug.h" #include "debug.h"
#include "missing.h" #include "missing.h"
@ -19,7 +20,6 @@
static inline void S9xReschedule (void); static inline void S9xReschedule (void);
void S9xMainLoop (void) void S9xMainLoop (void)
{ {
#define CHECK_FOR_IRQ_CHANGE() \ #define CHECK_FOR_IRQ_CHANGE() \
@ -32,6 +32,12 @@ void S9xMainLoop (void)
Timings.IRQFlagChanging = IRQ_NONE; \ Timings.IRQFlagChanging = IRQ_NONE; \
} }
if (CPU.Flags & SCAN_KEYS_FLAG)
{
CPU.Flags &= ~SCAN_KEYS_FLAG;
S9xMovieUpdate();
}
for (;;) for (;;)
{ {
if (CPU.NMIPending) if (CPU.NMIPending)
@ -121,8 +127,16 @@ void S9xMainLoop (void)
#endif #endif
if (CPU.Flags & SCAN_KEYS_FLAG) if (CPU.Flags & SCAN_KEYS_FLAG)
{
#ifdef DEBUGGER
if (!(CPU.Flags & FRAME_ADVANCE_FLAG))
#endif
{
S9xSyncSpeed();
}
break; break;
}
uint8 Op; uint8 Op;
struct SOpcodes *Opcodes; struct SOpcodes *Opcodes;
@ -156,15 +170,6 @@ void S9xMainLoop (void)
} }
S9xPackStatus(); S9xPackStatus();
if (CPU.Flags & SCAN_KEYS_FLAG)
{
#ifdef DEBUGGER
if (!(CPU.Flags & FRAME_ADVANCE_FLAG))
#endif
S9xSyncSpeed();
CPU.Flags &= ~SCAN_KEYS_FLAG;
}
} }
static inline void S9xReschedule (void) static inline void S9xReschedule (void)