diff --git a/core/src/gba.rs b/core/src/gba.rs index 1a5af230..9d67b773 100644 --- a/core/src/gba.rs +++ b/core/src/gba.rs @@ -215,7 +215,7 @@ impl GameBoyAdvance { pub fn frame(&mut self) { static mut OVERSHOOT: usize = 0; unsafe { - OVERSHOOT = CYCLES_FULL_REFRESH - self.run::(CYCLES_FULL_REFRESH - OVERSHOOT); + OVERSHOOT = CYCLES_FULL_REFRESH.saturating_sub(self.run::(CYCLES_FULL_REFRESH - OVERSHOOT)); } } @@ -223,7 +223,7 @@ impl GameBoyAdvance { fn frame_interruptible(&mut self) { static mut OVERSHOOT: usize = 0; unsafe { - OVERSHOOT = CYCLES_FULL_REFRESH - self.run::(CYCLES_FULL_REFRESH - OVERSHOOT); + OVERSHOOT = CYCLES_FULL_REFRESH.saturating_sub(self.run::(CYCLES_FULL_REFRESH - OVERSHOOT)); } }