Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Throttler: Rename "framelimiter" to "emulation speed". #3356

Merged
merged 1 commit into from Jan 6, 2016

Conversation

degasus
Copy link
Member

@degasus degasus commented Dec 18, 2015

We don't throttle by frames, we throttle by coretiming speed.
So looking up VI for calculating the speed was just very wrong.
The new ini option is a float, 1.0f for fullspeed.
In the GUI, percentual values are used.
image

@degasus
Copy link
Member Author

degasus commented Dec 18, 2015

Alcaro> would personally use -1 or actually put in two billion, but your choice
degasus> Alcaro: indeed. <=0 would be better

@JosJuice
Copy link
Member

It sounds like this will get rid of users setting Framelimit to 60 instead of Auto for no good reason and also the problem of the Framelimit being 5 after updating from old Dolphin versions that used the Audio option. If that's true, I'll be very happy.

@MayImilae
Copy link
Contributor

I think this is a great idea! But this is a GUI change, so I want to see a screenshot.

m_cpu_engine_radiobox = new wxRadioBox(this, wxID_ANY, _("CPU Emulator Engine"), wxDefaultPosition, wxDefaultSize, m_cpu_engine_array_string, 0, wxRA_SPECIFY_ROWS);

m_dual_core_checkbox->SetToolTip(_("Splits the CPU and GPU threads so they can be run on separate cores.\nProvides major speed improvements on most modern PCs, but can cause occasional crashes/glitches."));
m_idle_skip_checkbox->SetToolTip(_("Attempt to detect and skip wait-loops.\nIf unsure, leave this checked."));
m_cheats_checkbox->SetToolTip(_("Enables the use of Action Replay and Gecko cheats."));
m_force_ntscj_checkbox->SetToolTip(_("Forces NTSC-J mode for using the Japanese ROM font.\nIf left unchecked, Dolphin defaults to NTSC-U and automatically enables this setting when playing Japanese games."));
m_frame_limit_choice->SetToolTip(_("Limits the game speed to the specified number of frames per second (full speed is 60 for NTSC and 50 for PAL)."));
m_throttler_choice->SetToolTip(_("Limits the game speed to the specified percentual value."));

This comment was marked as off-topic.

This comment was marked as off-topic.

This comment was marked as off-topic.

@@ -381,6 +381,7 @@ void Renderer::DrawDebugText()
std::string("Aspect Ratio: ") + ar_text + (g_ActiveConfig.bCrop ? " (crop)" : ""),
std::string("Copy EFB: ") + efbcopy_text,
std::string("Fog: ") + (g_ActiveConfig.bDisableFog ? "Disabled" : "Enabled"),
StringFromFormat("Speed: %li%%", std::lround(SConfig::GetInstance().m_EmulationSpeed * 100.f)),

This comment was marked as off-topic.

{
aid_sample_rate = aid_sample_rate * (framelimit - 1) * 5 / VideoInterface::TargetRefreshRate;

This comment was marked as off-topic.

This comment was marked as off-topic.

@psennermann
Copy link

Just for curiosity I tested a bit the frame limiter on master 4.0-8396 and found out that the auto setting doesn't seem 100% accurate playing in a window: in Wii Sports I get sometimes weird slowdowns (although the counter still indicates 60 fps 100% speed, gameplay slows down - could be timings slowdowns?); instead disabling framelimiter and enabling Vsync (in fact limiting frames with Vsync), I can get complete smooth gameplay (no more slowdowns in this way).
Also notice that using exclusive fullscreen the slowdowns turn into occasional screen tearing, so In conclusion it seems to me that auto framelimiter sometimes has to "adjust" his speed in comparison to the one of the monitor, while Vsync obviously doesn't have this problem...

P.S. I tested at 1920x1080 - 60 hz

@JosJuice
Copy link
Member

It seems a bit strange that hotkeys can be used to set values that aren't available in the GUI. For instance, decreasing from 100% would go 100%, 90%, 81%, 72.9%, 65.61%...

@@ -755,9 +755,9 @@ void VideoThrottle()
// depending on the framelimit set

This comment was marked as off-topic.

@JosJuice
Copy link
Member

JosJuice commented Jan 2, 2016

Ping.

We don't throttle by frames, we throttle by coretiming speed.
So looking up VI for calculating the speed was just very wrong.
The new ini option is a float, 1.0f for fullspeed.
In the GUI, percentual values are used.
@JosJuice
Copy link
Member

JosJuice commented Jan 5, 2016

LGTM.

degasus added a commit that referenced this pull request Jan 6, 2016
Throttler: Rename "framelimiter" to "emulation speed".
@degasus degasus merged commit 86b0e7e into dolphin-emu:master Jan 6, 2016
@dolphin-emu-bot
Copy link
Contributor

FifoCI detected that this change impacts graphical rendering. Here are the behavior differences detected by the system:

  • chibi-robo-zfighting on ogl-lin-radeon: diff
  • medabots-crash on ogl-lin-radeon: diff
  • mp3-bloom on ogl-lin-radeon: diff
  • rs2-skybox on ogl-lin-radeon: diff
  • rs2-zfreeze on ogl-lin-radeon: diff
  • sf-assault-flashing on ogl-lin-radeon: diff
  • sms-bubbles on ogl-lin-radeon: diff
  • sw3-dt on ogl-lin-radeon: diff

automated-fifoci-reporter

@psennermann
Copy link

it would be more useful to have the ability to set the exact desired speed percentage (like 99, 98 and so on for "fine tuning") or at least 95%, because 90% is already too slow (not to mention that speeds below it are pretty much useless)

@JosJuice
Copy link
Member

JosJuice commented Jan 9, 2016

For now, you can do that by editing the INI file. I'm not sure what you would need it for, though.

@psennermann
Copy link

For example some time ago was noticed that Tales of Symphonia with auto frame limit was slightly faster that original Gamecube game, so if the problem persists with actual builds, it could be useful to set it at 99 or 98%...

@JosJuice
Copy link
Member

JosJuice commented Jan 9, 2016

If that's a problem, it should have a proper fix, not a workaround based on setting the speed limit. Make an report on the issue tracker if it happens in the newest development version. https://bugs.dolphin-emu.org/projects/emulator

@psennermann
Copy link

It was only an example, other uses could be limit the speed because not always reaching 60 fps 100% speed due to hardware not powerful enough (maybe they could play without sound cutting at 57 fps - 95% speed instead of slowing too much at 54 fps - 90% speed)...

P.S. I think adding a 95% speed option would be enough (before I wasn't thinking in percentage so I thought that 95% was 55 fps, instead it would be 57, so further values/options wouldn't be so useful...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
8 participants