git.y1.nz

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:
MiOS/GBViewController.m14+++++++++++---
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.