From 103d4d76be803adced0fc0c9cedffe70d665ea89 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sat, 4 Jul 2026 20:40:05 -0700 Subject: [PATCH] Config: Fixes AppOverrides with FEX_APP_CONFIG --- Source/Common/Config.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Source/Common/Config.cpp b/Source/Common/Config.cpp index 58ea2d021..741936449 100644 --- a/Source/Common/Config.cpp +++ b/Source/Common/Config.cpp @@ -186,6 +186,7 @@ public: explicit MainLoader(FEXCore::Config::LayerType Type, std::optional AppName = std::nullopt); explicit MainLoader(fextl::string ConfigFile, std::optional AppName = std::nullopt); explicit MainLoader(FEXCore::Config::LayerType Type, std::string_view ConfigFile); + explicit MainLoader(FEXCore::Config::LayerType Type, std::string_view ConfigFile, std::optional AppName = std::nullopt); void Load() override; @@ -254,6 +255,11 @@ MainLoader::MainLoader(FEXCore::Config::LayerType Type, std::string_view ConfigF : OptionMapper(Type) , Config {ConfigFile} {} +MainLoader::MainLoader(FEXCore::Config::LayerType Type, std::string_view ConfigFile, std::optional AppName) + : OptionMapper(Type) + , AppName {AppName} + , Config {ConfigFile} {} + void MainLoader::Load() { SetCurrentConfigFile(Config); JSON::LoadJSonConfig(Config, AppName, [this](const char* Name, const char* ConfigString) { MapNameToOption(Name, ConfigString); }); @@ -349,8 +355,8 @@ fextl::unique_ptr CreateMainLayer(const fextl::string* F } } -fextl::unique_ptr CreateUserOverrideLayer(std::string_view AppConfig) { - return fextl::make_unique(FEXCore::Config::LayerType::LAYER_USER_OVERRIDE, AppConfig); +fextl::unique_ptr CreateUserOverrideLayer(std::string_view AppConfig, std::optional AppName) { + return fextl::make_unique(FEXCore::Config::LayerType::LAYER_USER_OVERRIDE, AppConfig, AppName); } fextl::unique_ptr CreateAppLayer(const fextl::string& Filename, FEXCore::Config::LayerType Type) { @@ -510,7 +516,7 @@ void LoadConfig(fextl::string ProgramName, char** const envp, const PortableInfo } if (FHU::Filesystem::Exists(AppConfigStr)) { - FEXCore::Config::AddLayer(CreateUserOverrideLayer(AppConfigStr)); + FEXCore::Config::AddLayer(CreateUserOverrideLayer(AppConfigStr, ProgramName.empty() ? std::nullopt : std::optional {ProgramName})); } }