Merge pull request #1515 from RachelBryk/gpudeterminism-isoprops
Add GPUDeterminismMode to isoproperties.
This commit is contained in:
commit
dd2c8c49b3
|
@ -415,6 +415,16 @@ void CISOProperties::CreateGUIControls(bool IsWad)
|
||||||
BlockMerging = new wxCheckBox(m_GameConfig, ID_MERGEBLOCKS, _("Enable Block Merging"), wxDefaultPosition, wxDefaultSize, GetElementStyle("Core", "BlockMerging"));
|
BlockMerging = new wxCheckBox(m_GameConfig, ID_MERGEBLOCKS, _("Enable Block Merging"), wxDefaultPosition, wxDefaultSize, GetElementStyle("Core", "BlockMerging"));
|
||||||
DSPHLE = new wxCheckBox(m_GameConfig, ID_AUDIO_DSP_HLE, _("DSP HLE emulation (fast)"), wxDefaultPosition, wxDefaultSize, GetElementStyle("Core", "DSPHLE"));
|
DSPHLE = new wxCheckBox(m_GameConfig, ID_AUDIO_DSP_HLE, _("DSP HLE emulation (fast)"), wxDefaultPosition, wxDefaultSize, GetElementStyle("Core", "DSPHLE"));
|
||||||
|
|
||||||
|
wxBoxSizer* const sGPUDeterminism = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
wxStaticText* const GPUDeterminismText = new wxStaticText(m_GameConfig, wxID_ANY, _("Deterministic dual core: "));
|
||||||
|
arrayStringFor_GPUDeterminism.Add(_("Not Set"));
|
||||||
|
arrayStringFor_GPUDeterminism.Add(_("auto"));
|
||||||
|
arrayStringFor_GPUDeterminism.Add(_("none"));
|
||||||
|
arrayStringFor_GPUDeterminism.Add(_("fake-completion"));
|
||||||
|
GPUDeterminism = new wxChoice(m_GameConfig, ID_EMUSTATE, wxDefaultPosition, wxDefaultSize, arrayStringFor_GPUDeterminism);
|
||||||
|
sGPUDeterminism->Add(GPUDeterminismText);
|
||||||
|
sGPUDeterminism->Add(GPUDeterminism);
|
||||||
|
|
||||||
// Wii Console
|
// Wii Console
|
||||||
EnableWideScreen = new wxCheckBox(m_GameConfig, ID_ENABLEWIDESCREEN, _("Enable WideScreen"), wxDefaultPosition, wxDefaultSize, GetElementStyle("Wii", "Widescreen"));
|
EnableWideScreen = new wxCheckBox(m_GameConfig, ID_ENABLEWIDESCREEN, _("Enable WideScreen"), wxDefaultPosition, wxDefaultSize, GetElementStyle("Wii", "Widescreen"));
|
||||||
|
|
||||||
|
@ -443,6 +453,7 @@ void CISOProperties::CreateGUIControls(bool IsWad)
|
||||||
sbCoreOverrides->Add(FastDiscSpeed, 0, wxLEFT, 5);
|
sbCoreOverrides->Add(FastDiscSpeed, 0, wxLEFT, 5);
|
||||||
sbCoreOverrides->Add(BlockMerging, 0, wxLEFT, 5);
|
sbCoreOverrides->Add(BlockMerging, 0, wxLEFT, 5);
|
||||||
sbCoreOverrides->Add(DSPHLE, 0, wxLEFT, 5);
|
sbCoreOverrides->Add(DSPHLE, 0, wxLEFT, 5);
|
||||||
|
sbCoreOverrides->Add(sGPUDeterminism, 0, wxEXPAND|wxALL, 5);
|
||||||
|
|
||||||
wxStaticBoxSizer * const sbWiiOverrides = new wxStaticBoxSizer(wxVERTICAL, m_GameConfig, _("Wii Console"));
|
wxStaticBoxSizer * const sbWiiOverrides = new wxStaticBoxSizer(wxVERTICAL, m_GameConfig, _("Wii Console"));
|
||||||
if (!DiscIO::IsVolumeWiiDisc(OpenISO) && !DiscIO::IsVolumeWadFile(OpenISO))
|
if (!DiscIO::IsVolumeWiiDisc(OpenISO) && !DiscIO::IsVolumeWadFile(OpenISO))
|
||||||
|
@ -1062,6 +1073,19 @@ void CISOProperties::LoadGameConfig()
|
||||||
|
|
||||||
EmuIssues->Enable(EmuState->GetSelection() != 0);
|
EmuIssues->Enable(EmuState->GetSelection() != 0);
|
||||||
|
|
||||||
|
sTemp = "";
|
||||||
|
if (!GameIniLocal.GetIfExists("Core", "GPUDeterminismMode", &sTemp))
|
||||||
|
GameIniDefault.GetIfExists("Core", "GPUDeterminismMode", &sTemp);
|
||||||
|
|
||||||
|
if (sTemp == "")
|
||||||
|
GPUDeterminism->SetSelection(0);
|
||||||
|
else if (sTemp == "auto")
|
||||||
|
GPUDeterminism->SetSelection(1);
|
||||||
|
else if (sTemp == "none")
|
||||||
|
GPUDeterminism->SetSelection(2);
|
||||||
|
else if (sTemp == "fake-completion")
|
||||||
|
GPUDeterminism->SetSelection(3);
|
||||||
|
|
||||||
PatchList_Load();
|
PatchList_Load();
|
||||||
ActionReplayList_Load();
|
ActionReplayList_Load();
|
||||||
m_geckocode_panel->LoadCodes(GameIniDefault, GameIniLocal, OpenISO->GetUniqueID());
|
m_geckocode_panel->LoadCodes(GameIniDefault, GameIniLocal, OpenISO->GetUniqueID());
|
||||||
|
@ -1127,6 +1151,18 @@ bool CISOProperties::SaveGameConfig()
|
||||||
std::string emu_issues = EmuIssues->GetValue().ToStdString();
|
std::string emu_issues = EmuIssues->GetValue().ToStdString();
|
||||||
SAVE_IF_NOT_DEFAULT("EmuState", "EmulationIssues", emu_issues, "");
|
SAVE_IF_NOT_DEFAULT("EmuState", "EmulationIssues", emu_issues, "");
|
||||||
|
|
||||||
|
std::string tmp;
|
||||||
|
if (GPUDeterminism->GetSelection() == 0)
|
||||||
|
tmp = "Not Set";
|
||||||
|
else if (GPUDeterminism->GetSelection() == 1)
|
||||||
|
tmp = "auto";
|
||||||
|
else if (GPUDeterminism->GetSelection() == 2)
|
||||||
|
tmp = "none";
|
||||||
|
else if (GPUDeterminism->GetSelection() == 3)
|
||||||
|
tmp = "fake-completion";
|
||||||
|
|
||||||
|
SAVE_IF_NOT_DEFAULT("Core", "GPUDeterminismMode", tmp, "Not Set");
|
||||||
|
|
||||||
PatchList_Save();
|
PatchList_Save();
|
||||||
ActionReplayList_Save();
|
ActionReplayList_Save();
|
||||||
Gecko::SaveCodes(GameIniLocal, m_geckocode_panel->GetCodes());
|
Gecko::SaveCodes(GameIniLocal, m_geckocode_panel->GetCodes());
|
||||||
|
|
|
@ -69,6 +69,9 @@ private:
|
||||||
// Core
|
// Core
|
||||||
wxCheckBox *CPUThread, *SkipIdle, *MMU, *BAT, *DCBZOFF, *FPRF;
|
wxCheckBox *CPUThread, *SkipIdle, *MMU, *BAT, *DCBZOFF, *FPRF;
|
||||||
wxCheckBox *VBeam, *SyncGPU, *FastDiscSpeed, *BlockMerging, *DSPHLE;
|
wxCheckBox *VBeam, *SyncGPU, *FastDiscSpeed, *BlockMerging, *DSPHLE;
|
||||||
|
|
||||||
|
wxArrayString arrayStringFor_GPUDeterminism;
|
||||||
|
wxChoice* GPUDeterminism;
|
||||||
// Wii
|
// Wii
|
||||||
wxCheckBox* EnableWideScreen;
|
wxCheckBox* EnableWideScreen;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue