Skip to content

Releases: ppy/osu

2024.625.2

25 Jun 16:39
82bc95e
Compare
Choose a tag to compare

Editor

Fix crash when attempting to adjust duration of break that has no preceding/succeeding objects (#28580 by @bdach)

Fix crashes when opening scale/rotation popovers during selection box operations (#28589 by @bdach)

Fix editor performance dropping over time when hit markers are enabled (#28592 by @peppy)

Framework

Fix video decoding failing on Android due to missing av_dict_{set,free} (ppy/osu-framework#6313 by @bdach)

Update framework (#28590 by @peppy)

Gameplay (osu!)

Fix incorrect slider judgement positions when classic mod is active (#28568 by @bdach)

Gameplay (osu!mania)

Fix legacy skin hold note bodies not appearing when scrolling upwards (#28570 by @bdach)

Online

Implement score breakdown display for daily challenge screen (#28561 by @bdach)

Coming soon.

UI

Fix silver S rank display animating on every hit (#28576 by @PercyDan54)

Fix crash on calculating playlist duration when rate-changing mods are present (#28572 by @bdach)

Full Changelog: 2024.625.1...2024.625.2

2024.625.0

25 Jun 06:10
442705b
Compare
Choose a tag to compare

Editor

Fix changing slider path segment type not being undoable (#26423 by @B3nn1)

Add precise scaling control to osu! editor (#28309 by @OliBomby)

This adds the scale popover tool from osu!stable to lazer. I tried to mimic the original functionality as closely as possible, and in some aspects improve it.

The default hotkey for the scaling tool which is Ctrl+E (to avoid conflicts with the skin layout editor).

The maximum value of the scale slider is determined based on the current choice of origin and axis. The maximum value will always be the maximum scaling value that still keeps the scaling objects on screen.

This also slightly changes how the rotation popover works. Now it will automatically select the text in the textbox input, so the user can instantly type the value they want after opening the tool.

osu Game Rulesets Osu Tests_EcLev87sNt

Fix legacy osu!mania note body animation not resetting sometimes (#28339 by @bdach)

Add ability to change position, spacing, and rotation of the positional snap grid in the editor (#26309 by @OliBomby)

Allow flip operations in mania editor (#28421 by @bdach)

Fix stack leniency not applying immediately after change (#28441 by @bdach)

Fix changing key count in editor not immediately updating (#28445 by @bdach)

Allow modifying hold note start/end time via mania composer playfield (#28458 by @bdach)

Move timeline toggle controls to "view" menu (#28505 by @bdach)

osu_2024-06-17_10-26-02

master b42752c 03049d4
osu_2024-06-17_10-24-16 osu_2024-06-17_10-24-57 osu_2024-06-17_10-25-54
editor playfield scale gameplay playfield scale
osu_2024-06-17_10-31-38 osu_2024-06-17_10-31-34

Reduce editor opacity of several editor components when hovering over composer (#28507 by @bdach)

Add support for editing per-node hitsounds on sliders (#23443 by @OliBomby)

osu Game Rulesets Osu Tests_y2uv5bNj0B

Display breaks on editor timeline & allow manually adjusting their duration (#28523 by @bdach)

Add automatic generation of breaks in editor (#28528 by @bdach)

Breaks are automatically inserted between objects if there is ample time to do so, namely there must be at least:

  • 200ms between the last object before break and the break's start
  • 650ms for the break itself
  • 2 beat lengths between the break's end and the first object after break. This is a departure from stable wherein this was ruleset- and AR-dependent (by way of using preempt time), but in talking with the NAT it looked like most didn't know the specifics of how that worked so I decided I'd just use something simpler. This also probably works better for something like mania wherein the "preempt time" is largely user-settings-dependent (scroll speed).

Breaks that have been manually adjusted are not moved by the automatic regeneration on changes, unless they would break gameplay (by having an object's duration intersect a break), in which case they are forcibly removed. This manual adjustment tracking state is dodgy at best (will not work properly with undo/redo, because this info is not and should not be serialised out by the legacy beatmap encoder, which means that the manual tracking will be dropped upon undo), but it is what it is. That subsystem needs to get replaced by something else at some point anyway.

Fix osu!taiko playfield not updating after changing scroll speed (#28444 by @bdach)

Smaller changes

  • Refactor scale handling in editor to facilitate reuse (#26643 by @OliBomby)
  • Fix path blueprint becoming de-synced from slider path size (#28288 by @Hecatia-Lapislazuli)
  • Fix editor not saving when textbox is focused during exit procedure (#26717 by @peppy)
  • Fix for nearly straight sliders causing a crash (#28297 by @Hecatia-Lapislazuli)
  • Fix performance overhead from ternary state bindable callbacks when selection is changing (#28387 by @bdach)
  • Disallow running save-related operations concurrently (#28420 by @bdach)
  • Fix crash on drag selection via timeline while placement is active (#28478 by @bdach)

Framework

Gameplay

Add skinnable rank display (#24475 by @nanashi-1)

Screenshot from 2023-08-08 11-43-59

Implement basic pass and fail storyboard layer support (#28480 by @bdach)

Smaller changes

  • Enforce difficulty setting limits during decode (#28200 by @Hecatia-Lapislazuli)
    • Fixes some edge case beatmaps not working as expected.
  • Fix cinema mod not hiding playfield skin layer (#28332 by @peppy)
  • Hand...
Read more

2024.521.2

21 May 07:26
20a539b
Compare
Choose a tag to compare

What's Changed

SDL3 reverted

Full Changelog: 2024.521.1...2024.521.2

2024.519.1

19 May 09:00
5e1f696
Compare
Choose a tag to compare

What's Changed

  • Fix total score without mods migration failing on custom ruleset scores when custom ruleset cannot be loaded by @bdach in #28213

Full Changelog: 2024.519.0...2024.519.1

2024.519.0

19 May 06:42
9fcd3b5
Compare
Choose a tag to compare

Audio

Reduce startup volume (#28031 by @peppy)

Constant complaints about startup volume mean we should reduce it further and let users adjust as they see fit.

Values are from matching roughly with Apple Music volume of the same song, which should be a good guideline for not overpowering other things on system.

Smaller changes

  • Fix preview tracks playing after their owning overlay has hidden (#27898 by @bdach)

Editor

Add a chevron to distinguish editor menus with submenus (#27974 by @peppy)

Before After
2024-04-23 21 34 46@2x 2024-04-23 21 36 37@2x

Preserve storyboard events when saving a beatmap in the editor (#28033 by @peppy)

Until we have full encoding support for storyboards, this stop-gap measure ensures that storyboards don't just disappear from existence. Without this, saving a beatmap in the editor removes all local storyboard content (ie. anything in the .osu file). The most noticeable is any video background.

Smaller changes

  • Improve performance in timing setup screen (#27958 by @EVAST9919)
    • |master|pr|
      |---|---|
      |osu_2024-04-21_17-42-22|osu_2024-04-21_17-43-25|
  • Add verify checks for incorrect audio formats (#27895 by @64ArthurAraujo)
  • Fix deleting modified difficulty via editor leaving user in broken state (#27996 by @bdach)
    • If the difficulty being edited has unsaved changes, the editor exit flow would prompt for save after the deletion method has run. This is undesirable from a UX standpoint, and also leaves the user in a broken state.
  • Fully refetch working beatmap when entering editor (#27997 by @bdach)
  • Fix adding slider control points via context menu not undoing correctly (#27993 by @bdach)
  • Fix changing distance spacing multiplier hiding the distance snap grid when it's already shown (#28066 by @bdach)
  • Improve slider placement performance (#28102 by @EVAST9919)
  • Reduce container nesting inside PathControlPointPiece (#28205 by @EVAST9919)

Framework

Fix texture memory leak in Direct3D (ppy/osu-framework#6250 by @smoogipoo)

If you were seeing sluggish performance the longer the game was running (and potentially switched your renderer as a result), please give direct3d another chance!

Upgrade to SDL3 (#27815 by @Susko3)

Migrate Android framework to SDL (ppy/osu-framework#6105 by @hwsmm)

Removes a lot of legacy code and means we have less things to worry about with android.

Smaller changes

Gameplay

Tweak resume overlay to allow better visibility of hit objects underneath (#28050 by @peppy)

This change decreases alpha as the count proceeds. It also adds an initial delay before the countdown starts, to make things feel a bit less jank when resuming gameplay. Had to restructure slightly to make that part work.

Don't hide playfield layer with HUD (#28062 by @peppy)

Touched on in #12039. I think this makes sense - things which are attached to the playfield are expected to always be attached and not disappear. Something like an osu!mania health bar.

This gives users a way to make elements always display (regardless of the HUD hide setting) which is also cool.

Improve storyboard performance by using native loop support (#27539 by @frenzibyte)

Smaller changes

  • Fix storyboard videos not accepting transforms (#27967 by @peppy)
    • In stable, storyboard videos can actually accept all kinds of transforms just like other sprites. That wasn't working until now.
  • Continue loading even when osu! logo is being dragged at loading screen (#28174 by @peppy)

Gameplay (osu!)

  • Add Traceable performance calculation support (#27148 by @Givikap120)
  • Fix resume overlay not appearing after pausing when mouse cursor is inside window but outside of actual playfield area (#27896 by @bdach)
  • Fix cursormiddle not using the same skin source as cursor (#27964 by @smoogipoo)
  • Fix touches on judged circles changing cursor position (#28167 by @smoogipoo)

Gameplay (osu!catch)

Fix gameplay PP counter not matching results screen (#27808 by @smoogipoo)

Gameplay (osu!mania)

Add more usable osu!mania touch input system (#28173 by @peppy)

This takes smoogi's previous effort (#27790) and presents it in a state where it can be merged without skin configurability concerns. I've left the configurable settings in code for exposing in the future.

I've made changes to bring it more in line with how taiko's touch area system was implemented for conformity. The major change is that it no longer uses the presence of touch mod to decide whether to display (and can now be summoned using a mouse click or touch).

Do not change mania column width on mobile platforms (#28186 by @bdach)

With the new touch overlay, this doesn't make as much sense.

Input

  • Implement focus traps (ppy/osu-framework#6286 by @smoogipoo)
    • By extracting focus-management logic out of InputManager, we can implement something akin to a focus trap. Components can trap the...
Read more

2024.412.1

13 Apr 07:12
fdf1ab5
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2024.412.0...2024.412.1

2024.412.0

13 Apr 03:00
dd22735
Compare
Choose a tag to compare

Code Quality

Editor

Improve editor performance when many timeline ticks are present (#27632 by @EVAST9919)

Improve editor performance for maps with many control points (#27630 by @EVAST9919)

Smaller changes

Framework

Fix word wrapping not working well with chinese/japanaese/korean languages (ppy/osu-framework#6231 by @bdach)

Smaller changes

Gameplay

Change gameplay disclaimers to show inline and not delay gameplay start (#27616 by @bdach)

Add delayed resume for taiko/catch/mania (#27079 by @smoogipoo)

Fix some maps requiring multiple intro skips that weren't there on stable (#27784 by @bdach)

Add new icons for hit error meter (ppy/osu-resources#317 by @peppy)

2024-04-04 14 29 55@2x

Update hit error metre to use new icons (#27787 by @peppy)

Smaller changes

  • Fix incorrectly encoded score IsPerfect value (#27668 by @smoogipoo)
  • Add sample for gameplay resume countdown (ppy/osu-resources#314 by @nekodex)
  • Fix break overlay arrows look ugly on bright backgrounds (#27760 by @EVAST9919)
    • | before | after |
      |--------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|
      | master | pr |

Gameplay (osu!)

  • Fix bulbs on Catmull sliders (#27734 by @smoogipoo)
    • Some old maps were showing weird loops in sliders which weren't rendered in stable. Now they don't render here either.

Gameplay (osu!catch)

  • Fix catch banana shower judgement causing fail when at 0 HP (#27677 by @smoogipoo)
    • Fixes the follow-up issue in #27121

Gameplay (osu!mania)

Gameplay (osu!taiko)

Fix taiko mascot size not matching expectations (#27758 by @peppy)

Smaller changes

  • Fix taiko legacy score simulator not including swell tick score gain into bonus portion (#27729 by @bdach)

Import

  • Fix SkinImporter not using invariant culture when parsing skins without skin.ini (#27739 by @Susko3)
  • Avoid reporting an import as successful when all beatmaps failed to import (#27755 by @peppy)

Online

Support Discord game invites in multiplayer lobbies (#27443 by @jvyden)

Smaller changes

Platform

######## Changes

  • (SDL3-CS) from namespace SDL2 & class SDL to namespace SDL & class SDL3 (made more sense as the functions are imported from SDL3.dll)
  • (SDL3-CS) structs and enums now live in the namespace instead of being nested in the SDL3 class
  • (SDL3-CS) pointer types are now proper pointers instead of IntPtr, which means more "unsafe" code
  • (SDL3-CS) minor changes to return/struct types, reducing need for casts
  • (SDL3-CS) simple function signature changes: from ref, in & out to pointers (unfortunate, but automatically generating these would be hell)
  • (SDL3-CS) function that take strings now take ReadOnlySpan<byte>, requiring Encoding.UTF8.GetBytes() calls or UTF-8 string literals
  • (SDL3-CS) function pointers instead of delegates in native callback functions
  • simple renames done via SDL-provided build-scripits/rename_symbols.py
  • migrations from the Migrating to SDL 3.0 guide
  • minor update of SDL3ControllerBindings logic (basically per SDL3 migration guide)
  • removal of borderless fullscreen on macOS and Linux (merged into fullscreen with SDL3)
  • updated windowing logic to account for SDL_DisplayID instead of previously used display index
  • osu!framework DisplayMode.RefreshRate changed from int to float
  • SDL relative mouse mode instead of custom WindowsMouseHandler mouse logic
    including removal of custom tablet handling logic. SDL_pen.h would be the replacement for that, but it's currently only supported on Linux
  • updated WindowsWindow to account for SDL_SYSWMEVENT removal
    has caused some minor regressions in IME handling (the new method isn't giving us all the expected messages)
  • updated JetBrains.Annotations to latest version
  • renamed SDL2 β†’ SDL3

######## Issues

  • IOpenGLGraphicsSurface.BackbufferFramebuffer used to return useful information on iOS
  • waiting un upstream: libsdl-org/SDL#9430
  • OpenGL probably won't work on iOS?
  • minor IME regressions on windows
  • releasing mouse button outside window with relative mouse mode causes next click to be ignored (SDL issue, it seems)
  • (possible issue) non-OTD tablet input with relative mouse mode on windows (WindowsMouseHandler logic was removed)

######## Future work

  • add full support for async raw mouse + keyboard on windows #6235
  • look into windows IME regression...
Read more

2024.312.1

12 Mar 11:02
e431c12
Compare
Choose a tag to compare

Code Quality

Online

Fix medals which are specific to a game mode not displaying correctly (#27574 by @bdach)

Performance

Reduce update overhead in osu! playfield when many objects are visible (#27562 by @EVAST9919)

Reliability

Downgrade realm to work around crashes on latest release (#27585 by @peppy)

Running osu! with data stored on an ExFAT drive stopped working with the last release. This will be fixed in this release. If your data is missing, please open your osu! data folder and rename the client_xxx_corrupted.realm file to client.realm (deleting the new one created with a smaller filesize) after completing the update.

Fix exports containing zero byte files after import from specific ZIP archives (#27586 by @bdach)

Full Changelog: 2024.312.0...2024.312.1

2024.312.0

11 Mar 17:33
9bc55be
Compare
Choose a tag to compare

Code Quality

Editor

Fix editor displaying combo colours in effectively incorrect order (#27344 by @bdach)

Fix "Use current" snap not working (#27386 by @peppy)

Change editor screen switcher control design and behaviour to act like a button (#27516 by @frenzibyte)

Smaller changes

  • Fix incorrect gradient application to some timeline blueprints (#27564 by @EVAST9919)
    • We were applying colour to the drawable with negative padding (which by itself is a workaround). Now applying directly to the content.
master pr
master-long pr-long
master-short pr-short

Gameplay

Make flashlight scale with playfield (#26181 by @rushiiMachine)

When the playfield is shrunk with mods such as BarrelRoll, flashlight does not account for this, making it significantly easier to play. This makes it scale along with the playfield Scale.

Avoid stopping / starting gameplay when running behind but a replay isn't attached (#27504 by @peppy)

Should fix the underlying issue causing the backwards seeks during gameplay.

Add "Argon" performance points counter (#27498 by @frenzibyte)

Add new hitsounds for "argon" skin (ppy/osu-resources#311 by @nekodex)

My primary goal with this sampleset is to offer a fresh, modern take on stable/legacy's hitsounds that would work as a drop-in replacement for beatmaps that were created with stable/legacy's sampleset in mind.

I've used reverb and increased stereo width to make the hitsounds less 'in your face' than the stable/legacy ones, making them more pleasant to the ear IMO. To compensate for potential audibility loss, I've used increased transients (punchyness), greater frequency range (with distortion/saturation/etc) and in some cases a volume bump to get them sounding equally legible.

I also decided to shorten the samples (relative to stable/legacy) in response to modern beatmaps being of increased difficulty/hitobject-density compared to maps from back when peppy created the stable/legacy sampleset.

In theory this allows for new players to progress further through harder maps before feeling the need to find an alternative skin/sampleset to hear what they're doing accurately - at which point, there's now conveniently also argon pro.

The sampleset does diverge a bit in some aspects (i.e. spinner sounds, fail sound, etc) to lean into lazer's aesthetic, but otherwise I hope the hitsounds should still be recognizable as some facsimile of their stable/legacy counterparts and hopefully still feel and play just as good (if not better) than stable/legacy did.

Smaller changes

Gameplay (osu!)

  • Fix old-style legacy spinner fade-in not matching stable (#27320 by @frenzibyte)
  • Allow pp for muted mod for any combination of settings (#27144 by @cdwcgt)
    • "Muted" doesn't change gameplay so can we make it ranked when adjust settings.
  • Fix slider head being incorrectly dimmed twice (#27369 by @Detze)
    • | before | after |
      | :---: | :---: |
      | before | after |
  • Rewrite legacy slider path rendering to match stable better (#27383 by @Detze)
  • Fix slider tails sometimes not dimming correctly (#27401 by @bdach)
  • Fix osu! standardised score estimation algorithm violating basic invariants (#27513 by @bdach)
  • Fix slider tracking state not restoring correctly in all cases on rewind (#27429 by @bdach)
  • Fix cross-talk between pooled DrawableSliderRepeat usage causing incorrect rotation (#27529 by @peppy)

Gameplay (osu!catch)

  • Fix draining processor failing gameplay on bonus misses, tiny droplet misses, and ignore hits (#27154 by @bdach)
  • Fix catch fruit position getting randomised when last fruit has zero position (#27456 by @frenzibyte)
  • Fix catch pp calculator not matching live with respect to miss handling (#27489 by @bdach)

Gameplay (osu!mania)

  • Fix osu!mania key images potentially showing gaps between columns (#27453 by @frenzibyte)
    • | Before | After |
      |--------|--------|
      | CleanShot 2024-03-01 at 22 52 59 | CleanShot 2024-03-01 at 22 53 28 |

Gameplay (osu!taiko)

  • Hide osu!taiko scrolling graphic when the beatmap has storyboard (#27424 by @frenzibyte)
  • Fix 1px flashlight gaps when gameplay scaling mode is active (#27533 by @bdach)

Main Menu

Allow better menu navigation using same hotkey to progress to destination (#27389 by @peppy)

You can now use:

  • L L L to get to playlists
  • M M M to get to multiplayer
  • S to get to settings
  • E E to get to the beatmap editor

Smaller changes

  • Fix main menu eating keys if user presses too fast (#27393 by @peppy)

Multiplayer

Implement difficulty tooltips for multiplayer lobbies (#26531 by @smallketchup82)

image

Online

Show user statistics updates on multiplayer and playlists results screens (#27331 by @bdach)

When discord is set to privacy mode, don't show beatmap being edited (#27440 by @peppy)

Scenarios include:

  • Editing one's own map and revealing their username in the creator field
  • Editing a private beatmap by someone else (ie. an unrevealed pool beatmap for a tournament)

Add flow for displaying achieved medals (#27276 by @bdach)

Smaller changes

  • Clear stored username/token from config when relevant checkboxes are unticked on login panel (#27299 by @BoudewijnPopkema)
  • Resolve issues with Discord RPC while on Do Not Disturb (#27354 by @jvyden)

Performance

Improve storyboard performance by better handling sprites lifetime (#27454 by @EVAST9919)

Let's use world.execute(me) as a storyboard example, since it has a lot of objects, which makes all the values exaggerated and easier to see the difference.

Smaller changes

Read more

2024.302.1

02 Mar 16:51
7564490
Compare
Choose a tag to compare

Gameplay

Fix gameplay seeking backwards for a single frame for some users (#27426 by @peppy)

Gameplay (osu!)

Fix incorrect standardised score estimation on selected beatmaps in osu! ruleset (#27361 by @bdach)

Can only realistically affect beatmaps with difficultyPeppyStars = 0, of which there are known 2:

Song Select

Improve search performance at song select when a collection is selected (#27336 by @peppy)

Platform

Adjust user storage paths for better cross-platform support (ppy/osu-framework#6196 by @smoogipoo)

Full Changelog: 2024.221.0...2024.302.1