Code Quality
- Update inspectcode to 2023.3.3 (#26956 by @smoogipoo)
- Adjust default min result of
SliderTailHit
, remove override (#26877 by @smoogipoo) - Rework
UserPanel
s to reduce container nesting (#26924 by @EVAST9919) - Use new LINQ Order{Descending} instead of OrderBy{Descending} when possible (#27095 by @turbedi)
- Improve exception logging of unobserved exceptions via
FireAndForget
(#27077 by @peppy) - Add note to never run release config to contributing guidelines (#27115 by @bdach)
- Refactor metadata lookup flows (#23822 by @bdach)
- Add inline documentation as to why classic mod is not ranked (#27176 by @peppy)
- Update IDE configurations to point at
net8.0
folders (#27186 by @FamousPig) - Update .NET version on readme (#27190 by @Joehuu)
- Update IDE configurations to point at
net8.0
folders (ppy/osu-framework#6179 by @FamousPig) - Add
[RequireStaticDelegate]
annotations (ppy/osu-framework#6174 by @Susko3)
Editor
Fix deselecting slider adding control points (#27056 by @kongehund)
Will no longer add control points if the selection has 2 or more objects.
Framework
Upgrade to .NET 8 and C# 12 (ppy/osu-framework#6169 by @smoogipoo)
Performance improvements across the board. Over 50% in some cases (song select is apparently much nicer now).
Smaller changes
- Update inspectcode to 2023.3.3 (ppy/osu-framework#6164 by @smoogipoo)
- Fix re-arrangeable lists not react on collection
Move
events (ppy/osu-framework#6165 by @Feodor0090) - Add readonly dictionary wrapper that removes enumerator alloc (ppy/osu-framework#6163 by @smoogipoo)
- Fix Waveform not disposing Stream (ppy/osu-framework#6152 by @hwsmm)
- Set UTF-8 console encoding on windows (ppy/osu-framework#6170 by @Susko3)
- Fix some .NET 8 CA1416 android inspections (ppy/osu-framework#6171 by @Susko3)
- Return
List
instead ofIEnumerable
inInputResampler
(ppy/osu-framework#6173 by @EVAST9919) - Ignore missing feedback api (ppy/osu-framework#6176 by @Feodor0090)
- Fix obsolete code in Android safe area handling by using AndroidX (ppy/osu-framework#6175 by @Susko3)
- Use new MD5/SHA.HashData(Stream) overload (ppy/osu-framework#6177 by @turbedi)
- Update veldrid package (ppy/osu-framework#6178 by @smoogipoo)
- Fix recent collection initialiser inspection (#27167 by @smoogipoo)
- Update framework (#27179 by @peppy)
Gameplay
Allow a few new mods and mod settings for pp (#26935 by @bdach)
The following mods and settings are now allowing PP gains:
- Mod "Accuracy Challenge".
- Mod "Blinds".
- Mod "No Scope".
- "Restart on fail" setting of Sudden Death & Perfect.
- "Adjust pitch" setting of Half Time / Double Time.
Show PP and rank changes in the toolbar (#27156 by @bdach)
Smaller changes
- Bump databased star rating versions (#27065 by @smoogipoo)
- Should fix some users that have had lazer installed for quite some time having incorrect SR values for some old beatmaps.
- Improve low volume detection (#26951 by @myQwil)
- Fix
WorkingBeatmapCache
caching beatmap in wrong state leading to crash (#27239 by @peppy)
Gameplay (osu!)
Fix relax mod not respecting tracking state of sliders when triggering actions (#26763 by @frenzibyte)
Create key-presses when watching osu!stable "Relax" replays (#27145 by @tsunyoku)
osu!stable does not record key presses onto replays with Relax, so attempting to watch them back in lazer didn't work historically.
Smaller changes
- Fix cursor ripples displaying on release positions in replays (#27200 by @frenzibyte)
Gameplay (osu!catch)
Never flip fruit on plate (#27165 by @frenzibyte)
Limit vertical visibility of osu!catch playfield to an aspect ratio of 4:3 (#27162 by @frenzibyte)
Gameplay (osu!mania)
Add progressive coverage for mania's Hidden and FadeIn mods (#27068 by @smoogipoo)
This restores progressive coverage that HD and FI had in osu!stable, and adds a new mod ManiaModCover
/ CO
which allows setting a custom cover.
Smaller changes
Gameplay (osu!taiko)
- Convert selected legacy skin sprites to grayscale (#27059 by @bdach)
- Fixes silly skins doing silly stuff they shouldn't.
Online
Give better visibility when the game is pending 2FA (#26920 by @peppy)
Add 2FA verification screen to registration flow (#26950 by @bdach)
Smaller changes
- Fix incorrect connection metrics tracking on instances pending shutdown (ppy/osu-server-spectator#214 by @bdach)
- Change type of some exceptions so they're logged (ppy/osu-server-spectator#216 by @smoogipoo)
- Log score uploader errors to sentry (ppy/osu-server-spectator#217 by @bdach)
- Fix selected room bindable being set to null regardless of the removed room (#27033 by @frenzibyte)
- Add datadog tracking of score uploader metrics (ppy/osu-server-spectator#218 by @bdach)
- Use staggered exponential backoff when retrying in
PersistentEndpointClientConnector
(#27067 by @bdach) - Populate
TotalScoreInfo
when convertingSoloScoreInfo
toScoreInfo
(#27069 by @bdach) - Add additional gameplay metadata to room score request (#27113 by @smoogipoo)
- Use more stringent checks when applying online metadata (#27143 by @bdach)
- Fixes cases where beatmaps are imported with incorrect/outdated metadata, leading to subsequent failures.
- Fix a few issues in metadata hub's disconnection requested flow (#27193 by @bdach)
- Add better submission failure messaging (#27180 by @bdach)
- Update packages (ppy/osu-server-spectator#219 by @peppy)
Performance
- Reduce allocation overhead in
Playfield
(#26940 by @EVAST9919) - Fix
DrawableManiaRuleset
performing skin lookup every frame (#26938 by @EVAST9919) - Fix multiplayer/playlists lounge screen disposing rooms synchronously (#27021 by @frenzibyte)
- Fix huge allocation overhead in
UnstableRateCounter
(#26976 by @EVAST9919) - Further reduce allocation overhead in
ScrollingHitObjectContainer
(#26863 by @EVAST9919) - Avoid closure allocations when applying hit object results (#26694 by @chandler14362)
- Replace linq usage in
Previous
andNext
onDifficultyHitObject
with more direct computation (#27117 by @tsunyoku) - Fix huge allocation overhead during beatmap texture creation in song-select screen (#27132 by @EVAST9919)
- Only compute flashlight in osu! difficulty calculations when required (#27116 by @tsunyoku)
- Reduce allocations during aggregate beatmap sorts in song-select screen (#27173 by @EVAST9919)
- Invalidate
GridContainer
only on DrawSize change (ppy/osu-framework#6180 by @EVAST9919) - Fix
DrawableLinkCompiler
allocations (#27199 by @EVAST9919) - Reduce allocations during beatmap selection (#27206 by @EVAST9919)
- Cache created judgement in
HitObject
(#27114 by @EVAST9919) - Use
SlimReadOnlyListWrapper
forKeyBindingContainer.PressedActions
(ppy/osu-framework#6185 by @EVAST9919)
Platform
Suggest to update only if the latest release is available for the current platform (#26930 by @Susko3)
We've had few releases lately where mobile isn't working / is crashing, so the mobile release was pulled. Unfortunately, the game would still send an update notification, leading to many people opening issues about the update not being available for their platform.
This fixes that.
Smaller changes
- Update windows icon metrics to match previous icon (#27184 by @peppy)
- Update iOS icon metrics to match previous icon (#27185 by @peppy)
Results
Fix results screen not handling F ranks properly (#26733 by @frenzibyte)
Song Select
Display which mods grant pp (#26934 by @bdach)
In mod select and in song select footer.
Add last played search filter in song select (#23129 by @Elvendir)
You can now search for played<30
for beatmaps played in the last 30 days.
Smaller changes
- Add aliases "author" and "mapper" for searching creator (#27112 by @Stoppedpuma)
- Fix star counter decrease animation being delayed when current is over displayed star count (#27205 by @Joehuu)
- Consider case sensitivity when sorting beatmaps in song select (#26895 by @vmfunc)
UI
Fix edit mod preset popover buttons overflowing on some languages (#26734 by @Joehuu)
Before | After |
---|---|
Fix hit accuracy heatmap points being offset (#27062 by @smoogipoo)
Before | After |
---|---|
Truncate long dropdown menu item text and show tooltip (#27178 by @Joehuu)
Before | After |
---|---|
Fix logo tracking container being behind by one frame (#27224 by @peppy)
This was especially visible at the main menu when running in single thread mode.
Before | After |
---|---|
Smaller changes
- Localise remaining strings in settings section (#27015 by @Loreos7)
- Localise remaining strings on import screen of the first-run setup (#26942 by @Loreos7)
- Localise update-related process strings (#27054 by @Loreos7)
- Update localisations (ppy/osu-resources#309 by @peppy)
- Hide ruleset selector when on kudosu ranking (#27070 by @Joehuu)
- Fix profile current location and interests icons not matching web (#27106 by @Joehuu)
- Add support for displaying "unranked PP" placeholder (#27053 by @frenzibyte)
- Add support for displaying "mapper" badge in comment section (#27164 by @frenzibyte)
- Ignore soft-deleted beatmaps when trying to present from notification (#27163 by @frenzibyte)
- Disable nested input managers on edited screen when skin editor is open (#27238 by @bdach)
- Generalise markdown code block implementation to support indented style (ppy/osu-framework#6182 by @frenzibyte)
- Ensure audio filters can't be attached before load (or post-disposal) (#27226 by @peppy)