mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
fixed mipmap loading in both plugins.
add an option to limit fps instead of vps for games with bad synchronization some minor fixes in d3d gui enjoy :) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5394 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -148,6 +148,7 @@ void SConfig::SaveSettings()
|
||||
ini.Set("Core", "RunCompareServer", m_LocalCoreStartupParameter.bRunCompareServer);
|
||||
ini.Set("Core", "RunCompareClient", m_LocalCoreStartupParameter.bRunCompareClient);
|
||||
ini.Set("Core", "FrameLimit", m_Framelimit);
|
||||
ini.Set("Core", "UseFPS", b_UseFPS);
|
||||
|
||||
// Plugins
|
||||
ini.Set("Core", "GFXPlugin", m_LocalCoreStartupParameter.m_strVideoPlugin);
|
||||
@ -276,6 +277,7 @@ void SConfig::LoadSettings()
|
||||
ini.Get("Core", "RunCompareClient", &m_LocalCoreStartupParameter.bRunCompareClient, false);
|
||||
ini.Get("Core", "TLBHack", &m_LocalCoreStartupParameter.iTLBHack, 0);
|
||||
ini.Get("Core", "FrameLimit", &m_Framelimit, 1); // auto frame limit by default
|
||||
ini.Get("Core", "UseFPS", &b_UseFPS, false); // use vps as default
|
||||
|
||||
// Plugins
|
||||
ini.Get("Core", "GFXPlugin", &m_LocalCoreStartupParameter.m_strVideoPlugin, m_DefaultGFXPlugin.c_str());
|
||||
|
@ -70,6 +70,7 @@ struct SConfig
|
||||
INTERFACE_LANGUAGE m_InterfaceLanguage;
|
||||
// framelimit choose
|
||||
int m_Framelimit;
|
||||
bool b_UseFPS;
|
||||
// other interface settings
|
||||
bool m_InterfaceToolbar;
|
||||
bool m_InterfaceStatusbar;
|
||||
|
@ -608,13 +608,13 @@ void ScreenShot()
|
||||
void VideoThrottle()
|
||||
{
|
||||
u32 TargetVPS = (SConfig::GetInstance().m_Framelimit > 1) ?
|
||||
SConfig::GetInstance().m_Framelimit * 10 : VideoInterface::TargetRefreshRate;
|
||||
SConfig::GetInstance().m_Framelimit * 5 : VideoInterface::TargetRefreshRate;
|
||||
|
||||
// When frame limit is NOT off
|
||||
if (SConfig::GetInstance().m_Framelimit)
|
||||
{
|
||||
// Make the limiter a bit loose
|
||||
u32 frametime = DrawnVideo * 1000 / ++TargetVPS;
|
||||
u32 frametime = ((SConfig::GetInstance().b_UseFPS)? Common::AtomicLoad(DrawnFrame) : DrawnVideo) * 1000 / ++TargetVPS;
|
||||
while ((u32)Timer.GetTimeDifference() < frametime)
|
||||
Common::YieldCPU();
|
||||
//Common::SleepCurrentThread(1);
|
||||
@ -692,7 +692,7 @@ void VideoThrottle()
|
||||
// depending on the framelimit set
|
||||
bool report_slow(int skipped)
|
||||
{
|
||||
u32 TargetFPS = (SConfig::GetInstance().m_Framelimit > 1) ? SConfig::GetInstance().m_Framelimit * 10
|
||||
u32 TargetFPS = (SConfig::GetInstance().m_Framelimit > 1) ? SConfig::GetInstance().m_Framelimit * 5
|
||||
: VideoInterface::TargetRefreshRate;
|
||||
u32 frames = Common::AtomicLoad(DrawnFrame);
|
||||
bool fps_slow = (Timer.GetTimeDifference() < (frames + skipped) * 1000 / TargetFPS) ? false : true;
|
||||
|
@ -52,6 +52,7 @@ EVT_BUTTON(wxID_CLOSE, CConfigMain::CloseClick)
|
||||
|
||||
EVT_CHECKBOX(ID_INTERFACE_CONFIRMSTOP, CConfigMain::CoreSettingsChanged)
|
||||
EVT_CHECKBOX(ID_INTERFACE_USEPANICHANDLERS, CConfigMain::CoreSettingsChanged)
|
||||
EVT_CHECKBOX(ID_FRAMELIMIT_USEFPSFORLIMITING, CConfigMain::CoreSettingsChanged)
|
||||
EVT_CHECKBOX(ID_DISPLAY_HIDECURSOR, CConfigMain::CoreSettingsChanged)
|
||||
EVT_CHECKBOX(ID_DISPLAY_FULLSCREEN, CConfigMain::CoreSettingsChanged)
|
||||
EVT_CHECKBOX(ID_DISPLAY_RENDERTOMAIN, CConfigMain::CoreSettingsChanged)
|
||||
@ -185,7 +186,7 @@ void CConfigMain::InitializeGUILists()
|
||||
// Framelimit
|
||||
arrayStringFor_Framelimit.Add(wxT("Off"));
|
||||
arrayStringFor_Framelimit.Add(wxT("Auto"));
|
||||
for (int i = 20; i <= 120; i += 10) // from 20 to 120
|
||||
for (int i = 10; i <= 120; i += 5) // from 10 to 120
|
||||
arrayStringFor_Framelimit.Add(wxString::Format(wxT("%i"), i));
|
||||
|
||||
// Themes
|
||||
@ -210,6 +211,7 @@ void CConfigMain::InitializeGUIValues()
|
||||
SkipIdle->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bSkipIdle);
|
||||
EnableCheats->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableCheats);
|
||||
Framelimit->SetSelection(SConfig::GetInstance().m_Framelimit);
|
||||
UseFPSForLimiting->SetValue(SConfig::GetInstance().b_UseFPS);
|
||||
|
||||
// General - Advanced
|
||||
AlwaysHLE_BS2->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bHLE_BS2);
|
||||
@ -334,6 +336,7 @@ void CConfigMain::CreateGUIControls()
|
||||
// Framelimit
|
||||
wxStaticText *FramelimitText = new wxStaticText(GeneralPage, ID_FRAMELIMIT_TEXT, wxT("Framelimit :"), wxDefaultPosition, wxDefaultSize);
|
||||
Framelimit = new wxChoice(GeneralPage, ID_FRAMELIMIT, wxDefaultPosition, wxDefaultSize, arrayStringFor_Framelimit, 0, wxDefaultValidator);
|
||||
UseFPSForLimiting = new wxCheckBox(GeneralPage, ID_FRAMELIMIT_USEFPSFORLIMITING, wxT("Use FPS For Limiting"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
|
||||
// Core Settings - Advanced
|
||||
wxStaticBoxSizer* sizerCoreType = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("CPU Emulator Engine"));
|
||||
@ -347,6 +350,7 @@ void CConfigMain::CreateGUIControls()
|
||||
// Interface settings
|
||||
ConfirmStop = new wxCheckBox(GeneralPage, ID_INTERFACE_CONFIRMSTOP, wxT("Confirm On Stop"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
UsePanicHandlers = new wxCheckBox(GeneralPage, ID_INTERFACE_USEPANICHANDLERS, wxT("Use Panic Handlers"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
|
||||
|
||||
// Interface Language
|
||||
// At the moment this only changes the language displayed in m_gamelistctrl
|
||||
@ -373,6 +377,7 @@ void CConfigMain::CreateGUIControls()
|
||||
wxBoxSizer *sFramelimit = new wxBoxSizer(wxHORIZONTAL);
|
||||
sFramelimit->Add(FramelimitText, 0, wxALL | wxALIGN_CENTER, 1);
|
||||
sFramelimit->Add(Framelimit, 0, wxALL | wxEXPAND, 5);
|
||||
sFramelimit->Add(UseFPSForLimiting, 0, wxALL | wxEXPAND, 5);
|
||||
sbBasic->Add(sFramelimit, 0, wxALL | wxEXPAND, 5);
|
||||
|
||||
sbAdvanced->Add(AlwaysHLE_BS2, 0, wxALL, 5);
|
||||
@ -702,6 +707,9 @@ void CConfigMain::CoreSettingsChanged(wxCommandEvent& event)
|
||||
{
|
||||
switch (event.GetId())
|
||||
{
|
||||
case ID_FRAMELIMIT_USEFPSFORLIMITING:
|
||||
SConfig::GetInstance().b_UseFPS = UseFPSForLimiting->IsChecked();
|
||||
break;
|
||||
case ID_INTERFACE_CONFIRMSTOP: // Interface
|
||||
SConfig::GetInstance().m_LocalCoreStartupParameter.bConfirmStop = ConfirmStop->IsChecked();
|
||||
break;
|
||||
|
@ -48,7 +48,7 @@ private:
|
||||
DECLARE_EVENT_TABLE();
|
||||
|
||||
wxBoxSizer* sGeneralPage; // General Settings
|
||||
wxCheckBox* ConfirmStop, *UsePanicHandlers;
|
||||
wxCheckBox* ConfirmStop, *UsePanicHandlers, *UseFPSForLimiting;
|
||||
wxCheckBox* HideCursor;
|
||||
wxChoice* InterfaceLang;
|
||||
wxChoice* Framelimit;
|
||||
@ -171,14 +171,16 @@ private:
|
||||
ID_ENABLECHEATS,
|
||||
|
||||
ID_INTERFACE_CONFIRMSTOP, // Interface settings
|
||||
ID_INTERFACE_USEPANICHANDLERS,
|
||||
ID_INTERFACE_USEPANICHANDLERS,
|
||||
ID_DISPLAY_FULLSCREEN,
|
||||
ID_DISPLAY_HIDECURSOR,
|
||||
ID_DISPLAY_RENDERTOMAIN,
|
||||
ID_HOTKEY_CONFIG,
|
||||
ID_INTERFACE_LANG_TEXT, ID_INTERFACE_LANG,
|
||||
ID_INTERFACE_THEME,
|
||||
ID_FRAMELIMIT_TEXT, ID_FRAMELIMIT,
|
||||
ID_FRAMELIMIT_TEXT,
|
||||
ID_FRAMELIMIT,
|
||||
ID_FRAMELIMIT_USEFPSFORLIMITING,
|
||||
|
||||
ID_GC_SRAM_LNG_TEXT,
|
||||
ID_GC_SRAM_LNG,
|
||||
|
Reference in New Issue
Block a user