This PR uses the new RETRO_ENVIRONMENT_SET_FASTFORWARDING_OVERRIDE environment callback (https://github.com/libretro/RetroArch/pull/11547) to add a dedicated 'hold to fast forward' button, mapped to RetroPad R2 by default. This serves as a reference implementation for other core devs.
Q) Why would we want a dedicated fast-forward button, when RetroArch already has this functionality via hotkeys?
A) Hotkeys are, by and large, inconvenient when the user only has a gamepad for input. Due to the fact that most gamepads only have the bare minimum of buttons, enabling fast-forward via hotkeys requires the use of both a hotkey enable button and the fast-forward button itself - so two inputs must be pressed simultaneously. Attempting to set up a 'hold to fast forward' hotkey combo in this fashion leaves no fingers free for actually controlling the game while fast-forward is active - making grinding in RPGs (for example) highly cumbersome. A dedicated core-side fast-forward button avoids this problem, and requires no special configuration by the user.
This PR uses the new
RETRO_ENVIRONMENT_SET_FASTFORWARDING_OVERRIDE
environment callback (https://github.com/libretro/RetroArch/pull/11547) to add a dedicated 'hold to fast forward' button, mapped to RetroPadR2
by default. This serves as a reference implementation for other core devs.Q) Why would we want a dedicated fast-forward button, when RetroArch already has this functionality via hotkeys?
A) Hotkeys are, by and large, inconvenient when the user only has a gamepad for input. Due to the fact that most gamepads only have the bare minimum of buttons, enabling fast-forward via hotkeys requires the use of both a hotkey enable button and the fast-forward button itself - so two inputs must be pressed simultaneously. Attempting to set up a 'hold to fast forward' hotkey combo in this fashion leaves no fingers free for actually controlling the game while fast-forward is active - making grinding in RPGs (for example) highly cumbersome. A dedicated core-side fast-forward button avoids this problem, and requires no special configuration by the user.
Note: This PR also enables input bitmasks