Windows, Mac, and Linux release.
This version coincided with the launch of EtternaOnline.
- 5 new Etterna pack songs by Alexmandi, Elekton, IcyWorld & Cataclysm - 65a0174 5c85e12 f29d0b9
- Better Chart Goals - ee3c6ec aae1e3c 67b18f2 cff3868 c62e0cb 206ee3e e918b68 360050b ca7ec56 510d7be 4f10ee9 ae60130 dd04262 9bcc516 09c2773 0290698 e0f53c5 176b6f7 74c2051 44ec91e 5c5d834 0e48965
- Chart Goal Interface - 574ffa1 4036134 2bd7476 5cbde03 708a829 de4e192 f25a925 c317251 c86bd88 05738db cfc9719
- Chord Cohesion is disabled by default - 4bd00d1
- Chord Cohesion enabled scores are invalid - d50db3e
- CustomizeGameplay Implementation completed - 8791e91 81a0b5d
- Differential Song Reload - 943935a
- Experimental NoteData cache - 735348d e76366b 8cb704c
- Experimental Rating Over Time implementation - dae82c0
- Lua methods to get Songs & Charts by Chartkey - d0e0c2f 789181f
- Minanyms - 85a1e49 f2a9fc5 0037787 19eeeb4 1d9de24 dd59276 41e3550 2b61bc3 e8c4731
- Offset Plot viewer to view Replay Data - 920e236
- Playlists - 6f0e2a1 2f94614 aa727d7 809698d 1909f38 6bffed9 aced494 dc3c054 610c38c f5021b3 c6d8e34 f051a5f 8bf3b3d f9c3284 8f8f0af 05898fc 5f4ab03 39580f8 f79c1de d0a4175 30ab098 599e9f5 bb64dbd 612d5ff 16b4810 8fb457b b4138dc 5cc615c 781a57d e950df4 3fd8f48 4770443 bdfd39d c96bcd5 32e07dd 9005ee5 3718be2 a1ac458 c5463c9 b66b4fa 9f3c791
- Playlists show up as Groups on the MusicWheel - eab1dfa
- New Etterna.xml save structure, like Stats.xml but without ReplayData - 82a0b9c b5ae71c 4f3ed7d 2146655 868f31a e7602e0 4502a04 4073f0a f455c7e f893394 e94420c 6a47206 b318a42 ac71458 074812d 277e3be f06bffb 3856357 3d0a90e
- Per-chart mod Permamirror - fc8692e c0c1333 109fcf5 87706ab
- Player Rating appears on ScreenProfileLoad - d0847ce
- Preference to hide the lag window with the FPS counter - befe017
- Recording Wifescore over time - 804aa0c 859116f bb065fc
- Song Search tries to return Packs if it has no results - 363c36b f4b6e4e
- Stats.xml to Etterna.xml converter (and SM3.95 support) - 7647cce 86a50c6 d013f3f e8ec832 4b77582 65ca243 ee613c8 41fc83f 3021745 8a8e7d4 1e3fa56 ad58aa3 769eee3 25540d0 5ecb98a 8f4fbc6 6cbd15e 22b7fc9 cbddb1e 879cf79
- Save profile hotkey - c82080d
- Reconciling broken Chartkeys is possible - 4020933 18657d3
- Replace MAD with FFmpeg - 3958470 21c3395
- Travis runs Coverity - 0a607f7
- Validation keys
- Window size getters are placed in ArchHooks - 455b70d
- All pointers to HighScores and SSRs are sorted by Skillset Rating - d0b12ae
- Autoplay is not human - 15bcdba
- Autoplay is now even more intentionally bad - 98fe95a
- Banners have capped resolution sizes - 2525925 dfe35bc c768ecc
- Building the Estimate Time vectors in the NonEmptyRowVectors, reset the previous ones if rebuilding - c1c960e
- Chartkey Generation & MSD Calculation only happens outside of Gameplay - a2b4b34
- Chartkeys are private fields of Steps - 39a3134
- Checking for a changed input device happens once per second, not once per frame - 01b930f
- Clicking a category on the MusicWheel opens it - 412f5b2
- Don't allow the Sync overlay help page to repeatedly spam Commands for showing - c46dd91
- Don't cast a Cstring to an RString - 3d89914
- Don't check to see if a set of Steps is invalid, because Chord Cohesion is the only reason that existed - 66f6fcc
- Don't consider invalid scores in player rating calculation - 69314fd
- Don't consider scores from old MSD Calc versions in player rating calculation - 6f3555f
- Don't generate Chartkeys for files with no NoteData - f0d645b dc3cbf9
- Don't grab the loading window from NetworkSyncManager - 084da49
- Don't reset an SSR calculation if the Chart is not loaded - e40d3c1
- Don't try to render BitmapText shadows because they don't work - ce38224
- Edit option on the Main Menu is now a link to ArrowVortex - 5034aa4
- Empty Steps are ignored for Radar Calculation & Caching - 920d502 41fe93c
- ETT NoteData compression method is changed - 426fb61 3724b16
- Favoriting and Unfavoriting is a single hotkey instead of 2 - 249c16a
- Favorites are not a vector, they are a set - 27b97b2 6140fd2
- FFmpeg updated to 3.3.3 - ec92941
- FFmpeg GPU acceleration disabled on Linux - 20e0301
- Files with under 200 notes are invalid - fd16570
- Filter tab supports 3x rate - bae2ca8
- Getting WifePersonalBests uses Chartkeys and Rates - 869bc14 515a8f7
- Grabbing Songs & Steps is done by Chartkey instead of ID - 3477591
- HighScoreLists in Profiles are now maps of Rates to HighScore vectors and Chartkeys to HighScoreRateMaps - 884b450 cf8283b
- Historic Chartkeys are just Chartkeys now - 4eaa892
- Hold Shift to save a compressed Screenshot rather than the other way around - 1ecde1c
- Improve Profile tab code & sorting - eae3632
- Installer refers to Etterna as Etterna and not Stepmania - 3ec7644
- Instant restart button will not work online - 03a2a83
- Judgment Messages send unscaled Wifepoints by default - 087c022
- LessThan operator for HighScores now considers only WifeScore instead of Grade - 3f0ed1a
- Load a fake profile if there are no profiles, in lieu of there being no Machine profile - 23b513c
- Lua must force Gameplay input redirection repeatedly in Playlists - b712fba
- Many instances of RString are replaced by std string or Cstring - de63892 e45d4eb a7326c8 6a47206 d76c96b a12b25c
- More MSD Calc updates - e7507f0 d13c90f 1f6601c f8f5282 15b7a57 b54911a 6ecc70b e04a16d dfb13f9 367f0d0 31ce05d e91f433
- Mouse Wheel Scrolling is faster - 32de0e2
- MSD Calc should build easier - cff8283 aaefb58 853a9c1
- MSD Calc version is an int, not a float - 809ad61
- MSD Values for Charts are cached - 4df4581 d38a10f
- MusicWheelItems update permamirror, favorite, and goal info regardless of score info - d35e3a4
- NetworkSyncManager doesn't need to look for SMO packets every frame - e97ab8b
- On game initialization, basically display a black screen instead of white - d65b0ff
- Optimize displaying Grades using score keys - e7348fe
- Optimize Estimated Time calculation for Non Empty Row Vectors - daf3600 4080d27 bbea048 e746043
- Optimize Estimated Time calculation for single bpm files - 10e9ec8 4080d27 bbea048 e746043
- Optimize Loading from SMNoteDataString by not initializing empty Taps - bbcf62e
- Optimize Offset Plot drawing to be a single MultiVertex - d5cce8b
- Optimize Offset Plot loading to let it be loaded anywhere - 3ad5aae 26d0f3a f77f5ba 920e236
- Optimize rgba to rgba RageSurface conversions using threads - 35ccdfd 9b33207 1a819db
- Optimize size for many JPG & PNG files - db1d035 80ba803
- Optimize Scores, basically rewriting them entirely - 989fc4f 08568eb 4402e2e e02d546 aa5a8cb 87d4ccd
- Optimize some rendering code for a 20-60% performance boost - c4f7ccc c217987 4a566af 3951fd3 51bcae3 1c612f8
- Optimize Tap rendering by rendering Taps when they should be rendered - 65d0312
- Optimize vector use by using emplace instead of push - a29333c
- Preference related to the minimum percentage to save a score is renamed - 62de3c5
- Profile saving and loading operations have checkpoints - edb50a6
- Profile Tab Lua Optimizations - 9fc2a99 be7b56d
- Properly reset NERV/Serialized NoteData when making NoteData - bc4b113
- Radar Values (note counts) are ints instead of floats - d34bfe0 47ca4f3 b87a395
- Rates up to 3x are now supported - 48a799a 2b155de
- Recalculate rating and SSRs for player loads - eca7cbe 91882c6 79a0bf6 d0a9651 35a6438 9c151b3 6aa1055 4fabc16 5ba773b a0a6d9c cbacc32 b42c10e 8ed6018
- Redirect some links from Stepmania to Etterna - ebad781
- Redo the LoadingWindow internally for smoothness and not so much reliance from multiple sections of code - 09fb85f 084da49 1b468fe
- Replace more typecasts with static casts - 8aee60d 8fd4ea3 f87d1c4 50161ce 5ec7e84
- ReplayData saves separately from Profiles. Early InputData implementation - 909517c 6219b9b 1c1c3e3 feb50ec b6036d4
- ReplayData should save and load properly - 21b82d3 63a4637 814214d ac84e24 d7c17dc 920e236
- Sort all scores correctly on first load from XML - e627277 071c8f0
- SSR Scaling maxes out at 97 - 6412d2e
- Unordered map macros implemented for use in getting Scores by key - 279150b
- All references to Cabinet Lights - 23ee2c2 4445d68 1e66e3e 43314e8
- Attacks, Battle Mode, Rave Mode, related elements - 89bf1c8 c141e20 3e18ec0 c0d754e d0f9900
- Autogen not in Noteloaders - 6ad869d 3e18ec0
- Autogen from Noteloaders - de6e19e
- Autoconf files & Makefile.am - b978a41
- Bookkeeper (CoinManager) - 5682c18
- Chartkey records in Cache for debug - 2db2e79
- Courses - 2afc922 a09e150 4d06e74 80424d3 5095b95 d51c33f
- Displaying Grades by Difficulty on the MusicWheel - 04dce35
- Haste mod - 5a44b46
- Hidden songs - 477a424 6d2ae18 ef24d4a
- Ingame Editor - 313e011 3e888c5 3f32e4d 2cf03b1 80424d3 314cd3d
- Jukebox & Demo - 08cccb0
- Kickbox Mode - 6219d33 1a72adc
- Machine Profile & UnlockManager (song unlocks) - f87046d e7e550f
- MAD audio library - 21c3395
- MemoryCardManager - 446f809
- MonkeyInput (random keyboard input) - fe50843 0258e9d
- Old Radar Values (Voltage, Air, etc) - b652bd7
- References to Calories & Workouts - ec208c31
- Roulette & Wheel Sort by Difficulty - a61ffae 977cfb7
- Saving profiles directly into the old format - 44d2f21
- Scaled Wifescore because unscaled is the default - 61314b2 af7eee3
- Size cap on the list of HighScores saved - c10733b 0c1c8bb
- Some visual references to DP - 8936fcf 1fc8320 f810663 e6795b5
- Symlinks (Songs in multiple folders) - 062cba3
- Theme Button template function - 1866a48 9551832
- TopSSRCalc functions & Score/PB by key functions replaced by faster implementations - c65f4f8
- Unused fallback theme CodeDetector instances - db33591
- Unused NotePerSecond vector generators - 2b5e32e
- X11 ScreenSaver stuff - 2da5dbc
- Autosync broke in Gameplay due to pulling the precalculated values from TimingData - c516aaf
- Deleting FileSets leaked memory - 2c0385c
- Float to String function usages were bad for the XML - 2bd3a28
- Game crashed when managing old scores without a listed rate - 27659bb
- GetScoreByKey was broken - c9e4e1f
- Init splash screen could not be skipped - d79a5e3
- Mac build didn't work - a63348f
- Memory leaks were caused by MusicWheel scrolling generating new objects - 151e083
- Mouse positioning coordinates were bad for Windows - 93f05ea
- Online banners & MSD labels were broken - a25f5b0 7d0a25d
- ReloadSongs button was broken - 7858734
- SMZips didn't work - e59c916 9bc5440
- Song Search didn't always land on a Song - 0b063d9