eeCycleRate: add/restore a milder underclock value to the slider

Also slightly modify the textual description of the other underclock items.

All previous values available at the slider are still there, but since
the new value is now the mildest (slider == -1), it "pushes" the previous
-1 and -2 values one notch down.

This restores the mildest value to be identical to how it behaved before
90b11b2f , which is measured as about 75% speed.

Because the "balanced" preset uses the -1 slider value, it means this
restored mild value is now also used by the balanced preset.

As a note, while the message for the mildest value was always "reduce by
about 33%", before 90b11b2f it was actually about 25% reduction (75% speed,
like with this commit now), and after that commit it was about 40% reduction
(60% speed).

Also, since we add new value to the slider only on one side, the "0"
(default) slider position is now not at the exact middle. That's fine,
but maybe we could also add a milder overclock value on the other side
to have that symetric again.
This commit is contained in:
Avi Halachmi (:avih) 2016-07-30 17:09:37 +03:00
parent 67dc3eef4b
commit 460b7be47a
2 changed files with 16 additions and 7 deletions

View File

@ -23,19 +23,24 @@ const wxChar* Panels::SpeedHacksPanel::GetEEcycleSliderMsg( int val )
{
switch( val )
{
case -3:
{
m_msg_eecycle->SetForegroundColour(wxColour(L"Red"));
return pxEt(L"-3 - Reduces the EE's cyclerate to about 50%. Big speedup, but *will* cause stuttering audio on many FMVs.");
}
case -2:
{
m_msg_eecycle->SetForegroundColour(wxColour(L"Red"));
return pxEt(L"-2 - Reduces the EE's cyclerate to about 50%. Moderate speedup, but *will* cause stuttering audio on many FMVs.");
return pxEt(L"-2 - Reduces the EE's cyclerate to about 60%. Moderate speedup, but may cause stuttering audio on many FMVs.");
}
case -1:
{
m_msg_eecycle->SetForegroundColour(wxColour(L"Red"));
return pxEt(L"-1 - Reduces the EE's cyclerate to about 60%. Mild speedup for most games with high compatibility.");
m_msg_eecycle->SetForegroundColour(wxColour(L"Dark Green"));
return pxEt(L"-1 - Reduces the EE's cyclerate to about 75%. Mild speedup for most games with high compatibility.");
}
case 0:
{
m_msg_eecycle->SetForegroundColour(wxColour(14,158,19)); // Dark Green
m_msg_eecycle->SetForegroundColour(wxColour(L"Forest Green")); // Dark Green
return pxEt(L"0 - Default cyclerate (100%). This closely matches the actual speed of a real PS2 EmotionEngine.");
}
case 1:
@ -126,7 +131,7 @@ Panels::SpeedHacksPanel::SpeedHacksPanel( wxWindow* parent )
m_eeSliderPanel = new wxPanelWithHelpers( left, wxVERTICAL, _("EE Cyclerate [Not Recommended]") );
m_slider_eecycle = new wxSlider( m_eeSliderPanel, wxID_ANY, 0, -2, 2,
m_slider_eecycle = new wxSlider( m_eeSliderPanel, wxID_ANY, 0, -3, 2,
wxDefaultPosition, wxDefaultSize, wxHORIZONTAL | wxSL_AUTOTICKS | wxSL_LABELS );
m_msg_eecycle = new pxStaticHeading( m_eeSliderPanel );

View File

@ -968,8 +968,12 @@ static u32 scaleblockcycles_calc()
else if (cyclerate > 0)
scale_cycles = s_nBlockCycles >> (3 + cyclerate);
else if (cyclerate < 0)
scale_cycles = ((5 + (-2 * cyclerate)) * s_nBlockCycles) >> 5;
else if (cyclerate == -1) // the mildest value which is also used by the "balanced" preset.
// These values were manually tuned to yield mild speedup with high compatibility
scale_cycles = (s_nBlockCycles <= 80 || s_nBlockCycles >= 168 ? 5 : 7) * s_nBlockCycles / 32;
else
scale_cycles = ((5 + (-2 * (cyclerate + 1))) * s_nBlockCycles) >> 5;
// Ensure block cycle count is never less than 1.
return (scale_cycles < 1) ? 1 : scale_cycles;