Etterna 0.71.0 Released

[0.71.0] - 2021-12-10

As always, back up your Save. That includes any personal modifications to the Assets folder, Noteskins folder, and the entire Save folder.

MacOS Note

OpenSSL is required. It can be installed with Homebrew:
NOTE: If you don’t have Homebrew installed already, follow the instructions from the Homebrew website.

brew install openssl

It’s been a very long time since the previous update 0.70.3. We wanted to make sure that the coming changes were close to perfect so that you wouldn’t be disappointed. That and simply a lack of personal free time to continue working is why it kept being delayed. But today is the day. I hope you enjoy Rebirth.

Changes/Updates

  • New Default Theme - Rebirth

    • Rebirth is a rebuild of the Etterna UI almost entirely from scratch. Taking advantage of starting from an empty folder, all code follows a particular style and structure which should be simple to follow and allows for the theme to be functional on any reasonable aspect ratio, for example.
    • Designed with 16:9 in mind, tested lightly on all other aspect ratios
    • Contains every feature expected out of 'Til Death with some minor exceptions
      • Multiplayer is not present at this time - It will be later. There is a planned full redesign of the entire experience
      • Custom judge windows are not present - This will come later and I know you will like it
      • Floating chart leaderboard view is not present - Minor feature not requested by testers, but can add at some point
      • Calculator debug is not present - Not necessary for the general public and I have some cool ideas I want to try later
      • Other minor things forgotten? If I don’t remember them now, they probably weren’t important
    • Designed for keyboard players specifically. You will need a mouse for some UI elements. However, nearly everything is accessible with mouse or keyboard
    • No splash screen - We want to put you into the game as fast as possible
    • Title Screen contains your profile list, removing Select Profile entirely
      • Click the already selected profile to skip the two step process - The topmost profile is highlighted initially
      • Otherwise, use the arrows and enter to select a menu item and then a profile. Double tapping enter should select the currently selected profile immediately
    • Added a Help Screen accessible from the Title Screen and SelectMusic
      • Contains several categories of useful information
      • Accepting ideas on things that need to be put here
    • SelectMusic looks a lot different…
      Before you complain about the music wheel position and the banners being on the wheel: open Settings (Ctrl + 5), Graphics (3), Theme Options and mess with positioning there. You’re welcome
      • Tabs are generally in the same order, but are consolidated
      • General Tab has had the 'Til Death MSD Tab combined into it.
        • Tags on the current chart show up here
        • Hover the CDTitle with your mouse to see the chart author
        • Space will toggle chart preview
      • Scores Tab moved to position 2, works essentially the exact same as 'Til Death
        • There was once a bug that hid rate selection if you had scores on too many rates - that is fixed here
        • Use EffectUp/EffectDown to change displayed local scores
        • Hold Select while pressing those buttons to change rate displays
        • Click the tab again or press 2 again to switch between Local and Online
      • Profile Tab moved to position 3
        • Contains all the same information from the 'Til Death Profile Tab
        • Overall tab displays general stats. More stats can be revealed by clicking “Player Ratings”
      • Goals Tab moved to position 4
        • Contains all the 'Til Death features. Everything here should be self explanatory if you are familiar with Goals
      • Playlists Tab moved to position 5
        • Contains all the essential 'Til Death features. There’s not a lot to explain here
      • Tags Tab moved to position 6
        • Contains all 'Til Death features including new ones from this update
        • Assign - Toggle a Tag’s assignment to the chart you are currently hovering
        • Require Tag - Require that ALL or ANY selected tags are attached to a file when filtering
        • Hide Tag - Require that if ALL or ANY selected tags are attached to a file, it should be filtered out
        • Mode - Only visible when in Require/Hide selection mode. This toggles whether or not to use ANY or ALL behavior in filtering
        • Delete - Toggle delete mode. Clicking a tag at this point would delete it
        • New - Make a new tag
        • Apply - Apply your filter related changes to the wheel
        • Reset - Reset filter related changes
      • The top section of what I call the “General Box” can be called the “Current Song Box”
        • Clicking the banner is the way to toggle chart preview (only when in the General Tab)
        • Music rate can be changed by clicking or using mouse wheel while hovering
        • Difficulty display still behaves as you are used to: up-up for easier, down-down for harder
      • The top of the screen is the Header section
        • Clicking your Avatar will open Asset Settings (or double tapping Select)
        • Clicking the chain icon on your Avatar attempts Login/Logout (or pressing Ctrl+L)
        • Clicking profile name allows changing the local profile name
        • Clicking rating sends you to the Profile Tab
        • The top right buttons have special shortcut behavior
          • When NOT in a submenu related to the Top Header, use Ctrl + number to invoke those buttons
          • When in a submenu related to the Top Header, use Ctrl + number to access the General box tabs
          • F1 is a global shortcut to open Song Search
      • Header Button 1 is Song Search and Filtering
        • Simply type a query and hit enter to search. Should be self explanatory
        • Use Tab to switch text entry fields if necessary (or click them) - yes, Shift + Tab works to go backwards
        • Filtering is only controlled by the mouse. You drag sliders or click buttons. Works exactly like it looks
      • Header Button 2 is Random
        • Left clicking this button or using Ctrl + 2 selects a globally random song
        • Right clicking this button selects a random song within the currently opened song folder
        • Left clicking the header of the music wheel doubles as either selecting a random folder or a random song in the folder, if one is opened
      • Header Button 3 is Pack Downloads and Bundle Downloads
        • Type to search. Delete to remove search
        • Downloads in progress and queued downloads can now be cancelled individually
      • Header Button 4 is a shortcut to the Help Screen
      • Header Button 5 is Settings
        • This is a new menu that contains every single setting you should need access to
        • Full mouse and keyboard compatibility
        • Use numbers to switch option categories
        • Space to toggle chart preview
        • Some options have double arrows - this means they have larger increments available if you hold Ctrl while using Left/Right
        • Scroll wheel can be used on any option you expect to need it
      • Settings Sub Screen - Key Config Rewritten
        • The first time you open this screen, it removes all of your bindings!
        • Rebinding your controls on this screen puts them directly on the old “default” column
        • Double setup is dead
      • Settings Sub Screen - Color Config Rewritten
        • Hovering with the mouse, you can learn the keyboard shortcuts to make this screen function
        • Color Config Presets: You can now save full color config setups separately and share them, and load them dynamically
        • Any color change made on this screen immediately reflects without you having to do anything extra - try it on main > PrimaryBackground
      • The Music Wheel has been rewritten completely in Lua
        • Allows for extremely easy modification or addition of sort modes - Check out the new ones
          • ClearType, Pack Clear Percent, Most Recent Score, Last PB Date MSD/Percent, Author
        • The wheel does not have a strict concept of song folders, meaning different sort modes each have their own pack lamp possibilities
          • The wheel refers to them as Folders internally
          • To get a Pack Lamp of C or above, you must pass all valid files on at least 1.0 with a C or above
          • To get a Clear Lamp, you must pass all valid files on any rate on C or above
    • Evaluation was completely remade
      • Offset plot highlighting is more comprehensive
      • Offset plot hovering shows standard deviation, timestamp, and mean
      • Mouse hovering the lower stats section details your combo breaks per column
      • Judge switching is still a thing (EffectUp/EffectDown)
      • Login and Logout is possible on this screen
      • Clicking a score that has a replay will load that score to see it in detail
    • Customize Gameplay has been completely rewritten
      • Much more generic - If you ever decide to make a new Gameplay element, it’s trivial to add to Customize Gameplay
      • Capable of loading your existing 'Til Death Customization
        • To load it, close your game, copy your playerConfig.lua from /Save/LocalProfiles/????????/Til Death_settings/, and put it into /Save/Rebirth_settings/
      • Has a menu within it controlled with the mouse or the arrow keys
      • Every element can be mouse dragged (Cannot drag elements that are rotated!)
      • Press space with an element selected to scroll through movement types if available (Coordinates, Sizing, Spacing)
      • Right clicking or pressing enter will deselect a selected element
      • Delete, RestartGameplay, and Backspace function as the undo button - This will undo only one action for the selected element
      • Holding Ctrl when pressing Undo resets the selected element to default
      • Holding Shift when using the arrow keys to modify an element enables smaller increments
    • Replay mode has 2 extra visual buttons added for mouse simplicity
    • There’s a couple of secrets on the main menu
    • Old options menus can still be accessed the same way you usually get to them
      • Double-Enter for Player Options is still there
      • Old Key Config is still there
      • All main menu options are still there
  • Difficulty Calculator Changes

    • See Calculator Bugfixes below for some actual bug related changes
    • SoloCalc has been generalized for n keys. All keymodes now have a calculator
      • Profile rating is not yet enabled outside of 4k
    • Downscaling based on accuracy is much more harsh below 90%
    • Downscaling based on time is redone - The downscaler now attempts to throw out intervals not reaching a certain density threshold before making the time calculation
      • Side effect of this is very empty charts are nerfed
      • Due to the nature of jacks, the time downscaler is a lot less harsh on short files if the highest skillset is jacks
    • Aggregation related functionality has been centralized but should not affect output
    • Optimized chisel for huge speed increase - skillsets not within 10% of the highest rating after the initial pass are not re-iterated
    • Chordjack pattern mods can detect continuous one handed anchors or chains
    • Chordjack difficulties are no longer smoothed, like all other skillsets
    • Chordjacks have been retuned basically to the point that ultra dense stamina oriented files should be much less overrated
      • Side effect of this is chordjacks in general are nerfed
    • Harshly nerfed flam based farm files
      • Side effect of this is a short list of legitimate files are nerfed at higher rates – this is not a permanent fix
    • Added detection for handstream density, but left disabled
    • Jackspeed difficulties decoupled from runningman difficulties for simpler tuning
    • Jackspeed retuned in a particular way that nerfs most files but doesn’t harm proper jack files in the grand scheme of things
      • Not perfect but looks better than before
    • Nerfed runningman burst anchor difficulties to pull back tech farm
    • Stamina globally boosted 0.5% to allow it to show up as a top skillset for files
    • did a bunch of debug info display stuff related to jacks and points and downscaling
  • Logging Rewrite

    • Reimplemented using Plog
    • Each game session gets its own unique log file, timestamped
    • Log messages consolidated to one single .log
    • Reset the default logging level to INFO and redid some of the logging messages so hopefully this doesn’t eat all your space instantly
      • To change: Preferences.ini LoggingLevel=
    • Log files are never deleted by the game. You must remove them yourself if space is needed
    • If opted in to crash dump uploading, the log file that is associated with a crash dump will also be uploaded
  • Crash Logger Rewrite

    • Reimplemented using crashpad
    • Each crash should generate a .dmp file which ends up in a CrashData folder in your install directory
      • This dmp contains information about the call stack of each process thread and information about variables and memory associated with it. This means in a really roundabout way that, for example, if you ever crashed within a very specific set of conditions, the dmp can contain sensitive information (as far as I am aware at this time, at worst it would be your login password)
      • Read about decoding it yourself in the documentation if you want
    • Crash dumps and associated log files will be uploaded automatically IF YOU OPT IN. We don’t want to force you to hand off random files
      • Preference to toggle it at any time is located in Advanced Options
      • When turned on, your crash dumps and the log for that session will be uploaded to crash.etterna.dev (we run this site)
  • Other Core Additions

    • ActorProxy is back. ActorProxy makes a visual copy of whatever you set as a target. Usually used for modfiles
    • Added InputData recording. This means the game tracks how long you press the gameplay columns for each score. Nothing else
    • MultiToasty is back
      • Hidden behind a default-off preference: MultiToasty
    • Added pack progress counter to C++ based music wheels
      • Defaulted off - check options for Show Pack Progress
    • Added NoteField cover similar to the NoteField board but in front
    • Completed pack downloads cause the taskbar icon to flash on Windows, or the icon to bounce on Mac
    • Osu loader added support for 3k (dance-threepanel), 9k (popn-nine), and 10k (pump-double)
    • Popn (5k, 9k) support added to customize gameplay
    • Popn support added to Noteskin Preview
    • Replay Snapshots contain information about standard deviation and mean
    • Unranked charts vs empty chart leaderboards are now distinguishable
    • Pack banners support movie formats like song banners
  • Other Core Changes

    • AAAAA is moved to 99.9935%
    • Non-4k keymodes no longer automatically invalidate
    • Volume changes update live
    • Volume levels sound more natural - 10% actually feels quiet
    • New default beat skin
    • Resolved a long standing issue related to vsync and/or using DACs or certain sound drivers all leading to you experiencing unresolvable consistent stuttering in gameplay
      • This issue is separate from everyone’s own unique issue of stuttering due to CPU pre-emption
    • Debug menu F8 page shows current chartkey
    • Debug menu F8 page allows opening the current song folder
      • This doesn’t work on Windows for certain paths
    • Explicitly using double bindings for a score is now being tracked
    • J4-normalized judgments are saved in addition to regular judgments for scores
    • Filters allow filtering by Highest Percent Score for all scores on charts
    • Filters allow filtering by Highest Difficulty Only, meaning the filter only checks the hardest chart on a song
    • Filter rate lower bound moved to 0.05x
    • Goals allow selecting the specific percentages of the higher accuracy grades AAA - AAAAA
    • Goal priority 0 removed, all default to 1
    • Gameplay goal/PB tracker ignores failed scores
    • Insert mods previously hidden away are now selectable: AnchorJS, JackJS, IcyWorld
    • Pressing RestartGameplay in Evaluation restarts the song (does not undo your score)
    • Lua is allowed to turn on the background of a song even if brightness is set to 0, if any bgchanges are present
    • Rewrote chart preview completely
      • probably gonna rewrite it again
    • Forced DelayedTextureDelete on for everyone (keep textures temporarily in memory for 30 seconds)
      • Can be turned back off … there’s no reason to
    • Select Game screen reordered based on popularity of gamemode
    • Secretly added support for quintuple setup
    • Cheating holds by holding some certain buttons is no longer possible
    • Shortened and truncated downloading messages for readability
    • Player Options was split into 3 pages by broad category
    • Practice Mode resets life bar to 100% when moving position
    • RestartGameplay follows the DelayedBack preference
    • Reverse is now called Downscroll in Player Options
    • Replaced SurviveSeconds with PlayedSeconds and made it more accurate to physical time spent in Gameplay
    • Sync overlays in gameplay adjusted for readability and clarity
    • Toasty now triggers at 250 combo instead of 251
    • Multiplayer chat message sending is now restricted to 500 characters
  • Til’ Death Refresher

    • General
      • Redid all mouse input in the UI
      • Asset settings reformatted for UI reasons
      • Chord density graph hovers will now show BPM and NPS at the timestamp
      • Chord density graphs now support any keymode
      • Added a “Press Enter for Player Options” pop up
      • Added theme option for removing the Combo text
      • Added theme option to toggle combo related animations
      • Added theme option for toggling judgment related animations
      • Fullscreen cursor displays at your refresh rate properly
      • Fallback banner replaced
      • Grammar referring to goods as misses calls them CBs
      • Multiplayer chat window resized and reformatted
      • Cleaned or merged several multiplayer screens or actor files
      • GameplaySyncMachine has a disappearing NoteField to encourage reading by audio
      • Options cursors are faster
      • Color config doesn’t save unnecessary alpha values
      • Font is now dummy huge high quality (you guys complain about the smallest things)
      • Less unsafe editor link
      • Recolored a bunch of stuff you will notice immediately
      • Exiting replays no longer says “Saving Profile”
    • Customize Gameplay
      • Backspace resets a selected element to the default position
    • SelectMusic
      • Scores tab will toggle between Local and Online if you press 3 again or click the tab again
      • Songs can be excluded based on tags
      • Rewrote the difficulty display in Lua
      • Chart Preview follows scroll mod changes
      • Login works like 5% better
      • Minimum music rate is now 0.05x
      • MusicWheel scroll bar can be dragged
      • MSD tab shows calc version
      • Top 3 skillsets in general tab do not show up outside of 4k
      • Multiple other minor tab redesign, color, or UI shape things
    • Evaluation
      • Clicking a score in the scoreboard switches to it
      • Offset plot hovers show the timestamp of the hover
      • Offset plot hovers show the mean and standard deviation at the hover
      • Offset plot tries to animate a little
      • Moved multiple things on this screen about 1 millimeter
      • Multiplayer scoreboard player cap raised to 32
  • bare-frames

    • nothing :+1:

