Fixed game-specific Wii/Widescreen and RE0 Hack checkboxes.

Disabled game-specific Wii/Progressive Scan checkbox, since its never used by Dolphin; it would cause side-effects to global configuration if we did write to SysConf in that place.
Fixes Issue 2518

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5283 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
j4ck.fr0st 2010-04-05 13:05:47 +00:00
parent 3a4b13e71f
commit ff9b185a7f
6 changed files with 32 additions and 4 deletions

View File

@ -338,7 +338,14 @@ THREAD_RETURN EmuThread(void *pArg)
VideoInitialize.Fifo_CPUBase = &ProcessorInterface::Fifo_CPUBase; VideoInitialize.Fifo_CPUBase = &ProcessorInterface::Fifo_CPUBase;
VideoInitialize.Fifo_CPUEnd = &ProcessorInterface::Fifo_CPUEnd; VideoInitialize.Fifo_CPUEnd = &ProcessorInterface::Fifo_CPUEnd;
VideoInitialize.Fifo_CPUWritePointer = &ProcessorInterface::Fifo_CPUWritePointer; VideoInitialize.Fifo_CPUWritePointer = &ProcessorInterface::Fifo_CPUWritePointer;
VideoInitialize.bAutoAspectIs16_9 = _CoreParameter.bWii ? (SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.AR") ? true : false) : false; bool aspectWide = _CoreParameter.bWii;
if (aspectWide)
{
IniFile gameIni;
gameIni.Load(_CoreParameter.m_strGameIni.c_str());
gameIni.Get("Wii", "Widescreen", &aspectWide, !!SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.AR"));
}
VideoInitialize.bAutoAspectIs16_9 = aspectWide;
Plugins.GetVideo()->Initialize(&VideoInitialize); // Call the dll Plugins.GetVideo()->Initialize(&VideoInitialize); // Call the dll

View File

@ -299,6 +299,13 @@ void CISOProperties::CreateGUIControls(bool IsWad)
EnableProgressiveScan->Hide(); EnableProgressiveScan->Hide();
EnableWideScreen->Hide(); EnableWideScreen->Hide();
} }
else
{
//Progressive Scan is not used by Dolphin itself,
//and changing it on a per-game basis would have the side-effect of changing the SysConf,
//making this setting rather useless.
EnableProgressiveScan->Disable();
}
// Video // Video
sbVideoOverrides = new wxStaticBoxSizer(wxVERTICAL, m_GameConfig, _("Video")); sbVideoOverrides = new wxStaticBoxSizer(wxVERTICAL, m_GameConfig, _("Video"));
ForceFiltering = new wxCheckBox(m_GameConfig, ID_FORCEFILTERING, _("Force Filtering"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); ForceFiltering = new wxCheckBox(m_GameConfig, ID_FORCEFILTERING, _("Force Filtering"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);

View File

@ -36,6 +36,7 @@ void CConfig::Load()
file.Load((std::string(File::GetUserPath(D_CONFIG_IDX)) + "DSP.ini").c_str()); file.Load((std::string(File::GetUserPath(D_CONFIG_IDX)) + "DSP.ini").c_str());
file.Get("Config", "EnableHLEAudio", &m_EnableHLEAudio, true); // Sound Settings file.Get("Config", "EnableHLEAudio", &m_EnableHLEAudio, true); // Sound Settings
file.Get("Config", "EnableRE0AudioFix", &m_EnableRE0Fix, false); // RE0 Hack file.Get("Config", "EnableRE0AudioFix", &m_EnableRE0Fix, false); // RE0 Hack
m_RE0Fix = m_EnableRE0Fix;
ac_Config.Load(file); ac_Config.Load(file);
} }
@ -49,3 +50,10 @@ void CConfig::Save()
file.Save((std::string(File::GetUserPath(D_CONFIG_IDX)) + "DSP.ini").c_str()); file.Save((std::string(File::GetUserPath(D_CONFIG_IDX)) + "DSP.ini").c_str());
} }
void CConfig::LoadGameIni(const char* gameIniPath)
{
IniFile gameIni;
gameIni.Load(gameIniPath);
gameIni.Get("HLEaudio", "UseRE0Fix", &m_RE0Fix, m_EnableRE0Fix);
}

View File

@ -23,12 +23,17 @@
struct CConfig struct CConfig
{ {
bool m_EnableHLEAudio; bool m_EnableHLEAudio;
//is the RE0 fix enabled in config?
bool m_EnableRE0Fix; bool m_EnableRE0Fix;
//is the RE0 supposed to be used?
//this value includes game.ini, avoiding overwrite of config
bool m_RE0Fix;
CConfig(); CConfig();
void Load(); void Load();
void Save(); void Save();
void LoadGameIni(const char*);
}; };
extern CConfig g_Config; extern CConfig g_Config;

View File

@ -66,7 +66,7 @@ static void ProcessUpdates(AXPB &PB)
int on = 0, off = 0; int on = 0, off = 0;
for (int j = 0; j < numupd; j++) for (int j = 0; j < numupd; j++)
{ {
int k = g_Config.m_EnableRE0Fix ? 0 : j; int k = g_Config.m_RE0Fix ? 0 : j;
const u16 updpar = Memory_Read_U16(updaddr + k); const u16 updpar = Memory_Read_U16(updaddr + k);
const u16 upddata = Memory_Read_U16(updaddr + k + 2); const u16 upddata = Memory_Read_U16(updaddr + k + 2);

View File

@ -142,8 +142,9 @@ void GetDllInfo(PLUGIN_INFO* _PluginInfo)
void SetDllGlobals(PLUGIN_GLOBALS* _pPluginGlobals) void SetDllGlobals(PLUGIN_GLOBALS* _pPluginGlobals)
{ {
globals = _pPluginGlobals; globals = _pPluginGlobals;
LogManager::SetInstance((LogManager *)globals->logManager); LogManager::SetInstance((LogManager *)globals->logManager);
g_Config.LoadGameIni(globals->game_ini);
} }
void DllConfig(HWND _hParent) void DllConfig(HWND _hParent)