ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.13k stars 2.25k forks source link

Wrong BPM based SV rendering in mania #29661

Open TheEZIC opened 1 month ago

TheEZIC commented 1 month ago

Type

Game behaviour

Bug description

SV changes simulated using BPM changes are not displayed correctly

Screenshots or videos

Beatmap

https://osu.ppy.sh/beatmapsets/551469#mania/1168087

Beatmap timing point where this issue happens

00:40:915

stable

https://github.com/user-attachments/assets/6f0a9a85-12a3-42d6-9e37-fadc47194572

lazer

https://github.com/user-attachments/assets/09b5ecd7-3b56-46da-870e-97d091376278

Version

2024.817.0

Logs

compressed-logs.zip

bdach commented 6 days ago

This is happening because the map is (ab)using timing points in excess of 10,000 BPM to implement the "note freezing" effect. lazer parsing caps timing points to 10,000 BPM max which is nullifying the effects here.

Can be corroborated with

diff --git a/osu.Game/Beatmaps/ControlPoints/TimingControlPoint.cs b/osu.Game/Beatmaps/ControlPoints/TimingControlPoint.cs
index db1d440f18..096a0328e4 100644
--- a/osu.Game/Beatmaps/ControlPoints/TimingControlPoint.cs
+++ b/osu.Game/Beatmaps/ControlPoints/TimingControlPoint.cs
@@ -64,7 +64,7 @@ public bool OmitFirstBarLine
         /// </summary>
         public readonly BindableDouble BeatLengthBindable = new BindableDouble(DEFAULT_BEAT_LENGTH)
         {
-            MinValue = 6,
+            MinValue = 1,
             MaxValue = 60000
         };

I think this is a wontfix @ppy/team-client?

TheEZIC commented 6 days ago

I think this should be fixed because a lot of tournament and loved SV maps uses this 'feature'. If it's one line fix so i see no problem to fix that

peppy commented 4 days ago

I think this is a wontfix @ppy/team-client?

If making the proposed change does fix this without breaking things too bad, I'd probably just go with it for now.

bdach commented 4 days ago

To be clear: The change fixes this particular instance of the bug. If someone chooses to use a BPM of above 60,000, the bug will show again.

Do you still consider this one liner as acceptable in light of that?