From a31ecb7c0f1f496ce3831f7d34943285cb9a7936 Mon Sep 17 00:00:00 2001 From: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com> Date: Sat, 1 Apr 2023 01:26:38 -0700 Subject: [PATCH] fix new BSNES with subbsnes fixes 22e35c45fcb84f6e86e99d3606b5bae55389d931 --- .../Consoles/Nintendo/BSNES/BsnesCore.IEmulator.cs | 2 +- .../Consoles/Nintendo/BSNES/BsnesCore.cs | 4 ++-- .../Consoles/Nintendo/BSNES/SubBsnesCore.cs | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IEmulator.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IEmulator.cs index 900ebe3067..02668bd7d0 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IEmulator.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IEmulator.cs @@ -34,6 +34,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES IsLagFrame = true; // run the core for one frame Api.core.snes_run(false); + AdvanceRtc(); FrameAdvancePost(); return true; @@ -55,7 +56,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES int numSamples = UpdateAudioBuffer(); _soundProvider.PutSamples(_audioBuffer, numSamples / 2); Frame++; - AdvanceRtc(); if (IsLagFrame) { diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.cs index b4556b7542..4e4c748aea 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.cs @@ -348,10 +348,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES private long _clockTime; private int _clockRemainder; - protected void InitializeRtc(DateTime start) + private void InitializeRtc(DateTime start) => _clockTime = (long)(start - _epoch).TotalSeconds; - private void AdvanceRtc() + internal void AdvanceRtc() { _clockRemainder += VsyncDenominator; if (_clockRemainder >= VsyncNumerator) diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/SubBsnesCore.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/SubBsnesCore.cs index 35b5a9a3ef..f84cf5c905 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/SubBsnesCore.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/SubBsnesCore.cs @@ -81,6 +81,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES } if (!framePassed) _bsnesCore.IsLagFrame = false; + if (framePassed) _bsnesCore.AdvanceRtc(); _bsnesCore.FrameAdvancePost(); return true;