Releases: ppy/osu
2023.908.2
Hotfix release number 2 for performance regressions (SSBO optimisations are disabled).
Full Changelog: 2023.908.1...2023.908.2
2023.908.1
Hotfix release for notelock breakage with classic mod.
Full Changelog: 2023.908.0...2023.908.1
2023.908.0
Hello fellow lazer enjoyers!
We're switching up focus a bit for the rest of the year. As a result, you may see less forward-facing changes, but don't worry – we're still working hard behind the scenes. Watch the latest release video for the full details!
Audio
Update overlay pop-in/pop-out sample usage (#24576 by @nekodex)
An update to the pop-in/pop-out samples for various overlays. Also adds them to some overlays/popups that were previously missing them.
Updated/added samples for overlays:
ManageCollectionsDialog
,ChatOverlay
,FileChooserPopover
: new sharedoverlay-big-x
NotificationOverlay
,OsuPopover
and children (report, mod presets, etc): updated sharedoverlay-x
SettingsPanel
: updatedsettings-pop-in
BeatmapOptionsOverlay
(aware there is a new design for this incoming, but I had created the samples prior to finding out, so PR'ing for use in the meantime anyway)WaveOverlayContainer.cs
: updatedwave-pop-in
sample
Adds left/right panning to the pop-in/pop-out of:
LoginOverlay
NotificationOverlay
SettingsPanel
Also tweaked on-click sample playback behaviour of some components that didn't work well with the overlay pop-in samples.
Smaller changes
- New overlay pop-in/pop-out samples (ppy/osu-resources#276 by @nekodex)
Behavioural
Fix "date added" not being set correctly when importing stable beatmaps (#24574 by @LiquidPL)
Flash taskbar when receiving notifications while the game is not focused (#24588 by @ItsShamed)
Smaller changes
- Allow slider bars to update their underlying value immediately (#24431 by @bdach)
- Always show supporter-only playlist durations in dropdown (#24366 by @Joehuu)
- This allows better discoverability of durations which were previously hidden to non-supporters. I'd still like to improve this in the future but it's better than what we had.
Code Quality
- Remove slider velocity from
DrumRoll
(#24537 by @OliBomby) - Add various testing improvements to various tournament components (#24564 by @peppy)
- Apply NRT to
osu.Game.Beatmaps.Formats
namespace (#24568 by @peppy) - Fix
SliderPath.GetSegmentEnds
(#24581 by @OliBomby) - Remove global action container input queue workaround (#24610 by @bdach)
- Enable sentry "global mode" as per recommendation (#24634 by @peppy)
- Disable redundant verbatim string prefix inspections (#24668 by @bdach)
Cosmetic
- Fix star fountain directions not matching stable (#24604 by @peppy)
- Use existing localisations for some missed strings (#24707 by @Magnus-Cosmos)
Editor
Add precise rotation control to osu! editor (#24567 by @bdach)
One of the most requested features to return from stable's editor.
Fix sliders being reversed incorrectly in the editor (#24527 by @Pasi4K5)
Smaller changes
- Fix occasional crash when opening the editor (#24562 by @peppy)
- Fix tracking on empty control point groups (#24577 by @OliBomby)
- Fix last slider control point type being included in legacy export (#24570 by @OliBomby)
- Fix hit animation not synchronizing when editing hit objects (#24508 by @OliBomby)
- Fix slider velocity popover crashing when opened during slider placement on empty beatmap (#24711 by @honguyenminh)
Framework
Add support for shader storage buffer objects (SSBOs) (ppy/osu-framework#5950 by @smoogipoo)
SSBOs are a way to submit large amounts of data to GPUs. We now use this when possible as an optimisation everywhere in the game.
Use SSBOs for bindless masking (ppy/osu-framework#5952 by @smoogipoo)
A huge forward step in general framework performance. Now we don't need to split draw calls when masking is toggled (generally a saving of 10-30% draw calls). This will lead to larger gains in the near future when we make texture atlases as large as they should be, pending some further work.
Use floating point rectangles for masking operations (ppy/osu-framework#5960 by @smoogipoo)
Fixes (at least some) 1px masking errors:
before | after |
---|---|
Smaller changes
- Implement popover positional hinting (ppy/osu-framework#5967 by @bdach)
- Make
KeyBindingContainer.Prioritised
work for positional input too (ppy/osu-framework#5966 by @bdach) - Allow gravity in RigidBodySimulation to be adjustable (ppy/osu-framework#5972 by @hwabis)
- Implement taskbar flashing support (ppy/osu-framework#5970 by @ItsShamed)
- Bump Android target SDK version to 33 (ppy/osu-framework#5973 by @bdach)
- Fix
KeyBindingContainer
propagating release events to removed drawables (ppy/osu-framework#5975 by @bdach) - Adjust shader to support masking SSBO (ppy/osu-resources#277 by @smoogipoo)
- Update framework and apply changes to support masking SSBO (#24613 by @smoogipoo)
- Add D3D11VA video acceleration support (ppy/osu-framework#5976 by @FreezyLemon)
- The newer APIs should generally be used if possible, so D3D11VA > DXVA2 (which uses DX9). But vendor-specific implementations should still be preferred.
- Add test coverage for all video codecs (ppy/osu-framework#5977 by @FreezyLemon)
- Add a cache busting mechanism to the shader compilation cache (ppy/osu-framework#5978 by @smoogipoo)
- Remove now unnecessary blur shader workaround (ppy/osu-framework#5979 by @smoogipoo)
- Free AVIOContext and IO buffer (ppy/osu-framework#5982 by @FreezyLemon)
- Remove libavfilter where possible (ppy/osu-framework#5980 by @FreezyLemon)
- Reduces game filesize by 10-20mb depending on patform.
- Change behaviour of
Storage.Move
to overwrite existing by default (ppy/osu-framework#5984 by @peppy) - Fix crash on minimising from non-native fullscreen resolutions (ppy/osu-framework#5983 by @smoogipoo)
- Update README.md to include VS Code plugin prerequisites (#24645 by @Dreamurrrr)
- Update localisations (ppy/osu-resources#278 by @peppy)
- Update native libraries (ppy/osu-framework#5985 by @peppy)
- Update framework (#24717 by @peppy)
Gameplay
Add ability to toggle gameplay leaderboards with Tab
key (#24402 by @QuantumSno)
There's now a new key binding, defaulting to the classic Tab
key.
Currently this just toggles the setting Gameplay > Hud > Always show gameplay leaderboard
Smaller changes
- Mark "Score V2" mod as not user-playable (#24675 by @bdach)
- The mod generally will only be present on scores imported from stable. As such, it's probably ok to mark it as such.
Gameplay (osu!)
Fix hit circles fading out too fast when hit with classic mod active (#24686 by @frenzibyte)
The animation adjustment applied in classic mod should be specific to when a player misses the hit circle, but it was applied regardless of the circle's state.
Correctly implement osu!stable "note-lock" in Classic mod (#24280 by @tybug)
As far as I can tell, osu!stable note-lock was never implemented correctly in lazer. This implements osu!stable note-lock 1:1.
There are two obvious behavioral changes in this diff, though there may be more that are obscured by the details.
- Previously, clicks on stacked hitobjects which are note-locked cause shakes, while on osu!stable they don't (yes, despite the note being note-locked. stacks are special-cased on osu!stable.)
- osu!stable has a weird extra 3 ms of leniency before hitobjects can be note-locked. Not sure why — the "unsnapped objects" comment doesn't make much sense to me — but it's back now.
Apply flashlight slider dim immediately to match osu!(stable) (#24701 by @frenzibyte)
This removes the slight fade when playing sliders with flashlight enabled, as it didn't match expectations.
Gameplay (osu!mania)
Disable hold end conversion for mania "Hold Off" mod (#24552 by @smoogipoo)
Fix osu!mania hit windows changing with rate adjust mods (#24636 by @smoogipoo)
Brings back the osu!stable behaviour where hit windows would adjust with speed adjustment mods so they don't become tighter/looser.
Smaller changes
Multiplayer
Fix multiplayer spectator potentially taking too long to start (#24451 by @peppy)
When watching from the middle of gameplay, due to a series of failures, SpectatorClock
would not get seeked to the current time, causing all clients to look like they were out of sync.
This is a hotfix for the issue. A better fix will require framework changes or considerable restructuring.
Add score difference display to multiplayer spectator (#24566 by @peppy)
This was recently added for the t...
2023.815.0
Code Quality
- Temporarily allow new difficulty attributes to not exist (#24538 by @smoogipoo)
- Update crowdin.yml to support multiple namespace levels (ppy/osu-resources#273 by @ItsShamed)
- Update localisations (ppy/osu-resources#275 by @peppy)
- Fix incorrect truncation to int (#24541 by @smoogipoo)
- Update framework (#24546 by @peppy)
- Remove
DepthWrappingVertex<T>
(ppy/osu-framework#5943 by @smoogipoo)
Cosmetic
Don't completely fade FPS counter out when running at full FPS (#24540 by @peppy)
I've heard multiple times from uses that this is distracting or confusing. It now fades, but doesn't fully disappear.
Gameplay
Fix kiai stars flickering on and off during gameplay (#24547 by @bdach)
Performance
Add pooling for mania barlines (#24544 by @smoogipoo)
At COE, it was brought up to me that this map wasn't loading. Turns out that it is loading, just very slowly.
Reliability
Fix occasional crash when transitioning to results screen due to unsafe data access (#24548 by @peppy)
Skinning
Fix playfield skinnable layer bounds being incorrectly calculated with multiple stages (#24528 by @bdach)
Song Select
Fix multiple audio tracks playing at once for some users (ppy/osu-framework#5965 by @bdach)
Full Changelog: 2023.814.0...2023.815.0
2023.812.0
Editor
Fix legacy beatmap exports not working correctly for osu!catch banana showers (#24511 by @bdach)
Reliability
- Fix crash on tablet stylus touch when stylus is over inactive area and mouse confine is off (ppy/osu-framework#5964 by @bdach)
Full Changelog: 2023.811.0...2023.812.0
2023.811.0
Code Quality
- Fix nullability inspection in
NowPlayingOverlay
(#24421 by @bdach) - Remove #nullable disable in tournament (#24409 by @cdwcgt)
Cosmetic
Add kiai fountains to main menu (#24208 by @peppy)
osu.2023-07-13.at.11.30.12.mp4
Fix now playing overlay occasionally showing incorrect background (#24418 by @peppy)
Smaller changes
- Fix accuracy break info decimal separator being incorrect in certain languages (#24406 by @Joehuu)
- Fix "new update" notification using upload icon instead of download (#24256 by @tybug)
- Add star fountain sprite (ppy/osu-resources#270 by @peppy)
- Reduce spacing in settings items (#24314 by @peppy)
- Update translations from crowdin (ppy/osu-resources#272 by @peppy)
- Fix osu! logo suddenly disappearing during rapid exit (#24424 by @bdach)
- Add support for changelog entries with url attached (#24461 by @Joehuu)
Editor
Change beatmap editor to always select the closest object in time via clicking (#24289 by @peppy)
Matches osu!stable.
osu.Game.Tests.2023-07-19.at.07.58.34.mp4
Add support for cyclic selection in beatmap editor (#24291 by @peppy)
Update various editor design language (and centre playfield / timeline) (#24220 by @peppy)
Brings us closer to the latest designs. Also centres the playfield and timeline centre as proposed in #24207.
Before | After |
---|---|
Fix "key count" setting showing as "circle size" in osu!mania editor (#24317 by @peppy)
Add ability to export beatmaps from editor in a stable-compatible format (#24186 by @OliBomby)
This adds a menu button that lets you explicitly export a beatmap set for compatibility with osu!stable. With this feature it becomes a lot more feasible to create beatmaps in Lazer using the full range of features available in Lazer.
The default 'For editing' option now creates the file extension '.olz' (osu! lazer zip) which is accepted by osu! lazer but not by osu! stable, while 'For compatibility' creates a '.osz' file which obviously is accepted by both osu! stable and lazer. This makes it less likely to confuse the two formats.
Note that the 'For compatibility' option is not lossless, and as such shouldn't be used for cases where you want to make further adjustments to the beatmap.
Improve visuals of editor spacers (#24333 by @peppy)
Before | After |
---|---|
Fix editor blueprints being selectable for too long when hit markers are enabled (#24288 by @peppy)
Smaller changes
- Add checks for breaks obtained via external edits (#24259 by @NiceAesth)
- Fix osu!taiko editor playfield getting cut off incorrectly (#24374 by @peppy)
- Disallow interacting with the global track state in
Player
andEditor
(#24361 by @peppy) - Refactor rotation handling in editor to facilitate reuse (#24341 by @bdach)
- A starting point required to implement more advanced manipulation controls, like the rotation dialog everyone's waiting for.
- Block beatmap editor from testing/exiting/exporting when saving fails (#24467 by @Joehuu)
Framework
- Fix potential user-facing error when same shader is compiled in parallel (ppy/osu-framework#5961 by @peppy)
- Change source generators to only run for release builds (ppy/osu-framework#5938 by @peppy)
- Fix building iOS projects in AOT mode via command line not working (ppy/osu-framework#5940 by @frenzibyte)
- Fix CI test results not working (ppy/osu-framework#5947 by @Susko3)
- Fix integer vertex atributes being cast to floats (ppy/osu-framework#5944 by @smoogipoo)
- Prevent re-entrancy into
VertexBatch.Draw()
(ppy/osu-framework#5948 by @smoogipoo) - Refactor global UBO binding (ppy/osu-framework#5949 by @smoogipoo)
- Update framework (#24430 by @peppy)
- Include type name in long-running exception output (ppy/osu-framework#5957 by @peppy)
- Update workarounds file to fix iOS AOT build issues via command line (ppy/osu-framework#5962 by @frenzibyte)
Gameplay
Change offset calibration control to adjust for all difficulties of the current beatmap set (#24290 by @peppy)
Generally all difficulties in a beatmap set share the same timing information, so it only makes sense to apply a user offset everywhere.
Fix storyboard being see-through in some contexts (#24443 by @peppy)
Before | After |
---|---|
Gameplay (osu!)
Change spinner rotation animation to match input 1:1 (#24360 by @peppy)
Originally this was halved to make the newer designs look "better" (subjectively) but in testing I think it's fine to apply this across the board. It definitely feels better as a user to have non-slipping control over spinners.
Gameplay (osu!taiko)
Fix not always being able to hit objects when "hidden" mod is applied (#24305 by @chayleaf)
Integration
Fix discord not displaying status after being closed while osu! is running (#24189 by @peppy)
Originally disabled due to performance concerns. Performance issues have now been fixed.
Multiplayer
Add ability to toggle all free mods quickly at multiplayer song select (#24294 by @peppy)
Until now, one would have to open up free mod select and click select all to enable all free mods. Given how common enabling free mods is, the button now allows direct toggling and saves a few clicks.
osu.2023-07-19.at.10.09.35.mp4
General visual improvements to mutliplayer spectatator screen (#24415 by @peppy)
This is an initial pass before I try some more experimental changes.
- Individual screens now have rounded corners and shadows
- The zoom-to-focus now doesn't completely hide other screens, and should feel better in general
- The game toolbar is hidden when entering multiplayer spectator
2023-07-30.02.42.00.mp4
Fix multiplayer spectator not correctly proceeding to the next beatmap in all cases (#24438 by @peppy)
Improve choice of where to start playback of multiplayer spectator (#24448 by @peppy)
This was originally intended to try and fix the startup delay, but the majority of the delay comes from elsewhere.
Regardless, this algorithm should be much better than what we had (and avoid situations where one client being super far behind delays start of the session by forcing you to watch them catch up).
Smaller changes
- Fix deadlock when logging out while at the create match screen (#24295 by @peppy)
- Fix multiplayer screen transitions not always working as expected (#24422 by @bdach)
- Fix centred player not animating correctly (#24440 by @peppy)
Performance
Improve vertex upload performance significantly on iOS (ppy/osu-framework#5931 by @frenzibyte)
With the new performance test scenes we have, VBO uploads have shown to be quite poor on iOS, even when building in AOT.
After multiple days of investigation (interrupted by regressions in our rendering systems), it turns out the intermediate vertex storage allocated in VeldridVertexBuffer
have a significant hit on performance. In an isolated environment, there's +7ms aggregate CPU overhead when uploading to an intermediate vertex storage followed by uploading to the GPU buffer, from uploading & drawing 10k quads.
Shaving that overhead off improves performance on iOS significantly, especially in scenes with a high number of vertex uploads.
Re-enable AOT on android / iOS to greatly improve performance (#24338 by @frenzibyte)
This was disabled when we switched to the new renderer because it was crashing. It turns out this had a huge effect on performance.
This also enables Mono Interpreter as a fallback for areas where dynamic code is utilised. I will look into the steps necessary to remove it to close up any remaining possibilities for gains, but I'll do that as a separate follow-up effort later because building osu! with AOT compilation is quite a tedious task, and the performance gain in this PR alone is probably more than enough.
This adds a magnificent boost in rendering performance on iOS and android. Anyone who's been struggling with performance before on their iPhones/iPads should give this release a try!
Note that due to a startup crash, this is only live for iOS this time around. We'll revisit android!
Fix beatmaps being queued for reprocessing every startup when logged out (#24350 by @peppy)
Smaller changes
- Remove most locking overhead in
TripleBuffer
(ppy/osu-framework#5915 by @peppy)- One of those things I s...
2023.803.0
A hotfix for a critical issue.
Gameplay
Fix global timing potentially entering a bad state (#24449 by @peppy)
This is likely responsible for offset drift some users have reported. As a result of this bug, interpolation of audio is being bypassed by per-frame seeks when things enter a bad state.
Hard to really explain why this happened or what it will affect, but trust me that this is serious enough to warrant its own hotfix only days before the next major release.
Full Changelog: 2023.717.0...2023.803.0
2023.717.0
Hotfix release
What's Changed
- Fix potential crash in confirm exit dialog while attempting to exit game by @bdach in #24246
- Fix several issues in multiplayer exit-on-disconnection flow by @bdach in #24255
Full Changelog: 2023.716.0...2023.717.0
2023.716.0
Audio
Add new notification sounds (#24145 by @nekodex)
Beep boop, new notification sounds.
The basic notification and error notification have been replaced with less ear-grating versions. This also adds distinct sounds for progress notifications, cancelling notifications, and chat highlight notifications.
Smaller changes
- Fix music sometimes restarting twice if exiting song select with no beatmap selected (#23888 by @peppy)
- Add new notification sound effect resources (ppy/osu-resources#268 by @nekodex)
Code Quality
- Apply NRT to all files where it can be easily applied (#24021 by @peppy)
- Fix NRT-related issues found game-side (ppy/osu-framework#5868 by @bdach)
- Apply required nullability changes in line with framework update (#24019 by @peppy)
- Fix
OpenUserProfile
links having multiple argument types (#24022 by @frenzibyte) - Rename taiko hitsounds to match standards (ppy/osu-resources#264 by @peppy)
- Move all remaining osu!taiko sample playback logic out of
DrawableHitObject
s (#24088 by @peppy) - Update
SDL2{Desktop}Window
usages in line with frameworkIWindow
changes (#24102 by @Susko3) - Add generated code hints in editorconfig / dotsettings (ppy/osu-framework#5908 by @peppy)
- Use OsuScoreProcessor in the scoring test scene (#24178 by @Zyfarok)
- Split texture upload performance test into own
TestScene
(ppy/osu-framework#5922 by @peppy) - Update localisation analyser packages (#24187 by @smoogipoo)
- Replace most usages of
IsDynamicCodeCompiled
withIsDynamicCodeSupported
(ppy/osu-framework#5914 by @frenzibyte) - Refactor performance test scenes (ppy/osu-framework#5927 by @peppy)
- Resolve
Clipboard
via DI (#24183 by @Susko3)
Database
Reattach any orphaned scores when a beatmap is imported (#24081 by @Cootz)
This means if you delete a beatmap then re-import it at a later point, your scores will automatically show up.
Smaller changes
- Fix delete difficulty flow not actually deleting the difficulty from realm (#24067 by @bdach)
- Fix incorrect realm copy logic when a beatmap becomes detached from its set (#24060 by @peppy)
- Bring realm library up-to-date (#24135 by @peppy)
- Ensure scores always have the correct linked
BeatmapInfo
(#24114 by @peppy)
Editor
Add support for Ctrl
+ <
/ >
to rotate selection in editor (#24059 by @peppy)
I've also added a visual effect when hotkeys are used to trigger the buttons for better visibility.
osu.Game.Tests.2023-06-27.at.08.03.30.mp4
Fix pressing Ctrl-C in composer not copying timestamp to system clipboard with empty selection (#24171 by @bdach)
Add beatmap drain time check (#24175 by @NiceAesth)
Fix slider blueprint placement not ending when clicking outside the playfield (#24181 by @peppy)
Improve performance when saving a beatmap with a large beatmap database (#24210 by @OliBomby)
Smaller changes
- Fix undo not working when flipping selection (#24070 by @peppy)
- Fix edge cases where selection buttons go outside playfield bounds (#24099 by @bdach)
Framework
Bump OpenTabletDriver version to 0.6.1.0 (ppy/osu-framework#5859 by @X9VoiD)
Includes support for many new tablets, and improved support for existing tablets.
Add support for alternative clipboard keys (ctrl-insert / shift-delete / shift-insert) (ppy/osu-framework#5870 by @peppy)
Generally considered windows first, but also seems to be supported on linux so let's just make them global.
Smaller changes
- Improve nested
ScrollContainer
tests (ppy/osu-framework#5845 by @Susko3) - Cleanup Veldrid shader resource layouts and add header guard (ppy/osu-framework#5857 by @smoogipoo)
- Remove assembly dropdown from visual test browser (ppy/osu-framework#5855 by @peppy)
- Maintains support for multiple assemblies but removes the dropdown as proposed a while back on discord.
- Don't apply
RenderBufferFormat
s to effect buffers (ppy/osu-framework#5865 by @EVAST9919) - Apply NRT to all files where it can be easily applied (ppy/osu-framework#5867 by @peppy)
- Update deployment workflow to automatically run on new tag (ppy/osu-framework#5873 by @peppy)
- Update veldrid (ppy/osu-framework#5876 by @peppy)
- Make
IWindow
andIGraphicsSurface
implementationsinternal
(ppy/osu-framework#5881 by @Susko3) - Work around iOS linker including
ApplicationServices
framework during compilation (ppy/osu-framework#5886 by @frenzibyte) - Fix game benchmarks being completely broken (ppy/osu-framework#5884 by @peppy)
- Fix game tools being rendered outside safe area (ppy/osu-framework#5887 by @frenzibyte)
- Fix frame statistics display showing
CADisplayLink
callback delays under "WndProc" time (ppy/osu-framework#5898 by @frenzibyte) - Pool and limit how many GC boxes can be displayed on
FrameStatisticsDisplay
at once (ppy/osu-framework#5899 by @peppy) - Fix
PerformanceOverlay
autosize not working due to incorrect anchor (ppy/osu-framework#5900 by @peppy) - Add back removed comment on creating texture images with no background specification (ppy/osu-framework#5910 by @frenzibyte)
- Add generated code hints in editorconfig / dotsettings (#24154 by @peppy)
- Redesign "local input" toggle in manual input tests to be more user-friendly (#24150 by @peppy)
- Apply code changes required for a future update to .NET 7/8 (ppy/osu-framework#5909 by @smoogipoo)
- Update framework (#24174 by @peppy)
- Make frame statistics display usable on mobile platforms (ppy/osu-framework#5897 by @frenzibyte)
- Fix
FrameBufferScale
not working whenPixelSnapping
is enabled (ppy/osu-framework#5926 by @peppy) - Fix texture uploads getting corrupted on Metal with non-Apple GPUs (ppy/osu-framework#5924 by @frenzibyte)
- Fix potential texture corruption on Veldrid (ppy/osu-framework#5928 by @frenzibyte)
- Revert vertex batch buffer changes (ppy/osu-framework#5930 by @peppy)
Gameplay
Allow notifications while the game is paused (or in break time) (#23972 by @peppy)
Add hotkeys to save / export replays (#23967 by @peppy)
Defaults to F1
to save and watch, F2
to export to a file in a similar way to osu!stable.
Add "Argon" skin key counter design (#23926 by @ItsShamed)
As with all components, this can be mixed-and-matched with other skins.
Remember state of replay settings visibility and allow key customisation (#24129 by @peppy)
Ctrl+H could already be used to hide the replay settings overlay, but you'd have to reapply it each time. Now the state is persisted, exposed in settings, and the key is customisable should you ever want to change it.
Add support for skinnable "retry" sound (#24134 by @peppy)
Fix incorrect slider stacking on very old beatmaps (#24188 by @peppy)
The stable code has had a bug in this logic forever. So we reimplemented the bug. That's how it be.
Allow autoplay to fail (#24197 by @peppy)
Feels more correct. Original logic to stopping fails was intended for user replays where the original score was not a failure, but in the case of autoplay, we should respect failures as it is an.. "actual" fail.
Smaller changes
- Adjust
GameplaySampleTriggerSource
to only switch samples when close enough to the next hit object (#23976 by @peppy) - Add links to nested objects' lifetime entries to
HitObjectLifetimeEntry
(#24118 by @bdach) - Fix fallback for
Judged
to be more correct (#24121 by @peppy) - Fix
GameplaySampleTriggerSource
not handling rewinds correctly (#24142 by @peppy) - Fix
GenerateTicks
being lost during osu! beatmap conversion process (#24165 by @bdach)
Gameplay (osu!catch)
Fix combo counter on legacy skins flipping when "Floating Fruits" mod is active (#23999 by @peppy)
Change "floating fruits" mod to only apply adjustments to the playfield (#24009 by @peppy)
Avoids things like touch screen inputs also being flipped.
Gameplay (osu!mania)
Fix 1 million score being unachievable on some mania beatmaps (#23917 by @bdach)
Due to complicate ordering stuff and new scoring changes.
Gameplay (osu!taiko)
Implement new argon osu!taiko hitsounds (#24119 by @peppy)
Second attempt, much more contained than last time.
Quoting @nekodex:
This PR aims to enhance Taiko hitsounding by adding more variety to in-game sample playback, without diverging too > much from the established or being too distracting. This is achieved through a few different methods, listed roughly > in increasing order of noticability:
- Adding (subtle) left/right panning depending on which side the player hits
- Support different hit/rim samples depending on hitobject volume (by default the thresholds are: 0-59 soft, 60-89 > medium, 90+ hard, but I envision these being changable by mappers). Similar idea to banks, but with less > distinctiveness between each. The goal was to (crudely) simulate how the timbre of real drums change as you hit them harder, allowing for quieter sounding hits during softer sections whilst still being able to belt it out during loud sections.
- Unique samples for strong hits and strong rim hits - I believe 'stable' osu! layered hitfinish on top of strong hits to do something similar, but this PR replaces that layering (for Argon) and handles the strong playback at input time so players can mash it for fun. This also fixes the issue with strong hits being too loud (due to identical sample being played twice) by cancelling playback of the first sample w...
2023.621.0
What's Changed
Code Quality
- Tidy up results screen statistic item flow (#23718 by @peppy)
- Fix screen navigation test hijacking dummy request handler (#23762 by @bdach)
- Remove redundant nullable suppression directives (ppy/osu-framework#5824 by @frenzibyte)
- Remove redundant nullable suppression directives (#23796 by @frenzibyte)
- Display API responses in client language (#23805 by @frenzibyte)
- Refactor
IWorkingBeatmap.Background
toGetBackground()
(#23808 by @peppy) - Apply NRT to
MemoryCachingComponent
classes (#23844 by @peppy) - Add include guards to all shaders (ppy/osu-framework#5832 by @smoogipoo)
- Update README.md to include VS Code plugin prerequisites (ppy/osu-framework#5833 by @Dreamurrrr)
- Remove
Dropdown.AddDropdownItem(text, value)
overload (ppy/osu-framework#5831 by @Susko3) - Add UseLocalVeldrid scripts (ppy/osu-framework#5835 by @smoogipoo)
- Fix cases of incorrect nullability in
ToString
override definitions (ppy/osu-framework#5837 by @frenzibyte) - Remove overrides of PopIn/PopOut in FocusedOverlayContainer (ppy/osu-framework#5834 by @jai-x)
- Enforce presence of all fragment shader inputs in Veldrid (ppy/osu-framework#5687 by @frenzibyte)
- Update CFS to NET6.0 (#23919 by @smoogipoo)
- Fix
UseLocalVeldrid
not adding satellite assemblies to slnf files (ppy/osu-framework#5842 by @peppy) - Fix nested DI candidates not analysed in non-candidate parent types (ppy/osu-framework#5841 by @smoogipoo)
- Move
OrderByTotalScore()
to an extension method (#23937 by @peppy) - Fix stray inspection showing up in rider (ppy/osu-framework#5856 by @peppy)
Editor
Fix gameplay playfield border being affected by beatmap track time (#23767 by @peppy)
Add beat snap grid for osu!catch editor (#23770 by @peppy)
Add ability to cycle beat snap divisor using hotkeys (#23799 by @peppy)
Defaults to Ctrl+Shift+Wheel (as per stable).
Reduce the radius of note-to-note snapping in osu! editor (#23812 by @peppy)
Ball-parked to match stable as close as possible. Allows for more precise positioning.
Improve usability of beat divisor control (#23722 by @peppy)
A few changes of interest here:
- Remember the last used custom divisor when cycling divisor types
- Adds support for cycling back to the last custom divisor used. Previously it would be lost after switching back
tocommon
ortriplets
. - Use better defaults of 1/4 and 1/6 when cycling types
Add setting to limit distance snapping to current time (#23837 by @peppy)
You can now choose whether the distance snapping grid allows placing objects in the past/future, or behaves like
stable (only allowing placement at the current point in time).
Fix performance degradation at timing screen when seeking far into track (ppy/osu-framework#5843 by @peppy)
before | after |
---|---|
Fix distance snap grid circles not correctly being centred on snap point (#23938 by @peppy)
before | after |
---|---|
(red lines are added in post to show the centre point)
Smaller changes
- Fix weird right-toolbox distance snapping display in osu!catch editor (#23832 by @peppy)
- Fix playback controls in editor handling key repeat when they probably shouldn't (#23904 by @peppy)
Framework
- Expose truncated state of
SpriteText
(ppy/osu-framework#5636 by @Joehuu) - Update Veldrid package to revert
CADisplayLink
implementation from veldrid-side (ppy/osu-framework#5826 by @frenzibyte) - Add new
DeferredStagingBuffer
type (ppy/osu-framework#5838 by @smoogipoo) - Fix
WaitUntilNextFrameReady
not being accounted for asSleep
time (ppy/osu-framework#5840 by @peppy) - Expose
Path.BackgroundColour
as a settable property (ppy/osu-framework#5830 by @smoogipoo) - Apply osu! side changes in line with
FocusedOverlayContainer.PopIn
abstract
change (#23882 by @peppy) - Fix item labels not generated while dropdown is in
Ready
state (ppy/osu-framework#5850 by @frenzibyte) - Tidy up hot reload notification toast (ppy/osu-framework#5854 by @peppy)
- Update framework to fix dropdown regressions (#23973 by @peppy)
- Improve nested
ScrollContainer
tests (ppy/osu-framework#5845 by @Susko3)
Gameplay
Add animations to the argon key counter (#23751 by @ItsShamed)
ryou.mp4
Still coming soon (tm) to gameplay pending actual skinnable component implementation..
Fix audio adjustment settings not displaying while watching a replay (#23841 by @peppy)
Adjust argon progress display to work well on bright backgrounds (#23884 by @peppy)
before | after |
---|---|
Note that these screenshots are worst-case scenarios. Generally beatmap backgrounds are not pure white (and users have
some degree of background dim).
Smaller changes
Gameplay (osu!)
Fix black jaggies around argon hitcircles (#23853 by @smoogipoo)
before | after |
---|---|
Fix not being able to receive full score for extremely short sliders with repeats (#23866 by @bdach)
This case seems relatively rare, so it's probably not worth a special hotfix. This is also why I'm not bumping the score
version in the legacy score encoder again.
Add "Synesthesia" mod for osu! ruleset (#23520 by @jtbiddle)
This is a mod for osu!standard that colors hit circles and sliders based on their beat division in the song. For
example, objects that are on full notes are white, half notes are red, and quarter notes are blue. This is a simple
implementation using the function for the snap coloring preference in osu!mania, and shares the same colors. I
implemented this in an attempt to make reading complicated rhythms easier, especially for low AR or hidden.