2013-04-18 03:43:35 +00:00
|
|
|
// Copyright 2013 Dolphin Emulator Project
|
|
|
|
// Licensed under GPLv2
|
|
|
|
// Refer to the license.txt file included.
|
2008-12-08 04:46:09 +00:00
|
|
|
|
2014-02-10 18:54:46 +00:00
|
|
|
#pragma once
|
2008-12-08 04:46:09 +00:00
|
|
|
|
2014-02-22 22:36:30 +00:00
|
|
|
#include <cstddef>
|
2014-02-20 03:11:52 +00:00
|
|
|
#include <set>
|
2014-02-17 10:18:15 +00:00
|
|
|
#include <string>
|
2014-02-22 22:36:30 +00:00
|
|
|
#include <vector>
|
|
|
|
#include <wx/dialog.h>
|
|
|
|
#include <wx/treebase.h>
|
2008-12-08 04:46:09 +00:00
|
|
|
|
2014-02-17 10:18:15 +00:00
|
|
|
#include "Common/IniFile.h"
|
2014-07-08 13:58:25 +00:00
|
|
|
#include "Core/ActionReplay.h"
|
2015-02-24 23:32:17 +00:00
|
|
|
#include "DiscIO/Filesystem.h"
|
|
|
|
#include "DiscIO/Volume.h"
|
|
|
|
#include "DiscIO/VolumeCreator.h"
|
|
|
|
#include "DolphinWX/ARCodeAddEdit.h"
|
|
|
|
#include "DolphinWX/PatchAddEdit.h"
|
2014-02-22 22:36:30 +00:00
|
|
|
|
|
|
|
class GameListItem;
|
|
|
|
class wxButton;
|
|
|
|
class wxCheckBox;
|
|
|
|
class wxCheckListBox;
|
|
|
|
class wxChoice;
|
2015-01-02 17:49:10 +00:00
|
|
|
class wxSlider;
|
|
|
|
class wxSpinCtrl;
|
2014-02-22 22:36:30 +00:00
|
|
|
class wxStaticBitmap;
|
|
|
|
class wxTextCtrl;
|
|
|
|
class wxTreeCtrl;
|
2015-04-28 21:31:13 +00:00
|
|
|
|
2014-02-22 22:36:30 +00:00
|
|
|
namespace DiscIO { struct SFileInfo; }
|
|
|
|
namespace Gecko { class CodeConfigPanel; }
|
2008-12-08 04:46:09 +00:00
|
|
|
|
2015-04-15 07:29:24 +00:00
|
|
|
class WiiPartition final : public wxTreeItemData
|
2015-02-24 23:32:17 +00:00
|
|
|
{
|
2015-04-15 07:29:24 +00:00
|
|
|
public:
|
2015-02-24 23:32:17 +00:00
|
|
|
DiscIO::IVolume *Partition;
|
|
|
|
DiscIO::IFileSystem *FileSystem;
|
|
|
|
std::vector<const DiscIO::SFileInfo *> Files;
|
|
|
|
};
|
|
|
|
|
2011-02-03 17:51:12 +00:00
|
|
|
struct PHackData
|
|
|
|
{
|
|
|
|
bool PHackSZNear;
|
|
|
|
bool PHackSZFar;
|
|
|
|
std::string PHZNear;
|
|
|
|
std::string PHZFar;
|
|
|
|
};
|
|
|
|
|
2008-12-08 04:46:09 +00:00
|
|
|
class CISOProperties : public wxDialog
|
|
|
|
{
|
2011-03-16 22:22:21 +00:00
|
|
|
public:
|
|
|
|
CISOProperties(const std::string fileName,
|
2008-12-17 04:14:24 +00:00
|
|
|
wxWindow* parent,
|
2014-12-02 03:56:18 +00:00
|
|
|
wxWindowID id = wxID_ANY,
|
2011-01-05 04:35:46 +00:00
|
|
|
const wxString& title = _("Properties"),
|
2008-12-17 04:14:24 +00:00
|
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
|
|
const wxSize& size = wxDefaultSize,
|
2015-02-15 19:43:31 +00:00
|
|
|
long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
|
2011-03-16 22:22:21 +00:00
|
|
|
virtual ~CISOProperties();
|
|
|
|
|
|
|
|
bool bRefreshList;
|
|
|
|
|
|
|
|
void ActionReplayList_Load();
|
|
|
|
bool SaveGameConfig();
|
|
|
|
|
|
|
|
private:
|
|
|
|
DECLARE_EVENT_TABLE();
|
|
|
|
|
2015-02-24 23:32:17 +00:00
|
|
|
DiscIO::IVolume *OpenISO;
|
|
|
|
DiscIO::IFileSystem *pFileSystem;
|
|
|
|
|
|
|
|
std::vector<PatchEngine::Patch> onFrame;
|
|
|
|
std::vector<ActionReplay::ARCode> arCodes;
|
|
|
|
PHackData m_PHack_Data;
|
|
|
|
|
2011-03-16 22:22:21 +00:00
|
|
|
// Core
|
2015-02-12 03:16:23 +00:00
|
|
|
wxCheckBox *CPUThread, *SkipIdle, *MMU, *DCBZOFF, *FPRF;
|
2015-02-12 03:50:48 +00:00
|
|
|
wxCheckBox *SyncGPU, *FastDiscSpeed, *DSPHLE;
|
2014-11-08 02:29:41 +00:00
|
|
|
|
|
|
|
wxArrayString arrayStringFor_GPUDeterminism;
|
|
|
|
wxChoice* GPUDeterminism;
|
2011-03-16 22:22:21 +00:00
|
|
|
// Wii
|
2014-11-08 02:29:41 +00:00
|
|
|
wxCheckBox* EnableWideScreen;
|
2011-03-16 22:22:21 +00:00
|
|
|
|
2015-01-02 17:49:10 +00:00
|
|
|
// Stereoscopy
|
|
|
|
wxSlider* DepthPercentage;
|
|
|
|
wxSpinCtrl* ConvergenceMinimum;
|
|
|
|
wxCheckBox* MonoDepth;
|
|
|
|
|
2011-03-16 22:22:21 +00:00
|
|
|
wxArrayString arrayStringFor_EmuState;
|
2014-11-08 02:29:41 +00:00
|
|
|
wxChoice* EmuState;
|
|
|
|
wxTextCtrl* EmuIssues;
|
2015-04-10 23:49:09 +00:00
|
|
|
|
2014-11-08 02:29:41 +00:00
|
|
|
wxCheckListBox* Patches;
|
|
|
|
wxButton* EditPatch;
|
|
|
|
wxButton* RemovePatch;
|
2015-04-10 23:49:09 +00:00
|
|
|
|
2014-11-08 02:29:41 +00:00
|
|
|
wxCheckListBox* Cheats;
|
|
|
|
wxButton* EditCheat;
|
|
|
|
wxButton* RemoveCheat;
|
|
|
|
|
|
|
|
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;
|
2011-03-16 22:22:21 +00:00
|
|
|
wxArrayString arrayStringFor_Lang;
|
2014-11-08 02:29:41 +00:00
|
|
|
wxChoice* m_Lang;
|
|
|
|
wxTextCtrl* m_ShortName;
|
|
|
|
wxTextCtrl* m_Maker;
|
|
|
|
wxTextCtrl* m_Comment;
|
|
|
|
wxStaticBitmap* m_Banner;
|
2011-03-16 22:22:21 +00:00
|
|
|
|
2014-11-08 02:29:41 +00:00
|
|
|
wxTreeCtrl* m_Treectrl;
|
2011-03-16 22:22:21 +00:00
|
|
|
wxTreeItemId RootId;
|
|
|
|
|
2014-11-08 02:29:41 +00:00
|
|
|
Gecko::CodeConfigPanel* m_geckocode_panel;
|
2011-03-16 22:22:21 +00:00
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
ID_TREECTRL = 1000,
|
|
|
|
|
|
|
|
ID_NOTEBOOK,
|
|
|
|
ID_GAMECONFIG,
|
|
|
|
ID_PATCH_PAGE,
|
|
|
|
ID_ARCODE_PAGE,
|
|
|
|
ID_SPEEDHACK_PAGE,
|
|
|
|
ID_INFORMATION,
|
|
|
|
ID_FILESYSTEM,
|
|
|
|
|
|
|
|
ID_USEDUALCORE,
|
|
|
|
ID_IDLESKIP,
|
|
|
|
ID_MMU,
|
2013-01-20 02:09:38 +00:00
|
|
|
ID_DCBZOFF,
|
2015-02-12 03:16:23 +00:00
|
|
|
ID_FPRF,
|
2013-02-16 01:51:09 +00:00
|
|
|
ID_SYNCGPU,
|
2011-03-16 22:22:21 +00:00
|
|
|
ID_DISCSPEED,
|
|
|
|
ID_AUDIO_DSP_HLE,
|
2011-10-28 20:12:12 +00:00
|
|
|
ID_USE_BBOX,
|
2011-03-16 22:22:21 +00:00
|
|
|
ID_ENABLEPROGRESSIVESCAN,
|
|
|
|
ID_ENABLEWIDESCREEN,
|
|
|
|
ID_EDITCONFIG,
|
2013-09-07 21:02:49 +00:00
|
|
|
ID_SHOWDEFAULTCONFIG,
|
2011-03-16 22:22:21 +00:00
|
|
|
ID_EMUSTATE,
|
|
|
|
ID_EMU_ISSUES,
|
|
|
|
ID_PATCHES_LIST,
|
|
|
|
ID_EDITPATCH,
|
|
|
|
ID_ADDPATCH,
|
|
|
|
ID_REMOVEPATCH,
|
|
|
|
ID_CHEATS_LIST,
|
|
|
|
ID_EDITCHEAT,
|
|
|
|
ID_ADDCHEAT,
|
|
|
|
ID_REMOVECHEAT,
|
2014-12-14 03:38:35 +00:00
|
|
|
ID_GPUDETERMINISM,
|
2015-01-02 17:49:10 +00:00
|
|
|
ID_DEPTHPERCENTAGE,
|
|
|
|
ID_CONVERGENCEMINIMUM,
|
|
|
|
ID_MONODEPTH,
|
2011-03-16 22:22:21 +00:00
|
|
|
|
|
|
|
ID_NAME,
|
|
|
|
ID_GAMEID,
|
|
|
|
ID_COUNTRY,
|
|
|
|
ID_MAKERID,
|
2013-04-17 03:29:01 +00:00
|
|
|
ID_REVISION,
|
2011-03-16 22:22:21 +00:00
|
|
|
ID_DATE,
|
|
|
|
ID_FST,
|
2014-04-12 10:50:12 +00:00
|
|
|
ID_MD5SUM,
|
|
|
|
ID_MD5SUMCOMPUTE,
|
2011-03-16 22:22:21 +00:00
|
|
|
ID_VERSION,
|
|
|
|
ID_LANG,
|
|
|
|
ID_SHORTNAME,
|
|
|
|
ID_LONGNAME,
|
|
|
|
ID_MAKER,
|
|
|
|
ID_COMMENT,
|
|
|
|
ID_BANNER,
|
|
|
|
IDM_EXTRACTDIR,
|
|
|
|
IDM_EXTRACTALL,
|
|
|
|
IDM_EXTRACTFILE,
|
|
|
|
IDM_EXTRACTAPPLOADER,
|
|
|
|
IDM_EXTRACTDOL,
|
2012-05-04 10:49:10 +00:00
|
|
|
IDM_CHECKINTEGRITY,
|
2011-03-16 22:22:21 +00:00
|
|
|
IDM_BNRSAVEAS
|
|
|
|
};
|
|
|
|
|
2013-09-07 21:02:49 +00:00
|
|
|
void LaunchExternalEditor(const std::string& filename);
|
|
|
|
|
2015-04-09 15:44:53 +00:00
|
|
|
void CreateGUIControls();
|
2011-03-16 22:22:21 +00:00
|
|
|
void OnClose(wxCloseEvent& event);
|
|
|
|
void OnCloseClick(wxCommandEvent& event);
|
|
|
|
void OnEditConfig(wxCommandEvent& event);
|
2014-04-12 10:50:12 +00:00
|
|
|
void OnComputeMD5Sum(wxCommandEvent& event);
|
2013-09-07 21:02:49 +00:00
|
|
|
void OnShowDefaultConfig(wxCommandEvent& event);
|
2011-03-16 22:22:21 +00:00
|
|
|
void ListSelectionChanged(wxCommandEvent& event);
|
|
|
|
void PatchButtonClicked(wxCommandEvent& event);
|
|
|
|
void ActionReplayButtonClicked(wxCommandEvent& event);
|
|
|
|
void RightClickOnBanner(wxMouseEvent& event);
|
|
|
|
void OnBannerImageSave(wxCommandEvent& event);
|
|
|
|
void OnRightClickOnTree(wxTreeEvent& event);
|
|
|
|
void OnExtractFile(wxCommandEvent& event);
|
|
|
|
void OnExtractDir(wxCommandEvent& event);
|
|
|
|
void OnExtractDataFromHeader(wxCommandEvent& event);
|
2012-05-04 10:49:10 +00:00
|
|
|
void CheckPartitionIntegrity(wxCommandEvent& event);
|
2011-03-16 22:22:21 +00:00
|
|
|
void SetRefresh(wxCommandEvent& event);
|
|
|
|
void OnChangeBannerLang(wxCommandEvent& event);
|
|
|
|
|
2014-11-08 02:29:41 +00:00
|
|
|
GameListItem* OpenGameListItem;
|
2011-03-16 22:22:21 +00:00
|
|
|
|
2014-11-08 02:29:41 +00:00
|
|
|
std::vector<const DiscIO::SFileInfo*> GCFiles;
|
|
|
|
typedef std::vector<const DiscIO::SFileInfo*>::iterator fileIter;
|
2011-03-16 22:22:21 +00:00
|
|
|
|
2015-04-25 13:33:20 +00:00
|
|
|
size_t CreateDirectoryTree(wxTreeItemId& parent,
|
|
|
|
std::vector<const DiscIO::SFileInfo*> fileInfos);
|
2011-03-16 22:22:21 +00:00
|
|
|
size_t CreateDirectoryTree(wxTreeItemId& parent,
|
|
|
|
std::vector<const DiscIO::SFileInfo*> fileInfos,
|
2013-10-29 05:23:17 +00:00
|
|
|
const size_t _FirstIndex,
|
2011-03-16 22:22:21 +00:00
|
|
|
const size_t _LastIndex);
|
2014-06-29 19:22:06 +00:00
|
|
|
void ExportDir(const std::string& _rFullPath, const std::string& _rExportFilename,
|
2015-04-15 07:29:24 +00:00
|
|
|
const WiiPartition* partition = nullptr);
|
2011-03-16 22:22:21 +00:00
|
|
|
|
2013-09-07 21:02:49 +00:00
|
|
|
IniFile GameIniDefault;
|
|
|
|
IniFile GameIniLocal;
|
|
|
|
std::string GameIniFileLocal;
|
2015-02-24 19:04:19 +00:00
|
|
|
std::string game_id;
|
2013-09-07 21:02:49 +00:00
|
|
|
|
|
|
|
std::set<std::string> DefaultPatches;
|
|
|
|
std::set<std::string> DefaultCheats;
|
2011-03-16 22:22:21 +00:00
|
|
|
|
|
|
|
void LoadGameConfig();
|
|
|
|
void PatchList_Load();
|
|
|
|
void PatchList_Save();
|
|
|
|
void ActionReplayList_Save();
|
2015-05-08 21:28:03 +00:00
|
|
|
void ChangeBannerDetails(DiscIO::IVolume::ELanguage language);
|
2013-09-07 21:02:49 +00:00
|
|
|
|
|
|
|
long GetElementStyle(const char* section, const char* key);
|
|
|
|
void SetCheckboxValueFromGameini(const char* section, const char* key, wxCheckBox* checkbox);
|
|
|
|
void SaveGameIniValueFrom3StateCheckbox(const char* section, const char* key, wxCheckBox* checkbox);
|
2008-12-08 04:46:09 +00:00
|
|
|
};
|