libretro / gpsp

gpSP for libretro.
GNU General Public License v2.0
55 stars 53 forks source link

Add dedicated RetroPad fast-forward button #86

Closed jdgleaver closed 3 years ago

jdgleaver commented 4 years ago

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.

Note: This PR also enables input bitmasks