// Copyright 2013 Dolphin Emulator Project // Licensed under GPLv2 // Refer to the license.txt file included. #pragma once #include "IniFile.h" #include enum Hotkey { HK_OPEN, HK_CHANGE_DISC, HK_REFRESH_LIST, HK_PLAY_PAUSE, HK_STOP, HK_RESET, HK_FRAME_ADVANCE, HK_START_RECORDING, HK_PLAY_RECORDING, HK_EXPORT_RECORDING, HK_READ_ONLY_MODE, HK_FULLSCREEN, HK_SCREENSHOT, HK_EXIT, HK_WIIMOTE1_CONNECT, HK_WIIMOTE2_CONNECT, HK_WIIMOTE3_CONNECT, HK_WIIMOTE4_CONNECT, HK_BALANCEBOARD_CONNECT, HK_TOGGLE_IR, HK_TOGGLE_AR, HK_TOGGLE_EFBCOPIES, HK_TOGGLE_FOG, HK_INCREASE_FRAME_LIMIT, HK_DECREASE_FRAME_LIMIT, 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, HK_LOAD_STATE_SLOT_9, HK_LOAD_STATE_SLOT_10, 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, HK_SAVE_STATE_SLOT_9, HK_SAVE_STATE_SLOT_10, 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, HK_SAVE_STATE_FILE, HK_LOAD_STATE_FILE, NUM_HOTKEYS, }; struct SCoreStartupParameter { void* hInstance; // HINSTANCE but we don't want to include // Settings bool bEnableDebugging; #ifdef USE_GDBSTUB int iGDBPort; #endif bool bAutomaticStart; bool bBootToPause; // 0 = Interpreter // 1 = Jit // 2 = JitIL // 3 = JIT ARM int iCPUCore; // JIT (shared between JIT and JITIL) bool bJITNoBlockCache, bJITBlockLinking; bool bJITOff; bool bJITLoadStoreOff, bJITLoadStorelXzOff, bJITLoadStorelwzOff, bJITLoadStorelbzxOff; bool bJITLoadStoreFloatingOff; bool bJITLoadStorePairedOff; bool bJITFloatingPointOff; bool bJITIntegerOff; bool bJITPairedOff; bool bJITSystemRegistersOff; bool bJITBranchOff; bool bJITILTimeProfiling; bool bJITILOutputIR; bool bFastmem; bool bEnableFPRF; bool bCPUThread; bool bDSPThread; bool bDSPHLE; bool bSkipIdle; bool bNTSC; bool bForceNTSCJ; bool bHLE_BS2; bool bEnableCheats; bool bMergeBlocks; bool bEnableMemcardSaving; bool bDPL2Decoder; int iLatency; bool bRunCompareServer; bool bRunCompareClient; bool bMMU; bool bDCBZOFF; bool bTLBHack; int iBBDumpPort; bool bVBeamSpeedHack; bool bSyncGPU; bool bFastDiscSpeed; int SelectedLanguage; bool bWii; // Interface settings bool bConfirmStop, bHideCursor, bAutoHideCursor, bUsePanicHandlers, bOnScreenDisplayMessages; std::string theme_name; // Hotkeys int iHotkey[NUM_HOTKEYS]; int iHotkeyModifier[NUM_HOTKEYS]; // Display settings std::string strFullscreenResolution; int iRenderWindowXPos, iRenderWindowYPos; int iRenderWindowWidth, iRenderWindowHeight; bool bRenderWindowAutoSize, bKeepWindowOnTop; bool bFullscreen, bRenderToMain; bool bProgressive, bDisableScreenSaver; int iPosX, iPosY, iWidth, iHeight; // Fifo Player related settings bool bLoopFifoReplay; enum EBootBS2 { BOOT_DEFAULT, BOOT_BS2_JAP, BOOT_BS2_USA, BOOT_BS2_EUR, }; enum EBootType { BOOT_ISO, BOOT_ELF, BOOT_DOL, BOOT_WII_NAND, BOOT_BS2, BOOT_DFF }; EBootType m_BootType; std::string m_strVideoBackend; // files std::string m_strFilename; std::string m_strBootROM; std::string m_strSRAM; std::string m_strDefaultGCM; std::string m_strDVDRoot; std::string m_strApploader; std::string m_strUniqueID; std::string m_strRevisionSpecificUniqueID; std::string m_strName; std::string m_strGameIniDefault; std::string m_strGameIniDefaultRevisionSpecific; std::string m_strGameIniLocal; // Constructor just calls LoadDefaults SCoreStartupParameter(); void LoadDefaults(); bool AutoSetup(EBootBS2 _BootBS2); const std::string &GetUniqueID() const { return m_strUniqueID; } void CheckMemcardPath(std::string& memcardPath, std::string Region, bool isSlotA); IniFile LoadDefaultGameIni() const; IniFile LoadLocalGameIni() const; IniFile LoadGameIni() const; };