* 🎵 Fast forward audio resampling. Solves #15160.
Previously, we avoided doing any resampling while fastforwarding based
on the assumption it was impossible to make the audio not crackle due to
both flush-to-flush timing fluctuations and timer accuracy.
However, turns out this is not the case. The audio doesn't "crackle" per
se when the timing fluctuates! It's just that the sounds don't make
sense since the time compression and decompression caused by the flush
time fluctuations mess with the audio consistency.
To work around that, we introduce a running average flush delta time
that makes sure the audio is both resampled to approximately the correct
rate and consistent.
This was tested in two settings:
- Limited rate fastforwarding (2x-4x)
- Unlimited fastforwarding
In both cases it seems to work well, but with unlimited fastforwarding
it's just high pitched and annoying, so this is probably the most useful
in the 2x to 4x range.
* Move declartion to support C89
* resampling ratio upper and lower bounds
* Add toggle for speeding up audio
* Prepare to update deps/switchres
* Squashed 'deps/switchres/' content from commit ca72648b32
git-subtree-dir: deps/switchres
git-subtree-split: ca72648b3253eca8c5addf64d1e4aa1c43f5db94
* Add CRT modeswitching to KMS
Display the real refresh rate
Enable the CRT SwitchRes menu
Add another switchres.ini path for Lakka
If cores are not deterministic, or if they only have bounded
determinism, we can obtain less drift if replay files also contain
periodic checkpoint states. These are configured by the new retroarch
stting replay_checkpoint_interval (measured in seconds). States are
inserted into the replay file in between frames.
This patch also fixes the settings display for the replay
autoincrement max keep setting.
* Add bsv replay controls (not yet fully implemented), remove toggle
see notes in task_movie.c, make sure command.c calls the right
functions, check retroarch.c and other todos.
bsv files are also now stored with states, not saves.
* Compilation fixes
* Added command impls for play and record replay, and some code in load state to do the right thing there
* Guard some parts of the new code with HAVE_BSV_MOVIE
* wip, menu fixes
* more menu fixes, osd for movie errors, halt recording properly
* Menu and label fixes
* move bsvs to own file suffix series under savestates, fix recording and playback command validity checks
* Fix replay autoincrement
* fix endif placement, whoops
---------
Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
ever implemented for OpenGL2 driver, lots of code debt, best to
instead just keep improving the overlay system instead which is
already available for most video drivers
Disabling the built in media player should be possible for music files
as well. Without this, sound files can not be opened from file browser
with cores that support them.
* Use "Remember window position and size" setting (fixes#14806)
* Implement window opacity
* Enable "Show window decorations" toggle
* Hide "Disable composition" option (osx does not support disabling composition)
- 'Unlocks/Mastery' split into two options
- 'Account/Login Messages' split off from 'Verbose', gated all login success/error messages
- menu_cbs_sublabel.c - Now in same order as menu options
- menu_setting.c - VISIBILITY_UNLOCK default value now uses define
- All suggested text/cleanup changes from Jamiras
- Startup Summary split off from Verbose Mode, added option to hide for games with zero core cheevos
- Some existing options moved into this submenu
- Leaderboard-related options coming in future PR
When running on Android, RetroArch considers most devices that emit dpad events as gamepads, even if they also emit other keyboard events; this is usually the right thing to do, but it has the side effect of not letting some actual keyboards (e.g.: Logitech K480) act as such inside RetroArch. This configuration option allows users to manually select a specific input device to act as a physical keyboard instead of a gamepad, which is handy when emulating computers as opposed to consoles.
using roughly the same implementation for the ok/notice/cancel sounds, but i've made an exclusive function for scrolling since it's going to be called a lot more than those sounds
* Allow repositioning of achievement notifications
* PS4/ORBIS build fix
Would have thought cheevos-related notification code was wrapped in HAVE_CHEEVOS, but guess not.
* Allow disabling "Update Core Info" from Online Updater
* Add ASSETS_DIR as an alternative to DEFAULT_DIR_ASSETS
* Add FILTERS_DIR configuration option
* Fix other platform_unix.c platforms
* Conditionally use ASSETS_DIR/FILTERS_DIR
WIP version of Append and Prepend preset, Includes UI for Standard Retroarch, but not the QT UI companion
Co-authored-by: HyperspaceMadness <remimcgill@hotmail.com>