SameBoy | Accurate GB/GBC emulator |
| download: https://git.y1.nz/archives/sameboy.tar.gz | |
| README | Files | Log | Refs | LICENSE |
commit 08d58aa99284295b54a546ca01cf3165190be7cd parent 8cce6f7b136d98f87cf9e828db806ee88d77a754 Author: Lior Halphon <LIJI32@gmail.com> Date: Fri, 11 Jul 2025 23:14:03 +0300 Fix a bug where controller-triggered rewind doesn't resume after reaching the buffer end Diffstat:
| M | iOS/GBViewController.m | 14 | +++++++++++--- |
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/iOS/GBViewController.m b/iOS/GBViewController.m @@ -723,7 +723,7 @@ static void rumbleCallback(GB_gameboy_t *gb, double amp) [_backgroundView fadeOverlayOut]; } else { - if (self.runMode == GBRunModeRewind && _runModeFromController) { + if ((self.runMode == GBRunModeRewind || self.runMode == GBRunModePaused) && _runModeFromController) { [self setRunMode:GBRunModeNormal]; _runModeFromController = false; } @@ -1354,14 +1354,22 @@ static void rumbleCallback(GB_gameboy_t *gb, double amp) GB_rewind_pop(&_gb); if ([[NSUserDefaults standardUserDefaults] boolForKey:@"GBDynamicSpeed"]) { if (!GB_rewind_pop(&_gb)) { - self.runMode = GBRunModePaused; + dispatch_sync(dispatch_get_main_queue(), ^{ + if (_runMode == GBRunModeRewind) { + self.runMode = GBRunModePaused; + } + }); _rewindOver = true; } } else { for (unsigned i = [[NSUserDefaults standardUserDefaults] integerForKey:@"GBRewindSpeed"]; i--;) { if (!GB_rewind_pop(&_gb)) { - self.runMode = GBRunModePaused; + dispatch_sync(dispatch_get_main_queue(), ^{ + if (_runMode == GBRunModeRewind) { + self.runMode = GBRunModePaused; + } + }); _rewindOver = true; } }
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.