2013-04-17 22:43:11 -04: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 13:54:46 -05:00
|
|
|
#pragma once
|
2008-12-08 04:46:09 +00:00
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
2014-02-17 05:18:15 -05:00
|
|
|
#include "Common/IniFile.h"
|
|
|
|
|
2013-04-16 23:14:36 -04:00
|
|
|
enum Hotkey
|
|
|
|
{
|
2011-02-12 06:46:33 +00:00
|
|
|
HK_OPEN,
|
|
|
|
HK_CHANGE_DISC,
|
|
|
|
HK_REFRESH_LIST,
|
|
|
|
|
2010-04-12 01:33:10 +00:00
|
|
|
HK_PLAY_PAUSE,
|
|
|
|
HK_STOP,
|
2011-02-12 06:46:33 +00:00
|
|
|
HK_RESET,
|
|
|
|
HK_FRAME_ADVANCE,
|
|
|
|
|
|
|
|
HK_START_RECORDING,
|
|
|
|
HK_PLAY_RECORDING,
|
|
|
|
HK_EXPORT_RECORDING,
|
|
|
|
HK_READ_ONLY_MODE,
|
|
|
|
|
|
|
|
HK_FULLSCREEN,
|
2010-08-08 00:13:05 +00:00
|
|
|
HK_SCREENSHOT,
|
2012-11-08 08:40:49 +01:00
|
|
|
HK_EXIT,
|
2011-02-12 06:46:33 +00:00
|
|
|
|
2010-04-25 20:10:16 +00:00
|
|
|
HK_WIIMOTE1_CONNECT,
|
|
|
|
HK_WIIMOTE2_CONNECT,
|
|
|
|
HK_WIIMOTE3_CONNECT,
|
|
|
|
HK_WIIMOTE4_CONNECT,
|
2013-06-26 06:23:29 -04:00
|
|
|
HK_BALANCEBOARD_CONNECT,
|
2011-02-12 06:46:33 +00:00
|
|
|
|
2013-07-30 19:25:12 -04:00
|
|
|
HK_TOGGLE_IR,
|
|
|
|
HK_TOGGLE_AR,
|
|
|
|
HK_TOGGLE_EFBCOPIES,
|
|
|
|
HK_TOGGLE_FOG,
|
2014-02-16 23:13:01 +01:00
|
|
|
HK_TOGGLE_THROTTLE,
|
2013-07-30 19:25:12 -04:00
|
|
|
|
|
|
|
HK_INCREASE_FRAME_LIMIT,
|
|
|
|
HK_DECREASE_FRAME_LIMIT,
|
2013-07-30 05:49:02 -04:00
|
|
|
|
2011-02-12 06:46:33 +00:00
|
|
|
HK_LOAD_STATE_SLOT_1,
|
|
|
|
HK_LOAD_STATE_SLOT_2,
|
|
|
|
HK_LOAD_STATE_SLOT_3,
|
|
|
|
HK_LOAD_STATE_SLOT_4,
|
|
|
|
HK_LOAD_STATE_SLOT_5,
|
|
|
|
HK_LOAD_STATE_SLOT_6,
|
|
|
|
HK_LOAD_STATE_SLOT_7,
|
|
|
|
HK_LOAD_STATE_SLOT_8,
|
2013-08-02 20:42:30 -04:00
|
|
|
HK_LOAD_STATE_SLOT_9,
|
|
|
|
HK_LOAD_STATE_SLOT_10,
|
2011-02-12 06:46:33 +00:00
|
|
|
|
|
|
|
HK_SAVE_STATE_SLOT_1,
|
|
|
|
HK_SAVE_STATE_SLOT_2,
|
|
|
|
HK_SAVE_STATE_SLOT_3,
|
|
|
|
HK_SAVE_STATE_SLOT_4,
|
|
|
|
HK_SAVE_STATE_SLOT_5,
|
|
|
|
HK_SAVE_STATE_SLOT_6,
|
|
|
|
HK_SAVE_STATE_SLOT_7,
|
|
|
|
HK_SAVE_STATE_SLOT_8,
|
2013-08-02 20:42:30 -04:00
|
|
|
HK_SAVE_STATE_SLOT_9,
|
|
|
|
HK_SAVE_STATE_SLOT_10,
|
2011-02-12 06:46:33 +00:00
|
|
|
|
2012-11-08 08:40:49 +01:00
|
|
|
HK_LOAD_LAST_STATE_1,
|
|
|
|
HK_LOAD_LAST_STATE_2,
|
|
|
|
HK_LOAD_LAST_STATE_3,
|
|
|
|
HK_LOAD_LAST_STATE_4,
|
|
|
|
HK_LOAD_LAST_STATE_5,
|
|
|
|
HK_LOAD_LAST_STATE_6,
|
|
|
|
HK_LOAD_LAST_STATE_7,
|
|
|
|
HK_LOAD_LAST_STATE_8,
|
|
|
|
|
|
|
|
HK_SAVE_FIRST_STATE,
|
|
|
|
HK_UNDO_LOAD_STATE,
|
|
|
|
HK_UNDO_SAVE_STATE,
|
2013-06-30 19:01:30 -04:00
|
|
|
HK_SAVE_STATE_FILE,
|
|
|
|
HK_LOAD_STATE_FILE,
|
2012-11-08 08:40:49 +01:00
|
|
|
|
2010-04-12 01:33:10 +00:00
|
|
|
NUM_HOTKEYS,
|
|
|
|
};
|
|
|
|
|
2008-12-08 04:46:09 +00:00
|
|
|
struct SCoreStartupParameter
|
|
|
|
{
|
2009-01-20 18:09:49 +00:00
|
|
|
// Settings
|
2010-01-19 19:28:27 +00:00
|
|
|
bool bEnableDebugging;
|
2013-01-06 23:28:27 +13:00
|
|
|
#ifdef USE_GDBSTUB
|
|
|
|
int iGDBPort;
|
|
|
|
#endif
|
2010-01-19 19:28:27 +00:00
|
|
|
bool bAutomaticStart;
|
|
|
|
bool bBootToPause;
|
|
|
|
|
2014-07-07 05:30:06 +02:00
|
|
|
// 0 = Interpreter
|
|
|
|
// 1 = Jit
|
|
|
|
// 2 = JitIL
|
|
|
|
// 3 = JIT ARM
|
|
|
|
int iCPUCore;
|
2008-12-08 04:46:09 +00:00
|
|
|
|
2010-01-19 19:28:27 +00:00
|
|
|
// JIT (shared between JIT and JITIL)
|
2010-07-05 02:05:47 +00:00
|
|
|
bool bJITNoBlockCache, bJITBlockLinking;
|
2009-01-20 18:09:49 +00:00
|
|
|
bool bJITOff;
|
2008-12-08 04:46:09 +00:00
|
|
|
bool bJITLoadStoreOff, bJITLoadStorelXzOff, bJITLoadStorelwzOff, bJITLoadStorelbzxOff;
|
|
|
|
bool bJITLoadStoreFloatingOff;
|
|
|
|
bool bJITLoadStorePairedOff;
|
|
|
|
bool bJITFloatingPointOff;
|
|
|
|
bool bJITIntegerOff;
|
|
|
|
bool bJITPairedOff;
|
|
|
|
bool bJITSystemRegistersOff;
|
2008-12-25 10:51:42 +00:00
|
|
|
bool bJITBranchOff;
|
2010-11-19 07:48:48 +00:00
|
|
|
bool bJITILTimeProfiling;
|
2010-11-23 13:35:44 +00:00
|
|
|
bool bJITILOutputIR;
|
2008-12-08 04:46:09 +00:00
|
|
|
|
2013-04-19 07:50:33 -05:00
|
|
|
bool bFastmem;
|
2009-08-24 04:04:10 +00:00
|
|
|
bool bEnableFPRF;
|
|
|
|
|
2009-10-23 15:26:35 +00:00
|
|
|
bool bCPUThread;
|
2009-04-08 20:26:33 +00:00
|
|
|
bool bDSPThread;
|
2011-01-28 18:39:30 +00:00
|
|
|
bool bDSPHLE;
|
2008-12-08 04:46:09 +00:00
|
|
|
bool bSkipIdle;
|
|
|
|
bool bNTSC;
|
2011-06-03 00:55:58 +00:00
|
|
|
bool bForceNTSCJ;
|
2009-10-11 16:16:18 +00:00
|
|
|
bool bHLE_BS2;
|
2008-12-08 04:46:09 +00:00
|
|
|
bool bEnableCheats;
|
2010-09-14 13:50:25 +00:00
|
|
|
bool bMergeBlocks;
|
2013-04-07 12:18:07 -04:00
|
|
|
bool bEnableMemcardSaving;
|
2008-12-08 04:46:09 +00:00
|
|
|
|
2013-01-11 14:03:09 +11:00
|
|
|
bool bDPL2Decoder;
|
2013-01-13 00:05:30 +11:00
|
|
|
int iLatency;
|
2013-01-11 14:03:09 +11:00
|
|
|
|
2008-12-08 04:46:09 +00:00
|
|
|
bool bRunCompareServer;
|
|
|
|
bool bRunCompareClient;
|
2008-12-09 22:20:50 +00:00
|
|
|
|
2010-07-29 12:17:47 +00:00
|
|
|
bool bMMU;
|
2013-01-20 13:09:38 +11:00
|
|
|
bool bDCBZOFF;
|
2013-09-28 08:07:23 -04:00
|
|
|
bool bTLBHack;
|
2013-07-03 23:01:52 +12:00
|
|
|
int iBBDumpPort;
|
2013-04-16 21:18:53 +10:00
|
|
|
bool bVBeamSpeedHack;
|
2013-02-16 12:51:09 +11:00
|
|
|
bool bSyncGPU;
|
2010-10-15 21:46:51 +00:00
|
|
|
bool bFastDiscSpeed;
|
2008-12-09 22:20:50 +00:00
|
|
|
|
2009-09-14 06:26:49 +00:00
|
|
|
int SelectedLanguage;
|
2008-12-08 04:46:09 +00:00
|
|
|
|
2010-03-11 17:20:32 +00:00
|
|
|
bool bWii;
|
2008-12-23 11:11:02 +00:00
|
|
|
|
2009-02-02 22:29:33 +00:00
|
|
|
// Interface settings
|
2012-11-16 15:16:50 -05:00
|
|
|
bool bConfirmStop, bHideCursor, bAutoHideCursor, bUsePanicHandlers, bOnScreenDisplayMessages;
|
2013-01-13 14:06:15 -06:00
|
|
|
std::string theme_name;
|
2010-04-12 01:33:10 +00:00
|
|
|
|
|
|
|
// Hotkeys
|
|
|
|
int iHotkey[NUM_HOTKEYS];
|
|
|
|
int iHotkeyModifier[NUM_HOTKEYS];
|
|
|
|
|
|
|
|
// Display settings
|
2010-04-22 04:28:34 +00:00
|
|
|
std::string strFullscreenResolution;
|
2010-04-12 01:33:10 +00:00
|
|
|
int iRenderWindowXPos, iRenderWindowYPos;
|
|
|
|
int iRenderWindowWidth, iRenderWindowHeight;
|
2012-04-08 10:29:49 +10:00
|
|
|
bool bRenderWindowAutoSize, bKeepWindowOnTop;
|
2010-06-05 01:38:22 +00:00
|
|
|
bool bFullscreen, bRenderToMain;
|
2011-08-25 14:44:13 -05:00
|
|
|
bool bProgressive, bDisableScreenSaver;
|
2010-04-12 01:33:10 +00:00
|
|
|
|
2010-01-18 18:01:03 +00:00
|
|
|
int iPosX, iPosY, iWidth, iHeight;
|
2013-01-08 19:15:11 -05:00
|
|
|
|
2013-08-18 21:25:16 +02:00
|
|
|
// Fifo Player related settings
|
|
|
|
bool bLoopFifoReplay;
|
|
|
|
|
2009-10-11 16:16:18 +00:00
|
|
|
enum EBootBS2
|
2008-12-08 04:46:09 +00:00
|
|
|
{
|
|
|
|
BOOT_DEFAULT,
|
2009-10-11 16:16:18 +00:00
|
|
|
BOOT_BS2_JAP,
|
|
|
|
BOOT_BS2_USA,
|
|
|
|
BOOT_BS2_EUR,
|
2008-12-08 04:46:09 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
enum EBootType
|
|
|
|
{
|
|
|
|
BOOT_ISO,
|
|
|
|
BOOT_ELF,
|
|
|
|
BOOT_DOL,
|
2009-02-27 23:44:15 +00:00
|
|
|
BOOT_WII_NAND,
|
2011-03-27 02:55:08 +00:00
|
|
|
BOOT_BS2,
|
|
|
|
BOOT_DFF
|
2008-12-08 04:46:09 +00:00
|
|
|
};
|
|
|
|
EBootType m_BootType;
|
|
|
|
|
2011-02-02 16:34:12 +00:00
|
|
|
std::string m_strVideoBackend;
|
2008-12-08 04:46:09 +00:00
|
|
|
|
2011-02-02 16:34:12 +00:00
|
|
|
// files
|
2008-12-08 04:46:09 +00:00
|
|
|
std::string m_strFilename;
|
2009-10-11 16:16:18 +00:00
|
|
|
std::string m_strBootROM;
|
2008-12-08 04:46:09 +00:00
|
|
|
std::string m_strSRAM;
|
|
|
|
std::string m_strDefaultGCM;
|
|
|
|
std::string m_strDVDRoot;
|
2009-12-10 09:16:10 +00:00
|
|
|
std::string m_strApploader;
|
2008-12-08 04:46:09 +00:00
|
|
|
std::string m_strUniqueID;
|
2013-09-23 02:39:14 -04:00
|
|
|
std::string m_strRevisionSpecificUniqueID;
|
2008-12-08 04:46:09 +00:00
|
|
|
std::string m_strName;
|
2013-09-07 23:02:49 +02:00
|
|
|
std::string m_strGameIniDefault;
|
2013-09-23 02:39:14 -04:00
|
|
|
std::string m_strGameIniDefaultRevisionSpecific;
|
2013-09-07 23:02:49 +02:00
|
|
|
std::string m_strGameIniLocal;
|
2008-12-08 04:46:09 +00:00
|
|
|
|
2009-02-02 22:29:33 +00:00
|
|
|
// Constructor just calls LoadDefaults
|
2008-12-08 04:46:09 +00:00
|
|
|
SCoreStartupParameter();
|
|
|
|
|
|
|
|
void LoadDefaults();
|
2009-10-11 16:16:18 +00:00
|
|
|
bool AutoSetup(EBootBS2 _BootBS2);
|
2008-12-08 04:46:09 +00:00
|
|
|
const std::string &GetUniqueID() const { return m_strUniqueID; }
|
2009-02-02 22:29:33 +00:00
|
|
|
void CheckMemcardPath(std::string& memcardPath, std::string Region, bool isSlotA);
|
2013-09-23 02:39:14 -04:00
|
|
|
IniFile LoadDefaultGameIni() const;
|
|
|
|
IniFile LoadLocalGameIni() const;
|
|
|
|
IniFile LoadGameIni() const;
|
2008-12-08 04:46:09 +00:00
|
|
|
};
|