all repos — mgba @ 1c102000aea89a76381c21d5b7477d670dbdaf97

mGBA Game Boy Advance Emulator

GBA: Break infinite loop for 0-frame mVLs (fixes #1723)
Vicki Pfau vi@endrift.com
Sun, 07 Jun 2020 18:35:00 -0700
commit

1c102000aea89a76381c21d5b7477d670dbdaf97

parent

daac1985c1ad0992ce3f60355ac117a24c01a9ce

2 files changed, 3 insertions(+), 1 deletions(-)

jump to
M CHANGESCHANGES

@@ -20,6 +20,7 @@ - Core: Fix ELF loading regression (fixes mgba.io/i/1669)

- Core: Fix crash modifying hash table entry (fixes mgba.io/i/1673) - GB Video: Fix some cases where SGB border doesn't draw to mutli-buffers - GBA: Reject incorrectly sized BIOSes + - GBA: Break infinite loop for 0-frame mVLs (fixes mgba.io/i/1723) - Qt: Fix OpenGL 2.1 support (fixes mgba.io/i/1678) - Qt: Fix unmapping zipped ROM (fixes mgba.io/i/1777) Misc:
M src/gba/core.csrc/gba/core.c

@@ -616,7 +616,8 @@

static void _GBACoreRunFrame(struct mCore* core) { struct GBA* gba = core->board; int32_t frameCounter = gba->video.frameCounter; - while (gba->video.frameCounter == frameCounter) { + uint32_t startCycle = mTimingCurrentTime(&gba->timing); + while (gba->video.frameCounter == frameCounter && mTimingCurrentTime(&gba->timing) - startCycle < VIDEO_TOTAL_LENGTH) { ARMRunLoop(core->cpu); } }