ppy / osu-stable-issues

Report critical osu-stable issues here
59 stars 11 forks source link

Breaking a long note in mania doesn't always give a 50 #1219

Closed RubiksImplosion closed 4 months ago

RubiksImplosion commented 4 months ago

It is sometimes possible to get a score that has a combo break but isn't accounted for. A 50 gets correctly assigned to the replay when viewing it on Lazer.

Example: The following map should have a max combo of about 1650, but the provided replay only gets a max combo of 965 despite no clear evidence by the score alone it has a miss/combo break.

Video of miss: https://github.com/ppy/osu-stable-issues/assets/39072130/5960d646-8d23-454d-9b93-7d5ba8d26847

Screenshot of score in-game screenshot050

Replay (remove .zip extension, added so it can be uploaded to github) RubiksImplosion - xi - Wish upon Twin Stars [Hard] (2024-02-07) OsuMania.osr.zip

Link to score on website: https://osu.ppy.sh/scores/2302349520

This bug is quite rare as I have only encountered it a handful of times during my 1000+ hours playing mania, and as far as I'm aware it isn't being tracked anywhere.

smoogipoo commented 4 months ago

In ScoreV1 it's not supposed to give a 50, it caps to a 200. ScoreV2 (which is what lazer uses), caps to 50.

RubiksImplosion commented 3 months ago

Sorry to bring this up again, but this has been sitting in the back of my head for a while and I would like some clarification.

Is the behavior described above where a play with a combo break can still be considered "perfect" intentional?

Thanks.

smoogipoo commented 3 months ago

It displaying as "perfect" is an issue that will be addressed by https://github.com/ppy/osu/pull/27668. Keep in mind that score will continue to display as perfect and the above fix will only affect future scores.

RubiksImplosion commented 3 months ago

In ScoreV1 it's not supposed to give a 50, it caps to a 200

This appears to only be true to holding an unbroken long note past its intended release point, not for releasing long notes early which is the the problem in this issue.

In ScoreV1, If a long note head is pressed and during the body the key is released and repressed, a 50 will be awarded once the long note is over. This is the expected behavior I was referring to when I titled the issue. If the body is not repressed, a miss will be awarded instead.

However, if the long note head is double pressed, it is possible to get a 200, 100, or miss judgement depending how well you release the long note. This is the unintentional behavior I was trying to describe in my issue. A 50 judgement might be possible with a double pressed head, but I wasn't able to do it during my testing. I also wasn't able to achieve a 300 or 320 judgement after having double pressed the head.

This double press behavior is what is present in the replay I provided in the issue.

Here are example replays of the all the behaviors described above on a dummy map I created long note break examples.zip

smoogipoo commented 3 months ago

Right, I understand the logic you're referring to.

Basically in SV1 what matters is how long you've held for, from the time of your latest press. So you can double press prior to the start time of the hold, and hold all the way through, and although you'll have a hold break (capping you at 200) you'll still technically have "held" the hold note for its entire duration.

SV2, in osu!stable, already doesn't care about that, and it's safe to say that none of that logic will be returning to lazer.