From 48a6bd47ceff7be7152cce427b91fde2f257e0af Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Sun, 3 Sep 2017 22:15:48 -0700 Subject: [PATCH] GB, GBA: Fix sync to video with frameskip --- CHANGES | 1 + src/gb/video.c | 2 +- src/gba/video.c | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index c32a6ac37..94bb4a027 100644 --- a/CHANGES +++ b/CHANGES @@ -34,6 +34,7 @@ Bugfixes: - GB Memory: Fix HDMA count starting in mode 0 (fixes mgba.io/i/855) - GB Memory: Actually load latch time from savestate - GB Serialize: Fix game title check + - GB, GBA: Fix sync to video with frameskip Misc: - GBA Timer: Use global cycles for timers - GBA: Extend oddly-sized ROMs to full address space (fixes mgba.io/i/722) diff --git a/src/gb/video.c b/src/gb/video.c index 5810be63e..f98a6c77b 100644 --- a/src/gb/video.c +++ b/src/gb/video.c @@ -338,10 +338,10 @@ void _updateFrameCount(struct mTiming* timing, void* context, uint32_t cyclesLat } GBFrameEnded(video->p); + mCoreSyncPostFrame(video->p->sync); --video->frameskipCounter; if (video->frameskipCounter < 0) { video->renderer->finishFrame(video->renderer); - mCoreSyncPostFrame(video->p->sync); video->frameskipCounter = video->frameskip; } ++video->frameCounter; diff --git a/src/gba/video.c b/src/gba/video.c index db0614342..87af353d1 100644 --- a/src/gba/video.c +++ b/src/gba/video.c @@ -157,9 +157,9 @@ void _startHdraw(struct mTiming* timing, void* context, uint32_t cyclesLate) { GBARaiseIRQ(video->p, IRQ_VBLANK); } GBAFrameEnded(video->p); + mCoreSyncPostFrame(video->p->sync); --video->frameskipCounter; if (video->frameskipCounter < 0) { - mCoreSyncPostFrame(video->p->sync); video->frameskipCounter = video->frameskip; } ++video->frameCounter;