Fixes

  • Core Fixes
    • Beat was inconsistently treating the scratch column for some mods and contexts (chart preview)
    • Background videos not rendering in some openGL contexts should be fixed. Still an issue for some
    • Binding gameplay buttons to your up and down arrow keys no longer breaks the close-pack shortcut
    • Branching logic was bad in fallback causing certain AutoSetStyle configurations lead to crashes or black screens
    • Chat overlay showed up in wrong situations
    • Mac cursor visibility can now be toggled by the game
    • Mac/Linux treatment of caps lock was broken and now is less broken
    • MSD lower bound extrapolation no longer stops at 0.7x
    • Multiplayer tracks wifeversion. This caused scores to show wife2 wrongly
    • Multiplayer tracks RadarValues. This caused issues with score recalculation
    • Certain Turn and Transform mods didn’t properly invalidate but now they do
    • Fallback NoteField noteskin was stuck to default instead of dbz, causing continuity issues if loading NoteFields in an unexpected order
    • ScreenTextEntry validator failures stop the user from pressing enter
    • Crash when closing the game (one of many)
    • Crash when exiting GameplaySyncMachine
    • Crash when setting a first Highscore
    • Crash when looking for a first Highscore when there are none
    • Crash when getting Replay snapshots for no replay
    • Crash when hovering a song with 24 difficulties
    • Crash when intentionally breaking Filtermanager
    • Crash when restarting GameplaySyncMachine
    • Crash when syncing in solo
    • Crash when internal player state vanishes before gameplay has a chance to think
    • Crash in gameplay when no notedata is present
    • Crash when deleting Favorites playlist
    • Crash when setting MusicWheel to a size of -3. no more no less
    • Crash when loading an osu file that has any BPM that fails parsing
    • Crash when its cloudy outside and you touch any playlist functionality
    • Crash due to having installed Linux while the number of times you blinked that day was divisible by 13
      • Pressing any button crashes the game - related to scan code char widths
    • Crash vaguely related to opening the game for the sole purpose of playing multiplayer
    • Crash when syncing a file that has an unrecognized style in the .sm
    • Crash when opening the game after logging in 1 time
      • Logging in with an empty profile sometimes causes the site to 404, which was not accounted for
    • Crash when pressing enter after going into a replay or view evaluation
    • Ghost playlists (luckily not poltergeists)
    • Hard to find DirectX in cmake
    • Misalignments in dividebyzero based noteskins
    • Downloads in progress pointed to wrong in progress link being used
    • Bundle downloads no longer always broken mirror links
    • Favorites sort no longer nonsensically foldered
    • Filters used to care about all charts in a suboptimal situation in which they were already filtered out by length
    • Logs not showing proper git build information should be fixed
    • Multiple highscores with the exact same percentages used to be considered one score while displaying them, causing scores to be hidden
    • IsOver used to not care about ZoomY
    • Broken Linux audio probably fixed probably wasn’t broken
    • LifeGraphs and ComboGraphs should be better synced with song positions
    • Fixed the order of the gameplay buttons so it works for a keyboard
    • Reset redirected input when using key config or service switch shortcuts
    • muFFT related memory leaks
    • muFFT debug compiling issues
    • muFFT linux crashing? probably. we really put like 1000 seconds into fixing this like super high effort im sure its fixed by now
    • Mac Big Sur used to not be able to run the game
    • Mac Big Sur used to not be able to compile the game
    • Mac Big Sur used to not have any audio in the game
    • Mac M1 used to not be able to run the game
    • Mac M1 used to not be able to compile the game
    • Mac Retina displays used to break the game by default
    • Mac now has the ability to self translocate which means the no noteskins errors should be gone
      • This behavior is considered malicious but we aren’t in the business of getting an official license anyways. Getting an official license would mean we can undo this and not have to deal with the original problem
    • Malformed logins broke the game and now don’t
    • Blank multiplayer rooms were possible and that was such a problem it caused errors while playing singleplayer
    • MusicWheel sortmode caching now actually works
    • MusicWheel showed filtered out chart grades
    • Extra non C++ NoteField children used to always be invisible due to a lack of any draw calls
    • Syncing osu files used to be impossible
    • Inability to load the first difficulty of an osu file for any reason caused a crash
    • Playlists caused double saves at the end of a course
    • Reloads from disk while in Practice Mode used to not reload any sync data, causing oddities related to ssc scrolls and bpm changes
    • Profile used to not save FailType, BatteryType, DrainType, LifeType
    • Unnecessitated the necessity for hacking profile overall rating into a separate field instead of the thing that carries all of your profile ratings
    • Replay snapshots unintentionally placed all unjudgeable notes as misses
    • Replay snapshots would unintentionally place all dropped holds at the start of the file
    • Replay type was not populated at the right moment during score save
    • Replays could get into a weird state causing the TNS_Hidenote to be an impossible number
    • Replays that hit any mines would have a chance to try to assign a mine hit every frame for the rest of the file
    • Replays received from online used to say a miss was a 180ms bad instead
    • RageTextureID no longer leaks a lot of textures
    • Screens assigned any delayed periodic functions never destructed them which one way or another caused the Lua runtime to do quantum type assignment (do not investigate)
    • SSC scrolls no longer broken in chart preview
    • SSC scrolls no longer broken when loaded from cache
      • This issue actually affected every SSC field
    • Changing sync of a file using F11/F12 never live updated the file unless you saved it which didn’t really make any sense
    • TotalDancePoints was never updated across stages, breaking theme code that is useful but was written 46 (give or take a few) years ago
    • Entering replays showed “Press Start for Player Options” wrongly
  • Calculator Bugfixes
    • No longer using large static STL arrays because MSVC update made them eat all of your RAM at compile (thanks Microsoft)
    • Fixed some edge cases where data structures did not reset at the end of iteration
    • Some debug graph bandaiding was done where difficulties were unable to be shown
    • Parameter loading for tuning fixed by moving all control to a new Preference AlwaysLoadCalcParams
    • Debug line drawing was bad and is more optimized and less bad
    • Profile recalculation did not recalculate profile but now does recalculate profile
    • Erroneous jack difficulties caused by falsely non terminating anchors on either finger of any hand are now fixed
    • Visibility related color and position changes
    • Technically infinite files are skipped
    • Stale state related things were fixed which could fix a small number of SSR related abnormalities
  • Til’ Death Fixes
    • Aspect ratios other than 4:3 and 16:9 no longer have odd issues with clicking around the music wheel
    • Asset settings is no longer very rarely in the wrong order
    • Chord density graph clicking used to not match timestamp if the current chart had timing different from the song
    • Cleartypes previously used a saved Grade instead of score based Grade
    • Clicking a goal of a song that is not able to be switched to no longer changes rate
    • German Til Death called the game fluid dynamic simulator 2011 or something
    • Bunch of lua errors everywhere that nobody actually really ever got
    • Wife2 scores that convert to Wife3 used to not show Wife3 after converting
    • Rescoring in evaluation was sometimes very wrong for reasons related to RadarValues
    • Transliteration on Playlists was nonexistent
    • Rare input lock in Select Profile
    • Lag related to music playing in selectmusic
  • bare-frames Fixes
    • MSD display no longer fails to update when changing rates

ran out of space go check the github release notes for the full thing

14 Likes

0.71 and rebirth is dope as hell, thanks for all the hard work on improving this great game

3 Likes

wow, what a time to come back to this :open_mouth:

damn, nice update guys :eyes:

2 Likes

I’m so glad everyone gets to experience Rebirth now, thank you so much!

1 Like

posting in epic thread
big thanks to everyone who contributed i love u & the arrow game

1 Like