ppy / osu

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

Difficulty calculator outputs negative AR/OD for some beatmaps #18809

Closed smoogipoo closed 2 years ago

smoogipoo commented 2 years ago

Type

Other

Bug description

This looks wrong...

$ dotnet run -- difficulty 3229075 -m ht -m ez

ruleset: osu

╔══════════════════════════════════════════════════════════════════════════╤═══════════╤═════════╤══════════════╤════════════════╤═════════════════════╤═════════════╤═════════════╤══════════════════╗
║beatmap                                                                   │star rating│max combo│aim difficulty│speed difficulty│flashlight difficulty│slider factor│approach rate│overall difficulty║
╟──────────────────────────────────────────────────────────────────────────┼───────────┼─────────┼──────────────┼────────────────┼─────────────────────┼─────────────┼─────────────┼──────────────────╢
║3229075 - Ito Kanako - Skyclad no Kansokusha (Short Ver.) (muya-) [Normal]│       1.61│   298.00│          0.80│            0.75│                 0.23│         0.99│        -1.00│             -1.78║
╚══════════════════════════════════════════════════════════════════════════╧═══════════╧═════════╧══════════════╧════════════════╧═════════════════════╧═════════════╧═════════════╧══════════════════╝

Screenshots or videos

No response

Version

77023d8179e28453b4f74659224ef314f9760d33

Logs

-

peppy commented 2 years ago

This seems to calculate and display correctly when downloaded from web. The .osu file also looks normal.

Could it potentially be something with the copy you downloaded being corrupt?

redactdead commented 2 years ago

I believe the values are correct. Like how DT on AR10 produces the effective equivalent of AR11, HT on AR3 produces the effective equivalent of AR-1. Using the formulas for pre-empt in ms from AR I made this chart: https://www.desmos.com/calculator/3hslwqleki

smoogipoo commented 2 years ago

Yeah I suppose it's correct. Kind of weird though because negative values aren't technically supported and would lead to an increase of AR instead.

Just kinda need to be cautious of that if it's ever used in such a context.