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

Added 200% option for EE overclocking #12348

Closed
wants to merge 1 commit into from

Conversation

crashGG
Copy link
Contributor

@crashGG crashGG commented Feb 23, 2025

Description of Changes

Added 200% option for EE overclocking

Rationale behind Changes

Some games may run unstably at 60fps with 180% overclock.

Suggested Testing Steps

Shadow of the Colossus has variable FPS. With CPU at 100%, it is 60 FPS in the open field,and 30 FPS in the initial palace and boss battle. When using EE overclocking to 180%, the game can be stable at 60% in the initial palace and boss battle scenes, but when interacting closely with the bosses, the game fluctuates violently between 30 and 60 FPS.
for example:
In close combat with the boss No. 2
Wang Da Yu Ju Xiang_SCAJ-20146_20250223142224
Setting the EE overclock to 300% can also solve this problem. However, it will cause unnecessary computing overhead waste of the host, and excessive overclocking will also bring some unknown instability risks.
Maybe this PR also applies to some other cases where the 60FPS patch is used.

@JordanTheToaster
Copy link
Member

130 180 and 300 are picked because they are stable this will do nothing but cause issues.

@crashGG
Copy link
Contributor Author

crashGG commented Feb 23, 2025

Shadow of the Colossus shows that 180 is unstable at 60fps. The span from 180 to 300 is so large, buddy, don’t you want to try 200?

@refractionpcsx2
Copy link
Member

I don't think you've done half the changes required to make this work, you will probably find your new setting is just 300% and the 300% option does nothing because it's been clamped off.

like the cycle rate selected is here


connect(m_ui.eeCycleRate, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [this](int index) {
	std::optional<int> value;
	if (!m_dialog->isPerGameSettings() || index > 0)
		value = MINIMUM_EE_CYCLE_RATE + index - static_cast<int>(m_dialog->isPerGameSettings());
	m_dialog->setIntSettingValue("EmuCore/Speedhacks", "EECycleRate", value);
});

which does -3 + index of the option selected (with -3 being the maximum underclock)

then in scaleblockcycles_calculation() you will need a special case to bring the value down to the one you want, because it will be treating it as 3 right now.

@crashGG
Copy link
Contributor Author

crashGG commented Feb 23, 2025

I don't think you've done half the changes required to make this work, you will probably find your new setting is just 300% and the 300% option does nothing because it's been clamped off.

like the cycle rate selected is here


connect(m_ui.eeCycleRate, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [this](int index) {
	std::optional<int> value;
	if (!m_dialog->isPerGameSettings() || index > 0)
		value = MINIMUM_EE_CYCLE_RATE + index - static_cast<int>(m_dialog->isPerGameSettings());
	m_dialog->setIntSettingValue("EmuCore/Speedhacks", "EECycleRate", value);
});

which does -3 + index of the option selected (with -3 being the maximum underclock)

then in scaleblockcycles_calculation() you will need a special case to bring the value down to the one you want, because it will be treating it as 3 right now.

I still don't understand, could you help me?

@refractionpcsx2
Copy link
Member

Dude I'm not going to help other people do work, otherwise I'd just do it myself and I'm trying to retire here.

@crashGG crashGG closed this Feb 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants