ppy / osu-stable-issues

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

Large global offset causes extra combo #173

Open Magnus-Cosmos opened 5 years ago

Magnus-Cosmos commented 5 years ago

If I remember correctly, there was a fix made for this (which is supposed auto-fail plays with this bug), but on some maps, it's still possible to gain extra combo from a large offset: https://streamable.com/4oqpl

Beatmap: https://osu.ppy.sh/beatmapsets/420765#osu/942001 (https://osu.ppy.sh/osu/942001) Replay file: https://mxcosmos.s-ul.eu/durwfvME

peppy commented 4 years ago

Likely related to https://github.com/ppy/osu-stable-issues/issues/3.

Magnus-Cosmos commented 3 years ago

I looked into this a bit more and I believe this extra combo bug only occurs on maps with a spinner at the end. When using a large negative universal offset, the game rewinds the map at the end (this can be seen in the replay data of extra combo replays, where there is a frame with a large negative frametime (e.g. on the replay linked above there is a -297ms frame near the end): image The issue is when the game rewinds the map to before the spinner ends, e.g. in the above replay, the spinner ends at 36100ms, however in the replay, the game rewinds to 36040ms. The spinner is disarmed when this happens allowing the player to hit it again (unsure of why the disarming is necessary here), resulting in an extra hit (and extra combo).

The spinner being at the end is also the reason why these plays are able to submit (or not auto-fail). As shown in the replay above, the game skips to 36337ms, which completes the spinner therefore all objects have been hit. This allows the game to pass the check where total notes hit == total hit objects, which then allows the score to submit, even though another hit happens after the check.

There's two ways to fix/prevent this bug, either preventing the spinner from getting hit twice (i.e. don't disarm the spinner before its end time), or changing when the check is for total notes hit == total hit objects to prevent the bugged score from submitting. Another fix would be to resolve #3 (changing how offsets work so they don't cause a sudden jump in time), but I figure that would take a lot more effort in comparison.

peppy commented 3 years ago

It's safe to say that #3 will not happen in osu-stable.

Are you bringing this up because this has happened in the wild recently? If so, can you please include links to scores which exhibit this behaviour?

Magnus-Cosmos commented 3 years ago

Was recently reminded about this due to someone submitting a score on a 2B autofail map, got me thinking about why offset/combo bugged scores were able to submit so I decided to look into it.

Also not particularly recently, but these bugged scores do happen every once in a while, e.g. https://osu.ppy.sh/scores/osu/3661007864 https://osu.ppy.sh/scores/osu/3650614884 https://osu.ppy.sh/scores/osu/3431581668 https://osu.ppy.sh/scores/osu/3622152218 https://osu.ppy.sh/scores/osu/3540931665* These were only noticed because they are up high on leaderboards, so there are probably more that are not as visible. It's not an extremely pressing issue but it would be nice to have it fixed if possible (same for #174, probably the last remaining osu-stable score bugs that can feasibly be fixed).

*from restricted users (replays are still downloadable)