Merge pull request #1515 from RachelBryk/gpudeterminism-isoprops

Add GPUDeterminismMode to isoproperties.
This commit is contained in:
comex 2014-11-19 20:03:52 -05:00
commit dd2c8c49b3
2 changed files with 71 additions and 32 deletions

View File

@ -415,6 +415,16 @@ void CISOProperties::CreateGUIControls(bool IsWad)
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"));
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
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(BlockMerging, 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"));
if (!DiscIO::IsVolumeWiiDisc(OpenISO) && !DiscIO::IsVolumeWadFile(OpenISO))
@ -1062,6 +1073,19 @@ void CISOProperties::LoadGameConfig()
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();
ActionReplayList_Load();
m_geckocode_panel->LoadCodes(GameIniDefault, GameIniLocal, OpenISO->GetUniqueID());
@ -1127,6 +1151,18 @@ bool CISOProperties::SaveGameConfig()
std::string emu_issues = EmuIssues->GetValue().ToStdString();
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();
ActionReplayList_Save();
Gecko::SaveCodes(GameIniLocal, m_geckocode_panel->GetCodes());

View File

@ -69,46 +69,49 @@ private:
// Core
wxCheckBox *CPUThread, *SkipIdle, *MMU, *BAT, *DCBZOFF, *FPRF;
wxCheckBox *VBeam, *SyncGPU, *FastDiscSpeed, *BlockMerging, *DSPHLE;
wxArrayString arrayStringFor_GPUDeterminism;
wxChoice* GPUDeterminism;
// Wii
wxCheckBox *EnableWideScreen;
wxCheckBox* EnableWideScreen;
wxArrayString arrayStringFor_EmuState;
wxChoice *EmuState;
wxTextCtrl *EmuIssues;
wxChoice* EmuState;
wxTextCtrl* EmuIssues;
wxArrayString arrayStringFor_Patches;
wxCheckListBox *Patches;
wxButton *EditPatch;
wxButton *RemovePatch;
wxCheckListBox* Patches;
wxButton* EditPatch;
wxButton* RemovePatch;
wxArrayString arrayStringFor_Cheats;
wxCheckListBox *Cheats;
wxButton *EditCheat;
wxButton *RemoveCheat;
wxCheckListBox* Cheats;
wxButton* EditCheat;
wxButton* RemoveCheat;
wxArrayString arrayStringFor_Speedhacks;
wxCheckListBox *Speedhacks;
wxButton *EditSpeedhack;
wxButton *AddSpeedhack;
wxButton *RemoveSpeedhack;
wxCheckListBox* Speedhacks;
wxButton* EditSpeedhack;
wxButton* AddSpeedhack;
wxButton* RemoveSpeedhack;
wxTextCtrl *m_Name;
wxTextCtrl *m_GameID;
wxTextCtrl *m_Country;
wxTextCtrl *m_MakerID;
wxTextCtrl *m_Revision;
wxTextCtrl *m_Date;
wxTextCtrl *m_FST;
wxTextCtrl *m_MD5Sum;
wxButton *m_MD5SumCompute;
wxTextCtrl* m_Name;
wxTextCtrl* m_GameID;
wxTextCtrl* m_Country;
wxTextCtrl* m_MakerID;
wxTextCtrl* m_Revision;
wxTextCtrl* m_Date;
wxTextCtrl* m_FST;
wxTextCtrl* m_MD5Sum;
wxButton* m_MD5SumCompute;
wxArrayString arrayStringFor_Lang;
wxChoice *m_Lang;
wxTextCtrl *m_ShortName;
wxTextCtrl *m_Maker;
wxTextCtrl *m_Comment;
wxStaticBitmap *m_Banner;
wxChoice* m_Lang;
wxTextCtrl* m_ShortName;
wxTextCtrl* m_Maker;
wxTextCtrl* m_Comment;
wxStaticBitmap* m_Banner;
wxTreeCtrl *m_Treectrl;
wxTreeCtrl* m_Treectrl;
wxTreeItemId RootId;
Gecko::CodeConfigPanel *m_geckocode_panel;
Gecko::CodeConfigPanel* m_geckocode_panel;
enum
{
@ -193,10 +196,10 @@ private:
void SetRefresh(wxCommandEvent& event);
void OnChangeBannerLang(wxCommandEvent& event);
GameListItem *OpenGameListItem;
GameListItem* OpenGameListItem;
std::vector<const DiscIO::SFileInfo *> GCFiles;
typedef std::vector<const DiscIO::SFileInfo *>::iterator fileIter;
std::vector<const DiscIO::SFileInfo*> GCFiles;
typedef std::vector<const DiscIO::SFileInfo*>::iterator fileIter;
size_t CreateDirectoryTree(wxTreeItemId& parent,
std::vector<const DiscIO::SFileInfo*> fileInfos,