Open KevKjef opened 4 years ago
I can imagine why this is occurring, and it relates to stacking calculations in stable not using the correct ruleset. Lazer also thinks this is a 3.67* map, so these issues will be resolved server + pp-side when lazer's diffcalc is used.
This issue is probably caused by the multiple timing points with the same time, but in the "wrong order" of inherited and non-inherited points:
405,-100,4,2,1,65,0,0
405,315.7894736842,4,2,1,65,1,0
(and more).
Normally, non-inherited points come first, but only a small (~20) number of maps have time points in the reversed order.
Indeed, if I replace this logic https://github.com/ppy/osu/blob/a2829b4fc7fa7a79e6e884fc9a381a9592eb7aad/osu.Game/Beatmaps/Formats/LegacyBeatmapDecoder.cs#L459-L462 with just pendingControlPoints.Add(point);
, I get SR = 4.52 in lazer, matching stable. This logic is introduced in https://github.com/ppy/osu/pull/8815.
I don't think stable allows timing points to be placed in this manner, so it was likely done with external tools or text editing.
@smoogipoo how do you think we should solve this? I'm willing to fix the 20 odd maps if that makes more sense.
I'm also curious about the specific example you provided, which shows the inherited timing point having a -100
adjustment, meaning it shouldn't actually affect velocity at all. How does this affect star rating in the first place? Or are there other cases where hitobjects are mutated due to the ordering?
The images speak for themselves. The ranked difficulty shown in the top pick has a star rating of 5.53. Moving one circle in the editor and saving it causes the star rating to change to 3.67. Because of this, the difficulty gives too much PP, as the system calculates the PP for a 5.53 map instead of a 3.67 it is supposed to have.
This issue has occured before in catch the beat. It comes down to people uploading difficulties after editing the notepad file, or using other software (non osu-editor, e.g. a hitsound copier) to modify the beatmap.
I think there were 2 maps before this one, that also had the same issue but still got ranked. I think these got fixed by forcing a map update. There were also a couple of qualified maps which had this issue that didn't get ranked and fixed the problem with a quick disqualification.