ppy / osu

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

osu!mania "Invert" mod creates unwanted jacks #25212

Open longnguyen2004 opened 9 months ago

longnguyen2004 commented 9 months ago

Type

Game behaviour

Bug description

Was messing around with mods and stumbled across this. Map link: https://osu.ppy.sh/beatmapsets/330438#mania/1174765 (4K Extreme diff)

Screenshots or videos

With Invert: image

Without Invert: image

Version

2023.1008.1

Logs

Probably not needed

longnguyen2004 commented 9 months ago

https://github.com/ppy/osu/blob/d0599496bdd76fca2f81b8865a19f77dff70d156/osu.Game.Rulesets.Mania/Mods/ManiaModInvert.cs#L42-L48

Seems like the LN tail is also being processed here. Since we disabled tail conversion for Hold Off in https://github.com/ppy/osu/pull/24552, we might as well do the same for Invert (and also extends the tail to the next note)

DaiterGG commented 4 months ago

Seems like the LN tail is also being processed here. Since we disabled tail conversion for Hold Off in #24552, we might as well do the same for Invert (and also extends the tail to the next note)

If I understand correctly, the result would be the same as: Hold Off, then current version of Inverse. Alternatively, or as an option, long notes could be converted into gaps of free space. So LN-rich maps will convert into more complex finger control maps, and full LN maps into simple maps without overlap.  Although ln start to release of the previous note, release to ln start of the next one could feels weird since releases in original map may not be attached to any sound.

longnguyen2004 commented 4 months ago

Or we can go with a middle ground: Keep existing LN unchanged, and turn regular notes to LN that extends until the next note. I don't think the community will accept an Invert mod that removes LN.

DaiterGG commented 4 months ago

Good idea, It's implementation definitely should depend on what people think they want to use. I might ask it here and there. about options tho, my version is taking 'Invert' literally, so may be good to leave it as a checkbox

DaiterGG commented 4 months ago

actually I don't get it. What goes after the end of original LN?

Or we can go with a middle ground: Keep existing LN unchanged, and turn regular notes to LN that extends until the next note.