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,46 +69,49 @@ 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;
|
||||||
|
|
||||||
wxArrayString arrayStringFor_EmuState;
|
wxArrayString arrayStringFor_EmuState;
|
||||||
wxChoice *EmuState;
|
wxChoice* EmuState;
|
||||||
wxTextCtrl *EmuIssues;
|
wxTextCtrl* EmuIssues;
|
||||||
wxArrayString arrayStringFor_Patches;
|
wxArrayString arrayStringFor_Patches;
|
||||||
wxCheckListBox *Patches;
|
wxCheckListBox* Patches;
|
||||||
wxButton *EditPatch;
|
wxButton* EditPatch;
|
||||||
wxButton *RemovePatch;
|
wxButton* RemovePatch;
|
||||||
wxArrayString arrayStringFor_Cheats;
|
wxArrayString arrayStringFor_Cheats;
|
||||||
wxCheckListBox *Cheats;
|
wxCheckListBox* Cheats;
|
||||||
wxButton *EditCheat;
|
wxButton* EditCheat;
|
||||||
wxButton *RemoveCheat;
|
wxButton* RemoveCheat;
|
||||||
wxArrayString arrayStringFor_Speedhacks;
|
wxArrayString arrayStringFor_Speedhacks;
|
||||||
wxCheckListBox *Speedhacks;
|
wxCheckListBox* Speedhacks;
|
||||||
wxButton *EditSpeedhack;
|
wxButton* EditSpeedhack;
|
||||||
wxButton *AddSpeedhack;
|
wxButton* AddSpeedhack;
|
||||||
wxButton *RemoveSpeedhack;
|
wxButton* RemoveSpeedhack;
|
||||||
|
|
||||||
wxTextCtrl *m_Name;
|
wxTextCtrl* m_Name;
|
||||||
wxTextCtrl *m_GameID;
|
wxTextCtrl* m_GameID;
|
||||||
wxTextCtrl *m_Country;
|
wxTextCtrl* m_Country;
|
||||||
wxTextCtrl *m_MakerID;
|
wxTextCtrl* m_MakerID;
|
||||||
wxTextCtrl *m_Revision;
|
wxTextCtrl* m_Revision;
|
||||||
wxTextCtrl *m_Date;
|
wxTextCtrl* m_Date;
|
||||||
wxTextCtrl *m_FST;
|
wxTextCtrl* m_FST;
|
||||||
wxTextCtrl *m_MD5Sum;
|
wxTextCtrl* m_MD5Sum;
|
||||||
wxButton *m_MD5SumCompute;
|
wxButton* m_MD5SumCompute;
|
||||||
wxArrayString arrayStringFor_Lang;
|
wxArrayString arrayStringFor_Lang;
|
||||||
wxChoice *m_Lang;
|
wxChoice* m_Lang;
|
||||||
wxTextCtrl *m_ShortName;
|
wxTextCtrl* m_ShortName;
|
||||||
wxTextCtrl *m_Maker;
|
wxTextCtrl* m_Maker;
|
||||||
wxTextCtrl *m_Comment;
|
wxTextCtrl* m_Comment;
|
||||||
wxStaticBitmap *m_Banner;
|
wxStaticBitmap* m_Banner;
|
||||||
|
|
||||||
wxTreeCtrl *m_Treectrl;
|
wxTreeCtrl* m_Treectrl;
|
||||||
wxTreeItemId RootId;
|
wxTreeItemId RootId;
|
||||||
|
|
||||||
Gecko::CodeConfigPanel *m_geckocode_panel;
|
Gecko::CodeConfigPanel* m_geckocode_panel;
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@ -193,10 +196,10 @@ private:
|
||||||
void SetRefresh(wxCommandEvent& event);
|
void SetRefresh(wxCommandEvent& event);
|
||||||
void OnChangeBannerLang(wxCommandEvent& event);
|
void OnChangeBannerLang(wxCommandEvent& event);
|
||||||
|
|
||||||
GameListItem *OpenGameListItem;
|
GameListItem* OpenGameListItem;
|
||||||
|
|
||||||
std::vector<const DiscIO::SFileInfo *> GCFiles;
|
std::vector<const DiscIO::SFileInfo*> GCFiles;
|
||||||
typedef std::vector<const DiscIO::SFileInfo *>::iterator fileIter;
|
typedef std::vector<const DiscIO::SFileInfo*>::iterator fileIter;
|
||||||
|
|
||||||
size_t CreateDirectoryTree(wxTreeItemId& parent,
|
size_t CreateDirectoryTree(wxTreeItemId& parent,
|
||||||
std::vector<const DiscIO::SFileInfo*> fileInfos,
|
std::vector<const DiscIO::SFileInfo*> fileInfos,
|
||||||
|
|
Loading…
Reference in New Issue