From 3a8bf7ba7e1c133ffffd1ae4609dd54b48fad033 Mon Sep 17 00:00:00 2001 From: 88hcsif <62969634+88hcsif@users.noreply.github.com> Date: Wed, 1 Jul 2020 10:51:01 +0100 Subject: [PATCH] Regulate calls to the retro core based on the fps reported by the game. (#214) :+1: --- pkg/config/config.go | 2 +- pkg/emulator/libretro/nanoarch/naemulator.go | 2 +- pkg/emulator/libretro/nanoarch/nanoarch.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/config/config.go b/pkg/config/config.go index e7b64dc6..ce0381ec 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -54,7 +54,7 @@ type EmulatorMeta struct { Width int Height int AudioSampleRate int - Fps int + Fps float64 BaseWidth int BaseHeight int Ratio float64 diff --git a/pkg/emulator/libretro/nanoarch/naemulator.go b/pkg/emulator/libretro/nanoarch/naemulator.go index 7fa8e163..cdbc1a03 100644 --- a/pkg/emulator/libretro/nanoarch/naemulator.go +++ b/pkg/emulator/libretro/nanoarch/naemulator.go @@ -154,7 +154,7 @@ func (na *naEmulator) SetViewport(width int, height int) { func (na *naEmulator) Start() { na.playGame(na.gamePath) - ticker := time.NewTicker(time.Second / 60) + ticker := time.NewTicker(time.Second / time.Duration(na.meta.Fps)) for range ticker.C { select { diff --git a/pkg/emulator/libretro/nanoarch/nanoarch.go b/pkg/emulator/libretro/nanoarch/nanoarch.go index 1cb5f408..49ff0d76 100644 --- a/pkg/emulator/libretro/nanoarch/nanoarch.go +++ b/pkg/emulator/libretro/nanoarch/nanoarch.go @@ -610,7 +610,7 @@ func coreLoadGame(filename string) { // Append the library name to the window title. NAEmulator.meta.AudioSampleRate = int(avi.timing.sample_rate) - NAEmulator.meta.Fps = int(avi.timing.fps) + NAEmulator.meta.Fps = float64(avi.timing.fps) NAEmulator.meta.BaseWidth = int(avi.geometry.base_width) NAEmulator.meta.BaseHeight = int(avi.geometry.base_height) // set aspect ratio