Add notice for the custom path, and add an option to Configuration - System panel. Not Tested.

This commit is contained in:
luxsie 2015-04-10 23:10:02 +08:00
parent 5f6afca18a
commit a3d6919431
3 changed files with 32 additions and 4 deletions

View File

@ -431,10 +431,19 @@ void VFS::Init(const std::string& path)
std::string mpath = entry.path;
// TODO: This shouldn't use current dir
// If no value assigned to SysEmulationDirPath in INI, use the path that with executable.
if (Ini.SysEmulationDirPath.GetValue().empty())
Ini.SysEmulationDirPath.SetValue(Emu.GetEmulatorPath());
LOG_NOTICE(GENERAL, "$(EmulatorDir) binded to %s.", Ini.SysEmulationDirPath.GetValue());
fmt::Replace(mpath, "$(EmulatorDir)", Ini.SysEmulationDirPath.GetValue());
if (Ini.SysEmulationDirPathEnable.GetValue())
{
if (Ini.SysEmulationDirPath.GetValue().empty())
Ini.SysEmulationDirPath.SetValue(Emu.GetEmulatorPath());
LOG_NOTICE(GENERAL, "EmualtionDir: Custom EmulationDir is On, Binded $(EmulatorDir) to %s.",
Ini.SysEmulationDirPath.GetValue());
fmt::Replace(mpath, "$(EmulatorDir)", Ini.SysEmulationDirPath.GetValue());
}
else
{
LOG_NOTICE(GENERAL, "EmualtionDir: Custom EmulationDir is Off, Binded $(EmulatorDir) to %s.", Emu.GetEmulatorPath());
fmt::Replace(mpath, "$(EmulatorDir)", Emu.GetEmulatorPath());
}
fmt::Replace(mpath, "$(GameDir)", cwd);
Mount(entry.mount, mpath, dev);
}

View File

@ -436,6 +436,10 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
wxCheckBox* chbox_dbg_ap_systemcall = new wxCheckBox(p_hle, wxID_ANY, "Auto Pause at System Call");
wxCheckBox* chbox_dbg_ap_functioncall = new wxCheckBox(p_hle, wxID_ANY, "Auto Pause at Function Call");
//Custom EmulationDir
wxCheckBox* chbox_emulationdir_enable = new wxCheckBox(p_system, wxID_ANY, "Use Custom EmulationDir Path?");
wxTextCtrl* txt_emulationdir_path = new wxTextCtrl(p_system, wxID_ANY, "EmulationDir Path, Need Restart");
cbox_cpu_decoder->Append("PPU Interpreter");
cbox_cpu_decoder->Append("PPU Interpreter 2");
cbox_cpu_decoder->Append("PPU JIT (LLVM)");
@ -533,6 +537,10 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
chbox_dbg_ap_systemcall ->SetValue(Ini.DBGAutoPauseSystemCall.GetValue());
chbox_dbg_ap_functioncall->SetValue(Ini.DBGAutoPauseFunctionCall.GetValue());
//Custom EmulationDir
chbox_emulationdir_enable->SetValue(Ini.SysEmulationDirPathEnable.GetValue());
txt_emulationdir_path ->SetValue(Ini.SysEmulationDirPath.GetValue());
cbox_cpu_decoder ->SetSelection(Ini.CPUDecoderMode.GetValue() ? Ini.CPUDecoderMode.GetValue() : 0);
cbox_spu_decoder ->SetSelection(Ini.SPUDecoderMode.GetValue() ? Ini.SPUDecoderMode.GetValue() : 0);
cbox_gs_render ->SetSelection(Ini.GSRenderMode.GetValue());
@ -614,6 +622,10 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
// System
s_subpanel_system->Add(s_round_sys_lang, wxSizerFlags().Border(wxALL, 5).Expand());
//Custom EmulationDir
s_subpanel_system->Add(chbox_emulationdir_enable, wxSizerFlags().Border(wxALL, 5).Expand());
s_subpanel_system->Add(txt_emulationdir_path, wxSizerFlags().Border(wxALL, 5).Expand());
// Buttons
wxBoxSizer* s_b_panel(new wxBoxSizer(wxHORIZONTAL));
@ -667,6 +679,10 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
Ini.DBGAutoPauseFunctionCall.SetValue(chbox_dbg_ap_functioncall->GetValue());
Ini.DBGAutoPauseSystemCall.SetValue(chbox_dbg_ap_systemcall->GetValue());
//Custom EmulationDir
Ini.SysEmulationDirPathEnable.SetValue(chbox_emulationdir_enable->GetValue());
Ini.SysEmulationDirPath.SetValue(txt_emulationdir_path->GetValue().ToStdString());
Ini.Save();
}

View File

@ -165,6 +165,7 @@ public:
//Customed EmulationDir
IniEntry<std::string> SysEmulationDirPath;
IniEntry<bool> SysEmulationDirPathEnable;
// Language
IniEntry<u8> SysLanguage;
@ -245,6 +246,7 @@ public:
// Customed EmulationDir
SysEmulationDirPath.Init("System_EmulationDir", path);
SysEmulationDirPathEnable.Init("System_EmulationDirEnable", path);
// Language
SysLanguage.Init("Sytem_SysLanguage", path);
@ -324,6 +326,7 @@ public:
// Customed EmulationDir
SysEmulationDirPath.Load("");
SysEmulationDirPathEnable.Load(false);
}
void Save()