From fa7e3e55d2071ca581ca9fde1ff68cd2611acc59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Thu, 3 Aug 2017 16:55:43 +0800 Subject: [PATCH] Config: Add MainSettings Not really used anywhere yet, but useful for not having to duplicate config locations and for getting rid of conflicts when I get around to rebase my Main.Core and Main.DSP porting PR. --- Source/Core/Core/CMakeLists.txt | 1 + Source/Core/Core/Config/MainSettings.cpp | 108 +++++++++++++++++++++++ Source/Core/Core/Config/MainSettings.h | 80 +++++++++++++++++ Source/Core/Core/Core.vcxproj | 2 + Source/Core/Core/Core.vcxproj.filters | 6 ++ 5 files changed, 197 insertions(+) create mode 100644 Source/Core/Core/Config/MainSettings.cpp create mode 100644 Source/Core/Core/Config/MainSettings.h diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 572532ddda..04dbcf5848 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -26,6 +26,7 @@ set(SRCS Boot/DolReader.cpp Boot/ElfReader.cpp Config/GraphicsSettings.cpp + Config/MainSettings.cpp Config/NetplaySettings.cpp Config/SYSCONFSettings.cpp ConfigLoaders/BaseConfigLoader.cpp diff --git a/Source/Core/Core/Config/MainSettings.cpp b/Source/Core/Core/Config/MainSettings.cpp new file mode 100644 index 0000000000..697dc81a32 --- /dev/null +++ b/Source/Core/Core/Config/MainSettings.cpp @@ -0,0 +1,108 @@ +// Copyright 2017 Dolphin Emulator Project +// Licensed under GPLv2+ +// Refer to the license.txt file included. + +#include "Core/Config/MainSettings.h" + +#include "AudioCommon/AudioCommon.h" +#include "Common/Config/Config.h" +#include "Common/StringUtil.h" +#include "Core/HW/EXI/EXI_Device.h" +#include "Core/HW/SI/SI_Device.h" +#include "Core/PowerPC/PowerPC.h" + +namespace Config +{ +// Main.Core + +const ConfigInfo MAIN_SKIP_IPL{{System::Main, "Core", "SkipIPL"}, true}; +const ConfigInfo MAIN_CPU_CORE{{System::Main, "Core", "CPUCore"}, PowerPC::DefaultCPUCore()}; +const ConfigInfo MAIN_FASTMEM{{System::Main, "Core", "Fastmem"}, true}; +const ConfigInfo MAIN_DSP_HLE{{System::Main, "Core", "DSPHLE"}, true}; +const ConfigInfo MAIN_TIMING_VARIANCE{{System::Main, "Core", "TimingVariance"}, 40}; +const ConfigInfo MAIN_CPU_THREAD{{System::Main, "Core", "CPUThread"}, true}; +const ConfigInfo MAIN_SYNC_ON_SKIP_IDLE{{System::Main, "Core", "SyncOnSkipIdle"}, true}; +const ConfigInfo MAIN_DEFAULT_ISO{{System::Main, "Core", "DefaultISO"}, ""}; +const ConfigInfo MAIN_ENABLE_CHEATS{{System::Main, "Core", "EnableCheats"}, false}; +const ConfigInfo MAIN_GC_LANGUAGE{{System::Main, "Core", "SelectedLanguage"}, 0}; +const ConfigInfo MAIN_OVERRIDE_GC_LANGUAGE{{System::Main, "Core", "OverrideGCLang"}, false}; +const ConfigInfo MAIN_DPL2_DECODER{{System::Main, "Core", "DPL2Decoder"}, false}; +const ConfigInfo MAIN_AUDIO_LATENCY{{System::Main, "Core", "AudioLatency"}, 20}; +const ConfigInfo MAIN_AUDIO_STRETCH{{System::Main, "Core", "AudioStretch"}, false}; +const ConfigInfo MAIN_AUDIO_STRETCH_LATENCY{{System::Main, "Core", "AudioStretchMaxLatency"}, + 80}; +const ConfigInfo MAIN_MEMCARD_A_PATH{{System::Main, "Core", "MemcardAPath"}, ""}; +const ConfigInfo MAIN_MEMCARD_B_PATH{{System::Main, "Core", "MemcardBPath"}, ""}; +const ConfigInfo MAIN_AGP_CART_A_PATH{{System::Main, "Core", "AgpCartAPath"}, ""}; +const ConfigInfo MAIN_AGP_CART_B_PATH{{System::Main, "Core", "AgpCartBPath"}, ""}; +const ConfigInfo MAIN_SLOT_A{{System::Main, "Core", "SlotA"}, + ExpansionInterface::EXIDEVICE_MEMORYCARDFOLDER}; +const ConfigInfo MAIN_SLOT_B{{System::Main, "Core", "SlotB"}, + ExpansionInterface::EXIDEVICE_NONE}; +const ConfigInfo MAIN_SERIAL_PORT_1{{System::Main, "Core", "SerialPort1"}, + ExpansionInterface::EXIDEVICE_NONE}; +const ConfigInfo MAIN_BBA_MAC{{System::Main, "Core", "BBA_MAC"}, ""}; + +ConfigInfo GetInfoForSIDevice(u32 channel) +{ + return {{System::Main, "Core", StringFromFormat("SIDevice%u", channel)}, + static_cast(channel == 0 ? SerialInterface::SIDEVICE_GC_CONTROLLER : + SerialInterface::SIDEVICE_NONE)}; +} + +ConfigInfo GetInfoForAdapterRumble(u32 channel) +{ + return {{System::Main, "Core", StringFromFormat("AdapterRumble%u", channel)}, true}; +} + +ConfigInfo GetInfoForSimulateKonga(u32 channel) +{ + return {{System::Main, "Core", StringFromFormat("SimulateKonga%u", channel)}, false}; +} + +const ConfigInfo MAIN_WII_SD_CARD{{System::Main, "Core", "WiiSDCard"}, false}; +const ConfigInfo MAIN_WII_KEYBOARD{{System::Main, "Core", "WiiKeyboard"}, false}; +const ConfigInfo MAIN_WIIMOTE_CONTINUOUS_SCANNING{ + {System::Main, "Core", "WiimoteContinuousScanning"}, false}; +const ConfigInfo MAIN_WIIMOTE_ENABLE_SPEAKER{{System::Main, "Core", "WiimoteEnableSpeaker"}, + false}; +const ConfigInfo MAIN_RUN_COMPARE_SERVER{{System::Main, "Core", "RunCompareServer"}, false}; +const ConfigInfo MAIN_RUN_COMPARE_CLIENT{{System::Main, "Core", "RunCompareClient"}, false}; +const ConfigInfo MAIN_MMU{{System::Main, "Core", "MMU"}, false}; +const ConfigInfo MAIN_BB_DUMP_PORT{{System::Main, "Core", "BBDumpPort"}, -1}; +const ConfigInfo MAIN_SYNC_GPU{{System::Main, "Core", "SyncGPU"}, false}; +const ConfigInfo MAIN_SYNC_GPU_MAX_DISTANCE{{System::Main, "Core", "SyncGpuMaxDistance"}, + 200000}; +const ConfigInfo MAIN_SYNC_GPU_MIN_DISTANCE{{System::Main, "Core", "SyncGpuMinDistance"}, + -200000}; +const ConfigInfo MAIN_SYNC_GPU_OVERCLOCK{{System::Main, "Core", "SyncGpuOverclock"}, 1.0f}; +const ConfigInfo MAIN_FAST_DISC_SPEED{{System::Main, "Core", "FastDiscSpeed"}, false}; +const ConfigInfo MAIN_DCBZ{{System::Main, "Core", "DCBZ"}, false}; +const ConfigInfo MAIN_LOW_DCBZ_HACK{{System::Main, "Core", "LowDCBZHack"}, false}; +const ConfigInfo MAIN_FPRF{{System::Main, "Core", "FPRF"}, false}; +const ConfigInfo MAIN_ACCURATE_NANS{{System::Main, "Core", "AccurateNaNs"}, false}; +const ConfigInfo MAIN_EMULATION_SPEED{{System::Main, "Core", "EmulationSpeed"}, 1.0f}; +const ConfigInfo MAIN_OVERCLOCK{{System::Main, "Core", "Overclock"}, 1.0f}; +const ConfigInfo MAIN_OVERCLOCK_ENABLE{{System::Main, "Core", "OverclockEnable"}, false}; +const ConfigInfo MAIN_GFX_BACKEND{{System::Main, "Core", "GFXBackend"}, ""}; +const ConfigInfo MAIN_GPU_DETERMINISM_MODE{ + {System::Main, "Core", "GPUDeterminismMode"}, "auto"}; +const ConfigInfo MAIN_PERF_MAP_DIR{{System::Main, "Core", "PerfMapDir"}, ""}; +const ConfigInfo MAIN_CUSTOM_RTC_ENABLE{{System::Main, "Core", "EnableCustomRTC"}, false}; +// Default to seconds between 1.1.1970 and 1.1.2000 +const ConfigInfo MAIN_CUSTOM_RTC_VALUE{{System::Main, "Core", "CustomRTCValue"}, 946684800}; +const ConfigInfo MAIN_ENABLE_SIGNATURE_CHECKS{{System::Main, "Core", "EnableSignatureChecks"}, + true}; + +// Main.DSP + +const ConfigInfo MAIN_DSP_CAPTURE_LOG{{System::Main, "DSP", "CaptureLog"}, false}; +const ConfigInfo MAIN_DSP_JIT{{System::Main, "DSP", "EnableJIT"}, true}; +const ConfigInfo MAIN_DUMP_AUDIO{{System::Main, "DSP", "DumpAudio"}, false}; +const ConfigInfo MAIN_DUMP_AUDIO_SILENT{{System::Main, "DSP", "DumpAudioSilent"}, false}; +const ConfigInfo MAIN_DUMP_UCODE{{System::Main, "DSP", "DumpUCode"}, false}; +const ConfigInfo MAIN_AUDIO_BACKEND{{System::Main, "DSP", "Backend"}, + AudioCommon::GetDefaultSoundBackend()}; +const ConfigInfo MAIN_AUDIO_VOLUME{{System::Main, "DSP", "Volume"}, 100}; + +} // namespace Config diff --git a/Source/Core/Core/Config/MainSettings.h b/Source/Core/Core/Config/MainSettings.h new file mode 100644 index 0000000000..cc21e1ac7c --- /dev/null +++ b/Source/Core/Core/Config/MainSettings.h @@ -0,0 +1,80 @@ +// Copyright 2017 Dolphin Emulator Project +// Licensed under GPLv2+ +// Refer to the license.txt file included. + +#pragma once + +#include + +#include "Common/Config/Config.h" + +namespace Config +{ +// Main.Core + +extern const ConfigInfo MAIN_SKIP_IPL; +extern const ConfigInfo MAIN_CPU_CORE; +extern const ConfigInfo MAIN_FASTMEM; +// Should really be in the DSP section, but we're kind of stuck with bad decisions made in the past. +extern const ConfigInfo MAIN_DSP_HLE; +extern const ConfigInfo MAIN_TIMING_VARIANCE; +extern const ConfigInfo MAIN_CPU_THREAD; +extern const ConfigInfo MAIN_SYNC_ON_SKIP_IDLE; +extern const ConfigInfo MAIN_DEFAULT_ISO; +extern const ConfigInfo MAIN_ENABLE_CHEATS; +extern const ConfigInfo MAIN_GC_LANGUAGE; +extern const ConfigInfo MAIN_OVERRIDE_GC_LANGUAGE; +extern const ConfigInfo MAIN_DPL2_DECODER; +extern const ConfigInfo MAIN_AUDIO_LATENCY; +extern const ConfigInfo MAIN_AUDIO_STRETCH; +extern const ConfigInfo MAIN_AUDIO_STRETCH_LATENCY; +extern const ConfigInfo MAIN_MEMCARD_A_PATH; +extern const ConfigInfo MAIN_MEMCARD_B_PATH; +extern const ConfigInfo MAIN_AGP_CART_A_PATH; +extern const ConfigInfo MAIN_AGP_CART_B_PATH; +extern const ConfigInfo MAIN_SLOT_A; +extern const ConfigInfo MAIN_SLOT_B; +extern const ConfigInfo MAIN_SERIAL_PORT_1; +extern const ConfigInfo MAIN_BBA_MAC; +ConfigInfo GetInfoForSIDevice(u32 channel); +ConfigInfo GetInfoForAdapterRumble(u32 channel); +ConfigInfo GetInfoForSimulateKonga(u32 channel); +extern const ConfigInfo MAIN_WII_SD_CARD; +extern const ConfigInfo MAIN_WII_KEYBOARD; +extern const ConfigInfo MAIN_WIIMOTE_CONTINUOUS_SCANNING; +extern const ConfigInfo MAIN_WIIMOTE_ENABLE_SPEAKER; +extern const ConfigInfo MAIN_RUN_COMPARE_SERVER; +extern const ConfigInfo MAIN_RUN_COMPARE_CLIENT; +extern const ConfigInfo MAIN_MMU; +extern const ConfigInfo MAIN_BB_DUMP_PORT; +extern const ConfigInfo MAIN_SYNC_GPU; +extern const ConfigInfo MAIN_SYNC_GPU_MAX_DISTANCE; +extern const ConfigInfo MAIN_SYNC_GPU_MIN_DISTANCE; +extern const ConfigInfo MAIN_SYNC_GPU_OVERCLOCK; +extern const ConfigInfo MAIN_FAST_DISC_SPEED; +extern const ConfigInfo MAIN_DCBZ; +extern const ConfigInfo MAIN_LOW_DCBZ_HACK; +extern const ConfigInfo MAIN_FPRF; +extern const ConfigInfo MAIN_ACCURATE_NANS; +extern const ConfigInfo MAIN_EMULATION_SPEED; +extern const ConfigInfo MAIN_OVERCLOCK; +extern const ConfigInfo MAIN_OVERCLOCK_ENABLE; +// Should really be part of System::GFX, but again, we're stuck with past mistakes. +extern const ConfigInfo MAIN_GFX_BACKEND; +extern const ConfigInfo MAIN_GPU_DETERMINISM_MODE; +extern const ConfigInfo MAIN_PERF_MAP_DIR; +extern const ConfigInfo MAIN_CUSTOM_RTC_ENABLE; +extern const ConfigInfo MAIN_CUSTOM_RTC_VALUE; +extern const ConfigInfo MAIN_ENABLE_SIGNATURE_CHECKS; + +// Main.DSP + +extern const ConfigInfo MAIN_DSP_CAPTURE_LOG; +extern const ConfigInfo MAIN_DSP_JIT; +extern const ConfigInfo MAIN_DUMP_AUDIO; +extern const ConfigInfo MAIN_DUMP_AUDIO_SILENT; +extern const ConfigInfo MAIN_DUMP_UCODE; +extern const ConfigInfo MAIN_AUDIO_BACKEND; +extern const ConfigInfo MAIN_AUDIO_VOLUME; + +} // namespace Config diff --git a/Source/Core/Core/Core.vcxproj b/Source/Core/Core/Core.vcxproj index 4aab68e3ff..8968495f03 100644 --- a/Source/Core/Core/Core.vcxproj +++ b/Source/Core/Core/Core.vcxproj @@ -46,6 +46,7 @@ + @@ -303,6 +304,7 @@ + diff --git a/Source/Core/Core/Core.vcxproj.filters b/Source/Core/Core/Core.vcxproj.filters index 12eb5c1c19..0f5eff13f5 100644 --- a/Source/Core/Core/Core.vcxproj.filters +++ b/Source/Core/Core/Core.vcxproj.filters @@ -874,6 +874,9 @@ Config + + Config + Config @@ -1529,6 +1532,9 @@ Config + + Config + Config