remove buggy LimitFPSAuto option

This commit is contained in:
Flyinghead 2020-02-25 12:52:21 +01:00
parent 0ff22ed0a6
commit dd29a62811
4 changed files with 10 additions and 40 deletions

View File

@ -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());

View File

@ -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;

View File

@ -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;

View File

@ -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;