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
[RFC] SI: Base SI sampling on VSync & horiz lines #3457
Conversation
| @@ -158,6 +161,7 @@ void Preset(bool _bNTSC) | |||
|
|
|||
| s_ticks_last_line_start = 0; | |||
| s_half_line_count = 1; | |||
| s_half_line_of_next_si_poll = (7 * 2) - 1; // first results at start of 7th line | |||
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
7bca858
to
9a2a46e
Compare
|
Fixes https://bugs.dolphin-emu.org/issues/960 Question: Would this only affect GC stuff, or would it affect Wiimotes too? |
|
This is probably going to desync all the TASes, but oh well, worth it if it's more accurate. I'm not a big fan of calling SI from VI but OTOH it makes sense here. If Netplay still works with this, LGTM. |
|
On the TAS point of view, we expect TASes to desync on newer versions of Dolphin, which is fine. |
|
@delroth: Tested a full netplay session, no desyncs. Movie recording can be fixed later if it's broken! |
[RFC] SI: Base SI sampling on VSync & horiz lines
|
FifoCI detected that this change impacts graphical rendering. Here are the behavior differences detected by the system:
automated-fifoci-reporter |
The rate at which SI is polled is specified in terms of horizontal video lines (see SIPOLL at 0xCC006430). While dolphin tries to use this to calculate the interval between SI samplings, no attention is paid to sampling in the correct phase wrt vsync. This needs testing, and changes behaviour of movies and netplay - I'm not sure why they were special cased... see the removed function in SI.cpp "GetTicksToNextSIPoll".
This seems to address https://bugs.dolphin-emu.org/issues/960