From dd29a6281115c7cb50ddff3330bc7176df182a44 Mon Sep 17 00:00:00 2001 From: Flyinghead Date: Tue, 25 Feb 2020 12:52:21 +0100 Subject: [PATCH] remove buggy LimitFPSAuto option --- core/nullDC.cpp | 7 ++++--- core/oslib/audiostream.cpp | 10 ++-------- core/rend/gui.cpp | 25 +++---------------------- core/types.h | 8 +------- 4 files changed, 10 insertions(+), 40 deletions(-) diff --git a/core/nullDC.cpp b/core/nullDC.cpp index c2ca2b378..7af6f04db 100755 --- a/core/nullDC.cpp +++ b/core/nullDC.cpp @@ -763,7 +763,7 @@ void InitSettings() settings.dreamcast.ForceWindowsCE = false; settings.dreamcast.HideLegacyNaomiRoms = true; settings.aica.DSPEnabled = false; - settings.aica.LimitFPS = LimitFPSEnabled; + settings.aica.LimitFPS = true; settings.aica.NoBatch = false; settings.aica.NoSound = false; settings.audio.backend = "auto"; @@ -850,7 +850,8 @@ void LoadSettings(bool game_specific) settings.dreamcast.ForceWindowsCE = cfgLoadBool(config_section, "Dreamcast.ForceWindowsCE", settings.dreamcast.ForceWindowsCE); if (settings.dreamcast.ForceWindowsCE) settings.aica.NoBatch = true; - settings.aica.LimitFPS = (LimitFPSEnum)cfgLoadInt(config_section, "aica.LimitFPS", (int)settings.aica.LimitFPS); + settings.aica.LimitFPS = cfgLoadBool(config_section, "aica.LimitFPS", settings.aica.LimitFPS) + || cfgLoadInt(config_section, "aica.LimitFPS", 0) == 2; settings.aica.DSPEnabled = cfgLoadBool(config_section, "aica.DSPEnabled", settings.aica.DSPEnabled); settings.aica.NoSound = cfgLoadBool(config_section, "aica.NoSound", settings.aica.NoSound); settings.audio.backend = cfgLoadStr(audio_section, "backend", settings.audio.backend.c_str()); @@ -1006,7 +1007,7 @@ void SaveSettings() // if (!disable_vmem32_game || !settings.dynarec.disable_vmem32) // cfgSaveBool("config", "Dynarec.DisableVmem32", settings.dynarec.disable_vmem32); cfgSaveInt("config", "Dreamcast.Language", settings.dreamcast.language); - cfgSaveInt("config", "aica.LimitFPS", (int)settings.aica.LimitFPS); + cfgSaveBool("config", "aica.LimitFPS", settings.aica.LimitFPS); cfgSaveBool("config", "aica.DSPEnabled", settings.aica.DSPEnabled); cfgSaveBool("config", "aica.NoSound", settings.aica.NoSound); cfgSaveStr("audio", "backend", settings.audio.backend.c_str()); diff --git a/core/oslib/audiostream.cpp b/core/oslib/audiostream.cpp index ef6d76930..20ca1243b 100644 --- a/core/oslib/audiostream.cpp +++ b/core/oslib/audiostream.cpp @@ -140,7 +140,6 @@ u32 asRingFreeCount() return RingBufferSampleCount-asRingUsedCount(); } -extern double mspdf; void WriteSample(s16 r, s16 l) { const u32 ptr=(WritePtr+1)%RingBufferSampleCount; @@ -148,13 +147,8 @@ void WriteSample(s16 r, s16 l) RingBuffer[ptr].l=l; WritePtr=ptr; - if (WritePtr==(SAMPLE_COUNT-1)) - { - bool do_wait = settings.aica.LimitFPS == LimitFPSEnabled - || (settings.aica.LimitFPS == LimitFPSAuto && mspdf <= 11); - - PushAudio(RingBuffer,SAMPLE_COUNT, do_wait); - } + if (WritePtr == SAMPLE_COUNT - 1) + PushAudio(RingBuffer,SAMPLE_COUNT, settings.aica.LimitFPS); } static bool backends_sorted = false; diff --git a/core/rend/gui.cpp b/core/rend/gui.cpp index 41b8e536e..50cc97384 100644 --- a/core/rend/gui.cpp +++ b/core/rend/gui.cpp @@ -1135,28 +1135,9 @@ static void gui_display_settings() ImGui::Checkbox("Enable DSP", &settings.aica.DSPEnabled); ImGui::SameLine(); ShowHelpMarker("Enable the Dreamcast Digital Sound Processor. Only recommended on fast and arm64 platforms"); - const char *preview = settings.aica.LimitFPS == LimitFPSDisabled ? "Disabled" : settings.aica.LimitFPS == LimitFPSAuto ? "Automatic" : "Enabled"; - if (ImGui::BeginCombo("Limit Emulator Speed", preview, ImGuiComboFlags_None)) - { - bool is_selected = settings.aica.LimitFPS == LimitFPSDisabled; - if (ImGui::Selectable("Disabled", &is_selected)) - settings.aica.LimitFPS = LimitFPSDisabled; - if (is_selected) - ImGui::SetItemDefaultFocus(); - is_selected = settings.aica.LimitFPS == LimitFPSAuto; - if (ImGui::Selectable("Automatic", &is_selected)) - settings.aica.LimitFPS = LimitFPSAuto; - if (is_selected) - ImGui::SetItemDefaultFocus(); - is_selected = settings.aica.LimitFPS == LimitFPSEnabled; - if (ImGui::Selectable("Enabled", &is_selected)) - settings.aica.LimitFPS = LimitFPSEnabled; - if (is_selected) - ImGui::SetItemDefaultFocus(); - ImGui::EndCombo(); - } - ImGui::SameLine(); - ShowHelpMarker("Whether to limit the emulator speed using the audio output. Enabled recommended"); + ImGui::Checkbox("Limit Emulator Speed", &settings.aica.LimitFPS); + ImGui::SameLine(); + ShowHelpMarker("Whether to limit the emulator speed using the audio output. Recommended"); audiobackend_t* backend = NULL;; std::string backend_name = settings.audio.backend; diff --git a/core/types.h b/core/types.h index 4fc5acdf8..c902e16f6 100644 --- a/core/types.h +++ b/core/types.h @@ -378,12 +378,6 @@ struct RegisterStruct } }; -enum LimitFPSEnum { - LimitFPSDisabled = 0, - LimitFPSAuto = 1, - LimitFPSEnabled = 2 -}; - struct settings_t { struct { @@ -459,7 +453,7 @@ struct settings_t { u32 HW_mixing; //(0) -> SW , 1 -> HW , 2 -> Auto u32 BufferSize; //In samples ,*4 for bytes (1024) - LimitFPSEnum LimitFPS; + bool LimitFPS; u32 GlobalFocus; //0 -> only hwnd , (1) -> Global u32 CDDAMute; bool DSPEnabled;