What's New:
Features
- CLI: Keep fast-forward forced on when capture parameter is specified
- CLI: Warn about conflicting behaviour when -m64 and -st options are both specified
- ConfigDialog: Add async plugin discovery
- ConfigDialog: Remember selected settings tab
- ConfigDialog: Rescan plugins after changing plugin directory
- Core/ST: Undo savestate load
- FFmpegEncoder: Respect sync mode option
- PianoRoll: Add keep playhead visible option
- Statusbar: Add layout presets
- View: Show broken plugin count in config dialog plugin page
Changes
- EncodingManager: Capture on emu thread
- Main: Simplify warping status text
- Seeker: Show status message when seek completes
- Seeker: Show warning when seek savestates are disabled
- View: Improve RAM start dialog
Bugfixes
- AVIEncoder: Double-free in stop()
- CLI: Disable and warn about movie loop when close on movie end is specified
- CLI: Fix capture not starting when playing back from-start movies
- CLI: Race condition in movie playback start
- ConfigDialog: Crash when applying editbox content
- ConfigDialog: Crash when too option item string is too long
- ConfigDialog: Fix directory options not being saved when textboxes are edited manually
- ConfigDialog: Fix plugin discovery loading text not disappearing when no broken plugins are reported
- ConfigDialog: Handle arbitrary text lengths in inline editbox
- ConfigDialog: Inline editboxes being too wide
- Core/ST: Fix slot being incremented on save operations when increment slot is enabled
- EncodingManager: Fix crash when audio frequency changes during capture
- EncodingManager: Incorrect video dimensions being used to readscreen_hybrid when no MGE implementation is available
- FFmpegEncoder: Audio drift during lag
- FFmpegEncoder: Mangled path being read
- FFmpegEncoder: Wrong divisor in sample length calculation
- IOHelpers: Fix infinite recursion
- Lua/Emu: getversion(1) cutting off first number in version
- Lua: Fix corrupted console output
- MGECompositor: Fix load_screen data becoming outdated when copying and loading in quick succession
- Main: Main window having no closing animation
- MovieDialog: Fix listview column header text corruption
- PianoRoll: Fix string corruption
- PianoRoll: Potential crash when ListView entries are too long
- PianoRoll: Use more consistent wording when mentioning seek savestates
- Rombrowser: Potential crash when ListView entries are too long
- Seeker: Fix seeker start button text getting stuck on "Stop" when begin_seek broadcasts early
- Statusbar: Avoid showing negative indicies when zero-index is enabled
- StlExtensions: Fix wrong allocation size in string_to_wstring
- VCR: Don't show savestate warnings for internal savestate API calls
- VCR: Fix incorrect wording in savestate fail dialog
- View: Attempt to improve stability of recent menus
- View: Don't "adjust" VIs when zero-index is enabled