Skip to content

[pull] master from ppy:master #4

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

Open
wants to merge 10,000 commits into
base: master
Choose a base branch
from
Open

[pull] master from ppy:master #4

wants to merge 10,000 commits into from

Conversation

pull[bot]
Copy link

@pull pull bot commented Feb 8, 2022

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added the ⤵️ pull label Feb 8, 2022
frenzibyte and others added 29 commits April 30, 2025 05:03
I was avoiding using reflection to save on overheads, but it's probably
not worth it.
Fix play count statistic hiding on local difficulties instead of showing `-`
…onents-changes

Fixes and improvements to existing sheared components
I'm not sure why this is a thing but let's not do it without proper
rationale.
…rboard

Add song select beatmap leaderboard display
Remove pre-rate rounding in BPM display
Also hides ranking/failtime wedges on locally created difficulties
Fix osu!catch getting incorrectly upscaled on portrait orientation
…meplay-leaderboard

Use actual score positions in gameplay leaderboard
Improve visibility of setting adjustments on mod icons
…diff-handling

Fix incorrect handling of beatmap with local diffs in metadata wedge
peppy and others added 30 commits May 15, 2025 18:37
Fix back button not displaying when transitioning to non-footer screen
This fixes the hard cut that was previously very jarring.
Previously, carousel panels would appear immediately at their required Y
position. This didn't look great when they appear with other panels
surrounding them.

Now they will spawn in underneath the nearest item before them, making
the animation feel much more correct.
At very high scroll speeds (using pageup/pagedown) you would see a weird
animation of panels appearing. This removes the animation for that edge
case.
…mod button

Addresses #28301.

No sound effects on click because right click handling is weird. I would
have liked to call `DeselectAll` on the mod select overlay, but this
doesn't work unless it's displayed due to queued operation.
Closes #22086

While this *is* a case of aspire-tier breakage, I hesitate to dismiss it
as wontfix, because the fix is somewhat easy, and probably results in
better accuracy across the board.

The issue in question here manifests when there is a significant amount
of lead-in time, like what the beatmap linked in the aforementioned
issue (https://osu.ppy.sh/beatmapsets/948643#osu/1981090) does.

Both stable and lazer record replay frames using absolute timestamps,
*but* the legacy replay format after the first frame uses time *deltas*,
i.e. amounts of time elapsed since the previous frame. This means that
the decoding process of the replay has to reconstruct absolute timestamps
by doing cumulative summation starting from the first frame.

When the very first frame has a timestamp that is very large in
magnitude (say, like the negative 2 billion that the beatmap in question
uses), this will lead to error if the cumulative summation is using
floating point numbers, because it will be adding a small magnitude
frame delta to a large magnitude cumulative absolute time. Which means
that sometimes adding the frame delta to the cumulative time *will not
change the cumulative time*, leading to the loss of time and thus replay
de-synchronisation.

Knowing that the legacy replay format only deals in integral time
values, however, this can be circumvented by just using a large enough
integral number type for the cumulative time tracking instead. I think
`long` in this case can be safely used "large enough" for our purposes:

	> Console.WriteLine(long.MaxValue);
	9223372036854775807

	9 223 372 036 854 775 807 ms equals 292 277 024,6269277149 years
…lick

SongSelectV2: Add support for deselecting all mods by right clicking mod button
Fix multiple inconsistencies in beatmap carousel animations
SongSelectV2: Open results screen when clicking leaderboard scores
Fix possible replay playback inaccuracy with very large lead-in time
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.

7 participants