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
Fix timing regression affecting ES_LAUNCH. #3811
Conversation
Scheduling an event for zero cycles in the future actually means zero cycles with new timing changes, but the code for IPC ACKs was depending on it meaning "soon". Fixes dolphin-emu#9511. I'm not at all confident this is actually right... but it seems to work.
|
Yeah, this bug probably pops up in other places too. |
|
Fixes the issue. This is why we merged that early. There are probably tons of "soon" that are going to be instant now and break things. |
|
FWIW there are a bunch more |
|
Or we just change this function to schedule for the next block. Calling the event handler directly doesn't need a CoreTiming wrapper :/ |
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
No, because before #3800 the interrupts were being delayed to the next slice, which could be anywhere from 1 to 20,000 cycles depending on what other events were scheduled.
Note: Numbers have been simplified. The size of a block is technically unlimited, but generally they aren't that large. |
|
Can this please be reviewed. We cannot leave ES_Launch broken for 5.0 |
|
Oh, I forgot to say LGTM on this. |
|
Reviewed 1 of 1 files at r1. Comments from Reviewable |
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Fixes issue 8328. As far as I know, this works the same way as console. Games will generally react to the reset button the same way as Home->Reset, so this is only marginally useful, but possibly nice to have in certain situations. Note that if you try to use Reset, and you're running a WAD which isn't installed, it will likely crash because WADs respond to the reset button by launching themselves with ES_LAUNCH. It might be a good idea to add some sort of hack to make this work as expected. It would be easy to extend this to support the power button, but it's unclear how exactly that should be exposed in the UI. See also issue 8979. Needs to be rebased once PR dolphin-emu#3811 is merged.
Scheduling an event for zero cycles in the future actually means zero
cycles with new timing changes, but the code for IPC ACKs was depending on
it meaning "soon".
Fixes #9511.
I'm not at all confident this is actually right... but it seems to work.
This change is