-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
ConfigManager: Drop SkipIdle option. #3806
Conversation
@@ -119,7 +119,7 @@ void Jit64::lXXx(UGeckoInstruction inst) | |||
// ... maybe the throttle one already do that :p | |||
// TODO: We shouldn't use a debug read here. It should be possible to get | |||
// the following instructions out of the JIT state. | |||
if (SConfig::GetInstance().bSkipIdle && |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
@RisingFog people say to disable idle skipping for TASing. Is that not true any more? |
@JMC47 Idle skipping has some timing variances of a few cycles. So it must be consisent to sync on TAS, but it should not matter for syncing with the real hardware. |
@JMC47 I mainly turned it on because it was recommended, without questioning why. If removing the options is safe and deterministic, I don't see why we shouldn't remove it. |
Idle skipping is deterministic (proven by netplay) but... Is it deterministic with savestates? |
SkipIdle is completely deterministic and safe in single-core mode, but it has some funny interactions with dual-core mode; it works as a proxy for SyncOnSkipIdle, and also causes some CPU timing differences which might have unpredictable effects. That's not really an argument for keeping the option, but it might make sense to wait until after 5.0 (along with #3804). |
Oh yeah, tons of people turn off idle skipping because it's slower. Such as in Rogue Squadron 3 |
@magumagu Never ever in 5.0, of course. |
@JMC47 How much of a performance difference is there in Rogue Squadron 2 (or any other game that this affects)? I think removing this hack is likely worth it now that 5.0 has been released, unless it really has bad behaviors with Dual Core mode. |
@Fallcrest I don't want to drop the hack, neither idle skipping. I want to drop the option and to force enable idle skipping. |
Rebased. And I've dropped this very outdated comment. Ready to merge IMO |
200005e
to
40aa544
Compare
This option is safe + deterministic, so let's always enable it.
@@ -1432,7 +1426,7 @@ void SaveRecording(const std::string& filename) | |||
header.recordingStartTime = s_recordingStartTime; | |||
|
|||
header.bSaveConfig = true; | |||
header.bSkipIdle = s_bSkipIdle; | |||
header.bSkipIdle = true; |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
Could we replace the Idleskipping option in the menu with "Sync on IdleSkip?" |
Please reconsider in re-instating this option to Dolphin again since games like Resident Evil 0 depends on turning "Enable Idle Skipping" OFF which you can't do anymore. You could circumvent the crashes by choosing JITIL Recompiler in older builds but since it's gone in Dolphin too there is absolutely no way in making progress in Resident Evil 0 at all with newer builds (check this issue) A lot have happened and have been removed from Dolphin which is fine by me but when you have no other option but to stick with ancient builds just to get a game going that's where it stops to being fun for me. Thanks in advance! |
@Sigmavirus Absolutely no way? Are you sure that disabling sync on idle skip (which still is an option, albeit INI-only) doesn't help? |
@JosJuice I'm willing to test it out right now. |
It was added in 4.0-4837, so it's not especially new. |
OK, never seen that option before but I'll try it out as fast as I can because I have to start a new game and progress all the way to the point where you have to use the Panel opener on the train to trigger the cutscene where Dolphin always crashes. If it still crashes with this option and in case they aren't related, I hope you'll consider re-instating "Enable Idle Skipping" otherwise Resident Evil 0 is useless because it's not just crashing on the train but other places later on in the game as well. |
I have now tested it out with
in the GBZ.ini and with JIT Recompiler selected, still crashes the game at the exact same spot as it always have. It's all up to you if you want to listen to my plea, but as of right now I'll have to stay with 5.0-3318 where JITIL Recompiler still exists so I can bypass these crashes for just this game. Re-instating JITIL Recompiler is not an option I know, but "Enable Idle Skipping" might be? |
You may want to make an issue on the tracker for the RE0 issue. |
There is already one, and SigmaVirus included a link to it in their first comment on this PR. |
This option is safe + deterministic, so let's always enable it.
This change is![Reviewable](https://camo.githubusercontent.com/23b05f5fb48215c989e92cc44cf6512512d083132bd3daf689867c8d9d386888/68747470733a2f2f72657669657761626c652e696f2f7265766965775f627574746f6e2e737667)