Follow points don't respect audio device offset
See original GitHub issueBasically if you change your global audio offset to like 200ms all follow points between circles won’t be delayed with the circles.
I managed to find out that I need to add the offset (eg 200ms offset -> + 200
) to these two variables (or just add to starttime, but I think those make a bit more sense): https://github.com/ppy/osu/blob/master/osu.Game.Rulesets.Osu/Objects/Drawables/Connections/FollowPointRenderer.cs#L84-L85
However it seems like getting the raw settings value is not used by anything, so I wouldn’t use that. I managed to find out that Player.cs creates an offset clock wrapping some other clock which presumably does something, but there doesn’t seem to be any way to get that instance as it has been recently refactored into a local variable and just passed via a constructor to other fields. I couldn’t find any way to pass that Clock to the OsuPlayfield.cs which creates the FollowPointRenderer
from the Player.cs without major refactoring. There are several classes depending on OsuPlayfield
, so changing the default constructor would not be an option.
I just added a constant + 200
for my game there because it resembles my settings, maybe this will help someone else who has a problem with the follow points.
TLDR: if you use an audio offset, edit these two lines linked above and add your offset to them for nice follow points.
Issue Analytics
- State:
- Created 6 years ago
- Comments:16 (16 by maintainers)
Top GitHub Comments
ok update: I managed to finally make it work by doing this, so if you are on archlinux this might help you:
rm -rf ~/.nuget
,nuget restore
export TERM=xterm
before build in case you get weird console magic number mismatch errorsmsbuild /p:Configuration=Release
ormsbuild /p:Configuration=Debug
mono osu.Desktop/bin/Release/net461/osu!.exe
hm I guess this is rather a new design decision rather than there being an offset, it’s not a big gameplay issue, but for me it felt a lot better if I added a bit of offset to the follow points using that code up there.