2 changes: 1 addition & 1 deletion Source/Core/DolphinWX/Src/GeckoCodeDiag.h
Expand Up @@ -20,7 +20,7 @@ class CodeConfigPanel : public wxPanel
CodeConfigPanel(wxWindow* const parent);


void LoadCodes(const IniFile& inifile, const std::string& gameid = "", bool checkRunning = false);
void LoadCodes(const IniFile& globalIni, const IniFile& localIni, const std::string& gameid = "", bool checkRunning = false);
const std::vector<GeckoCode>& GetCodes() const { return m_gcodes; }

protected:
Expand Down
6 changes: 5 additions & 1 deletion Source/Core/DolphinWX/Src/ISOProperties.cpp
Expand Up @@ -110,6 +110,7 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW

// Load game ini
std::string _iniFilename = OpenISO->GetUniqueID();
std::string _iniFilenameRevisionSpecific = OpenISO->GetRevisionSpecificUniqueID();

if (!_iniFilename.length())
{
Expand All @@ -123,9 +124,12 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW
}

GameIniFileDefault = File::GetSysDirectory() + GAMESETTINGS_DIR DIR_SEP + _iniFilename + ".ini";
std::string GameIniFileDefaultRevisionSpecific = File::GetSysDirectory() + GAMESETTINGS_DIR DIR_SEP + _iniFilenameRevisionSpecific + ".ini";
GameIniFileLocal = File::GetUserPath(D_GAMESETTINGS_IDX) + _iniFilename + ".ini";

GameIniDefault.Load(GameIniFileDefault);
if (_iniFilenameRevisionSpecific != "")
GameIniDefault.Load(GameIniFileDefaultRevisionSpecific);
GameIniLocal.Load(GameIniFileLocal);

// Setup GUI
Expand Down Expand Up @@ -1047,7 +1051,7 @@ void CISOProperties::LoadGameConfig()

PatchList_Load();
ActionReplayList_Load();
m_geckocode_panel->LoadCodes(GameIniLocal, OpenISO->GetUniqueID());
m_geckocode_panel->LoadCodes(GameIniDefault, GameIniLocal, OpenISO->GetUniqueID());
}

void CISOProperties::SaveGameIniValueFrom3StateCheckbox(const char* section, const char* key, wxCheckBox* checkbox)
Expand Down
7 changes: 3 additions & 4 deletions Source/Core/VideoCommon/Src/VideoConfig.cpp
Expand Up @@ -12,6 +12,7 @@
#include "Core.h"
#include "Movie.h"
#include "OnScreenDisplay.h"
#include "ConfigManager.h"

VideoConfig g_Config;
VideoConfig g_ActiveConfig;
Expand Down Expand Up @@ -120,7 +121,7 @@ void VideoConfig::Load(const char *ini_file)
OSD::AddMessage("Warning: Shader Debugging is enabled, performance will suffer heavily", 15000);
}

void VideoConfig::GameIniLoad(const char* default_ini_file, const char* local_ini_file)
void VideoConfig::GameIniLoad()
{
bool gfx_override_exists = false;

Expand All @@ -136,9 +137,7 @@ void VideoConfig::GameIniLoad(const char* default_ini_file, const char* local_in
} \
} while (0)

IniFile iniFile;
iniFile.Load(default_ini_file);
iniFile.Load(local_ini_file, true);
IniFile iniFile = SConfig::GetInstance().m_LocalCoreStartupParameter.LoadGameIni();

CHECK_SETTING("Video_Hardware", "VSync", bVSync);

Expand Down
3 changes: 1 addition & 2 deletions Source/Core/VideoCommon/Src/VideoConfig.h
Expand Up @@ -50,10 +50,9 @@ struct VideoConfig
{
VideoConfig();
void Load(const char *ini_file);
void GameIniLoad(const char* default_ini, const char* game_ini);
void GameIniLoad();
void VerifyValidity();
void Save(const char *ini_file);
void GameIniSave(const char* default_ini, const char* game_ini);
void UpdateProjectionHack();
bool IsVSync();

Expand Down
2 changes: 1 addition & 1 deletion Source/Plugins/Plugin_VideoDX11/Src/main.cpp
Expand Up @@ -157,7 +157,7 @@ bool VideoBackend::Initialize(void *&window_handle)
const SCoreStartupParameter& core_params = SConfig::GetInstance().m_LocalCoreStartupParameter;

g_Config.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_dx11.ini").c_str());
g_Config.GameIniLoad(core_params.m_strGameIniDefault.c_str(), core_params.m_strGameIniLocal.c_str());
g_Config.GameIniLoad();
g_Config.UpdateProjectionHack();
g_Config.VerifyValidity();
UpdateActiveConfig();
Expand Down
3 changes: 1 addition & 2 deletions Source/Plugins/Plugin_VideoDX9/Src/main.cpp
Expand Up @@ -150,8 +150,7 @@ bool VideoBackend::Initialize(void *&window_handle)
frameCount = 0;

g_Config.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_dx9.ini").c_str());
g_Config.GameIniLoad(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strGameIniDefault.c_str(),
SConfig::GetInstance().m_LocalCoreStartupParameter.m_strGameIniLocal.c_str());
g_Config.GameIniLoad();
g_Config.UpdateProjectionHack();
g_Config.VerifyValidity();
// as only some driver/hardware configurations support dual source blending only enable it if is
Expand Down
3 changes: 1 addition & 2 deletions Source/Plugins/Plugin_VideoOGL/Src/main.cpp
Expand Up @@ -172,8 +172,7 @@ bool VideoBackend::Initialize(void *&window_handle)
frameCount = 0;

g_Config.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_opengl.ini").c_str());
g_Config.GameIniLoad(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strGameIniDefault.c_str(),
SConfig::GetInstance().m_LocalCoreStartupParameter.m_strGameIniLocal.c_str());
g_Config.GameIniLoad();
g_Config.UpdateProjectionHack();
g_Config.VerifyValidity();
UpdateActiveConfig();
Expand Down