1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-17 00:23:24 +08:00
Files
osu-lazer/osu.Game/Tests/Visual
T
Bartłomiej Dach 82b2a92894 Add test cases covering correct legacy replay playback with respect to hitwindow treatment
This continues on https://github.com/ppy/osu/pull/32770 via adding test
cases which cover treatment of hit windows in stable in osu!, taiko, and
mania. The test cases are exportable to beatmap `.osu` files and replay
`.osr` files for stable crosscheck by setting `ExportLocation` on the
test scene classes to a non-null path.

For the most part, osu! and taiko ground truth matches previous findings
- hit windows in those rulesets are floored to the nearest integer.
The real "star" of this diff is mania, because:

- The hit windows in mania depend on:
  - overall difficulty (as expected)
  - whether Score V2 is active
  - if Score V2 is not active, the hit windows also depend on whether
    the map was converted from another ruleset or not

- Regardless of all aforementioned factors, mania hitwindows are *not
  symmetrical*. Due to what *appears* to be a straight-up bug, it is
  *not possible to achieve a MEH / 50 hit result when hitting late*.
  There is specific code that coerces late hits beyond 100 hit window
  range to full misses:

     https://github.com/peppy/osu-stable-reference/blob/996648fba06baf4e7d2e0b248959399444017895/osu!/GameplayElements/HitObjectManagerMania.cs#L737-L751

Note that despite the fact that I'm PRing these test cases, none of this
is a promise that all of stable behaviours will be returning unchanged
when I PR something to actually do something about this and the other
issue of replay instability. This is just coverage, to be used for
awareness of what's still broken. The extent of how much stable is going
to be humored here going forward will be subject to negotiation.
82b2a92894 · 2025-04-15 13:22:06 +02:00
History
..
2024-11-28 20:41:44 +08:00
2023-06-24 01:00:03 +09:00
2022-11-27 00:00:27 +09:00
2023-06-24 01:00:03 +09:00
2024-07-30 17:08:56 -07:00
2023-06-24 01:00:03 +09:00