From f170fc574ccc780557d02e763373da53790678bd Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Mon, 29 Dec 2025 14:41:56 +0900 Subject: [PATCH] [Config] Log commandline overrides --- src/xenia/base/cvar.h | 8 ++++++++ src/xenia/config.cc | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/xenia/base/cvar.h b/src/xenia/base/cvar.h index 237a17a85..5ab49e159 100644 --- a/src/xenia/base/cvar.h +++ b/src/xenia/base/cvar.h @@ -53,6 +53,7 @@ class IConfigVar : virtual public ICommandVar { virtual bool is_advanced() const = 0; virtual bool is_transient() const = 0; virtual std::string config_value() const = 0; + virtual std::string commandline_value() const = 0; virtual void LoadConfigValue(const toml::node* result) = 0; virtual void LoadGameConfigValue(const toml::node* result) = 0; virtual void ResetConfigValueToDefault() = 0; @@ -93,6 +94,7 @@ class ConfigVar : public CommandVar, virtual public IConfigVar { const char* display_name, const char* category, bool is_advanced, bool is_transient); std::string config_value() const override; + std::string commandline_value() const override; const T& GetTypedConfigValue() const; const std::string& category() const override; const std::string& display_name() const override; @@ -296,6 +298,12 @@ std::string ConfigVar::config_value() const { return this->ToString(this->default_value_); } template +std::string ConfigVar::commandline_value() const { + if (this->commandline_value_) + return this->ToString(*this->commandline_value_); + return config_value(); +} +template const T& ConfigVar::GetTypedConfigValue() const { return config_value_ ? *config_value_ : this->default_value_; } diff --git a/src/xenia/config.cc b/src/xenia/config.cc index 5f521d6b1..ce9faabf1 100644 --- a/src/xenia/config.cc +++ b/src/xenia/config.cc @@ -158,6 +158,19 @@ void ReadConfig(const std::filesystem::path& file_path, } } + // Log command line overrides (after config values are loaded) + bool has_overrides = false; + for (const auto& it : *cvar::ConfigVars) { + auto config_var = static_cast(it.second); + if (config_var->commandline_value() != config_var->config_value()) { + if (!has_overrides) { + XELOGI("Command line overrides:"); + has_overrides = true; + } + XELOGI(" {} = {}", config_var->name(), config_var->commandline_value()); + } + } + MigrateLegacyCvars(config); uint32_t config_defaults_date = defaults_date_cvar->GetTypedConfigValue(); if (update_if_no_version_stored || config_defaults_date) {