Merge pull request #500 from lioncash/ini
Use only section-based ini reading.
This commit is contained in:
commit
5dff577339
|
@ -436,61 +436,6 @@ bool IniFile::Save(const std::string& filename)
|
|||
return File::RenameSync(temp, filename);
|
||||
}
|
||||
|
||||
bool IniFile::Get(const std::string& sectionName, const std::string& key, std::vector<std::string>* values)
|
||||
{
|
||||
Section *section = GetSection(sectionName);
|
||||
if (!section)
|
||||
return false;
|
||||
return section->Get(key, values);
|
||||
}
|
||||
|
||||
bool IniFile::Get(const std::string& sectionName, const std::string& key, int* value, int defaultValue)
|
||||
{
|
||||
Section *section = GetSection(sectionName);
|
||||
if (!section) {
|
||||
*value = defaultValue;
|
||||
return false;
|
||||
} else {
|
||||
return section->Get(key, value, defaultValue);
|
||||
}
|
||||
}
|
||||
|
||||
bool IniFile::Get(const std::string& sectionName, const std::string& key, u32* value, u32 defaultValue)
|
||||
{
|
||||
Section *section = GetSection(sectionName);
|
||||
if (!section) {
|
||||
*value = defaultValue;
|
||||
return false;
|
||||
} else {
|
||||
return section->Get(key, value, defaultValue);
|
||||
}
|
||||
}
|
||||
|
||||
bool IniFile::Get(const std::string& sectionName, const std::string& key, bool* value, bool defaultValue)
|
||||
{
|
||||
Section *section = GetSection(sectionName);
|
||||
if (!section) {
|
||||
*value = defaultValue;
|
||||
return false;
|
||||
} else {
|
||||
return section->Get(key, value, defaultValue);
|
||||
}
|
||||
}
|
||||
|
||||
bool IniFile::Get(const std::string& sectionName, const std::string& key, std::string* value, const std::string& defaultValue)
|
||||
{
|
||||
Section* section = GetSection(sectionName);
|
||||
if (!section) {
|
||||
if (&defaultValue != &NULL_STRING) {
|
||||
*value = defaultValue;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return section->Get(key, value, defaultValue);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Unit test. TODO: Move to the real unit test framework.
|
||||
/*
|
||||
int main()
|
||||
|
|
|
@ -95,34 +95,11 @@ public:
|
|||
// Returns true if key exists in section
|
||||
bool Exists(const std::string& sectionName, const std::string& key) const;
|
||||
|
||||
// TODO: Get rid of these, in favor of the Section ones.
|
||||
void Set(const std::string& sectionName, const std::string& key, const std::string& newValue) {
|
||||
GetOrCreateSection(sectionName)->Set(key, newValue);
|
||||
}
|
||||
void Set(const std::string& sectionName, const std::string& key, int newValue) {
|
||||
GetOrCreateSection(sectionName)->Set(key, newValue);
|
||||
}
|
||||
void Set(const std::string& sectionName, const std::string& key, u32 newValue) {
|
||||
GetOrCreateSection(sectionName)->Set(key, newValue);
|
||||
}
|
||||
void Set(const std::string& sectionName, const std::string& key, bool newValue) {
|
||||
GetOrCreateSection(sectionName)->Set(key, newValue);
|
||||
}
|
||||
void Set(const std::string& sectionName, const std::string& key, const std::vector<std::string>& newValues) {
|
||||
GetOrCreateSection(sectionName)->Set(key, newValues);
|
||||
}
|
||||
|
||||
// TODO: Get rid of these, in favor of the Section ones.
|
||||
bool Get(const std::string& sectionName, const std::string& key, int* value, int defaultValue = 0);
|
||||
bool Get(const std::string& sectionName, const std::string& key, u32* value, u32 defaultValue = 0);
|
||||
bool Get(const std::string& sectionName, const std::string& key, bool* value, bool defaultValue = false);
|
||||
bool Get(const std::string& sectionName, const std::string& key, std::vector<std::string>* values);
|
||||
bool Get(const std::string& sectionName, const std::string& key, std::string* value, const std::string& defaultValue = NULL_STRING);
|
||||
|
||||
template<typename T> bool GetIfExists(const std::string& sectionName, const std::string& key, T value)
|
||||
{
|
||||
if (Exists(sectionName, key))
|
||||
return Get(sectionName, key, value);
|
||||
return GetOrCreateSection(sectionName)->Get(key, value);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -136,38 +136,43 @@ bool BootCore(const std::string& _rFilename)
|
|||
config_cache.bSetFrameSkip = false;
|
||||
|
||||
// General settings
|
||||
game_ini.Get("Core", "CPUThread", &StartUp.bCPUThread, StartUp.bCPUThread);
|
||||
game_ini.Get("Core", "SkipIdle", &StartUp.bSkipIdle, StartUp.bSkipIdle);
|
||||
game_ini.Get("Core", "EnableFPRF", &StartUp.bEnableFPRF, StartUp.bEnableFPRF);
|
||||
game_ini.Get("Core", "MMU", &StartUp.bMMU, StartUp.bMMU);
|
||||
game_ini.Get("Core", "TLBHack", &StartUp.bTLBHack, StartUp.bTLBHack);
|
||||
game_ini.Get("Core", "DCBZ", &StartUp.bDCBZOFF, StartUp.bDCBZOFF);
|
||||
game_ini.Get("Core", "VBeam", &StartUp.bVBeamSpeedHack, StartUp.bVBeamSpeedHack);
|
||||
game_ini.Get("Core", "SyncGPU", &StartUp.bSyncGPU, StartUp.bSyncGPU);
|
||||
game_ini.Get("Core", "FastDiscSpeed", &StartUp.bFastDiscSpeed, StartUp.bFastDiscSpeed);
|
||||
game_ini.Get("Core", "BlockMerging", &StartUp.bMergeBlocks, StartUp.bMergeBlocks);
|
||||
game_ini.Get("Core", "DSPHLE", &StartUp.bDSPHLE, StartUp.bDSPHLE);
|
||||
game_ini.Get("Core", "DSPThread", &StartUp.bDSPThread, StartUp.bDSPThread);
|
||||
game_ini.Get("Core", "GFXBackend", &StartUp.m_strVideoBackend, StartUp.m_strVideoBackend);
|
||||
game_ini.Get("Core", "CPUCore", &StartUp.iCPUCore, StartUp.iCPUCore);
|
||||
game_ini.Get("Core", "HLE_BS2", &StartUp.bHLE_BS2, StartUp.bHLE_BS2);
|
||||
if (game_ini.Get("Core", "FrameLimit", &SConfig::GetInstance().m_Framelimit, SConfig::GetInstance().m_Framelimit))
|
||||
IniFile::Section* core_section = game_ini.GetOrCreateSection("Core");
|
||||
IniFile::Section* dsp_section = game_ini.GetOrCreateSection("DSP");
|
||||
IniFile::Section* controls_section = game_ini.GetOrCreateSection("Controls");
|
||||
|
||||
core_section->Get("CPUThread", &StartUp.bCPUThread, StartUp.bCPUThread);
|
||||
core_section->Get("SkipIdle", &StartUp.bSkipIdle, StartUp.bSkipIdle);
|
||||
core_section->Get("EnableFPRF", &StartUp.bEnableFPRF, StartUp.bEnableFPRF);
|
||||
core_section->Get("MMU", &StartUp.bMMU, StartUp.bMMU);
|
||||
core_section->Get("TLBHack", &StartUp.bTLBHack, StartUp.bTLBHack);
|
||||
core_section->Get("DCBZ", &StartUp.bDCBZOFF, StartUp.bDCBZOFF);
|
||||
core_section->Get("VBeam", &StartUp.bVBeamSpeedHack, StartUp.bVBeamSpeedHack);
|
||||
core_section->Get("SyncGPU", &StartUp.bSyncGPU, StartUp.bSyncGPU);
|
||||
core_section->Get("FastDiscSpeed", &StartUp.bFastDiscSpeed, StartUp.bFastDiscSpeed);
|
||||
core_section->Get("BlockMerging", &StartUp.bMergeBlocks, StartUp.bMergeBlocks);
|
||||
core_section->Get("DSPHLE", &StartUp.bDSPHLE, StartUp.bDSPHLE);
|
||||
core_section->Get("DSPThread", &StartUp.bDSPThread, StartUp.bDSPThread);
|
||||
core_section->Get("GFXBackend", &StartUp.m_strVideoBackend, StartUp.m_strVideoBackend);
|
||||
core_section->Get("CPUCore", &StartUp.iCPUCore, StartUp.iCPUCore);
|
||||
core_section->Get("HLE_BS2", &StartUp.bHLE_BS2, StartUp.bHLE_BS2);
|
||||
if (core_section->Get("FrameLimit", &SConfig::GetInstance().m_Framelimit, SConfig::GetInstance().m_Framelimit))
|
||||
config_cache.bSetFramelimit = true;
|
||||
if (game_ini.Get("Core", "FrameSkip", &SConfig::GetInstance().m_FrameSkip))
|
||||
if (core_section->Get("FrameSkip", &SConfig::GetInstance().m_FrameSkip))
|
||||
{
|
||||
config_cache.bSetFrameSkip = true;
|
||||
Movie::SetFrameSkipping(SConfig::GetInstance().m_FrameSkip);
|
||||
}
|
||||
if (game_ini.Get("DSP", "Volume", &SConfig::GetInstance().m_Volume, SConfig::GetInstance().m_Volume))
|
||||
|
||||
if (dsp_section->Get("Volume", &SConfig::GetInstance().m_Volume, SConfig::GetInstance().m_Volume))
|
||||
config_cache.bSetVolume = true;
|
||||
game_ini.Get("DSP", "EnableJIT", &SConfig::GetInstance().m_DSPEnableJIT, SConfig::GetInstance().m_DSPEnableJIT);
|
||||
game_ini.Get("DSP", "Backend", &SConfig::GetInstance().sBackend, SConfig::GetInstance().sBackend);
|
||||
dsp_section->Get("EnableJIT", &SConfig::GetInstance().m_DSPEnableJIT, SConfig::GetInstance().m_DSPEnableJIT);
|
||||
dsp_section->Get("Backend", &SConfig::GetInstance().sBackend, SConfig::GetInstance().sBackend);
|
||||
VideoBackend::ActivateBackend(StartUp.m_strVideoBackend);
|
||||
|
||||
for (unsigned int i = 0; i < MAX_SI_CHANNELS; ++i)
|
||||
{
|
||||
int source;
|
||||
game_ini.Get("Controls", StringFromFormat("PadType%u", i), &source, -1);
|
||||
controls_section->Get(StringFromFormat("PadType%u", i), &source, -1);
|
||||
if (source >= (int) SIDEVICE_NONE && source <= (int) SIDEVICE_AM_BASEBOARD)
|
||||
{
|
||||
SConfig::GetInstance().m_SIDevice[i] = (SIDevices) source;
|
||||
|
@ -184,7 +189,7 @@ bool BootCore(const std::string& _rFilename)
|
|||
int source;
|
||||
for (unsigned int i = 0; i < MAX_WIIMOTES; ++i)
|
||||
{
|
||||
game_ini.Get("Controls", StringFromFormat("WiimoteSource%u", i), &source, -1);
|
||||
controls_section->Get(StringFromFormat("WiimoteSource%u", i), &source, -1);
|
||||
if (source != -1 && g_wiimote_sources[i] != (unsigned) source && source >= WIIMOTE_SRC_NONE && source <= WIIMOTE_SRC_HYBRID)
|
||||
{
|
||||
config_cache.bSetWiimoteSource[i] = true;
|
||||
|
@ -192,7 +197,7 @@ bool BootCore(const std::string& _rFilename)
|
|||
WiimoteReal::ChangeWiimoteSource(i, source);
|
||||
}
|
||||
}
|
||||
game_ini.Get("Controls", "WiimoteSourceBB", &source, -1);
|
||||
controls_section->Get("WiimoteSourceBB", &source, -1);
|
||||
if (source != -1 && g_wiimote_sources[WIIMOTE_BALANCE_BOARD] != (unsigned) source && (source == WIIMOTE_SRC_NONE || source == WIIMOTE_SRC_REAL))
|
||||
{
|
||||
config_cache.bSetWiimoteSource[WIIMOTE_BALANCE_BOARD] = true;
|
||||
|
|
|
@ -142,154 +142,198 @@ void SConfig::SaveSettings()
|
|||
IniFile ini;
|
||||
ini.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX)); // load first to not kill unknown stuff
|
||||
|
||||
// General
|
||||
ini.Set("General", "LastFilename", m_LastFilename);
|
||||
ini.Set("General", "ShowLag", m_ShowLag);
|
||||
|
||||
// ISO folders
|
||||
// clear removed folders
|
||||
int oldPaths,
|
||||
numPaths = (int)m_ISOFolder.size();
|
||||
ini.Get("General", "GCMPathes", &oldPaths, 0);
|
||||
for (int i = numPaths; i < oldPaths; i++)
|
||||
{
|
||||
ini.DeleteKey("General", StringFromFormat("GCMPath%i", i));
|
||||
}
|
||||
|
||||
ini.Set("General", "GCMPathes", numPaths);
|
||||
|
||||
for (int i = 0; i < numPaths; i++)
|
||||
{
|
||||
ini.Set("General", StringFromFormat("GCMPath%i", i), m_ISOFolder[i]);
|
||||
}
|
||||
|
||||
ini.Set("General", "RecursiveGCMPaths", m_RecursiveISOFolder);
|
||||
ini.Set("General", "NANDRootPath", m_NANDPath);
|
||||
ini.Set("General", "WirelessMac", m_WirelessMac);
|
||||
#ifdef USE_GDBSTUB
|
||||
ini.Set("General", "GDBPort", m_LocalCoreStartupParameter.iGDBPort);
|
||||
#endif
|
||||
|
||||
// Interface
|
||||
ini.Set("Interface", "ConfirmStop", m_LocalCoreStartupParameter.bConfirmStop);
|
||||
ini.Set("Interface", "UsePanicHandlers", m_LocalCoreStartupParameter.bUsePanicHandlers);
|
||||
ini.Set("Interface", "OnScreenDisplayMessages", m_LocalCoreStartupParameter.bOnScreenDisplayMessages);
|
||||
ini.Set("Interface", "HideCursor", m_LocalCoreStartupParameter.bHideCursor);
|
||||
ini.Set("Interface", "AutoHideCursor", m_LocalCoreStartupParameter.bAutoHideCursor);
|
||||
ini.Set("Interface", "MainWindowPosX", (m_LocalCoreStartupParameter.iPosX == -32000) ? 0 : m_LocalCoreStartupParameter.iPosX); // TODO - HAX
|
||||
ini.Set("Interface", "MainWindowPosY", (m_LocalCoreStartupParameter.iPosY == -32000) ? 0 : m_LocalCoreStartupParameter.iPosY); // TODO - HAX
|
||||
ini.Set("Interface", "MainWindowWidth", m_LocalCoreStartupParameter.iWidth);
|
||||
ini.Set("Interface", "MainWindowHeight", m_LocalCoreStartupParameter.iHeight);
|
||||
ini.Set("Interface", "Language", m_InterfaceLanguage);
|
||||
ini.Set("Interface", "ShowToolbar", m_InterfaceToolbar);
|
||||
ini.Set("Interface", "ShowStatusbar", m_InterfaceStatusbar);
|
||||
ini.Set("Interface", "ShowLogWindow", m_InterfaceLogWindow);
|
||||
ini.Set("Interface", "ShowLogConfigWindow", m_InterfaceLogConfigWindow);
|
||||
ini.Set("Interface", "ExtendedFPSInfo", m_InterfaceExtendedFPSInfo);
|
||||
ini.Set("Interface", "ThemeName40", m_LocalCoreStartupParameter.theme_name);
|
||||
|
||||
// Hotkeys
|
||||
for (int i = 0; i < NUM_HOTKEYS; i++)
|
||||
{
|
||||
ini.Set("Hotkeys", g_HKData[i].IniText, m_LocalCoreStartupParameter.iHotkey[i]);
|
||||
ini.Set("Hotkeys", std::string(g_HKData[i].IniText) + "Modifier",
|
||||
m_LocalCoreStartupParameter.iHotkeyModifier[i]);
|
||||
}
|
||||
|
||||
// Display
|
||||
ini.Set("Display", "FullscreenResolution", m_LocalCoreStartupParameter.strFullscreenResolution);
|
||||
ini.Set("Display", "Fullscreen", m_LocalCoreStartupParameter.bFullscreen);
|
||||
ini.Set("Display", "RenderToMain", m_LocalCoreStartupParameter.bRenderToMain);
|
||||
ini.Set("Display", "RenderWindowXPos", m_LocalCoreStartupParameter.iRenderWindowXPos);
|
||||
ini.Set("Display", "RenderWindowYPos", m_LocalCoreStartupParameter.iRenderWindowYPos);
|
||||
ini.Set("Display", "RenderWindowWidth", m_LocalCoreStartupParameter.iRenderWindowWidth);
|
||||
ini.Set("Display", "RenderWindowHeight", m_LocalCoreStartupParameter.iRenderWindowHeight);
|
||||
ini.Set("Display", "RenderWindowAutoSize", m_LocalCoreStartupParameter.bRenderWindowAutoSize);
|
||||
ini.Set("Display", "KeepWindowOnTop", m_LocalCoreStartupParameter.bKeepWindowOnTop);
|
||||
ini.Set("Display", "ProgressiveScan", m_LocalCoreStartupParameter.bProgressive);
|
||||
ini.Set("Display", "DisableScreenSaver", m_LocalCoreStartupParameter.bDisableScreenSaver);
|
||||
ini.Set("Display", "ForceNTSCJ", m_LocalCoreStartupParameter.bForceNTSCJ);
|
||||
|
||||
// Game List Control
|
||||
ini.Set("GameList", "ListDrives", m_ListDrives);
|
||||
ini.Set("GameList", "ListWad", m_ListWad);
|
||||
ini.Set("GameList", "ListWii", m_ListWii);
|
||||
ini.Set("GameList", "ListGC", m_ListGC);
|
||||
ini.Set("GameList", "ListJap", m_ListJap);
|
||||
ini.Set("GameList", "ListPal", m_ListPal);
|
||||
ini.Set("GameList", "ListUsa", m_ListUsa);
|
||||
ini.Set("GameList", "ListFrance", m_ListFrance);
|
||||
ini.Set("GameList", "ListItaly", m_ListItaly);
|
||||
ini.Set("GameList", "ListKorea", m_ListKorea);
|
||||
ini.Set("GameList", "ListTaiwan", m_ListTaiwan);
|
||||
ini.Set("GameList", "ListUnknown", m_ListUnknown);
|
||||
ini.Set("GameList", "ListSort", m_ListSort);
|
||||
ini.Set("GameList", "ListSortSecondary", m_ListSort2);
|
||||
|
||||
ini.Set("GameList", "ColorCompressed", m_ColorCompressed);
|
||||
|
||||
ini.Set("GameList", "ColumnPlatform", m_showSystemColumn);
|
||||
ini.Set("GameList", "ColumnBanner", m_showBannerColumn);
|
||||
ini.Set("GameList", "ColumnNotes", m_showNotesColumn);
|
||||
ini.Set("GameList", "ColumnID", m_showIDColumn);
|
||||
ini.Set("GameList", "ColumnRegion", m_showRegionColumn);
|
||||
ini.Set("GameList", "ColumnSize", m_showSizeColumn);
|
||||
ini.Set("GameList", "ColumnState", m_showStateColumn);
|
||||
|
||||
// Core
|
||||
ini.Set("Core", "HLE_BS2", m_LocalCoreStartupParameter.bHLE_BS2);
|
||||
ini.Set("Core", "CPUCore", m_LocalCoreStartupParameter.iCPUCore);
|
||||
ini.Set("Core", "Fastmem", m_LocalCoreStartupParameter.bFastmem);
|
||||
ini.Set("Core", "CPUThread", m_LocalCoreStartupParameter.bCPUThread);
|
||||
ini.Set("Core", "DSPThread", m_LocalCoreStartupParameter.bDSPThread);
|
||||
ini.Set("Core", "DSPHLE", m_LocalCoreStartupParameter.bDSPHLE);
|
||||
ini.Set("Core", "SkipIdle", m_LocalCoreStartupParameter.bSkipIdle);
|
||||
ini.Set("Core", "DefaultGCM", m_LocalCoreStartupParameter.m_strDefaultGCM);
|
||||
ini.Set("Core", "DVDRoot", m_LocalCoreStartupParameter.m_strDVDRoot);
|
||||
ini.Set("Core", "Apploader", m_LocalCoreStartupParameter.m_strApploader);
|
||||
ini.Set("Core", "EnableCheats", m_LocalCoreStartupParameter.bEnableCheats);
|
||||
ini.Set("Core", "SelectedLanguage", m_LocalCoreStartupParameter.SelectedLanguage);
|
||||
ini.Set("Core", "DPL2Decoder", m_LocalCoreStartupParameter.bDPL2Decoder);
|
||||
ini.Set("Core", "Latency", m_LocalCoreStartupParameter.iLatency);
|
||||
ini.Set("Core", "MemcardAPath", m_strMemoryCardA);
|
||||
ini.Set("Core", "MemcardBPath", m_strMemoryCardB);
|
||||
ini.Set("Core", "SlotA", m_EXIDevice[0]);
|
||||
ini.Set("Core", "SlotB", m_EXIDevice[1]);
|
||||
ini.Set("Core", "SerialPort1", m_EXIDevice[2]);
|
||||
ini.Set("Core", "BBA_MAC", m_bba_mac);
|
||||
for (int i = 0; i < MAX_SI_CHANNELS; ++i)
|
||||
{
|
||||
ini.Set("Core", StringFromFormat("SIDevice%i", i), m_SIDevice[i]);
|
||||
}
|
||||
ini.Set("Core", "WiiSDCard", m_WiiSDCard);
|
||||
ini.Set("Core", "WiiKeyboard", m_WiiKeyboard);
|
||||
ini.Set("Core", "WiimoteContinuousScanning", m_WiimoteContinuousScanning);
|
||||
ini.Set("Core", "WiimoteEnableSpeaker", m_WiimoteEnableSpeaker);
|
||||
ini.Set("Core", "RunCompareServer", m_LocalCoreStartupParameter.bRunCompareServer);
|
||||
ini.Set("Core", "RunCompareClient", m_LocalCoreStartupParameter.bRunCompareClient);
|
||||
ini.Set("Core", "FrameLimit", m_Framelimit);
|
||||
ini.Set("Core", "FrameSkip", m_FrameSkip);
|
||||
|
||||
// GFX Backend
|
||||
ini.Set("Core", "GFXBackend", m_LocalCoreStartupParameter.m_strVideoBackend);
|
||||
|
||||
// Movie
|
||||
ini.Set("Movie", "PauseMovie", m_PauseMovie);
|
||||
ini.Set("Movie", "Author", m_strMovieAuthor);
|
||||
|
||||
// DSP
|
||||
ini.Set("DSP", "EnableJIT", m_DSPEnableJIT);
|
||||
ini.Set("DSP", "DumpAudio", m_DumpAudio);
|
||||
ini.Set("DSP", "Backend", sBackend);
|
||||
ini.Set("DSP", "Volume", m_Volume);
|
||||
|
||||
// Fifo Player
|
||||
ini.Set("FifoPlayer", "LoopReplay", m_LocalCoreStartupParameter.bLoopFifoReplay);
|
||||
SaveGeneralSettings(ini);
|
||||
SaveInterfaceSettings(ini);
|
||||
SaveHotkeySettings(ini);
|
||||
SaveDisplaySettings(ini);
|
||||
SaveGameListSettings(ini);
|
||||
SaveCoreSettings(ini);
|
||||
SaveMovieSettings(ini);
|
||||
SaveDSPSettings(ini);
|
||||
SaveFifoPlayerSettings(ini);
|
||||
|
||||
ini.Save(File::GetUserPath(F_DOLPHINCONFIG_IDX));
|
||||
m_SYSCONF->Save();
|
||||
}
|
||||
|
||||
void SConfig::SaveGeneralSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* general = ini.GetOrCreateSection("General");
|
||||
|
||||
// General
|
||||
general->Set("LastFilename", m_LastFilename);
|
||||
general->Set("ShowLag", m_ShowLag);
|
||||
|
||||
// ISO folders
|
||||
// Clear removed folders
|
||||
int oldPaths;
|
||||
int numPaths = (int)m_ISOFolder.size();
|
||||
general->Get("GCMPathes", &oldPaths, 0);
|
||||
for (int i = numPaths; i < oldPaths; i++)
|
||||
{
|
||||
ini.DeleteKey("General", StringFromFormat("GCMPath%i", i));
|
||||
}
|
||||
|
||||
general->Set("GCMPathes", numPaths);
|
||||
for (int i = 0; i < numPaths; i++)
|
||||
{
|
||||
general->Set(StringFromFormat("GCMPath%i", i), m_ISOFolder[i]);
|
||||
}
|
||||
|
||||
general->Set("RecursiveGCMPaths", m_RecursiveISOFolder);
|
||||
general->Set("NANDRootPath", m_NANDPath);
|
||||
general->Set("WirelessMac", m_WirelessMac);
|
||||
|
||||
#ifdef USE_GDBSTUB
|
||||
general->Set("GDBPort", m_LocalCoreStartupParameter.iGDBPort);
|
||||
#endif
|
||||
}
|
||||
|
||||
void SConfig::SaveInterfaceSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* interface = ini.GetOrCreateSection("Interface");
|
||||
|
||||
interface->Set("ConfirmStop", m_LocalCoreStartupParameter.bConfirmStop);
|
||||
interface->Set("UsePanicHandlers", m_LocalCoreStartupParameter.bUsePanicHandlers);
|
||||
interface->Set("OnScreenDisplayMessages", m_LocalCoreStartupParameter.bOnScreenDisplayMessages);
|
||||
interface->Set("HideCursor", m_LocalCoreStartupParameter.bHideCursor);
|
||||
interface->Set("AutoHideCursor", m_LocalCoreStartupParameter.bAutoHideCursor);
|
||||
interface->Set("MainWindowPosX", (m_LocalCoreStartupParameter.iPosX == -32000) ? 0 : m_LocalCoreStartupParameter.iPosX); // TODO - HAX
|
||||
interface->Set("MainWindowPosY", (m_LocalCoreStartupParameter.iPosY == -32000) ? 0 : m_LocalCoreStartupParameter.iPosY); // TODO - HAX
|
||||
interface->Set("MainWindowWidth", m_LocalCoreStartupParameter.iWidth);
|
||||
interface->Set("MainWindowHeight", m_LocalCoreStartupParameter.iHeight);
|
||||
interface->Set("Language", m_InterfaceLanguage);
|
||||
interface->Set("ShowToolbar", m_InterfaceToolbar);
|
||||
interface->Set("ShowStatusbar", m_InterfaceStatusbar);
|
||||
interface->Set("ShowLogWindow", m_InterfaceLogWindow);
|
||||
interface->Set("ShowLogConfigWindow", m_InterfaceLogConfigWindow);
|
||||
interface->Set("ExtendedFPSInfo", m_InterfaceExtendedFPSInfo);
|
||||
interface->Set("ThemeName40", m_LocalCoreStartupParameter.theme_name);
|
||||
}
|
||||
|
||||
void SConfig::SaveHotkeySettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* hotkeys = ini.GetOrCreateSection("Hotkeys");
|
||||
|
||||
for (int i = 0; i < NUM_HOTKEYS; i++)
|
||||
{
|
||||
hotkeys->Set(g_HKData[i].IniText, m_LocalCoreStartupParameter.iHotkey[i]);
|
||||
hotkeys->Set(std::string(g_HKData[i].IniText) + "Modifier",
|
||||
m_LocalCoreStartupParameter.iHotkeyModifier[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void SConfig::SaveDisplaySettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* display = ini.GetOrCreateSection("Display");
|
||||
|
||||
display->Set("FullscreenResolution", m_LocalCoreStartupParameter.strFullscreenResolution);
|
||||
display->Set("Fullscreen", m_LocalCoreStartupParameter.bFullscreen);
|
||||
display->Set("RenderToMain", m_LocalCoreStartupParameter.bRenderToMain);
|
||||
display->Set("RenderWindowXPos", m_LocalCoreStartupParameter.iRenderWindowXPos);
|
||||
display->Set("RenderWindowYPos", m_LocalCoreStartupParameter.iRenderWindowYPos);
|
||||
display->Set("RenderWindowWidth", m_LocalCoreStartupParameter.iRenderWindowWidth);
|
||||
display->Set("RenderWindowHeight", m_LocalCoreStartupParameter.iRenderWindowHeight);
|
||||
display->Set("RenderWindowAutoSize", m_LocalCoreStartupParameter.bRenderWindowAutoSize);
|
||||
display->Set("KeepWindowOnTop", m_LocalCoreStartupParameter.bKeepWindowOnTop);
|
||||
display->Set("ProgressiveScan", m_LocalCoreStartupParameter.bProgressive);
|
||||
display->Set("DisableScreenSaver", m_LocalCoreStartupParameter.bDisableScreenSaver);
|
||||
display->Set("ForceNTSCJ", m_LocalCoreStartupParameter.bForceNTSCJ);
|
||||
}
|
||||
|
||||
void SConfig::SaveGameListSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* gamelist = ini.GetOrCreateSection("GameList");
|
||||
|
||||
gamelist->Set("ListDrives", m_ListDrives);
|
||||
gamelist->Set("ListWad", m_ListWad);
|
||||
gamelist->Set("ListWii", m_ListWii);
|
||||
gamelist->Set("ListGC", m_ListGC);
|
||||
gamelist->Set("ListJap", m_ListJap);
|
||||
gamelist->Set("ListPal", m_ListPal);
|
||||
gamelist->Set("ListUsa", m_ListUsa);
|
||||
gamelist->Set("ListFrance", m_ListFrance);
|
||||
gamelist->Set("ListItaly", m_ListItaly);
|
||||
gamelist->Set("ListKorea", m_ListKorea);
|
||||
gamelist->Set("ListTaiwan", m_ListTaiwan);
|
||||
gamelist->Set("ListUnknown", m_ListUnknown);
|
||||
gamelist->Set("ListSort", m_ListSort);
|
||||
gamelist->Set("ListSortSecondary", m_ListSort2);
|
||||
|
||||
gamelist->Set("ColorCompressed", m_ColorCompressed);
|
||||
|
||||
gamelist->Set("ColumnPlatform", m_showSystemColumn);
|
||||
gamelist->Set("ColumnBanner", m_showBannerColumn);
|
||||
gamelist->Set("ColumnNotes", m_showNotesColumn);
|
||||
gamelist->Set("ColumnID", m_showIDColumn);
|
||||
gamelist->Set("ColumnRegion", m_showRegionColumn);
|
||||
gamelist->Set("ColumnSize", m_showSizeColumn);
|
||||
gamelist->Set("ColumnState", m_showStateColumn);
|
||||
}
|
||||
|
||||
void SConfig::SaveCoreSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* core = ini.GetOrCreateSection("Core");
|
||||
|
||||
core->Set("HLE_BS2", m_LocalCoreStartupParameter.bHLE_BS2);
|
||||
core->Set("CPUCore", m_LocalCoreStartupParameter.iCPUCore);
|
||||
core->Set("Fastmem", m_LocalCoreStartupParameter.bFastmem);
|
||||
core->Set("CPUThread", m_LocalCoreStartupParameter.bCPUThread);
|
||||
core->Set("DSPThread", m_LocalCoreStartupParameter.bDSPThread);
|
||||
core->Set("DSPHLE", m_LocalCoreStartupParameter.bDSPHLE);
|
||||
core->Set("SkipIdle", m_LocalCoreStartupParameter.bSkipIdle);
|
||||
core->Set("DefaultGCM", m_LocalCoreStartupParameter.m_strDefaultGCM);
|
||||
core->Set("DVDRoot", m_LocalCoreStartupParameter.m_strDVDRoot);
|
||||
core->Set("Apploader", m_LocalCoreStartupParameter.m_strApploader);
|
||||
core->Set("EnableCheats", m_LocalCoreStartupParameter.bEnableCheats);
|
||||
core->Set("SelectedLanguage", m_LocalCoreStartupParameter.SelectedLanguage);
|
||||
core->Set("DPL2Decoder", m_LocalCoreStartupParameter.bDPL2Decoder);
|
||||
core->Set("Latency", m_LocalCoreStartupParameter.iLatency);
|
||||
core->Set("MemcardAPath", m_strMemoryCardA);
|
||||
core->Set("MemcardBPath", m_strMemoryCardB);
|
||||
core->Set("SlotA", m_EXIDevice[0]);
|
||||
core->Set("SlotB", m_EXIDevice[1]);
|
||||
core->Set("SerialPort1", m_EXIDevice[2]);
|
||||
core->Set("BBA_MAC", m_bba_mac);
|
||||
for (int i = 0; i < MAX_SI_CHANNELS; ++i)
|
||||
{
|
||||
core->Set(StringFromFormat("SIDevice%i", i), m_SIDevice[i]);
|
||||
}
|
||||
core->Set("WiiSDCard", m_WiiSDCard);
|
||||
core->Set("WiiKeyboard", m_WiiKeyboard);
|
||||
core->Set("WiimoteContinuousScanning", m_WiimoteContinuousScanning);
|
||||
core->Set("WiimoteEnableSpeaker", m_WiimoteEnableSpeaker);
|
||||
core->Set("RunCompareServer", m_LocalCoreStartupParameter.bRunCompareServer);
|
||||
core->Set("RunCompareClient", m_LocalCoreStartupParameter.bRunCompareClient);
|
||||
core->Set("FrameLimit", m_Framelimit);
|
||||
core->Set("FrameSkip", m_FrameSkip);
|
||||
core->Set("GFXBackend", m_LocalCoreStartupParameter.m_strVideoBackend);
|
||||
}
|
||||
|
||||
void SConfig::SaveMovieSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* movie = ini.GetOrCreateSection("Movie");
|
||||
|
||||
movie->Set("PauseMovie", m_PauseMovie);
|
||||
movie->Set("Author", m_strMovieAuthor);
|
||||
}
|
||||
|
||||
void SConfig::SaveDSPSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* dsp = ini.GetOrCreateSection("DSP");
|
||||
|
||||
dsp->Set("EnableJIT", m_DSPEnableJIT);
|
||||
dsp->Set("DumpAudio", m_DumpAudio);
|
||||
dsp->Set("Backend", sBackend);
|
||||
dsp->Set("Volume", m_Volume);
|
||||
}
|
||||
|
||||
void SConfig::SaveFifoPlayerSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* fifoplayer = ini.GetOrCreateSection("FifoPlayer");
|
||||
|
||||
fifoplayer->Set("LoopReplay", m_LocalCoreStartupParameter.bLoopFifoReplay);
|
||||
}
|
||||
|
||||
void SConfig::LoadSettings()
|
||||
{
|
||||
|
@ -297,181 +341,222 @@ void SConfig::LoadSettings()
|
|||
IniFile ini;
|
||||
ini.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX));
|
||||
|
||||
// General
|
||||
{
|
||||
ini.Get("General", "LastFilename", &m_LastFilename);
|
||||
ini.Get("General", "ShowLag", &m_ShowLag, false);
|
||||
#ifdef USE_GDBSTUB
|
||||
ini.Get("General", "GDBPort", &(m_LocalCoreStartupParameter.iGDBPort), -1);
|
||||
#endif
|
||||
|
||||
m_ISOFolder.clear();
|
||||
int numGCMPaths;
|
||||
|
||||
if (ini.Get("General", "GCMPathes", &numGCMPaths, 0))
|
||||
{
|
||||
for (int i = 0; i < numGCMPaths; i++)
|
||||
{
|
||||
std::string tmpPath;
|
||||
ini.Get("General", StringFromFormat("GCMPath%i", i), &tmpPath, "");
|
||||
m_ISOFolder.push_back(std::move(tmpPath));
|
||||
}
|
||||
}
|
||||
|
||||
ini.Get("General", "RecursiveGCMPaths", &m_RecursiveISOFolder, false);
|
||||
|
||||
ini.Get("General", "NANDRootPath", &m_NANDPath);
|
||||
m_NANDPath = File::GetUserPath(D_WIIROOT_IDX, m_NANDPath);
|
||||
DiscIO::cUIDsys::AccessInstance().UpdateLocation();
|
||||
DiscIO::CSharedContent::AccessInstance().UpdateLocation();
|
||||
ini.Get("General", "WirelessMac", &m_WirelessMac);
|
||||
}
|
||||
|
||||
{
|
||||
// Interface
|
||||
ini.Get("Interface", "ConfirmStop", &m_LocalCoreStartupParameter.bConfirmStop, true);
|
||||
ini.Get("Interface", "UsePanicHandlers", &m_LocalCoreStartupParameter.bUsePanicHandlers, true);
|
||||
ini.Get("Interface", "OnScreenDisplayMessages", &m_LocalCoreStartupParameter.bOnScreenDisplayMessages, true);
|
||||
ini.Get("Interface", "HideCursor", &m_LocalCoreStartupParameter.bHideCursor, false);
|
||||
ini.Get("Interface", "AutoHideCursor", &m_LocalCoreStartupParameter.bAutoHideCursor, false);
|
||||
ini.Get("Interface", "MainWindowPosX", &m_LocalCoreStartupParameter.iPosX, 100);
|
||||
ini.Get("Interface", "MainWindowPosY", &m_LocalCoreStartupParameter.iPosY, 100);
|
||||
ini.Get("Interface", "MainWindowWidth", &m_LocalCoreStartupParameter.iWidth, 800);
|
||||
ini.Get("Interface", "MainWindowHeight", &m_LocalCoreStartupParameter.iHeight, 600);
|
||||
ini.Get("Interface", "Language", &m_InterfaceLanguage, 0);
|
||||
ini.Get("Interface", "ShowToolbar", &m_InterfaceToolbar, true);
|
||||
ini.Get("Interface", "ShowStatusbar", &m_InterfaceStatusbar, true);
|
||||
ini.Get("Interface", "ShowLogWindow", &m_InterfaceLogWindow, false);
|
||||
ini.Get("Interface", "ShowLogConfigWindow", &m_InterfaceLogConfigWindow, false);
|
||||
ini.Get("Interface", "ExtendedFPSInfo", &m_InterfaceExtendedFPSInfo, false);
|
||||
ini.Get("Interface", "ThemeName40", &m_LocalCoreStartupParameter.theme_name, "Clean");
|
||||
|
||||
// Hotkeys
|
||||
for (int i = 0; i < NUM_HOTKEYS; i++)
|
||||
{
|
||||
ini.Get("Hotkeys", g_HKData[i].IniText,
|
||||
&m_LocalCoreStartupParameter.iHotkey[i], g_HKData[i].DefaultKey);
|
||||
ini.Get("Hotkeys", std::string(g_HKData[i].IniText) + "Modifier",
|
||||
&m_LocalCoreStartupParameter.iHotkeyModifier[i], g_HKData[i].DefaultModifier);
|
||||
}
|
||||
|
||||
// Display
|
||||
ini.Get("Display", "Fullscreen", &m_LocalCoreStartupParameter.bFullscreen, false);
|
||||
ini.Get("Display", "FullscreenResolution", &m_LocalCoreStartupParameter.strFullscreenResolution, "Auto");
|
||||
ini.Get("Display", "RenderToMain", &m_LocalCoreStartupParameter.bRenderToMain, false);
|
||||
ini.Get("Display", "RenderWindowXPos", &m_LocalCoreStartupParameter.iRenderWindowXPos, -1);
|
||||
ini.Get("Display", "RenderWindowYPos", &m_LocalCoreStartupParameter.iRenderWindowYPos, -1);
|
||||
ini.Get("Display", "RenderWindowWidth", &m_LocalCoreStartupParameter.iRenderWindowWidth, 640);
|
||||
ini.Get("Display", "RenderWindowHeight", &m_LocalCoreStartupParameter.iRenderWindowHeight, 480);
|
||||
ini.Get("Display", "RenderWindowAutoSize", &m_LocalCoreStartupParameter.bRenderWindowAutoSize, false);
|
||||
ini.Get("Display", "KeepWindowOnTop", &m_LocalCoreStartupParameter.bKeepWindowOnTop, false);
|
||||
ini.Get("Display", "ProgressiveScan", &m_LocalCoreStartupParameter.bProgressive, false);
|
||||
ini.Get("Display", "DisableScreenSaver", &m_LocalCoreStartupParameter.bDisableScreenSaver, true);
|
||||
ini.Get("Display", "ForceNTSCJ", &m_LocalCoreStartupParameter.bForceNTSCJ, false);
|
||||
|
||||
// Game List Control
|
||||
ini.Get("GameList", "ListDrives", &m_ListDrives, false);
|
||||
ini.Get("GameList", "ListWad", &m_ListWad, true);
|
||||
ini.Get("GameList", "ListWii", &m_ListWii, true);
|
||||
ini.Get("GameList", "ListGC", &m_ListGC, true);
|
||||
ini.Get("GameList", "ListJap", &m_ListJap, true);
|
||||
ini.Get("GameList", "ListPal", &m_ListPal, true);
|
||||
ini.Get("GameList", "ListUsa", &m_ListUsa, true);
|
||||
|
||||
ini.Get("GameList", "ListFrance", &m_ListFrance, true);
|
||||
ini.Get("GameList", "ListItaly", &m_ListItaly, true);
|
||||
ini.Get("GameList", "ListKorea", &m_ListKorea, true);
|
||||
ini.Get("GameList", "ListTaiwan", &m_ListTaiwan, true);
|
||||
ini.Get("GameList", "ListUnknown", &m_ListUnknown, true);
|
||||
ini.Get("GameList", "ListSort", &m_ListSort, 3);
|
||||
ini.Get("GameList", "ListSortSecondary",&m_ListSort2, 0);
|
||||
|
||||
// Determines if compressed games display in blue
|
||||
ini.Get("GameList", "ColorCompressed", &m_ColorCompressed, true);
|
||||
|
||||
// Gamelist columns toggles
|
||||
ini.Get("GameList", "ColumnPlatform", &m_showSystemColumn, true);
|
||||
ini.Get("GameList", "ColumnBanner", &m_showBannerColumn, true);
|
||||
ini.Get("GameList", "ColumnNotes", &m_showNotesColumn, true);
|
||||
ini.Get("GameList", "ColumnID", &m_showIDColumn, false);
|
||||
ini.Get("GameList", "ColumnRegion", &m_showRegionColumn, true);
|
||||
ini.Get("GameList", "ColumnSize", &m_showSizeColumn, true);
|
||||
ini.Get("GameList", "ColumnState", &m_showStateColumn, true);
|
||||
|
||||
// Core
|
||||
ini.Get("Core", "HLE_BS2", &m_LocalCoreStartupParameter.bHLE_BS2, false);
|
||||
#ifdef _M_X86
|
||||
ini.Get("Core", "CPUCore", &m_LocalCoreStartupParameter.iCPUCore, 1);
|
||||
#elif _M_ARM_32
|
||||
ini.Get("Core", "CPUCore", &m_LocalCoreStartupParameter.iCPUCore, 3);
|
||||
#else
|
||||
ini.Get("Core", "CPUCore", &m_LocalCoreStartupParameter.iCPUCore, 0);
|
||||
#endif
|
||||
ini.Get("Core", "Fastmem", &m_LocalCoreStartupParameter.bFastmem, true);
|
||||
ini.Get("Core", "DSPThread", &m_LocalCoreStartupParameter.bDSPThread, false);
|
||||
ini.Get("Core", "DSPHLE", &m_LocalCoreStartupParameter.bDSPHLE, true);
|
||||
ini.Get("Core", "CPUThread", &m_LocalCoreStartupParameter.bCPUThread, true);
|
||||
ini.Get("Core", "SkipIdle", &m_LocalCoreStartupParameter.bSkipIdle, true);
|
||||
ini.Get("Core", "DefaultGCM", &m_LocalCoreStartupParameter.m_strDefaultGCM);
|
||||
ini.Get("Core", "DVDRoot", &m_LocalCoreStartupParameter.m_strDVDRoot);
|
||||
ini.Get("Core", "Apploader", &m_LocalCoreStartupParameter.m_strApploader);
|
||||
ini.Get("Core", "EnableCheats", &m_LocalCoreStartupParameter.bEnableCheats, false);
|
||||
ini.Get("Core", "SelectedLanguage", &m_LocalCoreStartupParameter.SelectedLanguage, 0);
|
||||
ini.Get("Core", "DPL2Decoder", &m_LocalCoreStartupParameter.bDPL2Decoder, false);
|
||||
ini.Get("Core", "Latency", &m_LocalCoreStartupParameter.iLatency, 2);
|
||||
ini.Get("Core", "MemcardAPath", &m_strMemoryCardA);
|
||||
ini.Get("Core", "MemcardBPath", &m_strMemoryCardB);
|
||||
ini.Get("Core", "SlotA", (int*)&m_EXIDevice[0], EXIDEVICE_MEMORYCARD);
|
||||
ini.Get("Core", "SlotB", (int*)&m_EXIDevice[1], EXIDEVICE_NONE);
|
||||
ini.Get("Core", "SerialPort1", (int*)&m_EXIDevice[2], EXIDEVICE_NONE);
|
||||
ini.Get("Core", "BBA_MAC", &m_bba_mac);
|
||||
ini.Get("Core", "TimeProfiling", &m_LocalCoreStartupParameter.bJITILTimeProfiling, false);
|
||||
ini.Get("Core", "OutputIR", &m_LocalCoreStartupParameter.bJITILOutputIR, false);
|
||||
for (int i = 0; i < MAX_SI_CHANNELS; ++i)
|
||||
{
|
||||
ini.Get("Core", StringFromFormat("SIDevice%i", i), (u32*)&m_SIDevice[i], (i == 0) ? SIDEVICE_GC_CONTROLLER : SIDEVICE_NONE);
|
||||
}
|
||||
ini.Get("Core", "WiiSDCard", &m_WiiSDCard, false);
|
||||
ini.Get("Core", "WiiKeyboard", &m_WiiKeyboard, false);
|
||||
ini.Get("Core", "WiimoteContinuousScanning", &m_WiimoteContinuousScanning, false);
|
||||
ini.Get("Core", "WiimoteEnableSpeaker", &m_WiimoteEnableSpeaker, true);
|
||||
ini.Get("Core", "RunCompareServer", &m_LocalCoreStartupParameter.bRunCompareServer, false);
|
||||
ini.Get("Core", "RunCompareClient", &m_LocalCoreStartupParameter.bRunCompareClient, false);
|
||||
ini.Get("Core", "MMU", &m_LocalCoreStartupParameter.bMMU, false);
|
||||
ini.Get("Core", "TLBHack", &m_LocalCoreStartupParameter.bTLBHack, false);
|
||||
ini.Get("Core", "BBDumpPort", &m_LocalCoreStartupParameter.iBBDumpPort, -1);
|
||||
ini.Get("Core", "VBeam", &m_LocalCoreStartupParameter.bVBeamSpeedHack, false);
|
||||
ini.Get("Core", "SyncGPU", &m_LocalCoreStartupParameter.bSyncGPU, false);
|
||||
ini.Get("Core", "FastDiscSpeed", &m_LocalCoreStartupParameter.bFastDiscSpeed, false);
|
||||
ini.Get("Core", "DCBZ", &m_LocalCoreStartupParameter.bDCBZOFF, false);
|
||||
ini.Get("Core", "FrameLimit", &m_Framelimit, 1); // auto frame limit by default
|
||||
ini.Get("Core", "FrameSkip", &m_FrameSkip, 0);
|
||||
|
||||
// GFX Backend
|
||||
ini.Get("Core", "GFXBackend", &m_LocalCoreStartupParameter.m_strVideoBackend, "");
|
||||
|
||||
// Movie
|
||||
ini.Get("Movie", "PauseMovie", &m_PauseMovie, false);
|
||||
ini.Get("Movie", "Author", &m_strMovieAuthor, "");
|
||||
|
||||
// DSP
|
||||
ini.Get("DSP", "EnableJIT", &m_DSPEnableJIT, true);
|
||||
ini.Get("DSP", "DumpAudio", &m_DumpAudio, false);
|
||||
#if defined __linux__ && HAVE_ALSA
|
||||
ini.Get("DSP", "Backend", &sBackend, BACKEND_ALSA);
|
||||
#elif defined __APPLE__
|
||||
ini.Get("DSP", "Backend", &sBackend, BACKEND_COREAUDIO);
|
||||
#elif defined _WIN32
|
||||
ini.Get("DSP", "Backend", &sBackend, BACKEND_XAUDIO2);
|
||||
#elif defined ANDROID
|
||||
ini.Get("DSP", "Backend", &sBackend, BACKEND_OPENSLES);
|
||||
#else
|
||||
ini.Get("DSP", "Backend", &sBackend, BACKEND_NULLSOUND);
|
||||
#endif
|
||||
ini.Get("DSP", "Volume", &m_Volume, 100);
|
||||
|
||||
ini.Get("FifoPlayer", "LoopReplay", &m_LocalCoreStartupParameter.bLoopFifoReplay, true);
|
||||
}
|
||||
LoadGeneralSettings(ini);
|
||||
LoadInterfaceSettings(ini);
|
||||
LoadHotkeySettings(ini);
|
||||
LoadDisplaySettings(ini);
|
||||
LoadGameListSettings(ini);
|
||||
LoadCoreSettings(ini);
|
||||
LoadMovieSettings(ini);
|
||||
LoadDSPSettings(ini);
|
||||
LoadFifoPlayerSettings(ini);
|
||||
|
||||
m_SYSCONF = new SysConf();
|
||||
}
|
||||
|
||||
void SConfig::LoadGeneralSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* general = ini.GetOrCreateSection("General");
|
||||
|
||||
general->Get("LastFilename", &m_LastFilename);
|
||||
general->Get("ShowLag", &m_ShowLag, false);
|
||||
#ifdef USE_GDBSTUB
|
||||
general->Get("GDBPort", &(m_LocalCoreStartupParameter.iGDBPort), -1);
|
||||
#endif
|
||||
|
||||
m_ISOFolder.clear();
|
||||
int numGCMPaths;
|
||||
|
||||
if (general->Get("GCMPathes", &numGCMPaths, 0))
|
||||
{
|
||||
for (int i = 0; i < numGCMPaths; i++)
|
||||
{
|
||||
std::string tmpPath;
|
||||
general->Get(StringFromFormat("GCMPath%i", i), &tmpPath, "");
|
||||
m_ISOFolder.push_back(std::move(tmpPath));
|
||||
}
|
||||
}
|
||||
|
||||
general->Get("RecursiveGCMPaths", &m_RecursiveISOFolder, false);
|
||||
|
||||
general->Get("NANDRootPath", &m_NANDPath);
|
||||
m_NANDPath = File::GetUserPath(D_WIIROOT_IDX, m_NANDPath);
|
||||
DiscIO::cUIDsys::AccessInstance().UpdateLocation();
|
||||
DiscIO::CSharedContent::AccessInstance().UpdateLocation();
|
||||
general->Get("WirelessMac", &m_WirelessMac);
|
||||
}
|
||||
|
||||
void SConfig::LoadInterfaceSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* interface = ini.GetOrCreateSection("Interface");
|
||||
|
||||
interface->Get("ConfirmStop", &m_LocalCoreStartupParameter.bConfirmStop, true);
|
||||
interface->Get("UsePanicHandlers", &m_LocalCoreStartupParameter.bUsePanicHandlers, true);
|
||||
interface->Get("OnScreenDisplayMessages", &m_LocalCoreStartupParameter.bOnScreenDisplayMessages, true);
|
||||
interface->Get("HideCursor", &m_LocalCoreStartupParameter.bHideCursor, false);
|
||||
interface->Get("AutoHideCursor", &m_LocalCoreStartupParameter.bAutoHideCursor, false);
|
||||
interface->Get("MainWindowPosX", &m_LocalCoreStartupParameter.iPosX, 100);
|
||||
interface->Get("MainWindowPosY", &m_LocalCoreStartupParameter.iPosY, 100);
|
||||
interface->Get("MainWindowWidth", &m_LocalCoreStartupParameter.iWidth, 800);
|
||||
interface->Get("MainWindowHeight", &m_LocalCoreStartupParameter.iHeight, 600);
|
||||
interface->Get("Language", &m_InterfaceLanguage, 0);
|
||||
interface->Get("ShowToolbar", &m_InterfaceToolbar, true);
|
||||
interface->Get("ShowStatusbar", &m_InterfaceStatusbar, true);
|
||||
interface->Get("ShowLogWindow", &m_InterfaceLogWindow, false);
|
||||
interface->Get("ShowLogConfigWindow", &m_InterfaceLogConfigWindow, false);
|
||||
interface->Get("ExtendedFPSInfo", &m_InterfaceExtendedFPSInfo, false);
|
||||
interface->Get("ThemeName40", &m_LocalCoreStartupParameter.theme_name, "Clean");
|
||||
}
|
||||
|
||||
void SConfig::LoadHotkeySettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* hotkeys = ini.GetOrCreateSection("Hotkeys");
|
||||
|
||||
for (int i = 0; i < NUM_HOTKEYS; i++)
|
||||
{
|
||||
hotkeys->Get(g_HKData[i].IniText,
|
||||
&m_LocalCoreStartupParameter.iHotkey[i], g_HKData[i].DefaultKey);
|
||||
hotkeys->Get(std::string(g_HKData[i].IniText) + "Modifier",
|
||||
&m_LocalCoreStartupParameter.iHotkeyModifier[i], g_HKData[i].DefaultModifier);
|
||||
}
|
||||
}
|
||||
|
||||
void SConfig::LoadDisplaySettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* display = ini.GetOrCreateSection("Display");
|
||||
|
||||
display->Get("Fullscreen", &m_LocalCoreStartupParameter.bFullscreen, false);
|
||||
display->Get("FullscreenResolution", &m_LocalCoreStartupParameter.strFullscreenResolution, "Auto");
|
||||
display->Get("RenderToMain", &m_LocalCoreStartupParameter.bRenderToMain, false);
|
||||
display->Get("RenderWindowXPos", &m_LocalCoreStartupParameter.iRenderWindowXPos, -1);
|
||||
display->Get("RenderWindowYPos", &m_LocalCoreStartupParameter.iRenderWindowYPos, -1);
|
||||
display->Get("RenderWindowWidth", &m_LocalCoreStartupParameter.iRenderWindowWidth, 640);
|
||||
display->Get("RenderWindowHeight", &m_LocalCoreStartupParameter.iRenderWindowHeight, 480);
|
||||
display->Get("RenderWindowAutoSize", &m_LocalCoreStartupParameter.bRenderWindowAutoSize, false);
|
||||
display->Get("KeepWindowOnTop", &m_LocalCoreStartupParameter.bKeepWindowOnTop, false);
|
||||
display->Get("ProgressiveScan", &m_LocalCoreStartupParameter.bProgressive, false);
|
||||
display->Get("DisableScreenSaver", &m_LocalCoreStartupParameter.bDisableScreenSaver, true);
|
||||
display->Get("ForceNTSCJ", &m_LocalCoreStartupParameter.bForceNTSCJ, false);
|
||||
}
|
||||
|
||||
void SConfig::LoadGameListSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* gamelist = ini.GetOrCreateSection("GameList");
|
||||
|
||||
gamelist->Get("ListDrives", &m_ListDrives, false);
|
||||
gamelist->Get("ListWad", &m_ListWad, true);
|
||||
gamelist->Get("ListWii", &m_ListWii, true);
|
||||
gamelist->Get("ListGC", &m_ListGC, true);
|
||||
gamelist->Get("ListJap", &m_ListJap, true);
|
||||
gamelist->Get("ListPal", &m_ListPal, true);
|
||||
gamelist->Get("ListUsa", &m_ListUsa, true);
|
||||
|
||||
gamelist->Get("ListFrance", &m_ListFrance, true);
|
||||
gamelist->Get("ListItaly", &m_ListItaly, true);
|
||||
gamelist->Get("ListKorea", &m_ListKorea, true);
|
||||
gamelist->Get("ListTaiwan", &m_ListTaiwan, true);
|
||||
gamelist->Get("ListUnknown", &m_ListUnknown, true);
|
||||
gamelist->Get("ListSort", &m_ListSort, 3);
|
||||
gamelist->Get("ListSortSecondary",&m_ListSort2, 0);
|
||||
|
||||
// Determines if compressed games display in blue
|
||||
gamelist->Get("ColorCompressed", &m_ColorCompressed, true);
|
||||
|
||||
// Gamelist columns toggles
|
||||
gamelist->Get("ColumnPlatform", &m_showSystemColumn, true);
|
||||
gamelist->Get("ColumnBanner", &m_showBannerColumn, true);
|
||||
gamelist->Get("ColumnNotes", &m_showNotesColumn, true);
|
||||
gamelist->Get("ColumnID", &m_showIDColumn, false);
|
||||
gamelist->Get("ColumnRegion", &m_showRegionColumn, true);
|
||||
gamelist->Get("ColumnSize", &m_showSizeColumn, true);
|
||||
gamelist->Get("ColumnState", &m_showStateColumn, true);
|
||||
}
|
||||
|
||||
void SConfig::LoadCoreSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* core = ini.GetOrCreateSection("Core");
|
||||
|
||||
core->Get("HLE_BS2", &m_LocalCoreStartupParameter.bHLE_BS2, false);
|
||||
#ifdef _M_X86
|
||||
core->Get("CPUCore", &m_LocalCoreStartupParameter.iCPUCore, 1);
|
||||
#elif _M_ARM_32
|
||||
core->Get("CPUCore", &m_LocalCoreStartupParameter.iCPUCore, 3);
|
||||
#else
|
||||
core->Get("CPUCore", &m_LocalCoreStartupParameter.iCPUCore, 0);
|
||||
#endif
|
||||
core->Get("Fastmem", &m_LocalCoreStartupParameter.bFastmem, true);
|
||||
core->Get("DSPThread", &m_LocalCoreStartupParameter.bDSPThread, false);
|
||||
core->Get("DSPHLE", &m_LocalCoreStartupParameter.bDSPHLE, true);
|
||||
core->Get("CPUThread", &m_LocalCoreStartupParameter.bCPUThread, true);
|
||||
core->Get("SkipIdle", &m_LocalCoreStartupParameter.bSkipIdle, true);
|
||||
core->Get("DefaultGCM", &m_LocalCoreStartupParameter.m_strDefaultGCM);
|
||||
core->Get("DVDRoot", &m_LocalCoreStartupParameter.m_strDVDRoot);
|
||||
core->Get("Apploader", &m_LocalCoreStartupParameter.m_strApploader);
|
||||
core->Get("EnableCheats", &m_LocalCoreStartupParameter.bEnableCheats, false);
|
||||
core->Get("SelectedLanguage", &m_LocalCoreStartupParameter.SelectedLanguage, 0);
|
||||
core->Get("DPL2Decoder", &m_LocalCoreStartupParameter.bDPL2Decoder, false);
|
||||
core->Get("Latency", &m_LocalCoreStartupParameter.iLatency, 2);
|
||||
core->Get("MemcardAPath", &m_strMemoryCardA);
|
||||
core->Get("MemcardBPath", &m_strMemoryCardB);
|
||||
core->Get("SlotA", (int*)&m_EXIDevice[0], EXIDEVICE_MEMORYCARD);
|
||||
core->Get("SlotB", (int*)&m_EXIDevice[1], EXIDEVICE_NONE);
|
||||
core->Get("SerialPort1", (int*)&m_EXIDevice[2], EXIDEVICE_NONE);
|
||||
core->Get("BBA_MAC", &m_bba_mac);
|
||||
core->Get("TimeProfiling", &m_LocalCoreStartupParameter.bJITILTimeProfiling, false);
|
||||
core->Get("OutputIR", &m_LocalCoreStartupParameter.bJITILOutputIR, false);
|
||||
for (int i = 0; i < MAX_SI_CHANNELS; ++i)
|
||||
{
|
||||
core->Get(StringFromFormat("SIDevice%i", i), (u32*)&m_SIDevice[i], (i == 0) ? SIDEVICE_GC_CONTROLLER : SIDEVICE_NONE);
|
||||
}
|
||||
core->Get("WiiSDCard", &m_WiiSDCard, false);
|
||||
core->Get("WiiKeyboard", &m_WiiKeyboard, false);
|
||||
core->Get("WiimoteContinuousScanning", &m_WiimoteContinuousScanning, false);
|
||||
core->Get("WiimoteEnableSpeaker", &m_WiimoteEnableSpeaker, true);
|
||||
core->Get("RunCompareServer", &m_LocalCoreStartupParameter.bRunCompareServer, false);
|
||||
core->Get("RunCompareClient", &m_LocalCoreStartupParameter.bRunCompareClient, false);
|
||||
core->Get("MMU", &m_LocalCoreStartupParameter.bMMU, false);
|
||||
core->Get("TLBHack", &m_LocalCoreStartupParameter.bTLBHack, false);
|
||||
core->Get("BBDumpPort", &m_LocalCoreStartupParameter.iBBDumpPort, -1);
|
||||
core->Get("VBeam", &m_LocalCoreStartupParameter.bVBeamSpeedHack, false);
|
||||
core->Get("SyncGPU", &m_LocalCoreStartupParameter.bSyncGPU, false);
|
||||
core->Get("FastDiscSpeed", &m_LocalCoreStartupParameter.bFastDiscSpeed, false);
|
||||
core->Get("DCBZ", &m_LocalCoreStartupParameter.bDCBZOFF, false);
|
||||
core->Get("FrameLimit", &m_Framelimit, 1); // auto frame limit by default
|
||||
core->Get("FrameSkip", &m_FrameSkip, 0);
|
||||
core->Get("GFXBackend", &m_LocalCoreStartupParameter.m_strVideoBackend, "");
|
||||
}
|
||||
|
||||
void SConfig::LoadMovieSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* movie = ini.GetOrCreateSection("Movie");
|
||||
|
||||
movie->Get("PauseMovie", &m_PauseMovie, false);
|
||||
movie->Get("Author", &m_strMovieAuthor, "");
|
||||
}
|
||||
|
||||
void SConfig::LoadDSPSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* dsp = ini.GetOrCreateSection("DSP");
|
||||
|
||||
dsp->Get("EnableJIT", &m_DSPEnableJIT, true);
|
||||
dsp->Get("DumpAudio", &m_DumpAudio, false);
|
||||
#if defined __linux__ && HAVE_ALSA
|
||||
dsp->Get("Backend", &sBackend, BACKEND_ALSA);
|
||||
#elif defined __APPLE__
|
||||
dsp->Get("Backend", &sBackend, BACKEND_COREAUDIO);
|
||||
#elif defined _WIN32
|
||||
dsp->Get("Backend", &sBackend, BACKEND_XAUDIO2);
|
||||
#elif defined ANDROID
|
||||
dsp->Get("Backend", &sBackend, BACKEND_OPENSLES);
|
||||
#else
|
||||
dsp->Get("Backend", &sBackend, BACKEND_NULLSOUND);
|
||||
#endif
|
||||
dsp->Get("Volume", &m_Volume, 100);
|
||||
}
|
||||
|
||||
void SConfig::LoadFifoPlayerSettings(IniFile& ini)
|
||||
{
|
||||
IniFile::Section* fifoplayer = ini.GetOrCreateSection("FifoPlayer");
|
||||
|
||||
fifoplayer->Get("LoopReplay", &m_LocalCoreStartupParameter.bLoopFifoReplay, true);
|
||||
}
|
||||
|
|
|
@ -114,5 +114,25 @@ private:
|
|||
SConfig();
|
||||
~SConfig();
|
||||
|
||||
void SaveGeneralSettings(IniFile& ini);
|
||||
void SaveInterfaceSettings(IniFile& ini);
|
||||
void SaveDisplaySettings(IniFile& ini);
|
||||
void SaveHotkeySettings(IniFile& ini);
|
||||
void SaveGameListSettings(IniFile& ini);
|
||||
void SaveCoreSettings(IniFile& ini);
|
||||
void SaveDSPSettings(IniFile& ini);
|
||||
void SaveMovieSettings(IniFile& ini);
|
||||
void SaveFifoPlayerSettings(IniFile& ini);
|
||||
|
||||
void LoadGeneralSettings(IniFile& ini);
|
||||
void LoadInterfaceSettings(IniFile& ini);
|
||||
void LoadDisplaySettings(IniFile& ini);
|
||||
void LoadHotkeySettings(IniFile& ini);
|
||||
void LoadGameListSettings(IniFile& ini);
|
||||
void LoadCoreSettings(IniFile& ini);
|
||||
void LoadDSPSettings(IniFile& ini);
|
||||
void LoadMovieSettings(IniFile& ini);
|
||||
void LoadFifoPlayerSettings(IniFile& ini);
|
||||
|
||||
static SConfig* m_Instance;
|
||||
};
|
||||
|
|
|
@ -208,9 +208,8 @@ bool Init()
|
|||
if (g_aspect_wide)
|
||||
{
|
||||
IniFile gameIni = _CoreParameter.LoadGameIni();
|
||||
gameIni.Get("Wii", "Widescreen", &g_aspect_wide,
|
||||
!!SConfig::GetInstance().m_SYSCONF->
|
||||
GetData<u8>("IPL.AR"));
|
||||
gameIni.GetOrCreateSection("Wii")->Get("Widescreen", &g_aspect_wide,
|
||||
!!SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.AR"));
|
||||
}
|
||||
|
||||
// g_pWindowHandle is first the m_Panel handle,
|
||||
|
|
|
@ -80,7 +80,7 @@ CEXIMemoryCard::CEXIMemoryCard(const int index)
|
|||
// Use a 16Mb (251 block) memory card for these games
|
||||
bool useMC251;
|
||||
IniFile gameIni = Core::g_CoreStartupParameter.LoadGameIni();
|
||||
gameIni.Get("Core", "MemoryCard251", &useMC251, false);
|
||||
gameIni.GetOrCreateSection("Core")->Get("MemoryCard251", &useMC251, false);
|
||||
nintendo_card_id = MemCard2043Mb;
|
||||
if (useMC251)
|
||||
{
|
||||
|
|
|
@ -25,7 +25,7 @@ bool CWII_IPC_HLE_Device_usb_kbd::Open(u32 _CommandAddress, u32 _Mode)
|
|||
INFO_LOG(WII_IPC_STM, "CWII_IPC_HLE_Device_usb_kbd: Open");
|
||||
IniFile ini;
|
||||
ini.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX));
|
||||
ini.Get("USB Keyboard", "Layout", &m_KeyboardLayout, KBD_LAYOUT_QWERTY);
|
||||
ini.GetOrCreateSection("USB Keyboard")->Get("Layout", &m_KeyboardLayout, KBD_LAYOUT_QWERTY);
|
||||
|
||||
for (bool& pressed : m_OldKeyBuffer)
|
||||
{
|
||||
|
|
|
@ -132,7 +132,7 @@ static void LoadSpeedhacks(const std::string& section, IniFile& ini)
|
|||
for (const std::string& key : keys)
|
||||
{
|
||||
std::string value;
|
||||
ini.Get(section, key, &value, "BOGUS");
|
||||
ini.GetOrCreateSection(section)->Get(key, &value, "BOGUS");
|
||||
if (value != "BOGUS")
|
||||
{
|
||||
u32 address;
|
||||
|
|
|
@ -110,7 +110,7 @@ namespace ButtonManager
|
|||
bool hasbind = false;
|
||||
char modifier = '+';
|
||||
std::string value;
|
||||
ini.Get("Android", config.str(), &value, "None");
|
||||
ini.GetOrCreateSection("Android")->Get(config.str(), &value, "None");
|
||||
if (value == "None")
|
||||
continue;
|
||||
if (std::string::npos != value.find("Axis"))
|
||||
|
|
|
@ -62,14 +62,15 @@ void CCodeWindow::Load()
|
|||
|
||||
// The font to override DebuggerFont with
|
||||
std::string fontDesc;
|
||||
ini.Get("General", "DebuggerFont", &fontDesc);
|
||||
|
||||
IniFile::Section* general = ini.GetOrCreateSection("General");
|
||||
general->Get("DebuggerFont", &fontDesc);
|
||||
general->Get("AutomaticStart", &bAutomaticStart, false);
|
||||
general->Get("BootToPause", &bBootToPause, true);
|
||||
|
||||
if (!fontDesc.empty())
|
||||
DebuggerFont.SetNativeFontInfoUserDesc(StrToWxStr(fontDesc));
|
||||
|
||||
// Boot to pause or not
|
||||
ini.Get("General", "AutomaticStart", &bAutomaticStart, false);
|
||||
ini.Get("General", "BootToPause", &bBootToPause, true);
|
||||
|
||||
const char* SettingName[] = {
|
||||
"Log",
|
||||
"LogConfig",
|
||||
|
@ -85,19 +86,19 @@ void CCodeWindow::Load()
|
|||
|
||||
// Decide what windows to show
|
||||
for (int i = 0; i <= IDM_VIDEOWINDOW - IDM_LOGWINDOW; i++)
|
||||
ini.Get("ShowOnStart", SettingName[i], &bShowOnStart[i], false);
|
||||
ini.GetOrCreateSection("ShowOnStart")->Get(SettingName[i], &bShowOnStart[i], false);
|
||||
|
||||
// Get notebook affiliation
|
||||
std::string _Section = "P - " +
|
||||
std::string section = "P - " +
|
||||
((Parent->ActivePerspective < Parent->Perspectives.size())
|
||||
? Parent->Perspectives[Parent->ActivePerspective].Name : "Perspective 1");
|
||||
|
||||
for (int i = 0; i <= IDM_CODEWINDOW - IDM_LOGWINDOW; i++)
|
||||
ini.Get(_Section, SettingName[i], &iNbAffiliation[i], 0);
|
||||
ini.GetOrCreateSection(section)->Get(SettingName[i], &iNbAffiliation[i], 0);
|
||||
|
||||
// Get floating setting
|
||||
for (int i = 0; i <= IDM_CODEWINDOW - IDM_LOGWINDOW; i++)
|
||||
ini.Get("Float", SettingName[i], &Parent->bFloatWindow[i], false);
|
||||
ini.GetOrCreateSection("Float")->Get(SettingName[i], &Parent->bFloatWindow[i], false);
|
||||
}
|
||||
|
||||
void CCodeWindow::Save()
|
||||
|
@ -105,11 +106,10 @@ void CCodeWindow::Save()
|
|||
IniFile ini;
|
||||
ini.Load(File::GetUserPath(F_DEBUGGERCONFIG_IDX));
|
||||
|
||||
ini.Set("General", "DebuggerFont", WxStrToStr(DebuggerFont.GetNativeFontInfoUserDesc()));
|
||||
|
||||
// Boot to pause or not
|
||||
ini.Set("General", "AutomaticStart", GetMenuBar()->IsChecked(IDM_AUTOMATICSTART));
|
||||
ini.Set("General", "BootToPause", GetMenuBar()->IsChecked(IDM_BOOTTOPAUSE));
|
||||
IniFile::Section* general = ini.GetOrCreateSection("General");
|
||||
general->Set("DebuggerFont", WxStrToStr(DebuggerFont.GetNativeFontInfoUserDesc()));
|
||||
general->Set("AutomaticStart", GetMenuBar()->IsChecked(IDM_AUTOMATICSTART));
|
||||
general->Set("BootToPause", GetMenuBar()->IsChecked(IDM_BOOTTOPAUSE));
|
||||
|
||||
const char* SettingName[] = {
|
||||
"Log",
|
||||
|
@ -126,16 +126,16 @@ void CCodeWindow::Save()
|
|||
|
||||
// Save windows settings
|
||||
for (int i = IDM_LOGWINDOW; i <= IDM_VIDEOWINDOW; i++)
|
||||
ini.Set("ShowOnStart", SettingName[i - IDM_LOGWINDOW], GetMenuBar()->IsChecked(i));
|
||||
ini.GetOrCreateSection("ShowOnStart")->Set(SettingName[i - IDM_LOGWINDOW], GetMenuBar()->IsChecked(i));
|
||||
|
||||
// Save notebook affiliations
|
||||
std::string _Section = "P - " + Parent->Perspectives[Parent->ActivePerspective].Name;
|
||||
std::string section = "P - " + Parent->Perspectives[Parent->ActivePerspective].Name;
|
||||
for (int i = 0; i <= IDM_CODEWINDOW - IDM_LOGWINDOW; i++)
|
||||
ini.Set(_Section, SettingName[i], iNbAffiliation[i]);
|
||||
ini.GetOrCreateSection(section)->Set(SettingName[i], iNbAffiliation[i]);
|
||||
|
||||
// Save floating setting
|
||||
for (int i = IDM_LOGWINDOW_PARENT; i <= IDM_CODEWINDOW_PARENT; i++)
|
||||
ini.Set("Float", SettingName[i - IDM_LOGWINDOW_PARENT], !!FindWindowById(i));
|
||||
ini.GetOrCreateSection("Float")->Set(SettingName[i - IDM_LOGWINDOW_PARENT], !!FindWindowById(i));
|
||||
|
||||
ini.Save(File::GetUserPath(F_DEBUGGERCONFIG_IDX));
|
||||
}
|
||||
|
|
|
@ -88,10 +88,11 @@ void GFXDebuggerPanel::SaveSettings() const
|
|||
GetSize().GetWidth() < 1000 &&
|
||||
GetSize().GetHeight() < 1000)
|
||||
{
|
||||
file.Set("VideoWindow", "x", GetPosition().x);
|
||||
file.Set("VideoWindow", "y", GetPosition().y);
|
||||
file.Set("VideoWindow", "w", GetSize().GetWidth());
|
||||
file.Set("VideoWindow", "h", GetSize().GetHeight());
|
||||
IniFile::Section* video_window = file.GetOrCreateSection("VideoWindow");
|
||||
video_window->Set("x", GetPosition().x);
|
||||
video_window->Set("y", GetPosition().y);
|
||||
video_window->Set("w", GetSize().GetWidth());
|
||||
video_window->Set("h", GetSize().GetHeight());
|
||||
}
|
||||
|
||||
file.Save(File::GetUserPath(F_DEBUGGERCONFIG_IDX));
|
||||
|
@ -102,11 +103,17 @@ void GFXDebuggerPanel::LoadSettings()
|
|||
IniFile file;
|
||||
file.Load(File::GetUserPath(F_DEBUGGERCONFIG_IDX));
|
||||
|
||||
int x = 100, y = 100, w = 100, h = 100;
|
||||
file.Get("VideoWindow", "x", &x, GetPosition().x);
|
||||
file.Get("VideoWindow", "y", &y, GetPosition().y);
|
||||
file.Get("VideoWindow", "w", &w, GetSize().GetWidth());
|
||||
file.Get("VideoWindow", "h", &h, GetSize().GetHeight());
|
||||
int x = 100;
|
||||
int y = 100;
|
||||
int w = 100;
|
||||
int h = 100;
|
||||
|
||||
IniFile::Section* video_window = file.GetOrCreateSection("VideoWindow");
|
||||
video_window->Get("x", &x, GetPosition().x);
|
||||
video_window->Get("y", &y, GetPosition().y);
|
||||
video_window->Get("w", &w, GetSize().GetWidth());
|
||||
video_window->Get("h", &h, GetSize().GetHeight());
|
||||
|
||||
SetSize(x, y, w, h);
|
||||
}
|
||||
|
||||
|
|
|
@ -127,25 +127,29 @@ CMemoryWindow::CMemoryWindow(wxWindow* parent, wxWindowID id,
|
|||
sizerBig->Fit(this);
|
||||
}
|
||||
|
||||
void CMemoryWindow::Save(IniFile& _IniFile) const
|
||||
void CMemoryWindow::Save(IniFile& ini) const
|
||||
{
|
||||
// Prevent these bad values that can happen after a crash or hanging
|
||||
if (GetPosition().x != -32000 && GetPosition().y != -32000)
|
||||
{
|
||||
_IniFile.Set("MemoryWindow", "x", GetPosition().x);
|
||||
_IniFile.Set("MemoryWindow", "y", GetPosition().y);
|
||||
_IniFile.Set("MemoryWindow", "w", GetSize().GetWidth());
|
||||
_IniFile.Set("MemoryWindow", "h", GetSize().GetHeight());
|
||||
IniFile::Section* mem_window = ini.GetOrCreateSection("MemoryWindow");
|
||||
mem_window->Set("x", GetPosition().x);
|
||||
mem_window->Set("y", GetPosition().y);
|
||||
mem_window->Set("w", GetSize().GetWidth());
|
||||
mem_window->Set("h", GetSize().GetHeight());
|
||||
}
|
||||
}
|
||||
|
||||
void CMemoryWindow::Load(IniFile& _IniFile)
|
||||
void CMemoryWindow::Load(IniFile& ini)
|
||||
{
|
||||
int x, y, w, h;
|
||||
_IniFile.Get("MemoryWindow", "x", &x, GetPosition().x);
|
||||
_IniFile.Get("MemoryWindow", "y", &y, GetPosition().y);
|
||||
_IniFile.Get("MemoryWindow", "w", &w, GetSize().GetWidth());
|
||||
_IniFile.Get("MemoryWindow", "h", &h, GetSize().GetHeight());
|
||||
|
||||
IniFile::Section* mem_window = ini.GetOrCreateSection("MemoryWindow");
|
||||
mem_window->Get("x", &x, GetPosition().x);
|
||||
mem_window->Get("y", &y, GetPosition().y);
|
||||
mem_window->Get("w", &w, GetSize().GetWidth());
|
||||
mem_window->Get("h", &h, GetSize().GetHeight());
|
||||
|
||||
SetSize(x, y, w, h);
|
||||
}
|
||||
|
||||
|
|
|
@ -835,8 +835,10 @@ void CFrame::LoadIniPerspectives()
|
|||
|
||||
IniFile ini;
|
||||
ini.Load(File::GetUserPath(F_DEBUGGERCONFIG_IDX));
|
||||
ini.Get("Perspectives", "Perspectives", &_Perspectives, "Perspective 1");
|
||||
ini.Get("Perspectives", "Active", &ActivePerspective, 0);
|
||||
|
||||
IniFile::Section* perspectives = ini.GetOrCreateSection("Perspectives");
|
||||
perspectives->Get("Perspectives", &_Perspectives, "Perspective 1");
|
||||
perspectives->Get("Active", &ActivePerspective, 0);
|
||||
SplitString(_Perspectives, ',', VPerspectives);
|
||||
|
||||
for (auto& VPerspective : VPerspectives)
|
||||
|
@ -853,13 +855,15 @@ void CFrame::LoadIniPerspectives()
|
|||
}
|
||||
|
||||
_Section = StringFromFormat("P - %s", Tmp.Name.c_str());
|
||||
ini.Get(_Section, "Perspective", &_Perspective,
|
||||
"layout2|"
|
||||
"name=Pane 0;caption=Pane 0;state=768;dir=5;prop=100000;|"
|
||||
"name=Pane 1;caption=Pane 1;state=31458108;dir=4;prop=100000;|"
|
||||
"dock_size(5,0,0)=22|dock_size(4,0,0)=333|");
|
||||
ini.Get(_Section, "Width", &_Widths, "70,25");
|
||||
ini.Get(_Section, "Height", &_Heights, "80,80");
|
||||
|
||||
IniFile::Section* perspec_section = ini.GetOrCreateSection(_Section);
|
||||
perspec_section->Get("Perspective", &_Perspective,
|
||||
"layout2|"
|
||||
"name=Pane 0;caption=Pane 0;state=768;dir=5;prop=100000;|"
|
||||
"name=Pane 1;caption=Pane 1;state=31458108;dir=4;prop=100000;|"
|
||||
"dock_size(5,0,0)=22|dock_size(4,0,0)=333|");
|
||||
perspec_section->Get("Width", &_Widths, "70,25");
|
||||
perspec_section->Get("Height", &_Heights, "80,80");
|
||||
|
||||
Tmp.Perspective = StrToWxStr(_Perspective);
|
||||
|
||||
|
@ -926,14 +930,17 @@ void CFrame::SaveIniPerspectives()
|
|||
STmp += Perspective.Name + ",";
|
||||
}
|
||||
STmp = STmp.substr(0, STmp.length()-1);
|
||||
ini.Set("Perspectives", "Perspectives", STmp);
|
||||
ini.Set("Perspectives", "Active", ActivePerspective);
|
||||
|
||||
IniFile::Section* perspectives = ini.GetOrCreateSection("Perspectives");
|
||||
perspectives->Set("Perspectives", STmp);
|
||||
perspectives->Set("Active", ActivePerspective);
|
||||
|
||||
// Save the perspectives
|
||||
for (auto& Perspective : Perspectives)
|
||||
{
|
||||
std::string _Section = "P - " + Perspective.Name;
|
||||
ini.Set(_Section, "Perspective", WxStrToStr(Perspective.Perspective));
|
||||
IniFile::Section* perspec_section = ini.GetOrCreateSection(_Section);
|
||||
perspec_section->Set("Perspective", WxStrToStr(Perspective.Perspective));
|
||||
|
||||
std::string SWidth = "", SHeight = "";
|
||||
for (u32 j = 0; j < Perspective.Width.size(); j++)
|
||||
|
@ -945,8 +952,8 @@ void CFrame::SaveIniPerspectives()
|
|||
SWidth = SWidth.substr(0, SWidth.length()-1);
|
||||
SHeight = SHeight.substr(0, SHeight.length()-1);
|
||||
|
||||
ini.Set(_Section, "Width", SWidth);
|
||||
ini.Set(_Section, "Height", SHeight);
|
||||
perspec_section->Set("Width", SWidth);
|
||||
perspec_section->Set("Height", SHeight);
|
||||
}
|
||||
|
||||
ini.Save(File::GetUserPath(F_DEBUGGERCONFIG_IDX));
|
||||
|
|
|
@ -127,8 +127,10 @@ GameListItem::GameListItem(const std::string& _rFileName)
|
|||
IniFile ini;
|
||||
ini.Load(File::GetSysDirectory() + GAMESETTINGS_DIR DIR_SEP + m_UniqueID + ".ini");
|
||||
ini.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + m_UniqueID + ".ini", true);
|
||||
ini.Get("EmuState", "EmulationStateId", &m_emu_state);
|
||||
ini.Get("EmuState", "EmulationIssues", &m_issues);
|
||||
|
||||
IniFile::Section* emu_state = ini.GetOrCreateSection("EmuState");
|
||||
emu_state->Get("EmulationStateId", &m_emu_state);
|
||||
emu_state->Get("EmulationIssues", &m_issues);
|
||||
}
|
||||
|
||||
if (!m_pImage.empty())
|
||||
|
|
|
@ -1019,9 +1019,9 @@ void CISOProperties::SetCheckboxValueFromGameini(const char* section, const char
|
|||
{
|
||||
// Prefer local gameini value over default gameini value.
|
||||
bool value;
|
||||
if (GameIniLocal.Get(section, key, &value))
|
||||
if (GameIniLocal.GetOrCreateSection(section)->Get(key, &value))
|
||||
checkbox->Set3StateValue((wxCheckBoxState)value);
|
||||
else if (GameIniDefault.Get(section, key, &value))
|
||||
else if (GameIniDefault.GetOrCreateSection(section)->Get(key, &value))
|
||||
checkbox->Set3StateValue((wxCheckBoxState)value);
|
||||
else
|
||||
checkbox->Set3StateValue(wxCHK_UNDETERMINED);
|
||||
|
@ -1042,34 +1042,39 @@ void CISOProperties::LoadGameConfig()
|
|||
SetCheckboxValueFromGameini("Wii", "Widescreen", EnableWideScreen);
|
||||
SetCheckboxValueFromGameini("Video", "UseBBox", UseBBox);
|
||||
|
||||
IniFile::Section* default_video = GameIniDefault.GetOrCreateSection("Video");
|
||||
IniFile::Section* local_video = GameIniLocal.GetOrCreateSection("Video");
|
||||
|
||||
// First set values from default gameini, then apply values from local gameini
|
||||
int iTemp;
|
||||
GameIniDefault.Get("Video", "ProjectionHack", &iTemp);
|
||||
default_video->Get("ProjectionHack", &iTemp);
|
||||
PHackEnable->SetValue(!!iTemp);
|
||||
if (GameIniLocal.Get("Video", "ProjectionHack", &iTemp))
|
||||
if (local_video->Get("ProjectionHack", &iTemp))
|
||||
PHackEnable->SetValue(!!iTemp);
|
||||
|
||||
GameIniDefault.Get("Video", "PH_SZNear", &PHack_Data.PHackSZNear);
|
||||
default_video->Get("PH_SZNear", &PHack_Data.PHackSZNear);
|
||||
if (GameIniLocal.GetIfExists("Video", "PH_SZNear", &iTemp))
|
||||
PHack_Data.PHackSZNear = !!iTemp;
|
||||
GameIniDefault.Get("Video", "PH_SZFar", &PHack_Data.PHackSZFar);
|
||||
default_video->Get("PH_SZFar", &PHack_Data.PHackSZFar);
|
||||
if (GameIniLocal.GetIfExists("Video", "PH_SZFar", &iTemp))
|
||||
PHack_Data.PHackSZFar = !!iTemp;
|
||||
|
||||
std::string sTemp;
|
||||
GameIniDefault.Get("Video", "PH_ZNear", &PHack_Data.PHZNear);
|
||||
default_video->Get("PH_ZNear", &PHack_Data.PHZNear);
|
||||
if (GameIniLocal.GetIfExists("Video", "PH_ZNear", &sTemp))
|
||||
PHack_Data.PHZNear = sTemp;
|
||||
GameIniDefault.Get("Video", "PH_ZFar", &PHack_Data.PHZFar);
|
||||
default_video->Get("PH_ZFar", &PHack_Data.PHZFar);
|
||||
if (GameIniLocal.GetIfExists("Video", "PH_ZFar", &sTemp))
|
||||
PHack_Data.PHZFar = sTemp;
|
||||
|
||||
GameIniDefault.Get("EmuState", "EmulationStateId", &iTemp, 0/*Not Set*/);
|
||||
|
||||
IniFile::Section* default_emustate = GameIniDefault.GetOrCreateSection("EmuState");
|
||||
default_emustate->Get("EmulationStateId", &iTemp, 0/*Not Set*/);
|
||||
EmuState->SetSelection(iTemp);
|
||||
if (GameIniLocal.GetIfExists("EmuState", "EmulationStateId", &iTemp))
|
||||
EmuState->SetSelection(iTemp);
|
||||
|
||||
GameIniDefault.Get("EmuState", "EmulationIssues", &sTemp);
|
||||
default_emustate->Get("EmulationIssues", &sTemp);
|
||||
if (!sTemp.empty())
|
||||
EmuIssues->SetValue(StrToWxStr(sTemp));
|
||||
if (GameIniLocal.GetIfExists("EmuState", "EmulationIssues", &sTemp))
|
||||
|
@ -1092,13 +1097,13 @@ void CISOProperties::SaveGameIniValueFrom3StateCheckbox(const char* section, con
|
|||
if (checkbox->Get3StateValue() == wxCHK_UNDETERMINED)
|
||||
GameIniLocal.DeleteKey(section, key);
|
||||
else if (!GameIniDefault.Exists(section, key))
|
||||
GameIniLocal.Set(section, key, checkbox_val);
|
||||
GameIniLocal.GetOrCreateSection(section)->Set(key, checkbox_val);
|
||||
else
|
||||
{
|
||||
bool default_value;
|
||||
GameIniDefault.Get(section, key, &default_value);
|
||||
GameIniDefault.GetOrCreateSection(section)->Get(key, &default_value);
|
||||
if (default_value != checkbox_val)
|
||||
GameIniLocal.Set(section, key, checkbox_val);
|
||||
GameIniLocal.GetOrCreateSection(section)->Set(key, checkbox_val);
|
||||
else
|
||||
GameIniLocal.DeleteKey(section, key);
|
||||
}
|
||||
|
@ -1122,13 +1127,13 @@ bool CISOProperties::SaveGameConfig()
|
|||
#define SAVE_IF_NOT_DEFAULT(section, key, val, def) do { \
|
||||
if (GameIniDefault.Exists((section), (key))) { \
|
||||
std::remove_reference<decltype((val))>::type tmp__; \
|
||||
GameIniDefault.Get((section), (key), &tmp__); \
|
||||
GameIniDefault.GetOrCreateSection((section))->Get((key), &tmp__); \
|
||||
if ((val) != tmp__) \
|
||||
GameIniLocal.Set((section), (key), (val)); \
|
||||
GameIniLocal.GetOrCreateSection((section))->Set((key), (val)); \
|
||||
else \
|
||||
GameIniLocal.DeleteKey((section), (key)); \
|
||||
} else if ((val) != (def)) \
|
||||
GameIniLocal.Set((section), (key), (val)); \
|
||||
GameIniLocal.GetOrCreateSection((section))->Set((key), (val)); \
|
||||
else \
|
||||
GameIniLocal.DeleteKey((section), (key)); \
|
||||
} while (0)
|
||||
|
|
|
@ -117,9 +117,11 @@ void LogConfigWindow::LoadSettings()
|
|||
IniFile ini;
|
||||
ini.Load(File::GetUserPath(F_LOGGERCONFIG_IDX));
|
||||
|
||||
IniFile::Section* options = ini.GetOrCreateSection("Options");
|
||||
|
||||
// Retrieve the verbosity value from the config ini file.
|
||||
int verbosity;
|
||||
ini.Get("Options", "Verbosity", &verbosity, 0);
|
||||
options->Get("Verbosity", &verbosity, 0);
|
||||
|
||||
// Ensure the verbosity level is valid.
|
||||
if (verbosity < 1)
|
||||
|
@ -131,16 +133,16 @@ void LogConfigWindow::LoadSettings()
|
|||
m_verbosity->SetSelection(verbosity - 1);
|
||||
|
||||
// Get the logger output settings from the config ini file.
|
||||
ini.Get("Options", "WriteToFile", &m_writeFile, false);
|
||||
options->Get("WriteToFile", &m_writeFile, false);
|
||||
m_writeFileCB->SetValue(m_writeFile);
|
||||
ini.Get("Options", "WriteToConsole", &m_writeConsole, true);
|
||||
options->Get("WriteToConsole", &m_writeConsole, true);
|
||||
m_writeConsoleCB->SetValue(m_writeConsole);
|
||||
ini.Get("Options", "WriteToWindow", &m_writeWindow, true);
|
||||
options->Get("WriteToWindow", &m_writeWindow, true);
|
||||
m_writeWindowCB->SetValue(m_writeWindow);
|
||||
#ifdef _MSC_VER
|
||||
if (IsDebuggerPresent())
|
||||
{
|
||||
ini.Get("Options", "WriteToDebugger", &m_writeDebugger, true);
|
||||
options->Get("WriteToDebugger", &m_writeDebugger, true);
|
||||
m_writeDebuggerCB->SetValue(m_writeDebugger);
|
||||
}
|
||||
else
|
||||
|
@ -154,7 +156,7 @@ void LogConfigWindow::LoadSettings()
|
|||
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
|
||||
{
|
||||
bool log_enabled;
|
||||
ini.Get("Logs", m_LogManager->GetShortName((LogTypes::LOG_TYPE)i), &log_enabled, true);
|
||||
ini.GetOrCreateSection("Logs")->Get(m_LogManager->GetShortName((LogTypes::LOG_TYPE)i), &log_enabled, true);
|
||||
|
||||
if (log_enabled)
|
||||
enableAll = false;
|
||||
|
@ -168,22 +170,20 @@ void LogConfigWindow::SaveSettings()
|
|||
IniFile ini;
|
||||
ini.Load(File::GetUserPath(F_LOGGERCONFIG_IDX));
|
||||
|
||||
// Save the verbosity level.
|
||||
ini.Set("Options", "Verbosity", m_verbosity->GetSelection() + 1);
|
||||
|
||||
// Save the enabled/disabled states of the logger outputs to the config ini.
|
||||
ini.Set("Options", "WriteToFile", m_writeFile);
|
||||
ini.Set("Options", "WriteToConsole", m_writeConsole);
|
||||
ini.Set("Options", "WriteToWindow", m_writeWindow);
|
||||
IniFile::Section* options = ini.GetOrCreateSection("Options");
|
||||
options->Set("Verbosity", m_verbosity->GetSelection() + 1);
|
||||
options->Set("WriteToFile", m_writeFile);
|
||||
options->Set("WriteToConsole", m_writeConsole);
|
||||
options->Set("WriteToWindow", m_writeWindow);
|
||||
#ifdef _MSC_VER
|
||||
if (IsDebuggerPresent())
|
||||
ini.Set("Options", "WriteToDebugger", m_writeDebugger);
|
||||
options->Set("WriteToDebugger", m_writeDebugger);
|
||||
#endif
|
||||
|
||||
// Save all enabled/disabled states of the log types to the config ini.
|
||||
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
|
||||
{
|
||||
ini.Set("Logs", m_LogManager->GetShortName((LogTypes::LOG_TYPE)i), m_checks->IsChecked(i));
|
||||
ini.GetOrCreateSection("Logs")->Set(m_LogManager->GetShortName((LogTypes::LOG_TYPE)i), m_checks->IsChecked(i));
|
||||
}
|
||||
|
||||
ini.Save(File::GetUserPath(F_LOGGERCONFIG_IDX));
|
||||
|
|
|
@ -69,13 +69,15 @@ void CLogWindow::CreateGUIControls()
|
|||
IniFile ini;
|
||||
ini.Load(File::GetUserPath(F_LOGGERCONFIG_IDX));
|
||||
|
||||
ini.Get("LogWindow", "x", &x, Parent->GetSize().GetX() / 2);
|
||||
ini.Get("LogWindow", "y", &y, Parent->GetSize().GetY());
|
||||
ini.Get("LogWindow", "pos", &winpos, wxAUI_DOCK_RIGHT);
|
||||
IniFile::Section* options = ini.GetOrCreateSection("Options");
|
||||
IniFile::Section* log_window = ini.GetOrCreateSection("LogWindow");
|
||||
log_window->Get("x", &x, Parent->GetSize().GetX() / 2);
|
||||
log_window->Get("y", &y, Parent->GetSize().GetY());
|
||||
log_window->Get("pos", &winpos, wxAUI_DOCK_RIGHT);
|
||||
|
||||
// Set up log listeners
|
||||
int verbosity;
|
||||
ini.Get("Options", "Verbosity", &verbosity, 0);
|
||||
options->Get("Verbosity", &verbosity, 0);
|
||||
|
||||
// Ensure the verbosity level is valid
|
||||
if (verbosity < 1)
|
||||
|
@ -84,12 +86,12 @@ void CLogWindow::CreateGUIControls()
|
|||
verbosity = MAX_LOGLEVEL;
|
||||
|
||||
// Get the logger output settings from the config ini file.
|
||||
ini.Get("Options", "WriteToFile", &m_writeFile, false);
|
||||
ini.Get("Options", "WriteToWindow", &m_writeWindow, true);
|
||||
options->Get("WriteToFile", &m_writeFile, false);
|
||||
options->Get("WriteToWindow", &m_writeWindow, true);
|
||||
#ifdef _MSC_VER
|
||||
if (IsDebuggerPresent())
|
||||
{
|
||||
ini.Get("Options", "WriteToDebugger", &m_writeDebugger, true);
|
||||
options->Get("WriteToDebugger", &m_writeDebugger, true);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
@ -97,10 +99,11 @@ void CLogWindow::CreateGUIControls()
|
|||
m_writeDebugger = false;
|
||||
}
|
||||
|
||||
IniFile::Section* logs = ini.GetOrCreateSection("Logs");
|
||||
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
|
||||
{
|
||||
bool enable;
|
||||
ini.Get("Logs", m_LogManager->GetShortName((LogTypes::LOG_TYPE)i), &enable, true);
|
||||
logs->Get(m_LogManager->GetShortName((LogTypes::LOG_TYPE)i), &enable, true);
|
||||
|
||||
if (m_writeWindow && enable)
|
||||
m_LogManager->AddListener((LogTypes::LOG_TYPE)i, this);
|
||||
|
@ -133,12 +136,12 @@ void CLogWindow::CreateGUIControls()
|
|||
LogFont.push_back(DebuggerFont);
|
||||
|
||||
int font;
|
||||
ini.Get("Options", "Font", &font, 0);
|
||||
options->Get("Font", &font, 0);
|
||||
m_FontChoice->SetSelection(font);
|
||||
|
||||
// Word wrap
|
||||
bool wrap_lines;
|
||||
ini.Get("Options", "WrapLines", &wrap_lines, false);
|
||||
options->Get("WrapLines", &wrap_lines, false);
|
||||
m_WrapLine = new wxCheckBox(this, IDM_WRAPLINE, _("Word Wrap"));
|
||||
m_WrapLine->SetValue(wrap_lines);
|
||||
|
||||
|
@ -190,12 +193,16 @@ void CLogWindow::SaveSettings()
|
|||
|
||||
if (!Parent->g_pCodeWindow)
|
||||
{
|
||||
ini.Set("LogWindow", "x", x);
|
||||
ini.Set("LogWindow", "y", y);
|
||||
ini.Set("LogWindow", "pos", winpos);
|
||||
IniFile::Section* log_window = ini.GetOrCreateSection("LogWindow");
|
||||
log_window->Set("x", x);
|
||||
log_window->Set("y", y);
|
||||
log_window->Set("pos", winpos);
|
||||
}
|
||||
ini.Set("Options", "Font", m_FontChoice->GetSelection());
|
||||
ini.Set("Options", "WrapLines", m_WrapLine->IsChecked());
|
||||
|
||||
IniFile::Section* options = ini.GetOrCreateSection("Options");
|
||||
options->Set("Font", m_FontChoice->GetSelection());
|
||||
options->Set("WrapLines", m_WrapLine->IsChecked());
|
||||
|
||||
ini.Save(File::GetUserPath(F_LOGGERCONFIG_IDX));
|
||||
}
|
||||
|
||||
|
|
|
@ -413,7 +413,7 @@ void DolphinApp::InitLanguageSupport()
|
|||
|
||||
IniFile ini;
|
||||
ini.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX));
|
||||
ini.Get("Interface", "Language", &language, wxLANGUAGE_DEFAULT);
|
||||
ini.GetOrCreateSection("Interface")->Get("Language", &language, wxLANGUAGE_DEFAULT);
|
||||
|
||||
// Load language if possible, fall back to system default otherwise
|
||||
if (wxLocale::IsAvailable(language))
|
||||
|
|
|
@ -298,7 +298,7 @@ JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetConfig
|
|||
ini.Load(File::GetUserPath(D_CONFIG_IDX) + std::string(file));
|
||||
std::string value;
|
||||
|
||||
ini.Get(section, key, &value, defaultValue);
|
||||
ini.GetOrCreateSection(section)->Get(key, &value, defaultValue);
|
||||
|
||||
return env->NewStringUTF(value.c_str());
|
||||
}
|
||||
|
@ -313,7 +313,7 @@ jstring jValue)
|
|||
|
||||
ini.Load(File::GetUserPath(D_CONFIG_IDX) + std::string(file));
|
||||
|
||||
ini.Set(section, key, value);
|
||||
ini.GetOrCreateSection(section)->Set(key, value);
|
||||
ini.Save(File::GetUserPath(D_CONFIG_IDX) + std::string(file));
|
||||
}
|
||||
|
||||
|
|
|
@ -98,7 +98,7 @@ void CPHackSettings::LoadPHackData()
|
|||
if (!PHPresetsIni.Exists(sIndex, "Title"))
|
||||
break;
|
||||
|
||||
PHPresetsIni.Get(sIndex, "Title", &sTemp);
|
||||
PHPresetsIni.GetOrCreateSection(sIndex)->Get("Title", &sTemp);
|
||||
|
||||
if (sTemp.empty())
|
||||
sTemp = WxStrToStr(_("(UNKNOWN)"));
|
||||
|
@ -129,13 +129,14 @@ void CPHackSettings::SetRefresh(wxCommandEvent& event)
|
|||
index -= 2;
|
||||
sIndex = std::to_string(index);
|
||||
|
||||
PHPresetsIni.Get(sIndex, "PH_SZNear", &bTemp);
|
||||
IniFile::Section* proj_hack = PHPresetsIni.GetOrCreateSection(sIndex);
|
||||
proj_hack->Get("PH_SZNear", &bTemp);
|
||||
PHackSZNear->Set3StateValue((wxCheckBoxState)bTemp);
|
||||
PHPresetsIni.Get(sIndex, "PH_SZFar", &bTemp);
|
||||
proj_hack->Get("PH_SZFar", &bTemp);
|
||||
PHackSZFar->Set3StateValue((wxCheckBoxState)bTemp);
|
||||
PHPresetsIni.Get(sIndex, "PH_ZNear", &sTemp);
|
||||
proj_hack->Get("PH_ZNear", &sTemp);
|
||||
PHackZNear->SetValue(StrToWxStr(sTemp));
|
||||
PHPresetsIni.Get(sIndex, "PH_ZFar", &sTemp);
|
||||
proj_hack->Get("PH_ZFar", &sTemp);
|
||||
PHackZFar->SetValue(StrToWxStr(sTemp));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,16 +36,21 @@ bool InputPlugin::LoadConfig(bool isGC)
|
|||
type = "Wiimote";
|
||||
path = "Profiles/Wiimote/";
|
||||
}
|
||||
|
||||
game_ini.Load(File::GetSysDirectory() + GAMESETTINGS_DIR DIR_SEP + SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() + ".ini");
|
||||
game_ini.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() + ".ini", true);
|
||||
IniFile::Section* control_section = game_ini.GetOrCreateSection("Controls");
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
if (game_ini.Exists("Controls", type + "Profile" + num[i]))
|
||||
if (control_section->Exists(type + "Profile" + num[i]))
|
||||
{
|
||||
if (game_ini.Get("Controls", type + "Profile" + num[i], &profile[i]))
|
||||
if (control_section->Get(type + "Profile" + num[i], &profile[i]))
|
||||
{
|
||||
if (File::Exists(File::GetUserPath(D_CONFIG_IDX) + path + profile[i] + ".ini"))
|
||||
{
|
||||
useProfile[i] = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: Having a PanicAlert for this is dumb.
|
||||
|
|
|
@ -38,24 +38,29 @@ void SWVideoConfig::Load(const char* ini_file)
|
|||
IniFile iniFile;
|
||||
iniFile.Load(ini_file);
|
||||
|
||||
iniFile.Get("Hardware", "Fullscreen", &bFullscreen, 0); // Hardware
|
||||
iniFile.Get("Hardware", "RenderToMainframe", &renderToMainframe, false);
|
||||
IniFile::Section* hardware = iniFile.GetOrCreateSection("Hardware");
|
||||
hardware->Get("Fullscreen", &bFullscreen, 0); // Hardware
|
||||
hardware->Get("RenderToMainframe", &renderToMainframe, false);
|
||||
|
||||
iniFile.Get("Rendering", "HwRasterizer", &bHwRasterizer, false);
|
||||
iniFile.Get("Rendering", "BypassXFB", &bBypassXFB, false);
|
||||
iniFile.Get("Rendering", "ZComploc", &bZComploc, true);
|
||||
iniFile.Get("Rendering", "ZFreeze", &bZFreeze, true);
|
||||
IniFile::Section* rendering = iniFile.GetOrCreateSection("Rendering");
|
||||
rendering->Get("HwRasterizer", &bHwRasterizer, false);
|
||||
rendering->Get("BypassXFB", &bBypassXFB, false);
|
||||
rendering->Get("ZComploc", &bZComploc, true);
|
||||
rendering->Get("ZFreeze", &bZFreeze, true);
|
||||
|
||||
iniFile.Get("Info", "ShowStats", &bShowStats, false);
|
||||
IniFile::Section* info = iniFile.GetOrCreateSection("Info");
|
||||
info->Get("ShowStats", &bShowStats, false);
|
||||
|
||||
iniFile.Get("Utility", "DumpTexture", &bDumpTextures, false);
|
||||
iniFile.Get("Utility", "DumpObjects", &bDumpObjects, false);
|
||||
iniFile.Get("Utility", "DumpFrames", &bDumpFrames, false);
|
||||
iniFile.Get("Utility", "DumpTevStages", &bDumpTevStages, false);
|
||||
iniFile.Get("Utility", "DumpTevTexFetches", &bDumpTevTextureFetches, false);
|
||||
IniFile::Section* utility = iniFile.GetOrCreateSection("Utility");
|
||||
utility->Get("DumpTexture", &bDumpTextures, false);
|
||||
utility->Get("DumpObjects", &bDumpObjects, false);
|
||||
utility->Get("DumpFrames", &bDumpFrames, false);
|
||||
utility->Get("DumpTevStages", &bDumpTevStages, false);
|
||||
utility->Get("DumpTevTexFetches", &bDumpTevTextureFetches, false);
|
||||
|
||||
iniFile.Get("Misc", "DrawStart", &drawStart, 0);
|
||||
iniFile.Get("Misc", "DrawEnd", &drawEnd, 100000);
|
||||
IniFile::Section* misc = iniFile.GetOrCreateSection("Misc");
|
||||
misc->Get("DrawStart", &drawStart, 0);
|
||||
misc->Get("DrawEnd", &drawEnd, 100000);
|
||||
}
|
||||
|
||||
void SWVideoConfig::Save(const char* ini_file)
|
||||
|
@ -63,24 +68,29 @@ void SWVideoConfig::Save(const char* ini_file)
|
|||
IniFile iniFile;
|
||||
iniFile.Load(ini_file);
|
||||
|
||||
iniFile.Set("Hardware", "Fullscreen", bFullscreen);
|
||||
iniFile.Set("Hardware", "RenderToMainframe", renderToMainframe);
|
||||
IniFile::Section* hardware = iniFile.GetOrCreateSection("Hardware");
|
||||
hardware->Set("Fullscreen", bFullscreen);
|
||||
hardware->Set("RenderToMainframe", renderToMainframe);
|
||||
|
||||
iniFile.Set("Rendering", "HwRasterizer", bHwRasterizer);
|
||||
iniFile.Set("Rendering", "BypassXFB", bBypassXFB);
|
||||
iniFile.Set("Rendering", "ZComploc", bZComploc);
|
||||
iniFile.Set("Rendering", "ZFreeze", bZFreeze);
|
||||
IniFile::Section* rendering = iniFile.GetOrCreateSection("Rendering");
|
||||
rendering->Set("HwRasterizer", bHwRasterizer);
|
||||
rendering->Set("BypassXFB", bBypassXFB);
|
||||
rendering->Set("ZComploc", bZComploc);
|
||||
rendering->Set("ZFreeze", bZFreeze);
|
||||
|
||||
iniFile.Set("Info", "ShowStats", bShowStats);
|
||||
IniFile::Section* info = iniFile.GetOrCreateSection("Info");
|
||||
info->Set("ShowStats", bShowStats);
|
||||
|
||||
iniFile.Set("Utility", "DumpTexture", bDumpTextures);
|
||||
iniFile.Set("Utility", "DumpObjects", bDumpObjects);
|
||||
iniFile.Set("Utility", "DumpFrames", bDumpFrames);
|
||||
iniFile.Set("Utility", "DumpTevStages", bDumpTevStages);
|
||||
iniFile.Set("Utility", "DumpTevTexFetches", bDumpTevTextureFetches);
|
||||
IniFile::Section* utility = iniFile.GetOrCreateSection("Utility");
|
||||
utility->Set("DumpTexture", bDumpTextures);
|
||||
utility->Set("DumpObjects", bDumpObjects);
|
||||
utility->Set("DumpFrames", bDumpFrames);
|
||||
utility->Set("DumpTevStages", bDumpTevStages);
|
||||
utility->Set("DumpTevTexFetches", bDumpTevTextureFetches);
|
||||
|
||||
iniFile.Set("Misc", "DrawStart", drawStart);
|
||||
iniFile.Set("Misc", "DrawEnd", drawEnd);
|
||||
IniFile::Section* misc = iniFile.GetOrCreateSection("Misc");
|
||||
misc->Set("DrawStart", drawStart);
|
||||
misc->Set("DrawEnd", drawEnd);
|
||||
|
||||
iniFile.Save(ini_file);
|
||||
}
|
||||
|
|
|
@ -44,63 +44,63 @@ void VideoConfig::Load(const std::string& ini_file)
|
|||
IniFile iniFile;
|
||||
iniFile.Load(ini_file);
|
||||
|
||||
iniFile.Get("Hardware", "VSync", &bVSync, 0); // Hardware
|
||||
iniFile.Get("Settings", "wideScreenHack", &bWidescreenHack, false);
|
||||
iniFile.Get("Settings", "AspectRatio", &iAspectRatio, (int)ASPECT_AUTO);
|
||||
iniFile.Get("Settings", "Crop", &bCrop, false);
|
||||
iniFile.Get("Settings", "UseXFB", &bUseXFB, 0);
|
||||
iniFile.Get("Settings", "UseRealXFB", &bUseRealXFB, 0);
|
||||
iniFile.Get("Settings", "SafeTextureCacheColorSamples", &iSafeTextureCache_ColorSamples,128);
|
||||
iniFile.Get("Settings", "ShowFPS", &bShowFPS, false); // Settings
|
||||
iniFile.Get("Settings", "LogFPSToFile", &bLogFPSToFile, false);
|
||||
iniFile.Get("Settings", "ShowInputDisplay", &bShowInputDisplay, false);
|
||||
iniFile.Get("Settings", "OverlayStats", &bOverlayStats, false);
|
||||
iniFile.Get("Settings", "OverlayProjStats", &bOverlayProjStats, false);
|
||||
iniFile.Get("Settings", "ShowEFBCopyRegions", &bShowEFBCopyRegions, false);
|
||||
iniFile.Get("Settings", "DumpTextures", &bDumpTextures, 0);
|
||||
iniFile.Get("Settings", "HiresTextures", &bHiresTextures, 0);
|
||||
iniFile.Get("Settings", "DumpEFBTarget", &bDumpEFBTarget, 0);
|
||||
iniFile.Get("Settings", "DumpFrames", &bDumpFrames, 0);
|
||||
iniFile.Get("Settings", "FreeLook", &bFreeLook, 0);
|
||||
iniFile.Get("Settings", "UseFFV1", &bUseFFV1, 0);
|
||||
iniFile.Get("Settings", "AnaglyphStereo", &bAnaglyphStereo, false);
|
||||
iniFile.Get("Settings", "AnaglyphStereoSeparation", &iAnaglyphStereoSeparation, 200);
|
||||
iniFile.Get("Settings", "AnaglyphFocalAngle", &iAnaglyphFocalAngle, 0);
|
||||
iniFile.Get("Settings", "EnablePixelLighting", &bEnablePixelLighting, 0);
|
||||
iniFile.Get("Settings", "FastDepthCalc", &bFastDepthCalc, true);
|
||||
IniFile::Section* hardware = iniFile.GetOrCreateSection("Hardware");
|
||||
hardware->Get("VSync", &bVSync, 0);
|
||||
hardware->Get("Adapter", &iAdapter, 0);
|
||||
|
||||
iniFile.Get("Settings", "MSAA", &iMultisampleMode, 0);
|
||||
iniFile.Get("Settings", "EFBScale", &iEFBScale, (int) SCALE_1X); // native
|
||||
IniFile::Section* settings = iniFile.GetOrCreateSection("Settings");
|
||||
settings->Get("wideScreenHack", &bWidescreenHack, false);
|
||||
settings->Get("AspectRatio", &iAspectRatio, (int)ASPECT_AUTO);
|
||||
settings->Get("Crop", &bCrop, false);
|
||||
settings->Get("UseXFB", &bUseXFB, 0);
|
||||
settings->Get("UseRealXFB", &bUseRealXFB, 0);
|
||||
settings->Get("SafeTextureCacheColorSamples", &iSafeTextureCache_ColorSamples,128);
|
||||
settings->Get("ShowFPS", &bShowFPS, false);
|
||||
settings->Get("LogFPSToFile", &bLogFPSToFile, false);
|
||||
settings->Get("ShowInputDisplay", &bShowInputDisplay, false);
|
||||
settings->Get("OverlayStats", &bOverlayStats, false);
|
||||
settings->Get("OverlayProjStats", &bOverlayProjStats, false);
|
||||
settings->Get("ShowEFBCopyRegions", &bShowEFBCopyRegions, false);
|
||||
settings->Get("DumpTextures", &bDumpTextures, 0);
|
||||
settings->Get("HiresTextures", &bHiresTextures, 0);
|
||||
settings->Get("DumpEFBTarget", &bDumpEFBTarget, 0);
|
||||
settings->Get("DumpFrames", &bDumpFrames, 0);
|
||||
settings->Get("FreeLook", &bFreeLook, 0);
|
||||
settings->Get("UseFFV1", &bUseFFV1, 0);
|
||||
settings->Get("AnaglyphStereo", &bAnaglyphStereo, false);
|
||||
settings->Get("AnaglyphStereoSeparation", &iAnaglyphStereoSeparation, 200);
|
||||
settings->Get("AnaglyphFocalAngle", &iAnaglyphFocalAngle, 0);
|
||||
settings->Get("EnablePixelLighting", &bEnablePixelLighting, 0);
|
||||
settings->Get("FastDepthCalc", &bFastDepthCalc, true);
|
||||
settings->Get("MSAA", &iMultisampleMode, 0);
|
||||
settings->Get("EFBScale", &iEFBScale, (int) SCALE_1X); // native
|
||||
settings->Get("DstAlphaPass", &bDstAlphaPass, false);
|
||||
settings->Get("TexFmtOverlayEnable", &bTexFmtOverlayEnable, 0);
|
||||
settings->Get("TexFmtOverlayCenter", &bTexFmtOverlayCenter, 0);
|
||||
settings->Get("WireFrame", &bWireFrame, 0);
|
||||
settings->Get("DisableFog", &bDisableFog, 0);
|
||||
settings->Get("OMPDecoder", &bOMPDecoder, false);
|
||||
settings->Get("EnableShaderDebugging", &bEnableShaderDebugging, false);
|
||||
|
||||
iniFile.Get("Settings", "DstAlphaPass", &bDstAlphaPass, false);
|
||||
IniFile::Section* enhancements = iniFile.GetOrCreateSection("Enhancements");
|
||||
enhancements->Get("ForceFiltering", &bForceFiltering, 0);
|
||||
enhancements->Get("MaxAnisotropy", &iMaxAnisotropy, 0); // NOTE - this is x in (1 << x)
|
||||
enhancements->Get("PostProcessingShader", &sPostProcessingShader, "");
|
||||
enhancements->Get("Enable3dVision", &b3DVision, false);
|
||||
|
||||
iniFile.Get("Settings", "TexFmtOverlayEnable", &bTexFmtOverlayEnable, 0);
|
||||
iniFile.Get("Settings", "TexFmtOverlayCenter", &bTexFmtOverlayCenter, 0);
|
||||
iniFile.Get("Settings", "WireFrame", &bWireFrame, 0);
|
||||
iniFile.Get("Settings", "DisableFog", &bDisableFog, 0);
|
||||
|
||||
iniFile.Get("Settings", "OMPDecoder", &bOMPDecoder, false);
|
||||
|
||||
iniFile.Get("Settings", "EnableShaderDebugging", &bEnableShaderDebugging, false);
|
||||
|
||||
iniFile.Get("Enhancements", "ForceFiltering", &bForceFiltering, 0);
|
||||
iniFile.Get("Enhancements", "MaxAnisotropy", &iMaxAnisotropy, 0); // NOTE - this is x in (1 << x)
|
||||
iniFile.Get("Enhancements", "PostProcessingShader", &sPostProcessingShader, "");
|
||||
iniFile.Get("Enhancements", "Enable3dVision", &b3DVision, false);
|
||||
|
||||
iniFile.Get("Hacks", "EFBAccessEnable", &bEFBAccessEnable, true);
|
||||
iniFile.Get("Hacks", "EFBCopyEnable", &bEFBCopyEnable, true);
|
||||
iniFile.Get("Hacks", "EFBToTextureEnable", &bCopyEFBToTexture, true);
|
||||
iniFile.Get("Hacks", "EFBScaledCopy", &bCopyEFBScaled, true);
|
||||
iniFile.Get("Hacks", "EFBCopyCacheEnable", &bEFBCopyCacheEnable, false);
|
||||
iniFile.Get("Hacks", "EFBEmulateFormatChanges", &bEFBEmulateFormatChanges, false);
|
||||
|
||||
iniFile.Get("Hardware", "Adapter", &iAdapter, 0);
|
||||
IniFile::Section* hacks = iniFile.GetOrCreateSection("Hacks");
|
||||
hacks->Get("EFBAccessEnable", &bEFBAccessEnable, true);
|
||||
hacks->Get("EFBCopyEnable", &bEFBCopyEnable, true);
|
||||
hacks->Get("EFBToTextureEnable", &bCopyEFBToTexture, true);
|
||||
hacks->Get("EFBScaledCopy", &bCopyEFBScaled, true);
|
||||
hacks->Get("EFBCopyCacheEnable", &bEFBCopyCacheEnable, false);
|
||||
hacks->Get("EFBEmulateFormatChanges", &bEFBEmulateFormatChanges, false);
|
||||
|
||||
// Load common settings
|
||||
iniFile.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX));
|
||||
IniFile::Section* interface = iniFile.GetOrCreateSection("Interface");
|
||||
bool bTmp;
|
||||
iniFile.Get("Interface", "UsePanicHandlers", &bTmp, true);
|
||||
interface->Get("UsePanicHandlers", &bTmp, true);
|
||||
SetEnableAlert(bTmp);
|
||||
|
||||
// Shader Debugging causes a huge slowdown and it's easy to forget about it
|
||||
|
@ -216,56 +216,58 @@ void VideoConfig::Save(const std::string& ini_file)
|
|||
{
|
||||
IniFile iniFile;
|
||||
iniFile.Load(ini_file);
|
||||
iniFile.Set("Hardware", "VSync", bVSync);
|
||||
iniFile.Set("Settings", "AspectRatio", iAspectRatio);
|
||||
iniFile.Set("Settings", "Crop", bCrop);
|
||||
iniFile.Set("Settings", "wideScreenHack", bWidescreenHack);
|
||||
iniFile.Set("Settings", "UseXFB", bUseXFB);
|
||||
iniFile.Set("Settings", "UseRealXFB", bUseRealXFB);
|
||||
iniFile.Set("Settings", "SafeTextureCacheColorSamples", iSafeTextureCache_ColorSamples);
|
||||
iniFile.Set("Settings", "ShowFPS", bShowFPS);
|
||||
iniFile.Set("Settings", "LogFPSToFile", bLogFPSToFile);
|
||||
iniFile.Set("Settings", "ShowInputDisplay", bShowInputDisplay);
|
||||
iniFile.Set("Settings", "OverlayStats", bOverlayStats);
|
||||
iniFile.Set("Settings", "OverlayProjStats", bOverlayProjStats);
|
||||
iniFile.Set("Settings", "DumpTextures", bDumpTextures);
|
||||
iniFile.Set("Settings", "HiresTextures", bHiresTextures);
|
||||
iniFile.Set("Settings", "DumpEFBTarget", bDumpEFBTarget);
|
||||
iniFile.Set("Settings", "DumpFrames", bDumpFrames);
|
||||
iniFile.Set("Settings", "FreeLook", bFreeLook);
|
||||
iniFile.Set("Settings", "UseFFV1", bUseFFV1);
|
||||
iniFile.Set("Settings", "AnaglyphStereo", bAnaglyphStereo);
|
||||
iniFile.Set("Settings", "AnaglyphStereoSeparation", iAnaglyphStereoSeparation);
|
||||
iniFile.Set("Settings", "AnaglyphFocalAngle", iAnaglyphFocalAngle);
|
||||
iniFile.Set("Settings", "EnablePixelLighting", bEnablePixelLighting);
|
||||
iniFile.Set("Settings", "FastDepthCalc", bFastDepthCalc);
|
||||
|
||||
iniFile.Set("Settings", "ShowEFBCopyRegions", bShowEFBCopyRegions);
|
||||
iniFile.Set("Settings", "MSAA", iMultisampleMode);
|
||||
iniFile.Set("Settings", "EFBScale", iEFBScale);
|
||||
iniFile.Set("Settings", "TexFmtOverlayEnable", bTexFmtOverlayEnable);
|
||||
iniFile.Set("Settings", "TexFmtOverlayCenter", bTexFmtOverlayCenter);
|
||||
iniFile.Set("Settings", "Wireframe", bWireFrame);
|
||||
iniFile.Set("Settings", "DstAlphaPass", bDstAlphaPass);
|
||||
iniFile.Set("Settings", "DisableFog", bDisableFog);
|
||||
IniFile::Section* hardware = iniFile.GetOrCreateSection("Hardware");
|
||||
hardware->Set("VSync", bVSync);
|
||||
hardware->Set("Adapter", iAdapter);
|
||||
|
||||
iniFile.Set("Settings", "OMPDecoder", bOMPDecoder);
|
||||
IniFile::Section* settings = iniFile.GetOrCreateSection("Settings");
|
||||
settings->Set("AspectRatio", iAspectRatio);
|
||||
settings->Set("Crop", bCrop);
|
||||
settings->Set("wideScreenHack", bWidescreenHack);
|
||||
settings->Set("UseXFB", bUseXFB);
|
||||
settings->Set("UseRealXFB", bUseRealXFB);
|
||||
settings->Set("SafeTextureCacheColorSamples", iSafeTextureCache_ColorSamples);
|
||||
settings->Set("ShowFPS", bShowFPS);
|
||||
settings->Set("LogFPSToFile", bLogFPSToFile);
|
||||
settings->Set("ShowInputDisplay", bShowInputDisplay);
|
||||
settings->Set("OverlayStats", bOverlayStats);
|
||||
settings->Set("OverlayProjStats", bOverlayProjStats);
|
||||
settings->Set("DumpTextures", bDumpTextures);
|
||||
settings->Set("HiresTextures", bHiresTextures);
|
||||
settings->Set("DumpEFBTarget", bDumpEFBTarget);
|
||||
settings->Set("DumpFrames", bDumpFrames);
|
||||
settings->Set("FreeLook", bFreeLook);
|
||||
settings->Set("UseFFV1", bUseFFV1);
|
||||
settings->Set("AnaglyphStereo", bAnaglyphStereo);
|
||||
settings->Set("AnaglyphStereoSeparation", iAnaglyphStereoSeparation);
|
||||
settings->Set("AnaglyphFocalAngle", iAnaglyphFocalAngle);
|
||||
settings->Set("EnablePixelLighting", bEnablePixelLighting);
|
||||
settings->Set("FastDepthCalc", bFastDepthCalc);
|
||||
settings->Set("ShowEFBCopyRegions", bShowEFBCopyRegions);
|
||||
settings->Set("MSAA", iMultisampleMode);
|
||||
settings->Set("EFBScale", iEFBScale);
|
||||
settings->Set("TexFmtOverlayEnable", bTexFmtOverlayEnable);
|
||||
settings->Set("TexFmtOverlayCenter", bTexFmtOverlayCenter);
|
||||
settings->Set("Wireframe", bWireFrame);
|
||||
settings->Set("DstAlphaPass", bDstAlphaPass);
|
||||
settings->Set("DisableFog", bDisableFog);
|
||||
settings->Set("OMPDecoder", bOMPDecoder);
|
||||
settings->Set("EnableShaderDebugging", bEnableShaderDebugging);
|
||||
|
||||
iniFile.Set("Settings", "EnableShaderDebugging", bEnableShaderDebugging);
|
||||
IniFile::Section* enhancements = iniFile.GetOrCreateSection("Enhancements");
|
||||
enhancements->Set("ForceFiltering", bForceFiltering);
|
||||
enhancements->Set("MaxAnisotropy", iMaxAnisotropy);
|
||||
enhancements->Set("PostProcessingShader", sPostProcessingShader);
|
||||
enhancements->Set("Enable3dVision", b3DVision);
|
||||
|
||||
iniFile.Set("Enhancements", "ForceFiltering", bForceFiltering);
|
||||
iniFile.Set("Enhancements", "MaxAnisotropy", iMaxAnisotropy);
|
||||
iniFile.Set("Enhancements", "PostProcessingShader", sPostProcessingShader);
|
||||
iniFile.Set("Enhancements", "Enable3dVision", b3DVision);
|
||||
|
||||
iniFile.Set("Hacks", "EFBAccessEnable", bEFBAccessEnable);
|
||||
iniFile.Set("Hacks", "EFBCopyEnable", bEFBCopyEnable);
|
||||
iniFile.Set("Hacks", "EFBToTextureEnable", bCopyEFBToTexture);
|
||||
iniFile.Set("Hacks", "EFBScaledCopy", bCopyEFBScaled);
|
||||
iniFile.Set("Hacks", "EFBCopyCacheEnable", bEFBCopyCacheEnable);
|
||||
iniFile.Set("Hacks", "EFBEmulateFormatChanges", bEFBEmulateFormatChanges);
|
||||
|
||||
iniFile.Set("Hardware", "Adapter", iAdapter);
|
||||
IniFile::Section* hacks = iniFile.GetOrCreateSection("Hacks");
|
||||
hacks->Set("EFBAccessEnable", bEFBAccessEnable);
|
||||
hacks->Set("EFBCopyEnable", bEFBCopyEnable);
|
||||
hacks->Set("EFBToTextureEnable", bCopyEFBToTexture);
|
||||
hacks->Set("EFBScaledCopy", bCopyEFBScaled);
|
||||
hacks->Set("EFBCopyCacheEnable", bEFBCopyCacheEnable);
|
||||
hacks->Set("EFBEmulateFormatChanges", bEFBEmulateFormatChanges);
|
||||
|
||||
iniFile.Save(ini_file);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue