Releases: ppy/osu
2024.1224.1
Difficulty Calculation
- Refactor
TaikoDifficultyCalculator
and addDifficultStrain
attributes (#31191 by @Lawtrohux) - Increase
accscalingshift
and includecountok
in hit proportion (#31195 by @Lawtrohux) - Remove Conditional
SkillRating
nerf to Converts (#31196 by @Lawtrohux) - Simplify osu! high-bpm acute angle jumps bonus (#30902 by @stanriders)
- Implement
Reading
Skill into osu!taiko (#31208 by @Lawtrohux) - Change slider drop penalty to use actual number of difficult sliders, fix slider drop penalty being too lenient (#31055 by @stanriders)
- Use
lastAngle
when nerfing repeated angles on acute bonus (#31245 by @tsunyoku)
Editor
Change beat snap divisor adjust defaults to be Ctrl+Scroll instead of Ctrl+Shift+Scroll (#31147 by @peppy)
Smaller changes
Framework
- Fix
BindableList
methods crashing with non-IList
collections (ppy/osu-framework#6466 by @smoogipoo) - Move "global" scroll-adjusts-volume to a per-screen component-based implementation (#31146 by @peppy)
- Implement getting OpenGL iOS main framebuffer on SDL3 (ppy/osu-framework#6468 by @Susko3)
- Fix typo in main menu tip (#31224 by @frenzibyte)
- Use Accelerate framework for texture image processing on iOS and fix premultiplication issues (ppy/osu-framework#6470 by @frenzibyte)
- Shave allocation overheads in recent iOS texture loading code (ppy/osu-framework#6471 by @frenzibyte)
Gameplay
Skip the pause cooldown when in intro / break time (#31143 by @peppy)
Implement skinnable mod display (#30993 by @Tom94)
Gameplay (osu!)
Fix some hitcircle sprites missing in certain skins since last release (#31254 by @peppy)
Gameplay (osu!mania)
- Fix "spinner" conversion for mania-specific beatmaps (#30984 by @smoogipoo)
Main Menu
- Load seasonal backgrounds without requiring being logged in (#31198 by @peppy)
- No reason not to.
- Add christmas / seasonal mode (#31206 by @peppy)
- Slightly reduce background brightness at main menu when seasonal lighting is active (#31258 by @peppy)
- Fix adjusting volume using scroll wheel not working during intro (#31259 by @peppy)
Platform
Fix logo animation not rendering correctly on iOS (ppy/osu-resources#351 by @frenzibyte)
Save "featured artists" filter to user settings (#31238 by @frenzibyte)
Also sets it to always on for iOS in preparation for a larger scale release.
Smaller changes
- Update game structure with the returned iOS application delegates (#31152 by @frenzibyte)
- Fix hardware cursor showing on iPadOS when it shouldn't (#31226 by @frenzibyte)
Settings
Add ability to rename the current skin (#31220 by @normalid-awa)
In settings for now, very temporary.
Song Select
Implement ability to mark beatmap as played (#31138 by @bdach)
Would you believe it that this button that has been there for literal years never did anything? Also available via context menu.
Tournament
Hide !mp
commands from tournament streaming chat (#31150 by @peppy)
Full Changelog: 2024.1219.2...2024.1224.1
2024.1219.2
Christmas!
Add Christmas festivities (ppy/osu-resources#350 by @peppy)
One Christmas at a time, we will make lazer the festive paradise it deserves to be.
Special thanks to nekodex for the new track and pishifat for helping make the beatmap that fuels the lighting system. Also to everyone else who gave feedback along the way.
Code Quality
- Update game packages (ppy/osu-server-spectator#250 by @bdach)
- Allow tsunyoku and stanriders to trigger diffcalc spreadsheet generator (#31071 by @smoogipoo)
- Fix potential issues with medal display (#30877 by @peppy)
- Intends to address rare instances of medal display "soft-locking" the game.
- Access beatmap store via abstract base class (#31076 by @peppy)
- Attempt to fix flaky editor beatmap creation test (#31107 by @bdach)
- Update localisations (ppy/osu-resources#349 by @peppy)
- Fix
BindableList
methods crashing with non-IList
collections (ppy/osu-framework#6466 by @smoogipoo)
Editor
Implement basic bookmark support in editor (#30960 by @bdach)
2024-12-03.15-21-03.mp4
Front-loaded as "basic" support because:
- Bookmarks only display on bottom timeline. I thought a bit about having them show on the top timeline too, but I'm not sure I can fit it in there and not make the timeline even more oversaturated with info than it already is.
- Hotkeys from stable work, with slight alterations:
Ctrl
-B
to add a bookmarkCtrl
-Shift
-B
to remove the closest bookmarks (all within 2s of current timestamp)Alt
-β
to seek to previous bookmarkAlt
-β
to seek to next bookmark- The only exposed way to mutate the bookmarks from the UI that is not the hotkey is in the timing menu. That's different from stable where there are bookmark controls near the bottom timeline, but again, not sure how to make that happen without cluttering things further.
Allow choosing different background/audio files for individual difficulties (#30860 by @frenzibyte)
CleanShot.2024-11-27.at.05.36.41-converted.mp4
Smaller changes
- Preserve effect point specifications when creating blank difficulties (#30973 by @frenzibyte)
- Fixes kiai time and scroll speed specifications being lost when creating a new difficulty. Scroll speed specifications are only retained when creating a new difficulty for the same ruleset as the original beatmap.
- Fix adjusting control point offset after undo/redo causing catastrophic failure (#31109 by @peppy)
- Change the way "current" points are hinted on timing screen (#31110 by @peppy)
Gameplay
- Fix player settings overlay cog overlapping skin elements (#31106 by @peppy)
- This brings it down to be in line with the flowing elements that usually do their best to not get in the way.
osu.2024-12-13.at.08.29.32.mp4
Gameplay (osu!)
- Use time-based resume overlay when playing osu! on touchscreen (#31156 by @frenzibyte)
- The "click to resume" overlay does not work on touchscreen devices as the idea is to point with a pointer and press a key / mouse button to resume.
Gameplay (osu!catch)
Add convert to stream functionality for juice streams (#30763 by @Darius-Wattimena)
Gameplay (osu!taiko)
- Update recommended difficulty for osu!taiko (#31103 by @Joehuu)
- Implement considerations for Relax within osu!taiko diffcalc (#30591 by @Lawtrohux)
- Adjust
DifficultyValue
curve to avoid lower star rating of osu!taiko being too inflated (#31067 by @YaniFR)
Multiplayer
Improve multiplayer room status handling (#30838 by @smoogipoo)
Thanks to this change, you can now see whether players in a multiplayer room are currently playing a map or not on the listing.
2024-11-22.20-58-07.mp4
Add ability to filter out currently playing rooms (#31073 by @bdach)
2024-12-11.13-10-42.mp4
Performance
Fix increased CPU usage when game is in the background (ppy/osu-framework#6451 by @smoogipoo)
Smaller changes
- Avoid beatmap lookup per bar in logo visualisation (#31047 by @peppy)
- Improve
BindableList
performance + reduce allocations (ppy/osu-framework#6450 by @smoogipoo)
Platform
Enable beatmap exports on iOS (#31037 by @frenzibyte)
Bump OpenTabletDriver to 0.6.5.0 (ppy/osu-framework#6465 by @jamesbt365)
Pulls in detection & support improvements for tens of tablet models.
Smaller changes
- Fix IPC not working in release (#31000 by @LittleEndu)
- Prefer HDTV / Rec. 709 colorspace for videos with HD resolution and unspecified colorspace (ppy/osu-framework#6403 by @frenzibyte)
- Fix unobserved exceptions on named pipe shutdown (ppy/osu-framework#6447 by @peppy)
- Add descriptions to osu! file associations in iOS (#31035 by @frenzibyte)
- Add support for presenting/opening files on iOS (ppy/osu-framework#6448 by @frenzibyte)
- Use temporary storage for file exports on iOS (#31039 by @frenzibyte)
- Fix multiple instances of a game being allowed to start concurrently (ppy/osu-framework#6452 by @peppy)
- Bring back iOS application delegates and fix many issues (ppy/osu-framework#6453 by @frenzibyte)
- Fix iOS audio session allowing other background audio to mix with game audio (ppy/osu-framework#6457 by @frenzibyte)
- Fix disabling hold-to-right-click not cancelling in-progress actions (ppy/osu-framework#6459 by @frenzibyte)
- Affects mobile devices. Noticed in osu! gameplay, where if you press resume from the pause overlay, a right click is always triggered at the point where the button was clicked:
ScreenRecording_12-15-2024.11-14-24_1.mov
- Fix iOS app configuration missing certain specifications (#31162 by @frenzibyte)
- Fixes some iOS submission guideline failures.
Results
Allow using "quick retry" shortcut in more cases from results screen (#31108 by @peppy)
Fixes "quick retry" hotkey not working for autoplay, but also allows using it for other replays when the replay is already guaranteed to be local (ie. on the second playback).
Skin Editor
Fix player settings overlay appearing while in skin editor (#31105 by @peppy)
Also stops the settings appearing if the mouse is too far away from the window.
Skinning
- Fix lookups of hit circle slider pieces potentially using wrong source skin (#31052 by @peppy)
- Visible on some maps with partial beatmap skins included:
Before | After |
---|---|
UI
Add recommended difficulty numerical value near filter in beatmap listing (#31101 by @Joehuu)
Smaller changes
- Fix top score statistics section total score display being terminally broken (#31041 by @bdach)
- Fixes total score displaying completely wrong and mangled values on languages that use spaces as thousands separators.
- Expose high precision mouse toggle when searching for "sensitivity" and other keywords (#31139 by @peppy)
- Add missing mania tooltip overlay for 4k and 7k (#31084 by @NicholasChin28)
New Contributors
- @NicholasChin28 made their first contribution in #31084
Full Changelog: 2024.1208.0...2024.1219.2
2024.1208.0
Audio
- Improve menu/context-menu sample playback (#30910 by @nekodex)
- Updates menus to use new samples and fixes various cases where samples were previously not being played (e.g. when navigating menubars and submenus)
Chat
Sort public chat channels alphabetically, private channels based on recent messages (#30874 by @peppy)
Code Quality
- Add
DifficultyCalculationUtils
(#30536 by @stanriders) - Hide cursor trail from draw visualiser (#30507 by @smoogipoo)
- Remove field that's used only in one method (#30619 by @Givikap120)
- Update Velopack to 0.0.915 (#30659 by @smoogipoo)
- Fix reference issues in iOS tests (#30729 by @minisbett)
- Build Android with non-maui workflow (#30747 by @smoogipoo)
- Remove
CachedModelDependencyContainer
andOnlinePlayComposite
from multiplayer (#30634 by @smoogipoo) - Add test case covering stability of compatibility export operation (#30795 by @bdach)
- Recreate beatmap every test run in
ModTestScene
(#30819 by @frenzibyte) - Enable NRT for multiplayer and playlists (#30807 by @smoogipoo)
- Add localisation support for menu tip (#30865 by @ItsShamed)
- Update databased room status depending on gameplay state (ppy/osu-server-spectator#249 by @smoogipoo)
- Work around Android CI workflow errors (#30904 by @frenzibyte)
- Centralise supported file extensions to one helper class (#30915 by @bdach)
- Expose more migration helper methods (#30918 by @peppy)
- Stop loudly logging backwards seek bug to sentry (#30928 by @peppy)
- Update localisations (ppy/osu-resources#347 by @peppy)
- Move unnecessary properties from
BeatmapInfo
/ realm toIBeatmap
(#28473 by @bdach) - Use
LocalisationManager.GetLocalisedString()
instead of bindable hack (#30965 by @Susko3) - Set up-to-date .NET code quality analyzers (#30921 by @huoyaoyuan)
Editor
Fix placing objects via touch in editor not working sometimes (#30411 by @frenzibyte)
ScreenRecording_10-23-2024.16-55-59_1.MP4
Collapse sample point indicators into dots if they cannot be displayed in full (#29896 by @OliBomby)
Improve visual appearance of mania selection blueprints (#30512 by @bdach)
This isn't by all means supposed to be the end product, it's 80% of the target result in my mind in 20% of the time. Placement blueprints are all unchanged because attempting to access anything skinnable in the placement blueprint, before there is a DHO placed in an actual column, is hell. So I'm leaving that for later.
before | after |
---|---|
Fix osu!mania notes disappearing on seek to their end time (#30755 by @bdach)
Change some beatmap default settings to match stable (#30826 by @peppy)
- Countdown should be off by default
- Samples match playback rate also
Do not deselect objects when control-clicking without hitting anything (#30947 by @bdach)
I checked a few apps to see what they do in this type of scenario and it's a very mixed bag but I think this behaviour makes sense.
Smaller changes
- Fix slow performance of polygon generation tool (#30214 by @minetoblend)
- Fix timing point truncation causing mis-snaps on compatibility-exported lazer beatmaps (#30607 by @OliBomby)
- Deactivate new combo toggle on deselecting objects (#30756 by @bdach)
- Add snapping info to the osu!catch selected objects inspector (#30766 by @Darius-Wattimena)
- Fix editor grid settings not displaying decimal portion in slider tooltips (#30859 by @frenzibyte)
- Fix hitobjects' samples getting in bad state when changing selection between objects (#30881 by @peppy)
Framework
Bring back borderless mode for macOS and Linux (ppy/osu-framework#6264 by @Susko3)
Smaller changes
- Disable
OnScreenKeyboardOverlapsGameWindow
on iOS when hardware keyboard is attached (ppy/osu-framework#6407 by @frenzibyte) - Use SDL3 text editing events on windows (ppy/osu-framework#6419 by @Susko3)
- Fix
RearrangeableListContainer<>
crashing on replacement operations (ppy/osu-framework#6424 by @smoogipoo) - Remove SourceLink package reference (ppy/osu-framework#6430 by @smoogipoo)
- Make
RearrangeableListContainer<>
only replace differences (ppy/osu-framework#6425 by @smoogipoo) - Factor window scale in
UserInputManager.mouseOutsideAllDisplays
(ppy/osu-framework#6432 by @Susko3) - Work around Android CI workflow errors (ppy/osu-framework#6436 by @frenzibyte)
- Update SDL3 package (ppy/osu-framework#6437 by @smoogipoo)
- Set up-to-date .NET code quality analyzers (ppy/osu-framework#6434 by @huoyaoyuan)
- Clean up
IWindow
and remove platform-agnostic code probingISDLWindow
(ppy/osu-framework#6438 by @Susko3) - Document
CursorEffectContainer
and update outdated name (ppy/osu-framework#6441 by @voidedWarranties) - Update transitive vulnerable dependencies for source generation tests (ppy/osu-framework#6435 by @huoyaoyuan)
- Add callback for when a submenu is opened (ppy/osu-framework#6439 by @nekodex)
- Fix Rider support of .globalconfig (ppy/osu-framework#6444 by @huoyaoyuan)
- Fix recent warnings seen on Rider 2024.3 (ppy/osu-framework#6443 by @frenzibyte)
- Switch to using named pipes for IPC (ppy/osu-framework#6442 by @peppy)
- Allow rewriting URL lookups in
OnlineStore
(ppy/osu-framework#6433 by @frenzibyte)
Gameplay
Increase idle time before gameplay loads when hovering controls (#30602 by @peppy)
Fix occasional flash when quick exiting / retrying from player (#30623 by @peppy)
Don't play fail animation if restarting on fail (#30862 by @frenzibyte)
Fixes red flashes.
Fix pause shortcut on multiplayer no longer requiring hold (#30861 by @frenzibyte)
Add a toggle for star fountains during gameplay (#30894 by @HenintsoaSky)
Adds an option under Gameplay > General that allows users to enable/disable star fountains during gameplay.
Fix "watch replay" button sometimes not loading the replay on first click (#30895 by @peppy)
Delay back button appearance when performing a quick restart (#30863 by @frenzibyte)
Fix quick retry transition from results screen looking a bit wrong (#30970 by @peppy)
Fix score no longer being saved when quick-restarting after pass (#30937 by @frenzibyte)
Smaller changes
- Do not show timing distribution graph in offset control if there's not enough timed hits (#30622 by @bdach)
- Fix black layer not fading fast enough when exiting quickly from quick restart (#30680 by @peppy)
- Fix key counter not updating activation state on initial load (#30718 by @frenzibyte)
- Adjust beat synced animation to be smoother in skip and break overlay (#30794 by @Fivoka)
- Fix beatmap load not continuing when settings slider is focused (#30799 by @peppy)
- Clear previous
LastLocalUserScore
when returning to song select (#30905 by @peppy)
Gameplay (osu!)
Implement new osu! mod "Bloom" (#30299 by @jhk2601)
This mod dynamically adjusts the cursor size as your combo increases, similar to how No Scope functions. The idea is for it to play as a sort of "reverse flashlight". I think it plays well and adds an interesting dynamic where your cursor essentially becomes an obstacle you have to work around sometimes, see attached video to get a better idea.
Bloom.demo.mp4
Gameplay (osu!mania)
Fix stage line alignment in mania not matching stable (#30590 by @frenzibyte)
Before | After |
---|---|
Make mania award SS even if there are GREAT judgements (#29640 by @smoogipoo)
Allow setting osu!mania scroll speed to single decimal precision (#30832 by @peppy)
Gameplay (osu!taiko)
##...
2024.1115.3
A hotfix exclusively for linux users. Note: may require a manual download if your linux install is already borked.
Full Changelog: 2024.1115.2...2024.1115.3
2024.1115.2
Full Changelog: 2024.1115.1...2024.1115.2
2024.1115.1
Audio
New new osu!mania ruleset selection sample (ppy/osu-resources#345 by @nekodex)
Smaller changes
- Fix old looping samples not stopping when replacing a
SkinnableSound
'sSamples
(#30389 by @bdach) - Increase ducking duration when selecting osu!mania ruleset (#30423 by @nekodex)
- Extends the duck duration to sit better with the new longer osu!mania selection sample.
Code Quality
- Enable NRT in
LocalisableStringEqualityComparer
(ppy/osu-framework#6386 by @smoogipoo) - Explicitly set S3 timeouts & retry counts (ppy/osu-server-spectator#246 by @bdach)
- Recommend C# Dev Kit extension on VSCode (#30246 by @Joehuu)
- Clamp scale with lower and upper bounds (#30080 by @OliBomby)
- Improve diffcalc workflow with explicit wait + logs (#30318 by @smoogipoo)
- Update SDL3-CS (ppy/osu-framework#6389 by @hwsmm)
- Update translations (ppy/osu-resources#343 by @peppy)
- Fix argument order in diffcalc workflow (#30319 by @smoogipoo)
- Expose no-op constructors as
protected
(#30335 by @peppy) - Refactor
BeatmapAttributeText
to compute values on the fly (#30320 by @smoogipoo) - Change convert-to-ternary warning to hint (#30373 by @smoogipoo)
- Update all dependencies (ppy/osu-server-spectator#247 by @peppy)
- Move TestTouchInputAfterTouchingComposeArea to separate test scene (#30408 by @OliBomby)
- Ignore casing when matching mods acronyms (#30458 by @smoogipoo)
- Add attribute to hide arbitrary drawables from draw visualiser (ppy/osu-framework#6411 by @smoogipoo)
- Fix texture wrapping not updating when atlas is already bound (ppy/osu-framework#6410 by @Jumprocks1)
- Add better support for adding form file parameters to web requests (ppy/osu-framework#6412 by @bdach)
- Fix intermittent beatmap recommendations test (#30526 by @smoogipoo)
- Replace
MultiplayerRoomComposite
with local bindings (#30525 by @smoogipoo) - Fix up + improve CI test reporting workflow (#30543 by @smoogipoo)
- Allow customising
ScrollContainer
's scrollbar mapping (ppy/osu-framework#6415 by @peppy) - Globalise
CountDifficultStrains
within StrainSkill (#30534 by @Lawtrohux) - Make draw visualiser follow proxied drawables to their visual layer (ppy/osu-framework#6420 by @smoogipoo)
- Allow
CachedModelDependencyContainer
to cache models with non-bindable fields (ppy/osu-framework#6416 by @smoogipoo) - Refactor step buttons + improve assertion messages (ppy/osu-framework#6418 by @smoogipoo)
- Fix error triggered in label step execution not being logged (ppy/osu-framework#6421 by @frenzibyte)
- Fix CI test report workflow (ppy/osu-framework#6422 by @bdach)
- Simplify convertible hitobject parsing and add
IHasLegacyHitObjectType
(#30578 by @smoogipoo)
Difficulty
- Remove estimations where score data is available for osu! difficulty calculations (#27691 by @Finadoggie)
- Cap effective miss count to total hits (#30455 by @smoogipoo)
- osu!taiko: Implement stamina consideration for Mono (single-coloured) patterns. (#30460 by @Lawtrohux)
- osu!taiko: Bring back convert nerf to fix overweighted taiko difficulty (#30456 by @smoogipoo)
- Reset
effectiveMissCount
when calculating pp (#30518 by @Givikap120) - Split diffcalc workflow to add concurrency group (#30566 by @smoogipoo)
- Clamp estimateImproperlyFollowedDifficultSliders for lazer scores (#30544 by @Finadoggie)
- Fix NaN PP counter values while SR is 0 (#30618 by @Natelytle)
- Clamp estimateImproperlyFollowedDifficultSliders for lazer scores (#30544 by @Finadoggie)
Editor
Add key binding for cycling grid type (#26303 by @OliBomby)
Using the tool boxes on the right frequently is quite annoying, so I also added a keybind for cycling the grid type (H). I chose this key because its right next to the grid spacing cycle hotkey (G) and unused. It makes sense to group the grid property changing hotkeys physically close on the keyboard. An alternative hotkey could be like Shift+G or Shift+G, Ctrl+G is taken.
There's also a test for the grid placement tool in here which apparently got left behind when I was splitting up this PR into parts. I guess it can't hurt to have it so here it is.
Fix drawing slider with touch inserts a random control point at beginning (#30263 by @frenzibyte)
Add toggles and hotkeys for configuring sample addition bank (#28863 by @OliBomby)
This PR adds a new left toolbox for configuring the sample addition bank of the selected hit objects. The toggles for the sample bank now only affect the hitnormal sample of the selection.
The hotkeys are Alt-Q~R
. This differs from stable's Ctrl-Q~R
because those hotkeys are already taken by other tools in lazer.
Using Alt-Shift-Q~R
sets both sample bank and sample addition bank simultaneously, like previous functionality.
The same hotkeys are also added to the sample edit popover on the timeline.
Improve scale/rotate popover UX to better match user expectation (#30315 by @OliBomby)
Added keyboard step values to the slider bars which match the keyboard step in stable. This is especially nice to use with ppy/osu-framework#6390
Also made the popovers close when you press Enter (or Spacebar). This matches the behaviour in stable so now all the scale/rotate muscle memory should carry over nicely to lazer.
Add support for "auto" sample bank additions in the editor (#29648 by @OliBomby)
Keep sidebars expanded by default (#30387 by @peppy)
They will not only contract if the user chooses to have them contract (new setting in the View
menu) or if the game isn't wide enough to allow full interaction with the playfield while they are expanded.
Allow scaling down to 5% in popover scale dialog (#30482 by @peppy)
Remember origin settings for scale/rotation popover (#30484 by @peppy)
Fix drum roll editor blueprint size & input handling (#30511 by @bdach)
2024-11-05.13-09-55.mp4
Fix effect point scroll speeds below 0.1x not being encoded properly (#30509 by @bdach)
Add ability to hide breaks from timeline (#30505 by @peppy)
This was another IRL request from a mapper / team member. The rationale here is that it can be very annoying to map with break time enabled if you have a large gap in the beatmap you are trying to fill with hitobjects, as you are placing objects on top of a very gray area:
osu.2024-11-05.at.04.06.40.mp4
Add ability to automatically move already-placed objects when changing timing settings (#28382 by @Hecatia-Lapislazuli)
Smaller changes
- Fix split control point context menu option not showing up on newly created control points (#30189 by @OliBomby)
- Ensure at least one scale popover axis is active at any time (#30219 by @bdach)
- Add breathing room to seek back between control points in editor (#30328 by @TaterToes)
- Fix timeline blueprints sometimes causing crashes due to current placement blueprint becoming unsorted (#30377 by @bdach)
- Fix osu!mania flip operations sometimes not preserving selection in mania editor (#30284 by @bdach)
- Fix several cases of deselection not correctly terminating drag operations on slider selection blueprint (#30294 by @bdach)
- Fix editor sidebar resizing on hover repeatedly when polygon popover is opened (#30450 by @Joehuu)
- Fix catcher size and hyperdashes indication on adjusting CircleSize (#30300 by @Darius-Wattimena)
- Fix drum rolls losing width on strong state toggle in editor (#30508 by @bdach)
Gameplay
Fix argon song progress bar tooltip showing during active gameplay (#30199 by @bdach)
Decrease the time it takes to quick retry by ~650 ms (#30261 by @peppy)
Removes an arbitrary delay from the quick retry process. Now it is only limited by load speed (which will improve in the future).
Remove hold-to-confirm delay when pausing using keyboard shortcuts (#30309 by @peppy)
This keeps coming up (latest case) so I think we need to listen to users and make this change. Matches stable behaviour.
Make quick restart even faster (#30603 by @peppy)
This is a second pass at refining the quick restart experience.
- More arbitrarily induced delays are culled
- Settings are hidden now (since interacting with them is nigh impossible given the faster restart speed)
- Some animations are hidden to make the process less jarring
- Parallax is disabled to stop the background displacing weirdly
Smaller changes
- Handle mid-play mod changes (ppy/osu-server-spectator#245 by @bdach)
- Do not fall back to beatmap's original ruleset if conversion fails (#30424 by @bdach)
- Fix break overlay grades not using localised string (#30572 by @Joehuu)
- Fix occasional flash when quick exiting / retrying from player (#30623 by @peppy)
Gameplay (osu!)
Fix slider ticks and repeats incorrectly moved to position of head when strict tracking and any conversion mod that moves objects is active (#30281 by @bdach)
Fix cursor rotating with barrel roll mod active (#30326 by @jhk2601)
Some may argue that cursor rotation is intended behavior but it looks odd and feels pretty janky, especially on abnormal cursors like the issue describes. Would be better if cursor rotation could be adjusted in existing switch stat...
2024.1009.1
Code Quality
- Remove poorly-fitted "legacy combo counter" abstraction (#29838 by @bdach)
- Update framework (#29848 by @peppy)
- Make all difficulty calculators use
GetMaxCombo
function (#29962 by @Givikap120) - Fix reflection-related iOS crashes (#29992 by @smoogipoo)
- Fix iOS CI build (#30019 by @smoogipoo)
- Fix usage of locked context without locking (#30074 by @peppy)
- Fix broken star rating on Random mod (#30021 by @bdach)
- Fix several breakages with migration operation (#30151 by @bdach)
Daily Challenge
- Play daily challenge animation when arriving from the notification (#29770 by @Ianlucht)
- Add Total Participation stat to users profile Daily Challenge Tooltip (#29714 by @Crystallized21)
- Exclude restricted users from daily challenge-related queries (ppy/osu-server-spectator#243 by @bdach)
Difficulty
- Refactoring:
SpeedEvaluator
refactoring (#29294 by @Givikap120) - Refactoring: Merged multipliers that do the same thing (#29293 by @Givikap120)
- Refactoring: Removing
DEFAULT_DIFFICULTY_MULTIPLIER
fromOsuStrainSkill
(#29291 by @Givikap120) - Uncap speed OD-accuracy scaling (#30088 by @stanriders)
- A small fix to make accuracy scaling on low ODs a bit more harsh
- Various speed distance difficulty calculation changes (#29980 by @tsunyoku)
- Make diffcalc workflow recreate comment on completion (#30132 by @smoogipoo)
- Implement a bunch of rhythm difficulty calculation fixes (#28871 by @stanriders)
- Slight aim skill multiplier rebalance (#29998 by @tsunyoku)
- Include sliders in accuracy pp if slider head accuracy is in use (#27063 by @tsunyoku)
- Save
master
state when running diffcalc workflow (#30135 by @smoogipoo) - Remove combo scaling from Aim and Speed from osu! performance calculation (#16280 by @apollo-dw)
- Statistical accuracy PP and difficulty scaling for the osu!taiko ruleset (#20963 by @Natelytle)
- Bump difficulty calculator versions (#30139 by @bdach)
- In order for the new star difficulty to be shown to users on the next release.
Editor
Make editor flip, rotate, and scale tools revolve around the grid center (#26311 by @OliBomby)
Changes how the Ctrl+H and Ctrl+J flip mechanic works. It now takes into account the origin and rotation of the grid to flip around that axis. This makes it easy to map symmetric patterns which are off-angle or not around the center of the playfield.
Also the Ctrl+R rotation tool uses the grid origin as the center of the playfield.
The precision scale tool uses the grid origin as the center of the playfield and uses the grid rotation for axis constrained scaling (for scaling only along the X or Y axis)
Fix scaling sliders ignoring the scale origin (#29942 by @minetoblend)
Makes sure that when scaling sliders with the scale box, they are scaled relatively to the scale origin instead of the slider head.
2024-09-20.17-15-02.mp4
Freeze select box buttons position on press (#29950 by @minetoblend)
Will freeze the position of the SelectBox
buttons in place when one of the buttons was clicked until the clicked button is no longer hovered. This ensures that buttons can be pressed repeatedly without having to reposition the mouse on every click.
Especially when rotating the selection by 90 degrees, the buttons moving around on each press was a major pain point for me since I often wanna rotate by 180 degrees and just wanna double click the button for that.
2024-09-21.14-57-25.mp4
Support scaling around center when scaling with select box (#29949 by @minetoblend)
Will scale around the center when pressing alt while scaling things with the select box.
2024-09-21.14-18-19.mp4
2024-09-21.14-23-38.mp4
Add to existing selection when dragging with control pressed (#29918 by @bdach)
2024-09-18.15-28-13.mp4
Add button to centre editor grid to current hit object (#30069 by @peppy)
osu.2024-10-01.at.06.22.22.mp4
Add hotkey hints to editor menus (#29691 by @bdach)
2024-09-04.12-26-32.mp4
Redesign editor setup screen with new "form" controls (#30099 by @bdach)
2024-10-03.13-55-55.mp4
Also contains some assorted drive-by fixes. See commit messages for details.
Move setup screen background preview to appropriate form control (#30109 by @bdach)
2024-10-04.11-11-52.mp4
When adding a new combo colour, use the last colour as a starting point (#30110 by @peppy)
Also opens the popover automatically because you always want to edit it.
osu.Game.Tests.2024-10-04.at.09.43.55.mp4
Smaller changes
- Fix timing points being blocked by buttons in the editor (#29766 by @SchiavoAnto)
- Fix slider end drag marker being in incorrect position for stacked sliders (#29893 by @bdach)
- Fix occasional crash when changing samples of hitobjects (#29933 by @bdach)
- Refactor placement blueprints to not be limited to hit objects (#29986 by @OliBomby)
- This makes it possible to make placement tools which add something other than a hit object.
- Fix argon volume-aware hitsounds not correctly playing immediately after object placement (#29970 by @bdach)
- Use minimum enclosing circle as selection centre for scale and rotate (#29938 by @OliBomby)
- Ensure selection is preserved when moving selected objects between osu!mania columns (#29899 by @bdach)
- Ensure sliders are snapped when changing path types (#30063 by @bdach)
- Fix various distance snap grid weirdness around unsnapped objects (#30062 by @bdach)
- Fix editor timestamp URLs not working when they contain a space (#30024 by @peppy)
- Initialise colours section with default combo colours if none present (#30108 by @bdach)
- Fix improper handling of decimal separator in "form" number boxes / sliders (#30113 by @bdach)
- Only allow seek to next/previous object via keybinding if there is no selection (#29860 by @bdach)
- Fixes a key bind conflict.
- Fix "Center on selected object" button not changing grid coordinates (#30134 by @bdach)
- Add grid placement tool (#26313 by @OliBomby)
- Adds the 'Grid' placement tool to the left tool box. Hover it for details on how to use (there's a few different ways you can make use of this powerful tool).
osu._k6UmTIJN2n.mp4
Framework
- Fix typo in
CompositeDrawable
(ppy/osu-framework#6372 by @Nebula-Developer) - Remove closure allocations in VeldridStagingTexturePool (ppy/osu-framework#6373 by @smoogipoo)
- Update SDL3-CS (ppy/osu-framework#6374 by @hwsmm)
- Expose
LocalisationManager.GetLocalisedString()
as public (ppy/osu-framework#6377 by @bdach) - Fix
DecouplingFramedClock
retaining old lastSeekFailed (ppy/osu-framework#6378 by @hwsmm) - Fix iOS CI build (ppy/osu-framework#6379 by @smoogipoo)
- Rollback iOS workload to last known working version (ppy/osu-framework#6384 by @smoogipoo)
- Expose slider bar commit method as virtual (ppy/osu-framework#6383 by @bdach)
- Add
NineSliceSprite
(ppy/osu-framework#6380 by @minetoblend)
Gameplay
Add progress tooltip for ArgonSongProgressBar (#30078 by @CloneWith)
Smaller changes
- Implement beat-synchronized animation in skip overlay (#29925 by @nekupaw)
- Fix score being cloned in async method causing random errors (again) (#29966 by @bdach)
- Continue displaying storyboard even if fully dimmed in specific circumstances (#29967 by @bdach)
- Avoid client updates (and update notifications) from appearing in more gameplay cases (#30073 by @peppy)
Gameplay (osu!)
Fix several issues in interactions between playfield-altering mods and the replay analysis feature (#29841 by @bdach)
Gameplay (osu!catch)
Fix osu!catch fruit rotation animation being applied too late (#29894 by @peppy)
Now Playing
Shuffle playback order in global playlist by default (#29917 by @bdach)
Performance
- Update shader preloader with missing shader usages (#30018 by @peppy)
- Fix difficulty settings sliders attempting to reprocess all hitobjects on every instantaneous change (#30114 by @bdach)
Platform
Rollback iOS workload to last known working version (#30121 by @smoogipoo)
We can build iOS again, yay!
Smaller changes
- Differentiate osu!lazer app name in windows menus (#29822 by @smallketchup82)
- Fix restart notifications appearing every 30 minutes in some cases (#29787 by @peppy)
- Completely disable Velopack when using an external updater (#29805 by @smallketchup82)
- Add beatmap icon to windows beatmap files (#29812 by @smallketchup82)
- Update velopack and switch to using async version of
WaitExitThenApplyUpdates
(#29997 by @peppy) - Hide iOS home indicator by default (ppy/osu-framework#6385 by @smoog...
2024.906.2
Beatmap Listing
Editor
- Fix scroll speed slider defaulting to 0.01 (#29759 by @Bruno5430)
Gameplay
Platform
Fix game not running on earlier macOS versions (ppy/osu-framework#6370 by @smoogipoo)
Fix file associations breaking with new updater (#29743 by @smallketchup82)
Results
Fix collections dropdown overflowing in the results screen (#29742 by @SchiavoAnto)
Song Select
Fix beatmap difficulties not being split out on first load (#29762 by @peppy)
New Contributors
- @Bruno5430 made their first contribution in #29759
- @SchiavoAnto made their first contribution in #29742
- @Ianlucht made their first contribution in #29745
Full Changelog: 2024.906.1...2024.906.2
2024.906.1
Code Quality
- Remove dead row attribute classes (#29531 by @bdach)
- Remove requirement of
base
calls to ensure user skin container layouts are retrieved (#29564 by @peppy) - Provide API context earlier to api requests in order to fix missing schedules (#29656 by @peppy)
Daily Challenge
Fix mod icons potentially showing incorrectly during intro animation (#29560 by @peppy)
Show intro animation only once per session (#29542 by @frenzibyte)
Smaller changes
Editor
Add "polygon" hit circle creation tool (#28538 by @bdach)
Improve performance of drawing editor grids (#29476 by @EVAST9919)
Fix grid/distance snap keyboard bindings being back-to-front (#29528 by @smoogipoo)
Redesign timing table tracking (#29532 by @bdach)
This change removes some behaviours of the timing screen that were (in my view) causing overall jankness, and manifested in actual issues. The general spirit of the change is "don't try to do too much for the user".
So now:
- On entering the screen, the timing point active at the current instant of the map is selected. This is the only time where the selected point is changed automatically for the user.
- If there is no control point selected, the table will autoscroll to the latest timing group, unless the user manually scrolled the table before.
- If the selected control point changes, the table will autoscroll to the newly selected point, regardless of whether the user manually scrolled the table before.
- A new button is added which permits the user to select the latest timing group. As per the point above, this will autoscroll the user to that group at the same time.
Further timeline usability tweaks (#29545 by @peppy)
Based on general feedback over the last while.
Before | After |
---|---|
Add ability to change slider length by dragging slider tail (#25953 by @OliBomby)
This adds the ability to drag the slider tail by dragging a new half-circle blueprint display. You can also hold shift to change the velocity rather than the duration.
Fix osu!mania hold notes playing a sound at their tail (#29612 by @peppy)
Hide scroll speed changes for rulesets which don't use them (#29448 by @OliBomby)
Allow play/pause with spacebar while placing hitobjects (#29440 by @OliBomby)
Add more ways to seek to sample points (#28737 by @OliBomby)
This adds some new hotkeys (which are customisable from settings):
- Ctrl-Left/Right to jump between hit objects.
- Ctrl+Shift-Left/Right to jump between sample settings (and open the edit panel immediately).
Fix kiai display on summary timeline not always displaying correctly (#29667 by @EVAST9919)
Fix path control points losing curve type on save, reload or undo (#29446 by @OliBomby)
Smaller changes
- Make break periods in bottom timeline transparent (#29445 by @OliBomby)
- Fix crash on attempting to edit particular beatmaps (#29534 by @bdach)
- Fix timeline snapping ignoring nearby timing points (#29435 by @OliBomby)
- Fix incorrect bank set / sample addition logic (#29533 by @bdach)
- Improve performance by using optimised circle rendering in demanding places (#29660 by @EVAST9919)
- Fix incorrect osu!catch snap display when previous object is a juice stream (#29681 by @peppy)
Framework
Fix Android safe areas no longer working (ppy/osu-framework#6363 by @hwsmm)
Smaller changes
- Remove unnecessary boxing allocation (ppy/osu-framework#6360 by @smoogipoo)
- Bring back
HasFlagsFast
(ppy/osu-framework#6362 by @peppy)- .NET version performs poorly on debug.
- Update veldrid (ppy/osu-framework#6361 by @peppy)
- Fix tabbable container not checking if its next tab stop is focusable (ppy/osu-framework#6364 by @bdach)
- Add support for retrieving submit/rank date from local metadata cache (#29553 by @bdach)
- Implement native method for
PresentFileExternally
in MacOS (ppy/osu-framework#6365 by @cdwcgt) - Fix renderers can't batch vertices with the same blending parameters in some cases (ppy/osu-framework#6366 by @EVAST9919)
- Implement
FastCircle
component (ppy/osu-framework#6290 by @EVAST9919) - Update main operating systems to bass beta version (ppy/osu-framework#6367 by @peppy)
- Further testing of backwards seeks.
- Fix alloc overhead in hot path for keyboard checks (ppy/osu-framework#6368 by @peppy)
- Update managed-midi to fix disposal issue (ppy/osu-framework#6369 by @peppy)
- Update localisations (ppy/osu-resources#339 by @peppy)
Gameplay
Change "hold for menu" button to only show for touchscreen users by default (#29508 by @peppy)
This also increases the visibility on touch platforms (it used to be positional based, which doesn't make much sense). If you still want this to show you can use a new setting to set it to always display.
Fix legacy key counter position not matching stable (#29536 by @frenzibyte)
Fix resume overlay appearing behind HUD/skip overlays (#29540 by @frenzibyte)
Add star fountains/bursts when entering "kiai" mode (#29556 by @frenzibyte)
CleanShot.2024-08-21.at.17.32.30.mp4
Add shadow around break overlay to ensure it's visible against bright backgrounds (#29615 by @peppy)
Add beat-synced animation to break overlay (#29616 by @peppy)
Smaller changes
- Fix legacy combo counter bounce animation not always playing (#29474 by @peppy)
- Fix beatmap offset control not working correctly when calibrating from quitting gameplay (#29702 by @peppy)
Gameplay (osu!)
Apply current cursor scale to cursor trail (#29515 by @TheOmyNomy)
Current | Stable | PR |
---|---|---|
Add a replay analysis overlay (#27334 by @Sheppsu)
Smaller changes
- Fix oversight in osu! pause input handling (#29500 by @frenzibyte)
- Fix replay analysis marker depth when rewinding (#29707 by @Sheppsu)
Gameplay (osu!catch)
Fix catcher trail during dash/hyperdash not being consistently spaced (#29503 by @peppy)
Fix autoplay generator not considering circle size (#29646 by @smoogipoo)
Smaller changes
- Fix osu!catch fruits not resizing on texture change (#29679 by @smoogipoo)
Gameplay (osu!mania)
Remove mouse input from mania touch controls (#29654 by @smoogipoo)
Smaller changes
- Fix mania combo counter positioning break on centre anchor (#29529 by @frenzibyte)
Multiplayer
Remove extra background box in multiplayer screens (#29467 by @EVAST9919)
Improves render performance for lower end hardware.
Smaller changes
- Fix event leak in
Multiplayer
implementation (#29653 by @peppy) - Add automatic downloading support when spectating a multiplayer room (#29680 by @peppy)
- See inline commentary for commentary.
Next Release
- Update framework (#29690 by @peppy)
- Pulls in beta bass libraries (macOS / windows) and localisation updates.
Online
- Trigger request failure on receiving a null response for a typed
APIRequest
(#29695 by @peppy)- RFC. Seems like about what we'd want. Any kind of issue which results in deserialising not being feasible should be considered a failure for a typed
APIRequest
as far as I'm concerned.
- RFC. Seems like about what we'd want. Any kind of issue which results in deserialising not being feasible should be considered a failure for a typed
Overlay Mod Select
- Mod customization header/panel changes (#29626 by @Fabep)
- Removed on click event for the mod customization header, As of #29618 .
Renamed ModCustomisationPanelState, since only mods set the "old" Expanded panel state.
Further suggestions that could be applied to this area:
- Refactor mods that use the ExpandedByMod state to set parameters directly, for example copy attributes from current map when you enable difficulty adjustments.
- Keep colourprovider.light4 on the header when the mod customization panel is expanded. (I attempted to add this, but I am too stupid to understand how to remove it when the hover is lost & the panel is collapsed). π
Performance
- Fix per-frame allocations in
BeatmapCarousel
(#29688 by @peppy) - Fix high performance session potentially getting stuck after multiplayer spectator (#29701 by @peppy)
- Thanks to @smoogipoo for the call on this. All makes sense no...
2024.817.0
Editor
Fix grid snap slider placement double-click not making new segment if anchor not hovered (#29433 by @OliBomby)
Gameplay
Fix custom skin sprites no longer working (#29458 by @peppy)
UI
Fix preview play button having incorrect click area (#29438 by @Joehuu)
Full Changelog: 2024.816.0...2024.817.0