Releases: ppy/osu
2023.123.0
Hotfix release for major release 2023.121.0.
Comments
Fix comment editor text boxes not having sound feedback (#22337 by @Joehuu)
Gameplay
Fix skin fail sound continuing to play after leaving gameplay (#22339 by @shinobu-uwu)
Gameplay (osu!)
Fix spinners potentially displaying incorrect SPM numbers (#22302 by @ekrctb)
Reliability
Fix occasional crash when opening the skin layout editor on a default skin (#22330 by @bdach)
Testing
- Fix test browsers on longer working after framework update (#22315 by @frenzibyte)
UI
Add modes text to groups tooltip (#22340 by @EXtremeExploit)
UX
New Contributors
- @shinobu-uwu made their first contribution in #22339
- @EXtremeExploit made their first contribution in #22340
Full Changelog: 2023.121.0...2023.123.0
2023.121.0
Jesus this is another big one. That's what happens when there's 3 weeks between releases.
Beatmap Listing
Link beatmap set genre and language to listing filters (#21727 by @Joehuu)
osu._K0Is7oOOku.mp4
Add ability to view converted beatmaps on beatmap set overlay (#22206 by @Joehuu)
Smaller changes
- Fix
BeatmapSetOverlay
not showing a pending request after logging in (#22122 by @Stedoss) - Fix lookup type being incorrect when fetching beatmap set (#22149 by @Joehuu)
Code Quality
- Enable NRT in user profile overlay (#21991 by @bdach)
- Remove #nullable-disable from carousel and related classes (#22078 by @mk56-spn)
- Decouple user profile overlay from
APIUser
model (#22005 by @bdach) - Enable nullability for editor components (#22169 by @Feodor0090)
- NRT pass in native
Windows
namespace (ppy/osu-framework#5624 by @Susko3) - Disallow using
AddInternal
in game class (ppy/osu-framework#5622 by @frenzibyte) - Enable nullability for setup, design and timing editor screens (#22194 by @Feodor0090)
- Remove #nullable disable from osu.Game.Rulesets.Catch (#22218 by @ekrctb)
- Move
IconGroup
out ofosu.Framework.Platform.Windows.Native
namespace and annotate withSupportedOSPlatformAttribute
(ppy/osu-framework#5625 by @Susko3) - Refactor
LevelBadge
to useLevelInfo
(#22241 by @stanriders) - Enable NRT annotations in
SongSelect
classes (#22174 by @mk56-spn) - Cache
IFrameStableClock
inPlayer
for easier access (#22273 by @peppy)
Database
Add hard link support for Linux & macOS (#21886 by @BlauFx)
Smaller changes
- Improve missing beatmap failure logging on score import (#22105 by @frenzibyte)
- Append date to score export filename (#21739 by @integerrr)
Editor
Fix editor exporting beatmap combo colours in wrong order (#22018 by @frenzibyte)
Stable reads combo colours starting from Combo1
, meanwhile lazer is exporting the first combo colour as Combo0
.
Fix waveform not updating when changing the track (#21754 by @Feodor0090)
Add ability to set preview time in editor (#21650 by @cdwcgt)
Fix difficulty creation flow failing for some ruleset combinations (#22203 by @bdach)
Smaller changes
- Refresh background on file change in editor (#22049 by @Feodor0090)
- Fix
WaveformComparisonDisplay
not taking into account start time of control points (#22047 by @Feodor0090) - Add segment end completions list to SliderPath (#21559 by @OliBomby)
- This makes it possible to know at which points, segments of the sliderpath start/end.
- Show distance snap for first juice stream object (#21522 by @Mogiiii)
- Forbid negative time snap in editor (#22147 by @Feodor0090)
Framework
- Disable 1px width hack when using Direct3D 11 (ppy/osu-framework#5623 by @Susko3)
Gameplay
Add new display modes for accuracy counter (#21945 by @cdwcgt)
- Increase display mode will show the accuracy that will grow from 0% (ACHIEVEMENT(+) in maimai)
- Decrease display mode will show the accuracy that will decrement from 100% (ACHIEVEMENT(-) in maimai)
2022-12-30_21-01-00_x264.mp4
Can be changed in the skin layout editor.
Add the ability to toggle the main bar component of BarHitErrorMeter
(#22103 by @mk56-spn)
2022-12-16.16-59-46.mp4
Add dynamic BPM counter to SkinEditor (#21519 by @mk56-spn)
2022-12-05.08-34-21.mp4
Can be added in the skin layout editor.
Fix skin fail sound not correctly playing (#22133 by @peppy)
Add a judgement counter to skin components (#21620 by @mk56-spn)
judgement.mp4
Can be added in the skin layout editor.
Add "argon" variant of song progress display (#22144 by @ItsShamed)
osu._RJ6xXSiZSx.mp4
Smaller changes
- Fix gameplay leaderboard showing "-" on non-tracked scores (#22043 by @frenzibyte)
- Non-tracked scores have guaranteed positions. Once user reaches position 50, the score below it is guaranteed to be 51 (not sure about scores below number 50 that have equal totals though, out of scope probably).
- Allow pause overlay close with pause gameplay action (#22079 by @Joehuu)
Gameplay (osu!)
Tint "argon" slider ball with combo colour (#22026 by @frenzibyte)
CleanShot.2023-01-04.at.16.15.45.mp4
Fix kiai flash opacity on legacy skins being too intense (#22136 by @peppy)
Add basic multi-touch support for osu! ruleset (#22233 by @peppy)
Note that this is a first step, which only does the following:
- Adds the ability to have two fingers on screen at the same time (will trigger
Right
action for the second) - Only tracks positional input on the most recent touch, reducing most cases of cursor "jitter" when there are two fingers on the screen
This does NOT:
- Allow tapping away from hitobjects while tracking gameplay with another finger.
The reason for doing this as a first step is to create a foundation to build on, as the remaining feature is a bit more complex and I want to make sure the basics are in first. I have two different methods of implementing the latter, will see which works best in the near future.
Fix spinners potentially displaying incorrect SPM numbers (#22302 by @ekrctb)
Smaller changes
Gameplay (osu!catch)
- Fix catcher not moving when fully hidden with "No Scope" mod (#22019 by @frenzibyte)
- Went with the path of least resistance here. Alternative way would be moving input handling from
CatcherArea
toCatchPlayfield
, but I'm not willing to take on the risk of doing that just to fix a bug in the mod.
- Went with the path of least resistance here. Alternative way would be moving input handling from
Gameplay (osu!mania)
- Remove mania hp drain (#22129 by @smoogipoo)
- Add mania hidden & FadeIn mod configuration (#21725 by @Mogiiii)
- Adds slider to configure how much of the screen the notes should be hidden for. Also adds
TestSceneManiaModHidden
with test cases at min, max, and default values.
- Adds slider to configure how much of the screen the notes should be hidden for. Also adds
Gameplay (osu!taiko)
Allow aspect ratios smaller than the default in taiko (#21883 by @sw1tchbl4d3r)
With the release of the lazer subserver there's been an influx of people trying it out, and one of the biggest concerns for taiko players is that the 4:3 aspect ratio isn't supported in lazer without the classic mod.
This was most likely done to prevent aspect ratio exploits, as in ultra wide resolutions, to see more notes or see them for longer. To prevent exploits but still please 4:3 players, this change allows aspect ratios below 16:9, and only locks wider aspect ratios.
Input
Disable touchscreen controls responding to mouse in scrolling rulesets (#21638 by @Mogiiii)
Touchscreen controls in scrolling rulests will no longer respond to mouse input. This prevents them from showing when they aren't expected to, such as on devices without a touchscreen.
This also means that any touch devices which emulate mouse events instead of correctly reporting touch events will no longer work properly. We'll see how this goes.
Smaller changes
- Fix default volume control keys not working when chat textbox is focused (#22016 by @peppy)
- Fix osu! logo not being draggable on player loader (#22052 by @Joehuu)
- Fix game overlays not blocking scroll properly (#22114 by @frenzibyte)
- Fix mute button not blocking outside overlay closing presses (#22168 by @Joehuu)
Localisation
- Update translations (ppy/osu-resources#240 by @peppy)
- Localise some notifications (#22188 by @Feodor0090)
- Localise ruleset settings section (#22225 by @Feodor0090)
- Localise most visible parts of editor (#22208 by @Feodor0090)
- Localise skin editor (#22236 by @Feodor0090)
- Localise toolbar home button and ruleset description tooltips (#20709 by @Domilz)
Online
Improve reliability of solo statistics updates at results screen (#21871 by @bdach)
Smaller changes
- Fix friends list duplicating after connection failure (#22056 by @frenzibyte)
- Fix retry loop for channel initialisation resulting in request pile-up (#22085 by @peppy)
- Add support for redirection to website during account creation process (#22172 by @peppy)
- There may be times when in-client registration is disabled for one reason or another. This allows the client to be aware of this and redirect the user to the website to complete account creation.
osu.2023-01-13.at.06.55.14.mp4
Note that the error message osu-web side has been improved since the video, but due to apt
failures on CI I'm not going to wait to reshoot it.
- Integrate comment editor into comments view (#22193 by @Feodor0090)
- Allows to post top-level comments.
Overlays
Add ability to leave replies to comments (#22283 by @Feodor0090)
Smaller changes
- Fix incorrect domain root being used ...
2022.1228.0
Thanks for following along! This is a tagged release (2022.1228.0). For more information check out the osu! changelog page and dev blog.
Code Quality
- Use generic Enum and CreateDelegate methods (ppy/osu-framework#5613 by @turbedi)
- Use StringSplitOptions.TrimEntries in string.Split() when possible (#21809 by @turbedi)
Online
Fix osu.ppy.sh
links no longer opening in-game (#21854 by @peppy)
Addresses #21838.
Improve reliability of solo statistics watcher (#21871 by @bdach)
Results
Fix incorrect accuracy display on overall ranking view (#21819 by @bdach)
Tooling
Fix android project not getting correct versioning information (#21878 by @bdach)
Allows us to release android builds again!
UX
- Add keywords to ease search of "first object visibility" setting (#21879 by @frenzibyte)
Full Changelog: 2022.1227.0...2022.1228.0
2022.1227.0
Thanks for following along! This is a tagged release (2022.1227.0). For more information check out the osu! changelog page and dev blog.
Mobile releases will come later after some fixes. The android APK is from the previous release so new users still have something to download.
Beatmap Listing
Turn on featured artist filter by default and add disclaimer when toggling for the first time (#21646 by @peppy)
Another step in the direction of promoting featured artist beatmaps and providing new users with better directed access to licenced content. I hope the overhead of clicking through the dialog will not be too bad once per session, but depending on feedback we can consider adding a "don't show again" or similar.
This is a personal requirement for pushing osu! out to a new audience (aka mobile). We've made huge progress with the featured artist project and I think making it the default visibility is the right next step.
osu.2022-12-15.at.09.47.14.mp4
Code Quality
- Allow keeping stream open after encoding scores (#21627 by @smoogipoo)
- Fix SDL error on startup caused by setting min/max size before window creation (ppy/osu-framework#5584 by @Susko3)
- Fix wrong paths to macOS log folder in docs (#21667 by @bdach)
- Remove unnecessary
yield return
fromgetSDLDisplays()
and log errors (ppy/osu-framework#5602 by @Susko3) - Use new ArgumentNullException.ThrowIfNull throw-helper API (ppy/osu-framework#5605 by @turbedi)
- Use new ArgumentNullException.ThrowIfNull throw-helper API (#21763 by @turbedi)
- Fix parameters with the same default value inspection (#21792 by @Joehuu)
- Remove obsoleted "ForDifficultyRating" method (#21800 by @mk56-spn)
- Use generic Enum methods (#21802 by @turbedi)
Database
Allow imports from stable on windows to not use extra disk space (#21628 by @peppy)
A common user request is to "make lazer share a beatmaps directory with stable". This finally realises that goal when both games are on the same drive, using "hard links". You can find more details about how this works at the explanatory wiki page.
Editor
- Fix track changes not updating initial timeline zoom correctly (#21766 by @frenzibyte)
Framework
- Fix WhitePixel texture rectangle doesn't respect provided area (ppy/osu-framework#5577 by @EVAST9919)
- Bring Android framework to .NET 6 (ppy/osu-framework#5080 by @huoyaoyuan)
- Update SDL2 (ppy/osu-framework#5579 by @peppy)
- Fix one more case of using AutoGen's
ffmpeg
class for constants (ppy/osu-framework#5580 by @frenzibyte) - Guard against attempting to call
OpenUrlExternally
with non-http content (ppy/osu-framework#5574 by @peppy) - Add more logging to
SDL2DesktopWindow
(ppy/osu-framework#5585 by @Susko3) - Add bare-minimum Veldrid renderer implementation (ppy/osu-framework#5483 by @frenzibyte)
- Fix some issues with Veldrid/Vulkan on Linux (ppy/osu-framework#5587 by @smoogipoo)
- Fix osuTK graphics surface causing mobile platforms to crash (ppy/osu-framework#5591 by @frenzibyte)
- Fix bypassing front-to-back not actually disabling depth test (ppy/osu-framework#5601 by @frenzibyte)
- Avoid performing GL occlusion queries on Veldrid (ppy/osu-framework#5600 by @frenzibyte)
- Implement Veldrid vertex buffers (ppy/osu-framework#5595 by @frenzibyte)
- Update framework (#21629 by @peppy)
- Update framework (again) and remove some no-longer required workarounds (#21711 by @peppy)
- Simplify
TriangleBorder
shader (ppy/osu-resources#237 by @EVAST9919) - Don't post notifications from custom log targets (#21760 by @Flutterish)
- Remove Roslyn 3.11 and update source generator to .NET 6 (ppy/osu-framework#5607 by @frenzibyte)
- Update framework (#21798 by @peppy)
Gameplay
Retrofit lazer scoring data onto .osr
files (#21553 by @smoogipoo)
This retrofits a minimal subset of scoring data that is required by lazer in order to properly show scores to the end of .osr
files. This leaves the files backwards compatible with osu-stable should you choose to import a lazer replay into it, and also perhaps the path for us to potentially show lazer scores in stable?
Add argon "pro" skin (#21735 by @nekodex)
Adds a new argon "pro" skin variant that inherits from "argon".
Initially the only difference will be the new "pro" hitsounds, but this provides a home for potential "pro"-targeting skin modifications in the future.
Smaller changes
- Add description for lazer score version 30000001 (#21637 by @smoogipoo)
- Call spectator
EndPlaying()
immediately after score submission (#21686 by @bdach) - Add samples for argon "pro" skin (ppy/osu-resources#235 by @nekodex)
Gameplay (osu!)
Don't show "great" or higher judgements when using argon "pro" skin (#21774 by @peppy)
Done in the easiest-to-implement way for now. I would have liked to use MaxResult
from the triggering Judgement
but doing so would come with its own weirdness due to how drawable judgements are pooled. Eventually we will want to move this logic inside DrawableJudgement
to allow for toggling as a setting, but that will come later.
Gameplay (osu!catch)
Always hide cursor in osu!catch gameplay (#21625 by @Mogiiii)
Gameplay (osu!mania)
Localisation
- Fix parsing of ruleset configuration values being incorrect on some locales (#21612 by @peppy)
- Add
StringFormatMethod
annotation toLocalisableString.Format
(ppy/osu-framework#5586 by @Susko3) - Use
LocalisableString
s for date and time formats (#21654 by @Susko3) - Fix some comment actions not being lowercased (#21707 by @Joehuu)
- Update translations (ppy/osu-resources#236 by @peppy)
Multiplayer
Only show local results in multi-spectator results screen (#21618 by @smoogipoo)
Was previously showing local results as if it was a non-multiplayer display.
Online
- Fix clients not reconnecting after a connection error (#21586 by @smoogipoo)
- Store maximum statistics to spectator state (#21587 by @smoogipoo)
- Add score token to
BeginPlaySession()
(#21588 by @smoogipoo) - Ensure score submission completion before notifying spectator server when exiting play early (#21753 by @bdach)
- Add score processed callback to spectator client (#21738 by @bdach)
- Add solo statistics watcher component to deliver incremental global user statistics updates (#21762 by @bdach)
- Use new lazer API endpoint (#21810 by @peppy)
Performance
- Fix search container filtering too much (ppy/osu-framework#5578 by @bdach)
Platform
Fix android crash when using non-Gregorian calendars (#21583 by @Susko3)
Fix iPad devices not rendering various circular elements (ppy/osu-framework#5610 by @frenzibyte)
Results
Limit SFX panning range on results screen (#21661 by @nekodex)
At least one user reported that the panning effect was too intense, so it is now reduced to match other panning effects.
Add overall ranking display to solo results screen (#21778 by @bdach)
Smaller changes
Settings
Add button to settings to show lazer upgrade guide (#21777 by @peppy)
Smaller changes
- Fix language dropdown in settings and language selector in first run dialog not syncing (#21746 by @peppy)
- Fix restore default button having a minuscule hit area (#21737 by @bdach)
Tooling
- Bring iOS framework to .NET 6 (ppy/osu-framework#5582 by @frenzibyte)
- Move away from .NET Standard (ppy/osu-framework#5583 by @frenzibyte)
- Include missing properties to iOS templates (ppy/osu-framework#5593 by @frenzibyte)
- Replace project references during packing templates in GH workflow (ppy/osu-framework#5594 by @frenzibyte)
- Work around DirectX libraries blocking iOS from building (ppy/osu-framework#5592 by @frenzibyte)
- Fix wrong path separator used in templates pack CI (ppy/osu-framework#5603 by @frenzibyte)
- Remove no longer needed
Linker.xml
configurations for mobile projects (#21716 by @Susko3) - Fix iOS workflow failing to restore workloads (ppy/osu-framework#5606 by @frenzibyte)
- Move system packages version pinning workaround to game project (#21812 by @frenzibyte)
UI
Only show song select for now at UI scale adjust first run screen (#21730 by @peppy)
Having both was a bit too much. Still not happy with this but it's a bit less sensory overload. I think while it's cool being able to show nested screens like this, it needs more thought to actually be a good experience.
Smaller changes
- Fix buttons in setting overlay receiving input outside the visible corners (#21614 by @EVAST9919)
- Fix changelog single build dates disappearing before being off screen (#21616 by @Joehuu)
- Fix buttons receiving input outside the content (#21619 by @EVAST9919)
- Fix welcome screen language buttons not working (#21718 by @bdach)
- Fix file select popup getting stuck when switching first run screens while selecting (#21731 by @peppy)
- Fix breadcrumb tab item click area not extending to background height (#21675 by @Joehuu)
- Fix wiki overlay showing error messa...
2022.1208.0
Thanks for following along! This is a tagged release (2022.1208.0). For more information check out the osu! changelog page and dev blog.
Code Quality
Framework
- Update framework and resources (#21555 by @peppy)
- Throw if
SDL_GetNumVideoDisplays()
returns an invalid number (ppy/osu-framework#5566 by @Susko3)- Will help with diagnosing #20481 and reporting the issue upstream.
Gameplay (osu!)
Fix mirroring of hit objects working incorrectly in HR/MR mods (#21567 by @apollo-dw)
Performance
Improve performance of font texture retrieval by ~60% (ppy/osu-framework#5573 by @peppy)
UI
Display nominated ranked beatmaps in user profile (#21557 by @Joehuu)
Fix expanded beatmap cards sometimes being hidden by next profile section (#21556 by @peppy)
Smaller changes
New Contributors
Full Changelog: 2022.1207.0...2022.1208.0
2022.1207.0
Thanks for following along! This is a tagged hotfix release (2022.1207.0), mainly aimed to fix a critical oversight on android which caused user settings to disappear. For more information check out the osu! changelog page and dev blog.
Audio
- Fix preview track in beatmap listing overlay potentially leaving game track muted (#21520 by @frenzibyte)
Chat
Fix chat messages sometimes looking like they didn't send (#21550 by @smoogipoo)
Code Quality
- Remove SmoothCircularProgress component as being replaced (#21502 by @EVAST9919)
- Don't use texture sampling in TriangleBorder shader (ppy/osu-resources#233 by @EVAST9919)
Framework
- Emit
global::
prefix before type names in DI source generator (ppy/osu-framework#5565 by @bdach) - Add multi phase source generator test (ppy/osu-framework#5562 by @X9VoiD)
- Fix source generator csproj wildcard (ppy/osu-framework#5572 by @goodtrailer)
- Fix broken iOS build configurations of template projects in framework solution (ppy/osu-framework#5570 by @frenzibyte)
- Update framework and resources (#21555 by @peppy)
Gameplay
- Fix loss of precision in ScoreProcessor.ComputeAccuracy() (#21517 by @smoogipoo)
Gameplay (osu!)
Allow random mod to flip sliders (#21544 by @Pasi4K5)
Just a minor addition to the random mod. Sliders now get flipped (horizontally, but it doesn't really matter because sliders are being rotated) with a 50% chance.
Localisation
- Update translations (ppy/osu-resources#234 by @peppy)
Mobile
Fix settings being wiped on each startup (ppy/osu-framework#5571 by @bdach)
Regressed in the previous build. Due to a stupid reason which is completely not our fault.
Settings
Song Select
Fix extended values in difficulty adjust mod being truncated to 10 on beatmap change (#21541 by @bdach)
Smaller changes
- Perform rewind with right click only if cursor didn't leave the button (#21523 by @Feodor0090)
Full Changelog: 2022.1205.1...2022.1207.0
2022.1205.0
Thanks for following along! This is a tagged release (2022.1205.0). For more information check out the osu! changelog page and dev blog.
Chat
Add ability to view recently sent chat messages using up/down arrows (#21228 by @Terochi)
Show mods, ruleset and unicode metadata in "now playing" chat command (#21420 by @cdwcgt)
Smaller changes
- Fix chat day separator not being added on pending message resolution (#21349 by @peppy)
- Fix system messages appearing out of order in chat display (#21463 by @peppy)
Code Quality
- Apply NRT to all zero-refactor cases (ppy/osu-framework#5519 by @peppy)
- Small code quality pass on
SDL2DesktopWindow
(ppy/osu-framework#5522 by @Susko3) - Refactor and simplify text builder bounds calculation (ppy/osu-framework#5520 by @frenzibyte)
- Fix potentially incorrect implementation of double-locking in
Drawable.Scheduler
retrieval (ppy/osu-framework#5533 by @peppy) - Refactor star "DifficultyRangeFilterControl" into generic range slider (#21428 by @mk56-spn)
- Fix inconsistent body style inspection (ppy/osu-framework#5558 by @peppy)
- Remove SmoothCircularProgress component as being replaced (#21502 by @EVAST9919)
Database
Add suffix when exporting replays with same filename to avoid overwriting (#21468 by @Piggey)
Editor
Fix sliders not correctly taking on full available length after changing curve type (#21268 by @peppy)
21268.mp4
Fix editor not always playing hitsounds with clock offsets applied (#21306 by @frenzibyte)
When returning to the editor after test play, use the original editor time rather than the point of exit (#21266 by @peppy)
Matches stable. Felt weird as we had it.
Add ability to seek between control points in editor using down/up arrows (#21387 by @peppy)
Fix osu!mania editor timeline showing bright-white blueprints (#21477 by @peppy)
Fix being able to place zero-length spinners (#21496 by @peppy)
Don't seek to current editor location when location is close to (or before) the first object (#21265 by @peppy)
21265.mp4
Smaller changes
- Create "streams" icon (ppy/osu-resources#228 by @OliBomby)
- For future use.
- Fix timeline potentially scrolling at extents while not dragging (#21293 by @frenzibyte)
- Hide scroll speed control from effects section on rulesets which don't support it (#21307 by @frenzibyte)
- Fix crash when hitting 'T' to tap timing while no timing point is selected (#21386 by @peppy)
- Ensure currently selected control point always scroll into view (#21434 by @jai-x)
- Fix incorrect culture used when parsing timeline popup textbox content (#21476 by @peppy)
- Allow custom rulesets to resolve assets better in the editor (#21405 by @LumpBloom7)
Framework
- Fix incorrect nullability specific on
ITrackableConfigManager
(ppy/osu-framework#5527 by @peppy) - Fix displays sometimes not getting updated and failing assertion (ppy/osu-framework#5523 by @Susko3)
- Cleanup
LocalisationManager
and related classes (ppy/osu-framework#5536 by @Susko3) - Refactor
LocaleMapping
lookup to require an exact match toFrameworkSetting.Locale
(ppy/osu-framework#5537 by @Susko3) - Correctly return
AVERROR_EOF
inVideoDecoder
(ppy/osu-framework#5539 by @Igoorx) - Implement TriangleBorder shader (ppy/osu-resources#227 by @EVAST9919)
- Fix wrong range constrained bindable value transferal in
CopyTo()
(ppy/osu-framework#5542 by @bdach) - Move early return conditions away from CircularProgress and CircularBlob shaders (ppy/osu-framework#5544 by @EVAST9919)
- Use fully qualified name to ensure uniqueness (ppy/osu-framework#5545 by @smoogipoo)
- Fix incorrect source gen in edge cases of dependency injection (ppy/osu-framework#5547 by @smoogipoo)
- Make all Drawable classes partial (ppy/osu-framework#5543 by @smoogipoo)
- Remove dFdx/dFdy usage in TriangleBorder shader (ppy/osu-resources#229 by @EVAST9919)
- Compute texel size in the DrawNode of TrianglesV2 component (#21432 by @EVAST9919)
- Simplify resolution of dependency injection candidates (ppy/osu-framework#5548 by @smoogipoo)
- Update dependency injection to use incremental source generation (ppy/osu-framework#5550 by @smoogipoo)
- Improve TrianglesV2 antialiasing (#21446 by @EVAST9919)
- Add missing localization in
DrawableComment
(#21450 by @Feodor0090) - Adjust search container logic to address game-side issues with hiding its children (ppy/osu-framework#5530 by @bdach)
- Add Roslyn 3.11 source generator package (ppy/osu-framework#5554 by @smoogipoo)
- Add multi target file to source generator package (ppy/osu-framework#5556 by @smoogipoo)
- Remove texture usage in TrianglesV2 component (#21460 by @EVAST9919)
- Update framework (#21503 by @peppy)
- Bump
dorny/test-reporter
action to 1.6.0 (#21506 by @bdach) - Emit
global::
prefix before type names in DI source generator (ppy/osu-framework#5565 by @bdach) - Add multi phase source generator test (ppy/osu-framework#5562 by @X9VoiD)
Gameplay
Display -
symbol when tracked in-game leaderboard score is below 50 (#21191 by @Piggey)
Add ability to display arbitrary beatmap information in skin layout editor (#21065 by @C0D3-M4513R)
You can now add beatmap metadata or arbitrary text to your skin layouts (in both song select and gameplay)! This allows for a lot of flexibility and should be a welcome addition for streamers and advanced players that don't want to rely on third-party applications.
21065.mp4
Smaller changes
- Standardise scores to
long
type (#21140 by @maromalo) - Add support for storyboards with incorrect path specifications (
\\
instead of\
) (#21356 by @peppy) - Update DrawableHitObject state based on entry result during LoadComplete (#21439 by @LumpBloom7)
- Fix loss of precision in ScoreProcessor.ComputeAccuracy() (#21517 by @smoogipoo)
Gameplay (osu!)
Add support for non-square skinned smoke textures (#21343 by @goodtrailer)
21343.mp4
Gameplay (osu!catch)
Rearrange osu!catch touch input areas for better ergonomics (#21224 by @honguyenminh)
21224.mp4
Ensure the mouse cursor is hidden when playing osu!catch with relax mod (#21467 by @peppy)
21467.mp4
Gameplay (osu!mania)
Realign white line on argon hold note ends to match hit target (#21360 by @peppy)
Fix osu!mania hold notes occasionally getting in a visually incorrect hit state (#21371 by @peppy)
21371.mp4
Smaller changes
Gameplay (osu!taiko)
Add back "kiai" time hit animation support in taiko skins (#21379 by @Joppe27)
Smaller changes
Online
Fix entering gameplay while network connection is in a bad state taking too long (#21288 by @peppy)
Stop requesting messages as part of initial chat presence (#21353 by @peppy)
No longer necessary with the new websocket-based chat. Reduces network overhead and makes chat load a lot faster.
Smaller changes
Performance
Reduce unnecessary texture overhead incurred by beatmap listing (#21277 by @peppy)
The two placeholder textures were loaded at startup, even though there's a chance they would never be used. This simplifies the content update flow and also fixes the issue.
Reduce overhead of audio components until they actually attempt to play a sound (ppy/osu-framework#5532 by @peppy)
Quite a large reduction in gameplay and song select allocations, should improve load times.
Use source generator for dependency injection (ppy/osu-framework#5541 by @smoogipoo)
Huge effort to reduce the reflection overheads of systems game-wide. This reduces allocations and CPU usage, especially during load procedures. It's huge, trust me.
Smaller changes
- Avoid loading overlay headers until first open (#21278 by @peppy)
- Fix news post images never unloading from memory after first display (#21279 by @peppy)
- Eagerly dispose of triangles intro textures to avoid holding for full length of game session (#21276 by @peppy)
- Fix
NowPlayingOverlay
loading background texture too early (and permanently) (#21284 by @peppy) - Initialise Bu...
2022.1123.0
Thanks for following along! This is a tagged release (2022.1123.0). For more information check out the osu! changelog page and dev blog.
This is a hotfix pulling in #21326 since it's being reported many times and looks pretty broken. More to come soon :).
2022.1117.0
Thanks for following along! This is a tagged release (2022.1117.0). For more information check out the osu! changelog page and dev blog.
Audio
Add sound effect for disabled components (ppy/osu-resources#224 by @nekodex)
21097.mp4
Smaller changes
Beatmap Listing
- Fix beatmap cards still potentially showing twice in listing (#21109 by @frenzibyte)
Chat
Receive chat messages in real-time (#20991 by @smoogipoo)
Chat now uses the newer websocket API, allowing more efficient and faster delivery of chat messages. This also paves the path forward towards in-game notifications (that match the experience you get on the website).
20991.mp4
Smaller changes
- Remove chat messages from silenced users (#21073 by @smoogipoo)
Code Quality
- Generalise
HubClientConnector
intoSocketClientConnector
(#20990 by @smoogipoo) - Clean up taiko classes in preparation for new skin implementation (#21074 by @peppy)
- Remove nullable disable in the checks. (#21017 by @andy840119)
- Fix
FrameworkSetting.Locale
not changingInputThread
culture (ppy/osu-framework#5504 by @Susko3) - Apply nullability considerations to all skin related classes (#21183 by @peppy)
- Remove triangles skin specific implementation from base osu!taiko
DrawableHit
(#21171 by @peppy) - Skinnable class naming pass (#21184 by @peppy)
- Fix NRT causing CI failure (#21197 by @Susko3)
- Move first tick tracking logic inside
TickPiece
(#21150 by @peppy) - Move major barline portion to default implementation to allow for further customisation (#21148 by @peppy)
- Fix various issues surrounding hit judgements (#21151 by @peppy)
- Remove
internal
access modifier fromCompositeDrawable.AddInternal
(ppy/osu-framework#5510 by @peppy) - Apply NRT to all zero-refactor cases (ppy/osu-framework#5519 by @peppy)
Comments
Add ability to report comments (#20765 by @Feodor0090)
Editor
Add conversion algorithm for lazer slider curves to work with stable (#20952 by @OliBomby)
This code is largely ported from my Mapping Tools code base. The part about CircularArcProperties
is copied from osu!framework and it would require a change to framework to make that thing public to prevent code duplication. Will be used in the future to make lazer beatmaps work better when exported to .osz
format.
Fix editor playing too many sounds when user performs a manual seek during playback (#21185 by @peppy)
Add the ability to toggle off hit marker displays in the editor (#21173 by @peppy)
21173.mp4
Add ability to toggle background dim in editor (#20907 by @cdwcgt)
20907.mp4
Smaller changes
- Fix editor selection behaviour regressions due to new path visualiser optimisation (#21122 by @peppy)
- Fix editor hard crash when beatmap file specified out-of-range timeline zoom value (#21147 by @peppy)
- Fix combo colour normalisation setting not applying to editor test play (#21257 by @peppy)
Framework
- Update dependencies (#21115 by @peppy)
- Implement antialiasing for CircularProgress shader (ppy/osu-framework#5465 by @EVAST9919)
- Fix disabling
UseFullGlyphHeight
does not trim top part of sprite text glyphs (ppy/osu-framework#5427 by @HiddenNode) - Default
CurrentCulture
to system culture (ppy/osu-framework#5505 by @Susko3) - Cursor trail shader: target rounded fragment shader (ppy/osu-resources#226 by @Tom94)
- Target rounded fragment shader (#21208 by @Tom94)
- Fix possible NRE in
GetAsync
betweenDllResourceStore
andResourceStore
(ppy/osu-framework#5514 by @Flutterish) - Fix
FallbackSampleStore.GetAsync
fallback logic (#21227 by @Susko3) - Fix
Dropdown
callingGenerateItemText
before it's loaded (ppy/osu-framework#5516 by @Susko3) - Make
IBindable : IFormattable
to allow formatting its value withInvariantCulture
(ppy/osu-framework#5515 by @Susko3) - Refactor
SpriteIcon
tests to allow slowly adding new icons (ppy/osu-framework#5517 by @peppy)
Gameplay
Fix automated skip not skipping more than once when required (#21093 by @peppy)
Normalise combo colour brightness (#20736 by @smoogipoo)
This aims to resolve long standing issues that people have historically had where you can get blindsighted by a beatmap having very dark combo colours. It's more important with the new "argon" skin which requires a certain amount of contrast to look good and be usable.
20736.mp4
Smaller changes
Gameplay (osu!)
Add arc-shaped progress bars to "argon" spinner (#20793 by @frenzibyte)
Second pass on "argon" spinner, mainly including the arc-shaped progress bars on the sides which have been pending framework-side support for the rounded caps.
Fix slider ticks appearing before sliders are done snaking in with Freeze Frame (#21235 by @mk56-spn)
21235.mp4
Smaller changes
- Fix spinner centre size being updated every frame using transforms (#21095 by @peppy)
- This led to bad looking animation (and a lot of performance overhead).
Gameplay (osu!taiko)
Fix taiko barlines not rendering correctly (#21165 by @frenzibyte)
First pass osu!taiko "argon" skin (#21153 by @peppy)
21153.mp4
Smaller changes
- Difficulty Calculation: Basic tl-tapping consideration for stamina (#20558 by @vunyunt)
- Fix argon and triangles swells incorrectly flashing on every hit (#21243 by @peppy)
- Add basic osu!taiko "argon" swell visual (#21256 by @peppy)
Performance
Remove all usage of Add
/RemoveMemoryPressure
(ppy/osu-framework#5506 by @peppy)
Especially in cases like song select, we are churning a lot of GPU memory. This will eventually be fixed, but until then it seems that making the GC aware of this usage is detrimental to performance. In some very non-scientific benchmarks, removing these calls reduced gen 2 GC run counts by around 40-50% while paginating at song select.
Use (high resolution) waitable timers on windows when available (ppy/osu-framework#5501 by @peppy)
Intends to fix the remaining inaccuracy that can be seen when running at frame rates close to the maximum precision provided by Thread.Sleep
on windows.
You can count the individual frames being run. In both profile runs above, the reported frame rate is 1,000, but in the first multiple frames were being coalesced into single back-to-back executions (which is basically pointless to us).
Don't yield when game can't keep up (ppy/osu-framework#5503 by @peppy)
This might help marginally in cases where the game is not able to keep up with the user's specified frame limiter, by removing the yield overhead (~0.2ms for me, but maybe higher on lower end hardware).
Especially when users have "game mode" enabled, this should be beneficial with no downsides.
Use rounded fragment shader exclusively (ppy/osu-framework#5512 by @Tom94)
Apply pooling support to hit error metres (#21240 by @peppy)
Fixes one of the remaining large sources of drawable allocation churn during gameplay.
Settings
Fix inaccurate tablet area dimensions when applying aspect ratio (#21192 by @Samaoo)
When applying my current aspect ratio 16:9
to my tablet width 165mm
, the height will be 92mm
, but when you calculate it 165/(16/9)β92.8
it's closer to 93mm
. This fixes that and also moves the calculation into functions because there are multiple occurrences.
Fix default value being wrong for 24 hour time preference (#21164 by @Susko3)
Fix "reset to full area" button not always working correctly (#21255 by @peppy)
Song Select
Maintain selection of common mods when switching rulesets (#20758 by @frenzibyte)
Matches stable, and generally saves the effort of checking out a mod between different rulesets without having to re-select it every time.
20758.mp4
Storyboard
2022.1101.0
Thanks for following along! This is a tagged release (2022.1101.0). For more information check out the osu! changelog page and dev blog.
Editor
Fix time snap of sliders not matching when SV is not 1.0x (#21049 by @peppy)
Note that I'm still not decided on whether this should be re-integrated into the distance snap grid, which is why I added this back only the the required paths.
Gameplay
Adjust "Target Practice" and "Hold Off" mod multipliers (#21054 by @smoogipoo)
Fix osu!catch argon skin not displaying correctly on mobile devices (ppy/osu-framework#5495 by @EVAST9919)
Smaller changes
- Fix large transform retention when adjusting accent colour of hitobject during pause (#21057 by @peppy)
- Fix argon hit circle outer gradient getting smaller each state application (#21056 by @peppy)
- Fix
DrawableHitObject.AccentColour
not being updated if object entry is not attached (#21059 by @peppy) - Rename mod "Target" to "Target Practice" (#21060 by @peppy)
Reliability
Settings
Fix notch toggle not applying correctly after restart (#21050 by @peppy)
Tooling
Refactor drawable pool statistics output to make more sense (ppy/osu-framework#5490 by @peppy)
I was confused by the previous output, as it didn't do a great job showing the current pool usage β specifically it was not showing the current pool size in the denominator portion of the display, but the total usages. Which didn't make much sense at all.
UI
- Update localisations (ppy/osu-resources#223 by @peppy)
- Fix breadcrumb display in directory selector overlapping new "show hidden" button (#21051 by @peppy)
UX
Improve messaging when ruleset load fails (#21045 by @peppy)
No longer shows a very long version of the ruleset's assembly information, since this error message was supposed to be something that users can easily action on.
Full Changelog: 2022.1031.0...2022.1101.0