diff --git a/src/common/config.cpp b/src/common/config.cpp index c69606996..51beaac32 100644 --- a/src/common/config.cpp +++ b/src/common/config.cpp @@ -130,10 +130,6 @@ public: // General static ConfigEntry volumeSlider(100); -static ConfigEntry isDevKit(false); -static ConfigEntry extraDmemInMbytes(0); -static ConfigEntry isPSNSignedIn(false); -static ConfigEntry isTrophyPopupDisabled(false); static ConfigEntry trophyNotificationDuration(6.0); static ConfigEntry logFilter(""); static ConfigEntry logType("sync"); @@ -296,20 +292,6 @@ void setVolumeSlider(int volumeValue, bool is_game_specific) { volumeSlider.set(volumeValue, is_game_specific); } -bool isDevKitConsole() { - return isDevKit.get(); -} - -int getExtraDmemInMbytes() { - return extraDmemInMbytes.get(); -} - -void setExtraDmemInMbytes(int value, bool is_game_specific) { - // Disable setting in global config - is_game_specific ? extraDmemInMbytes.game_specific_value = value - : extraDmemInMbytes.base_value = 0; -} - bool getIsFullscreen() { return isFullscreen.get(); } @@ -322,10 +304,6 @@ std::string getPresentMode() { return presentMode.get(); } -bool getisTrophyPopupDisabled() { - return isTrophyPopupDisabled.get(); -} - bool getEnableDiscordRPC() { return enableDiscordRPC; } @@ -613,9 +591,6 @@ void setPresentMode(std::string mode, bool is_game_specific) { presentMode.set(mode, is_game_specific); } -void setisTrophyPopupDisabled(bool disable, bool is_game_specific) { - isTrophyPopupDisabled.set(disable, is_game_specific); -} void setEnableDiscordRPC(bool enable) { enableDiscordRPC = enable; @@ -649,10 +624,6 @@ void setLanguage(u32 language, bool is_game_specific) { m_language.set(language, is_game_specific); } -void setDevKitConsole(bool enable, bool is_game_specific) { - isDevKit.set(enable, is_game_specific); -} - void setLogType(const string& type, bool is_game_specific) { logType.set(type, is_game_specific); } @@ -754,14 +725,6 @@ u32 GetLanguage() { return m_language.get(); } -bool getPSNSignedIn() { - return isPSNSignedIn.get(); -} - -void setPSNSignedIn(bool sign, bool is_game_specific) { - isPSNSignedIn.set(sign, is_game_specific); -} - string getDefaultControllerID() { return defaultControllerID.get(); } @@ -843,12 +806,6 @@ void load(const std::filesystem::path& path, bool is_game_specific) { const toml::value& general = data.at("General"); volumeSlider.setFromToml(general, "volumeSlider", is_game_specific); - isDevKit.setFromToml(general, "isDevKit", is_game_specific); - if (is_game_specific) { // do not get this value from the base config - extraDmemInMbytes.setFromToml(general, "extraDmemInMbytes", is_game_specific); - } - isPSNSignedIn.setFromToml(general, "isPSNSignedIn", is_game_specific); - isTrophyPopupDisabled.setFromToml(general, "isTrophyPopupDisabled", is_game_specific); trophyNotificationDuration.setFromToml(general, "trophyNotificationDuration", is_game_specific); enableDiscordRPC = toml::find_or(general, "enableDiscordRPC", enableDiscordRPC); @@ -1030,10 +987,8 @@ void save(const std::filesystem::path& path, bool is_game_specific) { } fmt::print("Saving new configuration file {}\n", fmt::UTF(path.u8string())); } - // Entries saved by the game-specific settings GUI volumeSlider.setTomlValue(data, "General", "volumeSlider", is_game_specific); - isTrophyPopupDisabled.setTomlValue(data, "General", "isTrophyPopupDisabled", is_game_specific); trophyNotificationDuration.setTomlValue(data, "General", "trophyNotificationDuration", is_game_specific); logFilter.setTomlValue(data, "General", "logFilter", is_game_specific); @@ -1041,11 +996,6 @@ void save(const std::filesystem::path& path, bool is_game_specific) { userName.setTomlValue(data, "General", "userName", is_game_specific); isShowSplash.setTomlValue(data, "General", "showSplash", is_game_specific); isSideTrophy.setTomlValue(data, "General", "sideTrophy", is_game_specific); - isDevKit.setTomlValue(data, "General", "isDevKit", is_game_specific); - if (is_game_specific) { - extraDmemInMbytes.setTomlValue(data, "General", "extraDmemInMbytes", is_game_specific); - } - isPSNSignedIn.setTomlValue(data, "General", "isPSNSignedIn", is_game_specific); isConnectedToNetwork.setTomlValue(data, "General", "isConnectedToNetwork", is_game_specific); cursorState.setTomlValue(data, "Input", "cursorState", is_game_specific); @@ -1160,17 +1110,13 @@ void setDefaultValues(bool is_game_specific) { if (is_game_specific) { readbacksEnabled.set(false, is_game_specific); readbackLinearImagesEnabled.set(false, is_game_specific); - isDevKit.set(false, is_game_specific); - isPSNSignedIn.set(false, is_game_specific); isConnectedToNetwork.set(false, is_game_specific); directMemoryAccessEnabled.set(false, is_game_specific); - extraDmemInMbytes.set(0, is_game_specific); } // Entries with game-specific settings that are in both the game-specific and global GUI // GS - General volumeSlider.set(100, is_game_specific); - isTrophyPopupDisabled.set(false, is_game_specific); trophyNotificationDuration.set(6.0, is_game_specific); logFilter.set("", is_game_specific); logType.set("sync", is_game_specific); diff --git a/src/common/config.h b/src/common/config.h index 5ec66682a..b3e861da4 100644 --- a/src/common/config.h +++ b/src/common/config.h @@ -73,8 +73,6 @@ bool dumpShaders(); void setDumpShaders(bool enable, bool is_game_specific = false); u32 vblankFreq(); void setVblankFreq(u32 value, bool is_game_specific = false); -bool getisTrophyPopupDisabled(); -void setisTrophyPopupDisabled(bool disable, bool is_game_specific = false); s16 getCursorState(); void setCursorState(s16 cursorState, bool is_game_specific = false); bool vkValidationEnabled(); @@ -116,15 +114,8 @@ void setUseSpecialPad(bool use); bool getUseSpecialPad(); void setSpecialPadClass(int type); int getSpecialPadClass(); -bool getPSNSignedIn(); -void setPSNSignedIn(bool sign, bool is_game_specific = false); bool patchShaders(); // no set bool fpsColor(); // no set -bool isDevKitConsole(); -void setDevKitConsole(bool enable, bool is_game_specific = false); - -int getExtraDmemInMbytes(); -void setExtraDmemInMbytes(int value, bool is_game_specific = false); bool getIsMotionControlsEnabled(); void setIsMotionControlsEnabled(bool use, bool is_game_specific = false); std::string getDefaultControllerID(); diff --git a/src/core/address_space.cpp b/src/core/address_space.cpp index 3f063ea76..177764c2e 100644 --- a/src/core/address_space.cpp +++ b/src/core/address_space.cpp @@ -9,6 +9,7 @@ #include "common/elf_info.h" #include "common/error.h" #include "core/address_space.h" +#include "core/emulator_settings.h" #include "core/libraries/kernel/memory.h" #include "core/memory.h" #include "libraries/error_codes.h" @@ -183,7 +184,7 @@ struct AddressSpace::Impl { user_size = supported_user_max - USER_MIN - 1; // Increase BackingSize to account for config options. - BackingSize += Config::getExtraDmemInMbytes() * 1_MB; + BackingSize += EmulatorSettings::GetInstance()->GetExtraDmemInMBytes() * 1_MB; // Allocate backing file that represents the total physical memory. backing_handle = CreateFileMapping2(INVALID_HANDLE_VALUE, nullptr, FILE_MAP_ALL_ACCESS, diff --git a/src/core/emulator_settings.h b/src/core/emulator_settings.h index 158409939..8295f9e73 100644 --- a/src/core/emulator_settings.h +++ b/src/core/emulator_settings.h @@ -318,6 +318,10 @@ public: // General settings SETTING_FORWARD(m_general, VolumeSlider, volume_slider) SETTING_FORWARD_BOOL(m_general, Neo, neo_mode) + SETTING_FORWARD_BOOL(m_general, DevKit, dev_kit_mode) + SETTING_FORWARD(m_general, ExtraDmemInMBytes, extra_dmem_in_mbytes) + SETTING_FORWARD_BOOL(m_general, PSNSignedIn, psn_signed_in) + SETTING_FORWARD_BOOL(m_general, TrophyPopupDisabled, trophy_popup_disabled) SETTING_FORWARD(m_general, AddonInstallDir, addon_install_dir) // Debug settings diff --git a/src/core/libraries/np/np_auth.cpp b/src/core/libraries/np/np_auth.cpp index 0c855546c..ac1d7404d 100644 --- a/src/core/libraries/np/np_auth.cpp +++ b/src/core/libraries/np/np_auth.cpp @@ -4,6 +4,7 @@ #include #include "common/config.h" #include "common/logging/log.h" +#include "core/emulator_settings.h" #include "core/libraries/error_codes.h" #include "core/libraries/libs.h" #include "core/libraries/np/np_auth.h" @@ -361,7 +362,7 @@ s32 PS4_SYSV_ABI sceNpAuthDeleteRequest(s32 req_id) { } void RegisterLib(Core::Loader::SymbolsResolver* sym) { - g_signed_in = Config::getPSNSignedIn(); + g_signed_in = EmulatorSettings::GetInstance()->IsPSNSignedIn(); LIB_FUNCTION("6bwFkosYRQg", "libSceNpAuth", 1, "libSceNpAuth", sceNpAuthCreateRequest); LIB_FUNCTION("N+mr7GjTvr8", "libSceNpAuth", 1, "libSceNpAuth", sceNpAuthCreateAsyncRequest); diff --git a/src/core/libraries/np/np_manager.cpp b/src/core/libraries/np/np_manager.cpp index ebc940bf3..65acbef7f 100644 --- a/src/core/libraries/np/np_manager.cpp +++ b/src/core/libraries/np/np_manager.cpp @@ -5,6 +5,7 @@ #include "common/config.h" #include "common/logging/log.h" +#include "core/emulator_settings.h" #include "core/libraries/error_codes.h" #include "core/libraries/libs.h" #include "core/libraries/np/np_error.h" @@ -702,7 +703,7 @@ s32 PS4_SYSV_ABI sceNpRegisterStateCallbackForToolkit(OrbisNpStateCallbackForNpT } void RegisterLib(Core::Loader::SymbolsResolver* sym) { - g_signed_in = Config::getPSNSignedIn(); + g_signed_in = EmulatorSettings::GetInstance()->IsPSNSignedIn(); LIB_FUNCTION("GpLQDNKICac", "libSceNpManager", 1, "libSceNpManager", sceNpCreateRequest); LIB_FUNCTION("eiqMCt9UshI", "libSceNpManager", 1, "libSceNpManager", sceNpCreateAsyncRequest); diff --git a/src/core/libraries/np/trophy_ui.cpp b/src/core/libraries/np/trophy_ui.cpp index b803403c4..ab9d821b8 100644 --- a/src/core/libraries/np/trophy_ui.cpp +++ b/src/core/libraries/np/trophy_ui.cpp @@ -7,15 +7,11 @@ #include #include #include - -#ifdef ENABLE_QT_GUI -#include -#endif - #include "common/assert.h" #include "common/config.h" #include "common/path_util.h" #include "common/singleton.h" +#include "core/emulator_settings.h" #include "core/libraries/np/trophy_ui.h" #include "imgui/imgui_std.h" @@ -284,7 +280,7 @@ void AddTrophyToQueue(const std::filesystem::path& trophyIconPath, const std::st const std::string_view& rarity) { std::lock_guard lock(queueMtx); - if (Config::getisTrophyPopupDisabled()) { + if (EmulatorSettings::GetInstance()->IsTrophyPopupDisabled()) { return; } else if (current_trophy_ui.has_value()) { current_trophy_ui.reset(); diff --git a/src/core/memory.cpp b/src/core/memory.cpp index b9fd7fd7d..fa2b28e51 100644 --- a/src/core/memory.cpp +++ b/src/core/memory.cpp @@ -5,6 +5,7 @@ #include "common/assert.h" #include "common/config.h" #include "common/debug.h" +#include "core/emulator_settings.h" #include "core/file_sys/fs.h" #include "core/libraries/kernel/memory.h" #include "core/libraries/kernel/orbis_error.h" @@ -33,11 +34,11 @@ void MemoryManager::SetupMemoryRegions(u64 flexible_size, bool use_extended_mem1 bool use_extended_mem2) { const bool is_neo = ::Libraries::Kernel::sceKernelIsNeoMode(); auto total_size = is_neo ? ORBIS_KERNEL_TOTAL_MEM_PRO : ORBIS_KERNEL_TOTAL_MEM; - if (Config::isDevKitConsole()) { + if (EmulatorSettings::GetInstance()->IsDevKit()) { total_size = is_neo ? ORBIS_KERNEL_TOTAL_MEM_DEV_PRO : ORBIS_KERNEL_TOTAL_MEM_DEV; } - s32 extra_dmem = Config::getExtraDmemInMbytes(); - if (Config::getExtraDmemInMbytes() != 0) { + s32 extra_dmem = EmulatorSettings::GetInstance()->GetExtraDmemInMBytes(); + if (extra_dmem != 0) { LOG_WARNING(Kernel_Vmm, "extraDmemInMbytes is {} MB! Old Direct Size: {:#x} -> New Direct Size: {:#x}", extra_dmem, total_size, total_size + extra_dmem * 1_MB); diff --git a/src/emulator.cpp b/src/emulator.cpp index 3ebbc4eb1..c81f23303 100644 --- a/src/emulator.cpp +++ b/src/emulator.cpp @@ -205,9 +205,9 @@ void Emulator::Run(std::filesystem::path file, std::vector args, LOG_INFO(Config, "General LogType: {}", Config::getLogType()); LOG_INFO(Config, "General isNeo: {}", EmulatorSettings::GetInstance()->IsNeo()); - LOG_INFO(Config, "General isDevKit: {}", Config::isDevKitConsole()); + LOG_INFO(Config, "General isDevKit: {}", EmulatorSettings::GetInstance()->IsDevKit()); LOG_INFO(Config, "General isConnectedToNetwork: {}", Config::getIsConnectedToNetwork()); - LOG_INFO(Config, "General isPsnSignedIn: {}", Config::getPSNSignedIn()); + LOG_INFO(Config, "General isPsnSignedIn: {}", EmulatorSettings::GetInstance()->IsPSNSignedIn()); LOG_INFO(Config, "GPU isNullGpu: {}", Config::nullGpu()); LOG_INFO(Config, "GPU readbacks: {}", Config::readbacks()); LOG_INFO(Config, "GPU readbackLinearImages: {}", Config::readbackLinearImages());