diff --git a/frontends/sdl/src/main.rs b/frontends/sdl/src/main.rs
index fb789d0ab817bea820ef104e38ffa319918f3176..c8227f12f20924c219e6744a59d9e5b06f8727df 100644
--- a/frontends/sdl/src/main.rs
+++ b/frontends/sdl/src/main.rs
@@ -351,8 +351,7 @@ impl Emulator {
                 // for the current "tick" operation this is basically the current
                 // logic frequency divided by the visual one, this operation also
                 // takes into account the current Game Boy speed multiplier (GBC)
-                let cycle_limit = (self.logic_frequency as f32
-                    * self.system.speed().multiplier() as f32
+                let cycle_limit = (self.logic_frequency as f32 * self.system.multiplier() as f32
                     / self.visual_frequency)
                     .round() as u32;
 
diff --git a/frontends/web/ts/gb.ts b/frontends/web/ts/gb.ts
index c734938d380a2f0c349bc5192da8d72e32b3012e..2e5af350f548a56ede50af2d2e08761c0c718adb 100644
--- a/frontends/web/ts/gb.ts
+++ b/frontends/web/ts/gb.ts
@@ -192,7 +192,11 @@ export class GameboyEmulator extends EmulatorBase implements Emulator {
                 pending = this.tick(
                     currentTime,
                     pending,
-                    Math.round(this.logicFrequency / this.visualFrequency)
+                    Math.round(
+                        (this.logicFrequency *
+                            (this.gameBoy?.multiplier() ?? 1)) /
+                            this.visualFrequency
+                    )
                 );
             } catch (err) {
                 // sets the default error message to be displayed
diff --git a/src/gb.rs b/src/gb.rs
index f0990106a17a0713d20a029598b316efc34f1299..8f38e481eb1d0cbb1c75d5751cc26057f613b840 100644
--- a/src/gb.rs
+++ b/src/gb.rs
@@ -392,7 +392,7 @@ impl GameBoy {
 
     pub fn clock(&mut self) -> u8 {
         let cycles = self.cpu_clock();
-        let cycles_n = cycles / self.mmu().speed.multiplier();
+        let cycles_n = cycles / self.multiplier();
         if self.ppu_enabled {
             self.ppu_clock(cycles_n);
         }
@@ -640,6 +640,10 @@ impl GameBoy {
         self.mmu_i().speed
     }
 
+    pub fn multiplier(&self) -> u8 {
+        self.mmu_i().speed.multiplier()
+    }
+
     pub fn mode(&self) -> GameBoyMode {
         self.mode
     }