McOsu cover
McOsu screenshot
Linux PC Mac Steam
Genre: Indie

McOsu

Update (version 33.08)

- Added hittable dim (hitobjects outside even the miss-range are dimmed, see https://github.com/ppy/osu/pull/20572)
- Added Options > Gameplay > HUD > "Draw HitErrorBar UR" (Unstable Rate text display above hiterrorbar, enabled by default)
- Added ConVars (1): osu_hud_hiterrorbar_ur_scale, osu_hud_hiterrorbar_ur_alpha, osu_hud_hiterrorbar_ur_offset_x/y_percent
- Added ConVars (2): osu_beatmap_max_num_hitobjects, osu_beatmap_max_num_slider_scoringtimes
- Added ConVars (3): osu_hitobject_hittable_dim, osu_hitobject_hittable_dim_start_percent, osu_hitobject_hittable_dim_duration, osu_mod_mafham_ignore_hittable_dim
- FPoSu: Updated FOV sliders to allow two decimal places
- Updated supported beatmap version from 14 to 128 (lazer exports)
- Updated "Game Pause" keybind to prevent binding to left mouse click (to avoid menu deadlocks)
- Updated mod selection screen to also close when ENTER key is pressed
- Fixed even more star calc crashes on stupid deliberate game-breaking beatmaps (~65k sliders * ~9k repeats * 234 ticks = ~126149263360 scoring events)
- Linux: Fixed BACKSPACE key not updating ConVar suggestion list in console

.
(As always, if I broke something with this update, you can go back to the previous version via the "Beta" tab in the right-click properties of the game in your library)

Update (version 33.07)

- Reenabled IME support to fix blocking keyboard language switching hotkeys (add "-noime" launch arg to get the old behavior back in case of problems)
- Improved console autocomplete
- Fixed pie progressbar fill being invisible under certain conditions

.
(As always, if I broke something with this update, you can go back to the previous version via the "Beta" tab in the right-click properties of the game in your library)

Update (version 33.05 + 33.06)

- Added option "[Beta] RawInputBuffer" (Options > Input > Mouse)
- Added ConVars (1): osu_mod_random_seed, osu_hud_statistics_*_offset_x/y, osu_slider_max_ticks
- Added ConVars (2): osu_background_color_r/g/b
- Updated mod selection screen to show rng seed when hovering over enabled "Random" experimental mod checkbox
- Fixed another set of star calc crashes on stupid aspire beatmaps (lowered slider tick limit, no timingpoints)
- Linux: Fixed major executable corruption on newer distros (Ubuntu 23+) caused by gold linker (all files written were corrupt, e.g. scores.db or osu.cfg, also segfaults etc.)

.
(As always, if I broke something with this update, you can go back to the previous version via the "Beta" tab in the right-click properties of the game in your library)

Update (version 33.04)

- Updated star + pp algorithms to match current lazer implementation aka 20220902 (16) (thanks to @Khangaroo!)
- Added option "Disable osu!lazer star/pp algorithm nerfs for relax/autopilot" (Options > General > Player)
- Fixed extremely rare AMD OpenGL driver crash when slider preview in options menu comes into view (via workaround)
- Added ConVars: osu_options_slider_preview_use_legacy_renderer, osu_songbrowser_scorebrowser_enabled
- Disabled new star/pp algorithm relax/autopilot nerfs by default in order to match previous behavior

.
(As always, if I broke something with this update, you can go back to the previous version via the "Beta" tab in the right-click properties of the game in your library)

Update (version 33.03)

- Added new experimental mod "Half Timing Window"
- Added "Quick Seek" key bindings (jump +-5 seconds, default LEFT/RIGHT arrow keys)
- Added hitobject type percentage support to songbrowser search (e.g. "sliders>80%")
- Added ConVars (1): osu_seek_delta, osu_end_skip, osu_mod_halfwindow_allow_300s
- Added ConVars (2): osu_songbrowser_search_hardcoded_filter, osu_hud_scrubbing_timeline_hover_tooltip_offset_multiplier
- Added ConVars (3): osu_skin_force_hitsound_sample_set, osu_hitobject_fade_in_time
- Added ConVars (4): osu_ar_overridenegative, osu_cs_overridenegative
- Added ConVars (5): osu_songbrowser_button_active/inactive_color_a/r/g/b, ...collection_active/inactive_color_a/r/g/b, ...difficulty_inactive_color_a/r/g/b
- Added ConVars (6): osu_hitresult_delta_colorize, osu_hitresult_delta_colorize_interpolate/multiplier/early_r/g/b/late_r/g/b
- Linux: Upgraded build system from Ubuntu 16 to Ubuntu 18 (anything running older glibc is no longer supported)
- Updated scrubbing to keep player invincible while scrubbing timeline is being clicked (even if mouse position does not change)
- Updated CS override to hard cap at CS +12.1429 (more than that never made sense anyway, the circle radius just goes negative)
- Updated audio output device change logic to restore music state (only in menu, changing output devices while playing will still kick you out)
- Improved songbrowser scrolling smoothness when switching beatmaps/sets (should reduce eye strain with less jumping around all the time)
- Improved songbrowser scrolling behavior when right-click absolute scrolling to always show full songbuttons (disabled scroll velocity offset)
- Improved songbrowser thumbnail/background image loading behavior
- Increased osu_ui_top_ranks_max from 100 to 200 by default
- Fixed very old legacy beatmaps (< v8) sometimes generating mismatched slider ticks (compared to stable) because of different tickDistance algorithm
- Fixed extremely rare infinite font/layout/resolution reloading bug killing performance caused by custom display scaling percentages (e.g. 124%, yes 124% scaling in Windows)
- Fixed extremely rare freeze bug caused by potential infinite stars in osu!.db
- Fixed multiple audio output devices with the exact same name not being selectable/handled correctly
- Fixed minimize_on_focus_lost_if_borderless_windowed_fullscreen not working
- Fixed fposu_mouse_cm_360 + fposu_mouse_dpi not updating in options menu if changed live via console/cfg

.
(As always, if I broke something with this update, you can go back to the previous version via the "Beta" tab in the right-click properties of the game in your library)

Update (version 33.02)

- Windows: Added support for mixed-DPI-scaling-multi-monitor setups (automatic detection based on which monitor the game is on)
- Windows: Added support for key binding all remaining mouse buttons (all mouse buttons can now be bound to key binding actions)
- macOS: Fixed general breakage hopefully (still no high-DPI support)
- Fixed osu_mod_random in cfg affecting main menu button logo text sliders
- Fixed very wide back button skin images overlapping other songbrowser buttons and making them impossible/invisible to click
- Fixed pen dragging playstyles potentially causing unintentional UI clicks when in-game screens/panels are switched and the pen is released

.
(As always, if I broke something with this update, you can go back to the previous version via the "Beta" tab in the right-click properties of the game in your library)

Update (version 33.01)

- Linux: Switched to SDL backend (mostly for Steam Deck multitouch support)
- FPoSu: Added cursor trail support (can be disabled in Options > Skin > "Draw Cursor Trail", or fposu_draw_cursor_trail)
- Added new experimental mod "Approach Different"
- Added new experimental mod "Strict Tracking"
- Added new main menu button logo text
- Added "most common BPM" in parentheses to top left songbrowser info label (e.g. "BPM: 120-240 (190)")
- Added beatmapID and beatmapSetID columns to osu_scores_export csv
- Added "Reset all settings" button to bottom of options menu
- Added PAGEUP/PAGEDOWN key support to songbrowser
- Added ConVars (1): osu_followpoints_connect_spinners, fposu_transparent_playfield
- Added ConVars (2): fposu_playfield_position_x/y/z, fposu_playfield_rotation_x/y/z
- Added ConVars (3): osu_mod_approach_different_initial_size, osu_mod_approach_different_style
- Added ConVars (4): osu_cursor_trail_scale, osu_hud_hiterrorbar_entry_additive, fposu_draw_cursor_trail
- Added ConVars (5): osu_mod_strict_tracking_remove_slider_ticks
- Updated songbrowser search to use "most common BPM" instead of "max BPM"
- Updated "Draw Stats: BPM" to use "most common BPM" instead of "max BPM"
- Updated "Sort by BPM" to use "most common BPM" instead of "max BPM"
- Updated UI DPI scaling to automatically enable/disable itself based on in-game resolution (instead of OS DPI)
- Updated hiterrorbar to use additive blending for entries/lines
- Updated preview music handling to fallback to 40% of song length (instead of beginning) if invalid/missing PreviewTime in beatmap
- Improved performance slightly (shader uniform caching)
- Fixed pp algorithm to allow AR/OD above 10 for non-1.0x speed multipliers and/or EZ/HT/HR/DT (please do Top Ranks > "Recalculate pp")
- Fixed "Use mods" inconsistent behavior (custom speed multiplier "ignored once", "sticky" experimental mods)

.
(As always, if I broke something with this update, you can go back to the previous version via the "Beta" tab in the right-click properties of the game in your library)

Update (version 33)

- Added collection management support (Add/Delete/Set/Unset collections, right-click context menu on beatmap buttons)
- FPoSu: Added new experimental mod "Strafing"
- Added gamemode selection button to songbrowser (no, skins abusing this as a decoration overlay are not supported)
- Added support for "ScorePrefix" + "ComboPrefix" + "ScoreOverlap" + "ComboOverlap" in skin.ini
- Added option "Show osu! scores.db user names in user switcher" (Options > General > Player)
- Added option "Draw Strain Graph in Songbrowser" (Options > General > Songbrowser)
- Added option "Draw Strain Graph in Scrubbing Timeline" (Options > General > Songbrowser)
- Added startup loading screen and animation
- Added beatmap ID to songbrowser tooltip
- Added hint text for experimental mods in mod selection screen
- Added ConVars (1): osu_mod_fposu_sound_panning, osu_mod_fps_sound_panning, osu_stacking_leniency_override
- Added ConVars (2): fposu_mod_strafing_strength_x/y/z, fposu_mod_strafing_frequency_x/y/z
- Added ConVars (3): snd_updateperiod, snd_dev_period, snd_dev_buffer, snd_wav_file_min_size
- Added ConVars (4): osu_ignore_beatmap_combo_numbers, osu_number_max
- Added ConVars (5): osu_scores_export, osu_auto_and_relax_block_user_input
- Updated songbrowser search to be async (avoids freezing the entire game when searching through 100k+ beatmaps)\n
- Updated "PF" text on scores to differentiate "PFC" (for perfect max possible combo) and "FC" (for no combo break, dropped sliderends allowed)
- Updated hitresult draw order to be correct (new results are now on top of old ones, was inverted previously and nobody noticed until now)
- Updated user switcher to be scrollable if the list gets too large
- Updated score list scrollbar size as to not overlap with text
- Updated score buttons to show AR/CS/OD/HP overrides directly in songbrowser (avoids having to open the score and waiting for the tooltip)
- Updated osu!.db loading to ignore corrupt entries with empty values (instead of producing empty songbuttons with "//" text in songbrowser)
- Linux: Updated osu! database loader to automatically rewrite backslashes into forward slashes for beatmap filepaths (as a workaround)
- Improved startup performance (skin loading)
- Fixed slider start circle hitresult getting overwritten by slider end circle hitresult in target practice mod
- Fixed animated hitresults being broken in target practice mod
- Fixed NotificationOverlay sometimes eating key inputs in options menu even while not in keybinding mode
- Fixed "osu!stable" notelock type eating the second input of frame perfect double inputs on overlapping/2b slider startcircles
- Fixed malformed/corrupt spinnerspin.wav skin files crashing the BASS audio library

.
(As always, if I broke something with this update, you can go back to the previous version via the "Beta" tab in the right-click properties of the game in your library)

Update (version 32!)

- Initial rewrite of songbrowser and entire internal database class architecture (not fully finished yet)
- Songbrowser can now handle individual diff buttons and/or split from their parent beatmap/set button
- Collections now correctly only show contained diffs (previously always showed entire set)
- Similarly, searching will now match individual diffs, instead of always the entire set
- However, sorting still only sorts by beatmap set heuristics, this will be fixed over time with one of the next updates
- All pp scores can now be recalculated at will, so click on "Recalculate pp" as soon as possible (Songbrowser > User > Top Ranks > Menu)
- Added new grouping options to songbrowser: "By Artist", "By Creator", "By Difficulty", "By Length", "By Title"
- FPoSu: Added zooming/scoping (Options > Input > Keyboard > FPoSu > Zoom) (Options > FPoSu > "FOV (Zoom)")
- Added dynamic star recalculation for all mods in songbrowser (stars will now recalculate to reflect active mods, including overrides and experimentals)
- Added ability to recalculate all McOsu pp scores (Songbrowser > User > Top Ranks > Menu > Recalculate)
- Added ability to convert/import osu! scores into McOsu pp scores (Songbrowser > User > Top Ranks > Menu > Import)
- Added ability to delete all scores of active user (Songbrowser > User > Top Ranks > Menu > Delete)
- Added menu button to "Top Ranks" screen (Recalculate pp, Import osu! Scores, Delete All Scores, etc.)
- Added "Use Mods" to context menu for score buttons (sets all mods, including overrides and experimentals, to whatever the score has)
- Added extra set of keybinds for key1/key2 (Options > Input > Keyboard)
- Added bonus pp calculation to user stats (previously total user pp were without bonus. Bonus is purely based on number of scores.)
- Added "Max Possible pp" to top left songbrowser info label (shows max possible pp with all active mods applied, including overrides and experimentals)
- Added option "Draw Stats: Max Possible Combo" (Options > Gameplay > HUD)
- Added option "Draw Stats: pp (SS)" (Options > Gameplay > HUD)
- Added option "Draw Stats: Stars* (Total)" (Options > Gameplay > HUD)
- Added option "Draw Stats: Stars*** (Until Now)" (aka live stars) (Options > Gameplay > HUD)
- Added support for OGG files in skin sound samples
- Added Tolerance2B handling to osu!stable notelock algorithm (unlock if within 3 ms overlap)
- Added score multiplier info label to mod selection screen
- Added ConVars (1): osu_spinner_use_ar_fadein, osu_notelock_stable_tolerance2b
- Added ConVars (2): fposu_zoom_fov, fposu_zoom_sensitivity_ratio, fposu_zoom_anim_duration
- Added ConVars (3): osu_scores_rename, osu_scores_bonus_pp, osu_collections_legacy_enabled
- Added ConVars (4): osu_songbrowser_dynamic_star_recalc, osu_draw_songbrowser_strain_graph, osu_draw_scrubbing_timeline_strain_graph
- Updated all right-click context menus to be bigger and easier to hit (score buttons, song buttons)
- Updated SearchUIOverlay to simply move left on text overflow
- Updated "DPI" and "cm per 360" textboxes to support decimal values with comma (e.g. 4,2 vs 4.2)
- Updated mouse_raw_input_absolute_to_window to be ignored if raw input is disabled
- Updated pp algorithm (12) (Reverted Xexxar's accidental AR8 buff), see https://github.com/ppy/osu-performance/pull/133
- Updated pp algorithm (11) (Xexxar's miss curve changes), see https://github.com/ppy/osu-performance/pull/129/
- Updated pp algorithm (10) (Xexxar's low acc speed nerf), see https://github.com/ppy/osu-performance/pull/128/
- Updated pp algorithm (9) (StanR's NF multiplier based on amount of misses), see https://github.com/ppy/osu-performance/pull/127/
- Updated pp algorithm (8) (StanR's SO multiplier based on amount of spinners in map), see https://github.com/ppy/osu-performance/pull/110/
- Updated pp algorithm (7) (Xexxar's AR11 nerf and AR8 buff), see https://github.com/ppy/osu-performance/pull/125/
- Linux: Updated BASS + BASSFX libraries
- macOS: Updated BASS + BASSFX libraries
- Fixed ScoreV2 score multipliers for HR and DT and NF (1.06x -> 1.10x, 1.12x -> 1.20x, 0.5x -> 1.0x)
- Fixed UI toggle being hardcoded to SHIFT+TAB and not respecting "Toggle Scoreboard" keybind (in combination with SHIFT)
- Fixed star cache not updating instantly when changing Speed Override with keyboard keys while playing (previously only recalculated upon closing mod selection screen)
- Fixed drain not being recalculated instantly when changing HP Override while playing (previously only recalculated upon closing mod selection screen)
- Fixed clicking mod selection screen buttons also triggering "click on the orange cursor to continue play" (unwanted click-through)
- Fixed animated followpoint.png scaling not respecting inconsistent @2x frames
- Fixed drawHitCircleNumber for variable number width skins (@yclee126)
- Fixed spinners not using hardcoded 400 ms fadein (previously used same AR-dependent fadein as circles, because that makes sense compared to this insanity)
- Fixed mod selection screen visually rounding non-1.0x difficulty multipliers to one decimal digit (e.g. HR CS showed 4.55 in songbrowser but 4.5 in override)
- Fixed songbrowser visually always showing raw beatmap HP value (without applying mods or overrides)
- Fixed skipping while loading potentially breaking hitobject state
- Fixed very rare beatmaps ending prematurely with music (hitobjects at exact end of mp3) causing lost scores due to missing judgements

.
(As always, if I broke something with this update, you can go back to the previous version via the "Beta" tab in the right-click properties of the game in your library.
WARNING: New scores achieved in version 32 will vanish when loaded on any previous version of the game, so be careful and make a backup of your scores.db and scoresvr.db)

Update (version 31.11)

- Added option "Inactive" (Options > Audio > Volume)
- Added hitresult fadein + scale wobble animations (previously became visible instantly as is)
- Added ConVars (1): osu_hitresult_fadein_duration, osu_hitresult_fadeout_start_time, osu_hitresult_fadeout_duration
- Added ConVars (2): osu_hitresult_miss_fadein_scale, osu_hitresult_animated, osu_volume_master_inactive
- Improved hitresult animation timing and movement accuracy to exactly match osu!stable (fadein, fadeout, scaleanim)
- Fixed hitresult animations not respecting speed multiplier (previously always faded at 1x time)
- Fixed aspire timingpoint handling (e.g. XNOR) (2)

.
(As always, if I broke something with this update, you can go back to the previous version via the "Beta" tab in the right-click properties of the game in your library)