CGameRecompilePage::CGameRecompilePage (HWND hParent, const RECT & rcDispay )
{
    if (!Create(hParent,rcDispay))
    {
        return;
    }

    //Set the text for all gui Items
    SetDlgItemTextW(m_hWnd, IDC_CPU_TYPE_TEXT, GS(ROM_CPU_STYLE));
    SetDlgItemTextW(m_hWnd, IDC_FUNCFIND_TEXT, GS(ROM_FUNC_FIND));

    SetDlgItemTextW(m_hWnd, IDC_ROM_REGCACHE, GS(ROM_REG_CACHE));
    SetDlgItemTextW(m_hWnd, IDC_BLOCK_LINKING, GS(ADVANCE_ABL));
    SetDlgItemTextW(m_hWnd, IDC_ROM_FASTSP, GS(ROM_FAST_SP));

    SetDlgItemTextW(m_hWnd, IDC_SMM_FRAME, GS(ADVANCE_SMCM));
    SetDlgItemTextW(m_hWnd, IDC_SMM_CACHE, GS(ADVANCE_SMM_CACHE));
    SetDlgItemTextW(m_hWnd, IDC_SMM_DMA, GS(ADVANCE_SMM_PIDMA));
    SetDlgItemTextW(m_hWnd, IDC_SMM_VALIDATE, GS(ADVANCE_SMM_VALIDATE));
    SetDlgItemTextW(m_hWnd, IDC_SMM_TLB, GS(ADVANCE_SMM_TLB));
    SetDlgItemTextW(m_hWnd, IDC_SMM_PROTECT, GS(ADVANCE_SMM_PROTECT));

    m_SelfModGroup.Attach(GetDlgItem(IDC_SMM_FRAME));

    AddModCheckBox(GetDlgItem(IDC_ROM_REGCACHE),Game_RegCache);
    AddModCheckBox(GetDlgItem(IDC_BLOCK_LINKING),Game_BlockLinking);
    AddModCheckBox(GetDlgItem(IDC_SMM_CACHE),Game_SMM_Cache);
    AddModCheckBox(GetDlgItem(IDC_SMM_DMA),Game_SMM_PIDMA);
    AddModCheckBox(GetDlgItem(IDC_SMM_VALIDATE),Game_SMM_ValidFunc);
    AddModCheckBox(GetDlgItem(IDC_SMM_TLB),Game_SMM_TLB);
    AddModCheckBox(GetDlgItem(IDC_SMM_PROTECT),Game_SMM_Protect);
    ::ShowWindow(GetDlgItem(IDC_SMM_STORE),SW_HIDE);
    //AddModCheckBox(GetDlgItem(IDC_SMM_STORE),Game_SMM_StoreInstruc);
    AddModCheckBox(GetDlgItem(IDC_ROM_FASTSP),Game_FastSP);

    CModifiedComboBox * ComboBox;
    ComboBox = AddModComboBox(GetDlgItem(IDC_CPU_TYPE),Game_CpuType);
    if (ComboBox)
    {
        ComboBox->AddItemW(GS(CORE_RECOMPILER), CPU_Recompiler);
        ComboBox->AddItemW(GS(CORE_INTERPTER), CPU_Interpreter);
        if (g_Settings->LoadBool(Debugger_Enabled))
        {
            ComboBox->AddItemW(GS(CORE_SYNC), CPU_SyncCores);
        }
    }

    ComboBox = AddModComboBox(GetDlgItem(IDC_FUNCFIND),Game_FuncLookupMode);
    if (ComboBox)
    {
        ComboBox->AddItemW(GS(FLM_PLOOKUP), FuncFind_PhysicalLookup);
        ComboBox->AddItemW(GS(FLM_VLOOKUP), FuncFind_VirtualLookup);
        //ComboBox->AddItem(GS(FLM_CHANGEMEM), FuncFind_ChangeMemory);
    }
    UpdatePageSettings();
}
CAdvancedOptionsPage::CAdvancedOptionsPage(HWND hParent, const RECT & rcDispay)
{
    if (!Create(hParent, rcDispay))
    {
        return;
    }

    //Set the text for all gui Items
    SetDlgItemTextW(m_hWnd, IDC_START_ON_ROM_OPEN, wGS(ADVANCE_AUTO_START).c_str());
    SetDlgItemTextW(m_hWnd, IDC_ZIP, wGS(ADVANCE_COMPRESS).c_str());
    SetDlgItemTextW(m_hWnd, IDC_DEBUGGER, wGS(ADVANCE_DEBUGGER).c_str());
    SetDlgItemTextW(m_hWnd, IDC_REMEMBER_CHEAT, wGS(OPTION_REMEMBER_CHEAT).c_str());
    SetDlgItemTextW(m_hWnd, IDC_CHECK_RUNNING, wGS(OPTION_CHECK_RUNNING).c_str());
    SetDlgItemTextW(m_hWnd, IDC_DISPLAY_FRAMERATE, wGS(OPTION_CHANGE_FR).c_str());

    AddModCheckBox(GetDlgItem(IDC_START_ON_ROM_OPEN), Setting_AutoStart);
    AddModCheckBox(GetDlgItem(IDC_ZIP), Setting_AutoZipInstantSave);
    AddModCheckBox(GetDlgItem(IDC_DEBUGGER), Debugger_Enabled);
    AddModCheckBox(GetDlgItem(IDC_REMEMBER_CHEAT), Setting_RememberCheats);
    AddModCheckBox(GetDlgItem(IDC_CHECK_RUNNING), Setting_CheckEmuRunning);
    AddModCheckBox(GetDlgItem(IDC_DISPLAY_FRAMERATE), UserInterface_DisplayFrameRate);

    CModifiedComboBox * ComboBox;
    ComboBox = AddModComboBox(GetDlgItem(IDC_FRAME_DISPLAY_TYPE), UserInterface_FrameDisplayType);
    if (ComboBox)
    {
        ComboBox->AddItemW(wGS(STR_FR_VIS).c_str(), FR_VIs);
        ComboBox->AddItemW(wGS(STR_FR_DLS).c_str(), FR_DLs);
        ComboBox->AddItemW(wGS(STR_FR_PERCENT).c_str(), FR_PERCENT);
    }

    UpdatePageSettings();
}
void COptionPluginPage::AddPlugins(int ListId, SettingID Type, PLUGIN_TYPE PluginType)
{
    stdstr Default = g_Settings->LoadStringVal(Type);

    CModifiedComboBox * ComboBox;
    ComboBox = AddModComboBox(GetDlgItem(ListId), Type);
    for (int i = 0, n = m_PluginList.GetPluginCount(); i < n; i++)
    {
        const CPluginList::PLUGIN * Plugin = m_PluginList.GetPluginInfo(i);
        if (Plugin == NULL)
        {
            continue;
        }
        if (Plugin->Info.Type != PluginType)
        {
            continue;
        }
        if (_stricmp(Default.c_str(), Plugin->FileName.c_str()) == 0)
        {
            ComboBox->SetDefault((WPARAM)Plugin);
        }
        ComboBox->AddItem(Plugin->Info.Name, (WPARAM)Plugin);
    }
}